From 00f4486bcf832330d9218ebe51c679d605fa266f Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 11:24:53 +0800 Subject: [PATCH 01/47] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=B9=B3=E5=AE=89?= =?UTF-8?q?=E6=A0=B8=E9=94=80=E7=9A=84=E8=AE=A2=E5=8D=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Coupon/IndexController.php | 45 ++--- app/Admin/Controllers/TestController.php | 157 +++++++++++++----- app/Admin/routes.php | 1 + app/Models/Log.php | 18 +- 4 files changed, 160 insertions(+), 61 deletions(-) diff --git a/app/Admin/Controllers/Coupon/IndexController.php b/app/Admin/Controllers/Coupon/IndexController.php index 5b407e1..b42502a 100644 --- a/app/Admin/Controllers/Coupon/IndexController.php +++ b/app/Admin/Controllers/Coupon/IndexController.php @@ -15,6 +15,7 @@ class IndexController extends AdminController /** * Notes: + * * @Author: * @Date : 2019/9/18 14:50 * @return Grid @@ -27,9 +28,9 @@ class IndexController extends AdminController $grid->disableActions(); $grid->model() - ->with(['outlet.province', 'outlet.city', 'outlet.district', 'user', 'user.info']) - ->whereIn('status', [2, 3]) - ->orderBy('id', 'desc'); + ->with(['outlet.province', 'outlet.city', 'outlet.district', 'user', 'user.info']) + ->whereIn('status', [2, 3]) + ->orderBy('id', 'desc'); $grid->filter(function ($filter) { $filter->column(1 / 2, function ($filter) { @@ -56,6 +57,7 @@ class IndexController extends AdminController }, '网点名称'); $filter->equal('type', '类型')->select(Coupon::TYPES); + $filter->like('pa_order_id', '平安主订单号'); }); }); @@ -64,11 +66,11 @@ class IndexController extends AdminController return $this->user->nickname; }); $grid->column('type', '类型') - ->using(Coupon::TYPES) - ->label([ - '1' => 'info', - '2' => 'success', - ]); + ->using(Coupon::TYPES) + ->label([ + '1' => 'info', + '2' => 'success', + ]); $grid->column('网点名称/编号')->display(function () { return $this->outlet ? $this->outlet->nickname : $this->outletId; @@ -79,19 +81,20 @@ class IndexController extends AdminController $grid->column('price', '核销金额'); $grid->column('total', '订单金额'); $grid->column('orderid', '订单id'); + $grid->column('pa_order_id', '平安主订单号')->hide(); $grid->column('资金通道结算')->display(function () { $profit = $this->status == 2 ? $this->profit : '0.00'; - return '' . $profit . ''; + return ''.$profit.''; }); $grid->column('状态')->display(function () { switch ($this->status) { case 2: - return '' . $this->status_text . ''; + return ''.$this->status_text.''; break; case 3: - return '' . $this->status_text . ''; + return ''.$this->status_text.''; break; default: return $this->status_text; @@ -123,13 +126,13 @@ class IndexController extends AdminController $success = $query->where('status', 2)->count(); $faield = $total - $success; - return '  ' - . '  ' - . '  ' - . '  ' - . '  ' - . '  '; + return '  ' + .'  ' + .'  ' + .'  ' + .'  ' + .'  '; }); $grid->disableExport(false); @@ -141,13 +144,13 @@ class IndexController extends AdminController return strip_tags($value); }); $export->column('redemptionCode', function ($value, $original) { - return $value . "\t"; + return $value."\t"; }); // $export->column('price', function ($value, $original) { // return $value . "\t"; // }); $export->column('orderid', function ($value, $original) { - return $value . "\t"; + return $value."\t"; }); // $export->column('total', function ($value, $original) { // return $value . "\t"; @@ -155,7 +158,7 @@ class IndexController extends AdminController $export->column('资金通道结算', function ($value, $original) { return strip_tags($value); }); - $export->filename('卡券列表' . date("YmdHis")); + $export->filename('卡券列表'.date("YmdHis")); }); return $grid; diff --git a/app/Admin/Controllers/TestController.php b/app/Admin/Controllers/TestController.php index a38907e..6b03964 100644 --- a/app/Admin/Controllers/TestController.php +++ b/app/Admin/Controllers/TestController.php @@ -3,64 +3,69 @@ namespace App\Admin\Controllers; use App\Models\Coupon; +use App\Models\Log; use Carbon\Carbon; +use Illuminate\Database\Schema\Blueprint; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Schema; +use XuanChen\Coupon\Action\pingan\Verification; class TestController { public function index(Request $request) { + $date = $request->date ?? date('Y-m-d'); $time = Carbon::parse($date); $all = Coupon::where('status', 2) - ->whereBetween('created_at', [ - $time->startOfDay()->toDateTimeString(), - $time->endOfDay()->toDateTimeString(), - ]) - ->count(); + ->whereBetween('created_at', [ + $time->startOfDay()->toDateTimeString(), + $time->endOfDay()->toDateTimeString(), + ]) + ->count(); $self = Coupon::where('status', 2) - ->where('type', Coupon::TYPE_YSD) - ->whereBetween('created_at', [ - $time->startOfDay()->toDateTimeString(), - $time->endOfDay()->toDateTimeString(), - ]) - ->count(); + ->where('type', Coupon::TYPE_YSD) + ->whereBetween('created_at', [ + $time->startOfDay()->toDateTimeString(), + $time->endOfDay()->toDateTimeString(), + ]) + ->count(); $pingan = Coupon::where('status', 2) - ->where('type', Coupon::TYPE_PINGAN) - ->whereBetween('created_at', [ - $time->startOfDay()->toDateTimeString(), - $time->endOfDay()->toDateTimeString(), - ]) - ->count(); + ->where('type', Coupon::TYPE_PINGAN) + ->whereBetween('created_at', [ + $time->startOfDay()->toDateTimeString(), + $time->endOfDay()->toDateTimeString(), + ]) + ->count(); $error = Coupon::where('status', 3) - ->whereBetween('created_at', [ - $time->startOfDay()->toDateTimeString(), - $time->endOfDay()->toDateTimeString(), - ]) - ->count(); + ->whereBetween('created_at', [ + $time->startOfDay()->toDateTimeString(), + $time->endOfDay()->toDateTimeString(), + ]) + ->count(); $lists = DB::table('coupons') - ->where('status', 2) - ->whereBetween('created_at', [ - $time->startOfDay()->toDateTimeString(), - $time->endOfDay()->toDateTimeString(), - ]) - ->select('redemptionCode', DB::raw('COUNT(*) as code_count')) - ->groupBy('redemptionCode') - ->having('code_count', '>', 1) - ->get(); + ->where('status', 2) + ->whereBetween('created_at', [ + $time->startOfDay()->toDateTimeString(), + $time->endOfDay()->toDateTimeString(), + ]) + ->select('redemptionCode', DB::raw('COUNT(*) as code_count')) + ->groupBy('redemptionCode') + ->having('code_count', '>', 1) + ->get(); $data = [ - ' 日期为:' . $time->format('Y-m-d'), - ' 核销总数为:' . $all, - ' 自有卡券总数为:' . $self, - ' 平安卡券总数为:' . $pingan, - ' 核销错误总数为:' . $error, - ' 核销重复数据数为:' . $lists->count(), + ' 日期为:'.$time->format('Y-m-d'), + ' 核销总数为:'.$all, + ' 自有卡券总数为:'.$self, + ' 平安卡券总数为:'.$pingan, + ' 核销错误总数为:'.$error, + ' 核销重复数据数为:'.$lists->count(), ]; foreach ($data as $info) { @@ -69,4 +74,82 @@ class TestController } + /** + * Notes: 设置日志关联 + * + * @Author: 玄尘 + * @Date: 2022/1/19 11:12 + * @param \Illuminate\Http\Request $request + */ + public function coupon(Request $request) + { + $type = $request->type ?? ''; + $date = $request->date ?? ''; + + if (! $type) { + dd('type 错误'); + } + + if (! $date) { + dd('date 错误'); + } + + $name = 'api_log_'.$date;//表名 + if (! Schema::hasTable($name)) { + dd('数据表不存在'); + } + + if (! Schema::hasColumn($name, 'coupon_no')) { + Schema::table($name, function (Blueprint $table) { + $table->string('coupon_no')->after('out_source')->nullable(); + }); + } + + /** + * 设置日志 + */ + if ($type == 'log') { + + (new Log())->setTable($name) + ->whereNull('coupon_no') + ->where('path', 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/partner/redemption') + ->where('out_source->code', 200) + ->chunkById(1000, function ($logs) use ($name) { + foreach ($logs as $log) { + $data = (new Verification())->decrypt($log->in_source['json']['data']); + $data = json_decode($data, true); + $log->update([ + 'coupon_no' => $data['couponNo'] + ]); + + } + }); + + dd($name.' 表日志设置完成'); + + } + + if ($type == 'coupon') { + (new Log())->setTable($name) + ->whereHas('coupon', function ($q) { + $q->whereNull('pa_order_id'); + }) + ->where('path', 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/partner/redemption') + ->where('out_source->code', 200) + ->chunkById(1000, function ($logs) use ($name) { + foreach ($logs as $log) { + $log->coupon->update([ + 'pa_order_id' => $log->out_source['data']['orderId'], + 'pa_sub_order_id' => $log->out_source['data']['subOrderId'], + ]); + } + }); + + dd($name.' 表关联的优惠券设置完成'); + } + + + dd(1); + } + } diff --git a/app/Admin/routes.php b/app/Admin/routes.php index edc9dce..5b8fb10 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -12,6 +12,7 @@ Route::group([ $router->get('/', 'HomeController@index')->name('admin.home'); $router->get('test', 'TestController@index')->name('test.index'); + $router->get('test/coupon', 'TestController@coupon')->name('test.index'); $router->post('uploads/editor', 'UploadController@editor')->name('uploads.editor'); diff --git a/app/Models/Log.php b/app/Models/Log.php index 627829f..12c67de 100644 --- a/app/Models/Log.php +++ b/app/Models/Log.php @@ -33,11 +33,11 @@ class Log extends Model public function __construct(array $attributes = []) { parent::__construct($attributes); - if (!$this->table) { - $this->table = 'api_log_' . date('Ym'); + if (! $this->table) { + $this->table = 'api_log_'.date('Ym'); } - if (!Schema::hasTable($this->table)) { + if (! Schema::hasTable($this->table)) { Schema::create($this->table, function (Blueprint $table) { $table->increments('id'); $table->string('path', 255); @@ -62,6 +62,7 @@ class Log extends Model /** * 为数组 / JSON 序列化准备日期。 + * * @param \DateTimeInterface $date * @return string */ @@ -70,4 +71,15 @@ class Log extends Model return $date->format($this->dateFormat ?: 'Y-m-d H:i:s'); } + /** + * Notes: 关联优惠券 + * + * @Author: 玄尘 + * @Date: 2022/1/19 11:24 + * @return \Illuminate\Database\Eloquent\Relations\HasOne + */ + public function coupon() + { + return $this->hasOne(Coupon::class, 'redemptionCode', 'coupon_no'); + } } From 7d7039cd4908356936630744fc83aa3845122f6a Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 11:53:42 +0800 Subject: [PATCH 02/47] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/Coupon/IndexController.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Admin/Controllers/Coupon/IndexController.php b/app/Admin/Controllers/Coupon/IndexController.php index b42502a..34c26ff 100644 --- a/app/Admin/Controllers/Coupon/IndexController.php +++ b/app/Admin/Controllers/Coupon/IndexController.php @@ -45,6 +45,7 @@ class IndexController extends AdminController $filter->equal('user_id', '渠道')->select($users); $filter->equal('thirdPartyGoodsId', '优惠政策')->select(ActivityRule::pluck('title', 'code')); + $filter->like('couponName', '优惠政策名'); }); $filter->column(1 / 2, function ($filter) { $filter->like('redemptionCode', '卡券编号'); @@ -58,6 +59,7 @@ class IndexController extends AdminController $filter->equal('type', '类型')->select(Coupon::TYPES); $filter->like('pa_order_id', '平安主订单号'); + $filter->like('pa_sub_order_id', '平安子订单号'); }); }); @@ -82,6 +84,7 @@ class IndexController extends AdminController $grid->column('total', '订单金额'); $grid->column('orderid', '订单id'); $grid->column('pa_order_id', '平安主订单号')->hide(); + $grid->column('pa_sub_order_id', '平安子订单号')->hide(); $grid->column('资金通道结算')->display(function () { $profit = $this->status == 2 ? $this->profit : '0.00'; From 5dc5332dfb88c1550206f0d5d29de261cf0e9c64 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 13:13:20 +0800 Subject: [PATCH 03/47] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Log.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/app/Models/Log.php b/app/Models/Log.php index 12c67de..e462cb4 100644 --- a/app/Models/Log.php +++ b/app/Models/Log.php @@ -4,6 +4,8 @@ namespace App\Models; use DateTimeInterface; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Schema\Blueprint; use Schema; @@ -72,14 +74,26 @@ class Log extends Model } /** - * Notes: 关联优惠券 + * Notes: 关联优惠券-成功 * * @Author: 玄尘 * @Date: 2022/1/19 11:24 * @return \Illuminate\Database\Eloquent\Relations\HasOne */ - public function coupon() + public function coupon(): HasOne { - return $this->hasOne(Coupon::class, 'redemptionCode', 'coupon_no'); + return $this->hasOne(Coupon::class, 'redemptionCode', 'coupon_no')->where('status', 2); + } + + /** + * Notes: 关联优惠券 + * + * @Author: 玄尘 + * @Date: 2022/1/19 13:12 + * @return \Illuminate\Database\Eloquent\Relations\HasMany + */ + public function coupons(): HasMany + { + return $this->hasMany(Coupon::class, 'redemptionCode', 'coupon_no')->where('status', 2); } } From 89e24812c8549d0a7634f74825c1e676782d677a Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 13:16:05 +0800 Subject: [PATCH 04/47] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Log.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Log.php b/app/Models/Log.php index e462cb4..890299c 100644 --- a/app/Models/Log.php +++ b/app/Models/Log.php @@ -94,6 +94,6 @@ class Log extends Model */ public function coupons(): HasMany { - return $this->hasMany(Coupon::class, 'redemptionCode', 'coupon_no')->where('status', 2); + return $this->hasMany(Coupon::class, 'redemptionCode', 'coupon_no'); } } From 16e8a25b05a5cf5f58bc1a314c90f2fe356233e2 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 14:49:27 +0800 Subject: [PATCH 05/47] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=B9=B3=E5=AE=89?= =?UTF-8?q?=E5=88=B8=E6=A0=B8=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Coupon/IndexController.php | 2 +- app/Admin/Controllers/TestController.php | 43 ++++++++++++ app/Admin/routes.php | 3 +- app/Jobs/CheckCouponByLog.php | 67 +++++++++++++++++++ app/Jobs/CheckCouponLog.php | 55 +++++++++++++++ 5 files changed, 168 insertions(+), 2 deletions(-) create mode 100644 app/Jobs/CheckCouponByLog.php create mode 100644 app/Jobs/CheckCouponLog.php diff --git a/app/Admin/Controllers/Coupon/IndexController.php b/app/Admin/Controllers/Coupon/IndexController.php index 34c26ff..a798f4c 100644 --- a/app/Admin/Controllers/Coupon/IndexController.php +++ b/app/Admin/Controllers/Coupon/IndexController.php @@ -83,7 +83,7 @@ class IndexController extends AdminController $grid->column('price', '核销金额'); $grid->column('total', '订单金额'); $grid->column('orderid', '订单id'); - $grid->column('pa_order_id', '平安主订单号')->hide(); + $grid->column('pa_order_id', '平安主订单号'); $grid->column('pa_sub_order_id', '平安子订单号')->hide(); $grid->column('资金通道结算')->display(function () { diff --git a/app/Admin/Controllers/TestController.php b/app/Admin/Controllers/TestController.php index 6b03964..1b15824 100644 --- a/app/Admin/Controllers/TestController.php +++ b/app/Admin/Controllers/TestController.php @@ -2,6 +2,8 @@ namespace App\Admin\Controllers; +use App\Jobs\CheckCouponByLog; +use App\Jobs\CheckCouponLog; use App\Models\Coupon; use App\Models\Log; use Carbon\Carbon; @@ -9,6 +11,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; +use Illuminate\Support\Str; use XuanChen\Coupon\Action\pingan\Verification; class TestController @@ -152,4 +155,44 @@ class TestController dd(1); } + /** + * Notes: 设置数据 + * + * @Author: 玄尘 + * @Date: 2022/1/19 13:29 + */ + public function checkCouponLog(Request $request) + { + $type = $request->type ?? ''; + + if (! $type) { + dd('type 错误'); + } + + $tables = DB::connection()->getDoctrineSchemaManager()->listTableNames(); + + foreach ($tables as $table) { + + if (Str::contains($table, 'api_log_')) { + echo " 开始处理 ".$table."
"; + + if (! Schema::hasColumn($table, 'coupon_no')) { + Schema::table($table, function (Blueprint $table) { + $table->string('coupon_no')->after('out_source')->nullable(); + }); + } + + if ($type == 'log') { + CheckCouponLog::dispatch($table); + } + + if ($type == 'coupon') { + CheckCouponByLog::dispatch($table); + } + + + } + } + } + } diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 5b8fb10..8994ea2 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -12,7 +12,8 @@ Route::group([ $router->get('/', 'HomeController@index')->name('admin.home'); $router->get('test', 'TestController@index')->name('test.index'); - $router->get('test/coupon', 'TestController@coupon')->name('test.index'); + $router->get('test/coupon', 'TestController@coupon'); + $router->get('test/check_coupon_log', 'TestController@checkCouponLog'); $router->post('uploads/editor', 'UploadController@editor')->name('uploads.editor'); diff --git a/app/Jobs/CheckCouponByLog.php b/app/Jobs/CheckCouponByLog.php new file mode 100644 index 0000000..bc86db0 --- /dev/null +++ b/app/Jobs/CheckCouponByLog.php @@ -0,0 +1,67 @@ +table = $table; + } + + public function handle() + { + info(__CLASS__.' 开始处理 '.$this->table); + + $count = (new Log())->setTable($this->table) + ->whereHas('coupon', function ($q) { + $q->whereNull('pa_order_id'); + }) + ->where('path', + 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/partner/redemption') + ->where('out_source->code', 200) + ->count(); + + if ($count > 0) { + + (new Log())->setTable($this->table) + ->whereHas('coupon', function ($q) { + $q->whereNull('pa_order_id'); + }) + ->where('path', + 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/partner/redemption') + ->where('out_source->code', 200) + ->chunkById(1000, function ($logs) { + foreach ($logs as $log) { + $log->coupon->update([ + 'pa_order_id' => $log->out_source['data']['orderId'], + 'pa_sub_order_id' => $log->out_source['data']['subOrderId'], + ]); + } + }); + } + + info(__CLASS__.' '.$this->table.' 成功处理 '.$count); + + } + +} \ No newline at end of file diff --git a/app/Jobs/CheckCouponLog.php b/app/Jobs/CheckCouponLog.php new file mode 100644 index 0000000..18db0f2 --- /dev/null +++ b/app/Jobs/CheckCouponLog.php @@ -0,0 +1,55 @@ +table = $table; + } + + public function handle() + { + info(__CLASS__.' 开始处理 '.$this->table); + + $count = (new Log())->setTable($this->table) + ->whereNull('coupon_no') + ->where('path', + 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/partner/redemption') + ->where('out_source->code', 200) + ->count(); + + if ($count > 0) { + (new Log())->setTable($this->table) + ->whereNull('coupon_no') + ->where('path', + 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/partner/redemption') + ->where('out_source->code', 200) + ->chunkById(1000, function ($logs) { + foreach ($logs as $log) { + $data = (new Verification())->decrypt($log->in_source['json']['data']); + $data = json_decode($data, true); + $log->update([ + 'coupon_no' => $data['couponNo'] + ]); + } + }); + + } + + info(__CLASS__.' '.$this->table.' 成功处理 '.$count); + + } + +} \ No newline at end of file From f5a1dbc717bac022125545b667ea6e8318a017c4 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 14:51:37 +0800 Subject: [PATCH 06/47] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Jobs/CheckCouponLog.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Jobs/CheckCouponLog.php b/app/Jobs/CheckCouponLog.php index 18db0f2..64d0a42 100644 --- a/app/Jobs/CheckCouponLog.php +++ b/app/Jobs/CheckCouponLog.php @@ -3,15 +3,24 @@ namespace App\Jobs; use App\Models\Log; +use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use XuanChen\Coupon\Action\pingan\Verification; -class CheckCouponLog +class CheckCouponLog implements ShouldQueue { use Dispatchable, InteractsWithQueue; + public $queue = 'LISTENER'; + + public $delay = 0; + + public $tries = 1; + + public $timeout = 30; + protected $table; public function __construct(string $table) From de87c20c06c51ce5b03e25762b3f67f578d85f6d Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 16:02:49 +0800 Subject: [PATCH 07/47] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Coupon.php | 3 ++- composer.lock | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/Models/Coupon.php b/app/Models/Coupon.php index d4493fe..9b5ee0a 100644 --- a/app/Models/Coupon.php +++ b/app/Models/Coupon.php @@ -4,11 +4,12 @@ namespace App\Models; use App\Models\Traits\BelongsToOutlet; use App\Models\Traits\BelongsToUser; +use GeneaLabs\LaravelModelCaching\Traits\Cachable; class Coupon extends Model { - use BelongsToUser, BelongsToOutlet; + use BelongsToUser, BelongsToOutlet,Cachable; protected $dates = [ 'paid_at', diff --git a/composer.lock b/composer.lock index 2cda51f..5a0c2fc 100644 --- a/composer.lock +++ b/composer.lock @@ -5802,17 +5802,23 @@ }, { "name": "xuanchen/unionpay", - "version": "3.3.7", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/xuanchen120/unionpay.git", - "reference": "4510eb9bb7dc02f5e6ffd5b3e6c423cddf8ae3bf" + "reference": "a2eabfc7786e9087a16bcf65f7a707a6967aa456" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/xuanchen120/unionpay/zipball/4510eb9bb7dc02f5e6ffd5b3e6c423cddf8ae3bf", - "reference": "4510eb9bb7dc02f5e6ffd5b3e6c423cddf8ae3bf", - "shasum": "" + "url": "https://api.github.com/repos/xuanchen120/unionpay/zipball/a2eabfc7786e9087a16bcf65f7a707a6967aa456", + "reference": "a2eabfc7786e9087a16bcf65f7a707a6967aa456", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] }, "require": { "laravel/framework": "*", @@ -5845,9 +5851,9 @@ "description": "第三方银联对接", "support": { "issues": "https://github.com/xuanchen120/unionpay/issues", - "source": "https://github.com/xuanchen120/unionpay/tree/3.3.7" + "source": "https://github.com/xuanchen120/unionpay/tree/3.4.0" }, - "time": "2021-07-29T02:25:13+00:00" + "time": "2021-08-31T07:47:43+00:00" } ], "packages-dev": [ From 6c68519b4c1e290b7d66daf63e44817ddca69172 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 16:13:18 +0800 Subject: [PATCH 08/47] test --- app/Models/Coupon.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/Models/Coupon.php b/app/Models/Coupon.php index 9b5ee0a..6e4ea8c 100644 --- a/app/Models/Coupon.php +++ b/app/Models/Coupon.php @@ -4,12 +4,11 @@ namespace App\Models; use App\Models\Traits\BelongsToOutlet; use App\Models\Traits\BelongsToUser; -use GeneaLabs\LaravelModelCaching\Traits\Cachable; class Coupon extends Model { - use BelongsToUser, BelongsToOutlet,Cachable; + use BelongsToUser, BelongsToOutlet; protected $dates = [ 'paid_at', @@ -64,8 +63,9 @@ class Coupon extends Model /** * 是否可以分润 - * @author 玄尘 2020-03-13 + * * @return bool [type] [description] + * @author 玄尘 2020-03-13 */ public function canProfit() { @@ -74,13 +74,14 @@ class Coupon extends Model /** * 分润 - * @author 玄尘 2020-03-13 + * * @return bool|string [type] [description] + * @author 玄尘 2020-03-13 */ public function profit() { $log = AccountLog::where('source->coupon_id', $this->id)->first(); - if (!$log && $this->user && $this->profit) { + if (! $log && $this->user && $this->profit) { return $this->user->account->rule('freeze', $this->profit, false, [ 'coupon_id' => $this->id, 'redemptionCode' => $this->redemptionCode, @@ -94,6 +95,7 @@ class Coupon extends Model /** * Notes: 撤销 + * * @Author: 玄尘 * @Date : 2020/10/12 13:56 */ @@ -115,6 +117,7 @@ class Coupon extends Model /** * Notes: 撤销分润 + * * @Author: 玄尘 * @Date : 2020/10/9 14:07 */ @@ -133,8 +136,9 @@ class Coupon extends Model /** * 打款 - * @author 玄尘 2020-03-13 + * * @return bool|string [type] [description] + * @author 玄尘 2020-03-13 */ public function sendMoney() { @@ -161,6 +165,7 @@ class Coupon extends Model /** * Notes: 格式化时间 年-月-日 + * * @Author: 玄尘 * @Date : 2020/4/7 16:24 * @return mixed From 7001ad2b75fa77904bacc20edb7cc728bf28e69a Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 16:15:58 +0800 Subject: [PATCH 09/47] test --- app/Models/Coupon.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Models/Coupon.php b/app/Models/Coupon.php index 6e4ea8c..e57d090 100644 --- a/app/Models/Coupon.php +++ b/app/Models/Coupon.php @@ -4,12 +4,15 @@ namespace App\Models; use App\Models\Traits\BelongsToOutlet; use App\Models\Traits\BelongsToUser; +use GeneaLabs\LaravelModelCaching\Traits\Cachable; class Coupon extends Model { - use BelongsToUser, BelongsToOutlet; + use BelongsToUser, BelongsToOutlet, Cachable; + protected $cacheCooldownSeconds = 300; + protected $dates = [ 'paid_at', ]; From a1be07fe91cfcdbcef0fd5ffe942fd8d286cd2b4 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Wed, 19 Jan 2022 16:16:53 +0800 Subject: [PATCH 10/47] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Coupon.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/Models/Coupon.php b/app/Models/Coupon.php index e57d090..eb644c5 100644 --- a/app/Models/Coupon.php +++ b/app/Models/Coupon.php @@ -4,15 +4,13 @@ namespace App\Models; use App\Models\Traits\BelongsToOutlet; use App\Models\Traits\BelongsToUser; -use GeneaLabs\LaravelModelCaching\Traits\Cachable; class Coupon extends Model { - use BelongsToUser, BelongsToOutlet, Cachable; + use BelongsToUser, BelongsToOutlet; + - protected $cacheCooldownSeconds = 300; - protected $dates = [ 'paid_at', ]; From 3c532e312e511dafaf69fbadd0a9cf93cc2aed75 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Thu, 20 Jan 2022 10:35:30 +0800 Subject: [PATCH 11/47] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Coupon/IndexController.php | 336 +++++++++--------- 1 file changed, 170 insertions(+), 166 deletions(-) diff --git a/app/Merchant/Controllers/Coupon/IndexController.php b/app/Merchant/Controllers/Coupon/IndexController.php index cd30d24..4f0a4bf 100644 --- a/app/Merchant/Controllers/Coupon/IndexController.php +++ b/app/Merchant/Controllers/Coupon/IndexController.php @@ -6,6 +6,7 @@ use App\Merchant\Controllers\Controller; use App\Models\ActivityRule; use App\Models\Coupon; use Auth; +use Carbon\Carbon; use Illuminate\Http\Request; class IndexController extends Controller @@ -19,11 +20,11 @@ class IndexController extends Controller if ($action == 'search') { $rules = ActivityRule::get(); if ($request->start) { - $request->start = $request->start . ' 00:00:00'; + $request->start = $request->start.' 00:00:00'; } if ($request->end) { - $request->end = $request->end . ' 23:59:59'; + $request->end = $request->end.' 23:59:59'; } $outlet = $request->outlet; @@ -34,40 +35,40 @@ class IndexController extends Controller $thirdPartyGoodsId = $request->thirdPartyGoodsId; $coupons = Coupon::where('user_id', $user->id) - ->when($outlet, function ($q) use ($outlet) { - $q->whereHas('outlet', function ($q) use ($outlet) { - $q->whereHas('info', function ($q) use ($outlet) { - $q->where('nickname', 'like', "%{$outlet}%"); - }); - }); - }) - ->when($redemptionCode, function ($q) use ($redemptionCode) { - $q->where('redemptionCode', $redemptionCode); - }) - ->when($thirdPartyGoodsId, function ($q) use ($thirdPartyGoodsId) { - $q->where('thirdPartyGoodsId', $thirdPartyGoodsId); - }) - ->when(is_numeric($status), function ($query) use ($status) { - if ($status == 4) { - $query->where('is_profit', 1); + ->when($outlet, function ($q) use ($outlet) { + $q->whereHas('outlet', function ($q) use ($outlet) { + $q->whereHas('info', function ($q) use ($outlet) { + $q->where('nickname', 'like', "%{$outlet}%"); + }); + }); + }) + ->when($redemptionCode, function ($q) use ($redemptionCode) { + $q->where('redemptionCode', $redemptionCode); + }) + ->when($thirdPartyGoodsId, function ($q) use ($thirdPartyGoodsId) { + $q->where('thirdPartyGoodsId', $thirdPartyGoodsId); + }) + ->when(is_numeric($status), function ($query) use ($status) { + if ($status == 4) { + $query->where('is_profit', 1); - } else { - $query->where('status', $status); - } + } else { + $query->where('status', $status); + } - }, function ($query) { - $query->whereIn('status', [2, 3]); - }) - ->when($start && $end, function ($query) use ($start, $end) { - $query->whereBetween('created_at', [$start, $end]); - }) - ->when($start && !$end, function ($query) use ($start) { - $query->where('created_at', '>', $start); - }) - ->when(!$start && $end, function ($query) use ($end) { - $query->where('created_at', '<', $end); - }) - ->orderBy('created_at', 'desc')->orderBy('id', 'desc')->paginate(); + }, function ($query) { + $query->whereIn('status', [2, 3]); + }) + ->when($start && $end, function ($query) use ($start, $end) { + $query->whereBetween('created_at', [$start, $end]); + }) + ->when($start && ! $end, function ($query) use ($start) { + $query->where('created_at', '>', $start); + }) + ->when(! $start && $end, function ($query) use ($end) { + $query->where('created_at', '<', $end); + }) + ->orderBy('created_at', 'desc')->orderBy('id', 'desc')->paginate(); $data = [ 'all' => $this->getData($request, 'all', $user), @@ -84,9 +85,10 @@ class IndexController extends Controller /** * 按照日期分润 - * @author 玄尘 2020-03-11 + * * @param Request $request [description] * @return array|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @author 玄尘 2020-03-11 */ public function profits(Request $request) { @@ -100,9 +102,9 @@ class IndexController extends Controller return $this->error('分润失败!没有可处理的数据'); } if (Coupon::where('user_id', $user->id) - ->whereDate('created_at', $date) - ->where('status', 2) - ->update(['status' => 4])) { + ->whereDate('created_at', $date) + ->where('status', 2) + ->update(['status' => 4])) { return $this->success('分润成功!'); } else { return $this->error('分润失败!'); @@ -115,9 +117,10 @@ class IndexController extends Controller /** * 分润 - * @author 玄尘 2020-03-11 + * * @param Coupon $coupon [description] * @return [type] [description] + * @author 玄尘 2020-03-11 */ public function profit(Coupon $coupon) { @@ -138,94 +141,94 @@ class IndexController extends Controller switch ($type) { case 'all': return Coupon::where('user_id', $user->id) - ->when($request->outlet, function ($q) use ($request) { - $q->whereHas('outlet', function ($q) use ($request) { - $q->whereHas('info', function ($q) use ($request) { - $q->where('nickname', 'like', "%{$request->outlet}%"); - }); - }); - }) - ->when($request->redemptionCode, function ($q) use ($request) { - $q->where('redemptionCode', $request->redemptionCode); - }) - ->when($request->thirdPartyGoodsId, function ($q) use ($request) { - $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); - }) - ->when(is_numeric($request->status), function ($query) use ($request) { - $query->where('status', $request->status); - }, function ($query) { - $query->whereIn('status', [2, 3]); - }) - ->when($request->start && $request->end, function ($query) use ($request) { - $query->whereBetween('created_at', [$request->start, $request->end]); - }) - ->when($request->start, function ($query) use ($request) { - $query->where('created_at', '>', $request->start); - }) - ->when($request->end, function ($query) use ($request) { - $query->where('created_at', '<', $request->end); - }) - ->count(); + ->when($request->outlet, function ($q) use ($request) { + $q->whereHas('outlet', function ($q) use ($request) { + $q->whereHas('info', function ($q) use ($request) { + $q->where('nickname', 'like', "%{$request->outlet}%"); + }); + }); + }) + ->when($request->redemptionCode, function ($q) use ($request) { + $q->where('redemptionCode', $request->redemptionCode); + }) + ->when($request->thirdPartyGoodsId, function ($q) use ($request) { + $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); + }) + ->when(is_numeric($request->status), function ($query) use ($request) { + $query->where('status', $request->status); + }, function ($query) { + $query->whereIn('status', [2, 3]); + }) + ->when($request->start && $request->end, function ($query) use ($request) { + $query->whereBetween('created_at', [$request->start, $request->end]); + }) + ->when($request->start, function ($query) use ($request) { + $query->where('created_at', '>', $request->start); + }) + ->when($request->end, function ($query) use ($request) { + $query->where('created_at', '<', $request->end); + }) + ->count(); break; case 'pass': return Coupon::where('user_id', $user->id) - ->when($request->outlet, function ($q) use ($request) { - $q->whereHas('outlet', function ($q) use ($request) { - $q->whereHas('info', function ($q) use ($request) { - $q->where('nickname', 'like', "%{$request->outlet}%"); - }); - }); - }) - ->when($request->redemptionCode, function ($q) use ($request) { - $q->where('redemptionCode', $request->redemptionCode); - }) - ->when($request->thirdPartyGoodsId, function ($q) use ($request) { - $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); - }) - ->when(is_numeric($request->status), function ($query) use ($request) { - $query->where('status', $request->status); - }) - ->where('status', 2) - ->when($request->start && $request->end, function ($query) use ($request) { - $query->whereBetween('created_at', [$request->start, $request->end]); - }) - ->when($request->start, function ($query) use ($request) { - $query->where('created_at', '>', $request->start); - }) - ->when($request->end, function ($query) use ($request) { - $query->where('created_at', '<', $request->end); - }) - ->count(); + ->when($request->outlet, function ($q) use ($request) { + $q->whereHas('outlet', function ($q) use ($request) { + $q->whereHas('info', function ($q) use ($request) { + $q->where('nickname', 'like', "%{$request->outlet}%"); + }); + }); + }) + ->when($request->redemptionCode, function ($q) use ($request) { + $q->where('redemptionCode', $request->redemptionCode); + }) + ->when($request->thirdPartyGoodsId, function ($q) use ($request) { + $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); + }) + ->when(is_numeric($request->status), function ($query) use ($request) { + $query->where('status', $request->status); + }) + ->where('status', 2) + ->when($request->start && $request->end, function ($query) use ($request) { + $query->whereBetween('created_at', [$request->start, $request->end]); + }) + ->when($request->start, function ($query) use ($request) { + $query->where('created_at', '>', $request->start); + }) + ->when($request->end, function ($query) use ($request) { + $query->where('created_at', '<', $request->end); + }) + ->count(); break; case 'reject': return Coupon::where('user_id', $user->id) - ->when($request->outlet, function ($q) use ($request) { - $q->whereHas('outlet', function ($q) use ($request) { - $q->whereHas('info', function ($q) use ($request) { - $q->where('nickname', 'like', "%{$request->outlet}%"); - }); - }); - }) - ->when($request->redemptionCode, function ($q) use ($request) { - $q->where('redemptionCode', $request->redemptionCode); - }) - ->when($request->thirdPartyGoodsId, function ($q) use ($request) { - $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); - }) - ->when(is_numeric($request->status), function ($query) use ($request) { - $query->where('status', $request->status); - }) - ->where('status', 3) - ->when($request->start && $request->end, function ($query) use ($request) { - $query->whereBetween('updated_at', [$request->start, $request->end]); - }) - ->when($request->start, function ($query) use ($request) { - $query->where('updated_at', '>', $request->start); - }) - ->when($request->end, function ($query) use ($request) { - $query->where('updated_at', '<', $request->end); - }) - ->count(); + ->when($request->outlet, function ($q) use ($request) { + $q->whereHas('outlet', function ($q) use ($request) { + $q->whereHas('info', function ($q) use ($request) { + $q->where('nickname', 'like', "%{$request->outlet}%"); + }); + }); + }) + ->when($request->redemptionCode, function ($q) use ($request) { + $q->where('redemptionCode', $request->redemptionCode); + }) + ->when($request->thirdPartyGoodsId, function ($q) use ($request) { + $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); + }) + ->when(is_numeric($request->status), function ($query) use ($request) { + $query->where('status', $request->status); + }) + ->where('status', 3) + ->when($request->start && $request->end, function ($query) use ($request) { + $query->whereBetween('updated_at', [$request->start, $request->end]); + }) + ->when($request->start, function ($query) use ($request) { + $query->where('updated_at', '>', $request->start); + }) + ->when($request->end, function ($query) use ($request) { + $query->where('updated_at', '<', $request->end); + }) + ->count(); break; default: return 0; @@ -238,61 +241,62 @@ class IndexController extends Controller //导出数据 public function excel($request, $user) { - if (!$request->end) { + if (! $request->end) { $request->end = now()->toDateTimeString(); } set_time_limit(0); ini_set('memory_limit', '1024M'); - $filename = '卡券记录' . date('YmdHis') . '.csv'; + $filename = '卡券记录'.date('YmdHis').'.csv'; $response = function () use ($user, $request) { $handle = fopen('php://output', 'w'); $titles = ['ID', '网点名称', '平安券编号', '优惠政策', '核销金额', '订单id', '状态', '处理结果', '核销时间']; fputcsv($handle, $titles); Coupon::where('user_id', $user->id) - ->when($request->outlet, function ($q) use ($request) { - $q->whereHas('outlet', function ($q) use ($request) { - $q->whereHas('info', function ($q) use ($request) { - $q->where('nickname', 'like', "%{$request->outlet}%"); - }); - }); - }) - ->when($request->redemptionCode, function ($q) use ($request) { - $q->where('redemptionCode', $request->redemptionCode); - }) - ->when($request->thirdPartyGoodsId, function ($q) use ($request) { - $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); - }) - ->when(is_numeric($request->status), function ($query) use ($request) { - $query->where('status', $request->status); - }, function ($query) { - $query->whereIn('status', [2, 3]); - }) - ->when($request->start && $request->end, function ($query) use ($request) { - $query->whereBetween('updated_at', [$request->start, $request->end]); - }) - ->when($request->start, function ($query) use ($request) { - $query->where('updated_at', '>', $request->start); - }) - ->when($request->end, function ($query) use ($request) { - $query->where('updated_at', '<', $request->end); - }) - ->latest() - ->chunk(5000, function ($coupons) use ($handle) { - foreach ($coupons as $index => $info) { - fputcsv($handle, [ - $info->id, - $info->outlet ? $info->outlet->nickname : 'Id:' . $info->outletId, - $info->redemptionCode . "\t", - ' ' . $info->couponName, - $info->price . "\t", - $info->orderid, - $info->status_text, - $info->remark, - $info->created_at, - ]); - } - }); + ->when($request->outlet, function ($q) use ($request) { + $q->whereHas('outlet', function ($q) use ($request) { + $q->whereHas('info', function ($q) use ($request) { + $q->where('nickname', 'like', "%{$request->outlet}%"); + }); + }); + }) + ->when($request->redemptionCode, function ($q) use ($request) { + $q->where('redemptionCode', $request->redemptionCode); + }) + ->when($request->thirdPartyGoodsId, function ($q) use ($request) { + $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); + }) + ->when(is_numeric($request->status), function ($query) use ($request) { + $query->where('status', $request->status); + }, function ($query) { + $query->whereIn('status', [2, 3]); + }) + ->when($request->start && $request->end, function ($query) use ($request) { + $query->whereBetween('created_at', + [Carbon::parse($request->start)->startOfDay(), Carbon::parse($request->end)->endOfDay()]); + }) + ->when($request->start, function ($query) use ($request) { + $query->where('created_at', '>', Carbon::parse($request->start)->startOfDay()); + }) + ->when($request->end, function ($query) use ($request) { + $query->where('created_at', '<', Carbon::parse($request->end)->endOfDay()); + }) + ->latest() + ->chunk(5000, function ($coupons) use ($handle) { + foreach ($coupons as $index => $info) { + fputcsv($handle, [ + $info->id, + $info->outlet ? $info->outlet->nickname : 'Id:'.$info->outletId, + $info->redemptionCode."\t", + ' '.$info->couponName, + $info->price."\t", + $info->orderid, + $info->status_text, + $info->remark, + $info->created_at, + ]); + } + }); fclose($handle); }; From 8ffcd52c231d7a31c81dde102c173738368d9ccf Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Mon, 24 Jan 2022 15:57:15 +0800 Subject: [PATCH 12/47] =?UTF-8?q?=E6=B8=A0=E9=81=93=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B9=B3=E5=AE=89=E4=B8=BB=E8=AE=A2=E5=8D=95?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Merchant/Controllers/Coupon/IndexController.php | 9 ++++++++- app/Merchant/Resources/views/coupon/index.blade.php | 9 +++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/Merchant/Controllers/Coupon/IndexController.php b/app/Merchant/Controllers/Coupon/IndexController.php index 4f0a4bf..24e2fbd 100644 --- a/app/Merchant/Controllers/Coupon/IndexController.php +++ b/app/Merchant/Controllers/Coupon/IndexController.php @@ -33,6 +33,7 @@ class IndexController extends Controller $start = $request->start; $end = $request->end; $thirdPartyGoodsId = $request->thirdPartyGoodsId; + $pa_order_id = $request->pa_order_id; $coupons = Coupon::where('user_id', $user->id) ->when($outlet, function ($q) use ($outlet) { @@ -48,6 +49,9 @@ class IndexController extends Controller ->when($thirdPartyGoodsId, function ($q) use ($thirdPartyGoodsId) { $q->where('thirdPartyGoodsId', $thirdPartyGoodsId); }) + ->when($pa_order_id, function ($q) use ($pa_order_id) { + $q->where('pa_order_id', $pa_order_id); + }) ->when(is_numeric($status), function ($query) use ($status) { if ($status == 4) { $query->where('is_profit', 1); @@ -154,6 +158,9 @@ class IndexController extends Controller ->when($request->thirdPartyGoodsId, function ($q) use ($request) { $q->where('thirdPartyGoodsId', $request->thirdPartyGoodsId); }) + ->when($request->pa_order_id, function ($q) use ($request) { + $q->where('pa_order_id', $request->pa_order_id); + }) ->when(is_numeric($request->status), function ($query) use ($request) { $query->where('status', $request->status); }, function ($query) { @@ -249,7 +256,7 @@ class IndexController extends Controller $filename = '卡券记录'.date('YmdHis').'.csv'; $response = function () use ($user, $request) { $handle = fopen('php://output', 'w'); - $titles = ['ID', '网点名称', '平安券编号', '优惠政策', '核销金额', '订单id', '状态', '处理结果', '核销时间']; + $titles = ['ID', '网点名称', '平安券编号', '优惠政策', '核销金额', '平安主订单号', '状态', '处理结果', '核销时间']; fputcsv($handle, $titles); Coupon::where('user_id', $user->id) diff --git a/app/Merchant/Resources/views/coupon/index.blade.php b/app/Merchant/Resources/views/coupon/index.blade.php index 74751f0..8ee31bb 100644 --- a/app/Merchant/Resources/views/coupon/index.blade.php +++ b/app/Merchant/Resources/views/coupon/index.blade.php @@ -44,6 +44,10 @@ +
+ +
+
@@ -57,6 +58,16 @@ {{-- --}}
+ +
+ +
+