From a0e9eac706d5857faefe1bf3ff1a001ec7cdea92 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Mon, 30 Jan 2023 11:49:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8F=90=E8=B4=A7=E6=95=B0?= =?UTF-8?q?=E9=87=8F+=E9=A2=86=E5=8F=96=E6=97=B6=E9=97=B4=E5=92=8C?= =?UTF-8?q?=E6=8F=90=E8=B4=A7=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/Area/CodeController.php | 3 +++ app/Api/Controllers/Area/IndexController.php | 11 ++++++++++- app/Api/Resources/Area/AreaCodeCollection.php | 2 ++ app/Models/AreaCode.php | 7 ++++++- ...23_01_11_132907_create_area_codes_table.php | 1 + .../Controllers/Api/OrderBuyController.php | 18 +++++------------- .../Api/Socialite/WeChatController.php | 3 ++- 7 files changed, 29 insertions(+), 16 deletions(-) diff --git a/app/Admin/Controllers/Area/CodeController.php b/app/Admin/Controllers/Area/CodeController.php index dd00357..950e09c 100644 --- a/app/Admin/Controllers/Area/CodeController.php +++ b/app/Admin/Controllers/Area/CodeController.php @@ -56,6 +56,9 @@ class CodeController extends AdminController }); $grid->column('area.title', '地区名称'); $grid->column('status', '状态')->using(AreaCode::STATUS); + $grid->column('get_at', '领取时间'); + $grid->column('pick_at', '提货时间'); + $grid->column('created_at', '创建时间'); $grid->column('created_at', '创建时间'); diff --git a/app/Api/Controllers/Area/IndexController.php b/app/Api/Controllers/Area/IndexController.php index 3c87047..a27b94b 100644 --- a/app/Api/Controllers/Area/IndexController.php +++ b/app/Api/Controllers/Area/IndexController.php @@ -6,6 +6,7 @@ use App\Api\Controllers\Controller; use App\Api\Resources\Area\AreaCodeCollection; use App\Api\Resources\Area\AreaResource; use App\Models\Area; +use App\Models\AreaCode; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Jason\Api\Api; @@ -90,7 +91,15 @@ class IndexController extends Controller }) ->paginate(); - return $this->success(new AreaCodeCollection($codes)); + $data = [ + 'count' => [ + 'all' => $area->areaCodes()->count(), + 'get' => $area->areaCodes()->where('status', AreaCode::STATUS_USED)->count(), + 'pick' => $area->areaCodes()->where('status', AreaCode::STATUS_SIGN)->count(), + ], + 'lists' => new AreaCodeCollection($codes), + ]; + return $this->success($data); } /** diff --git a/app/Api/Resources/Area/AreaCodeCollection.php b/app/Api/Resources/Area/AreaCodeCollection.php index 0f6b278..7e976ef 100644 --- a/app/Api/Resources/Area/AreaCodeCollection.php +++ b/app/Api/Resources/Area/AreaCodeCollection.php @@ -20,6 +20,8 @@ class AreaCodeCollection extends BaseCollection 'status' => $info->status, 'text' => $info->status_text, ], + 'get_at' => (string) $info->get_at, + 'pick_at' => (string) $info->pick_at, ]; }), 'page' => $this->page(), diff --git a/app/Models/AreaCode.php b/app/Models/AreaCode.php index 08a7e8f..9fafb22 100644 --- a/app/Models/AreaCode.php +++ b/app/Models/AreaCode.php @@ -23,6 +23,10 @@ class AreaCode extends Model self::STATUS_SIGN => '已核销', ]; + public $dates=[ + 'get_at','pick_at' + ]; + /** * Notes: 生成人-管理人 @@ -58,7 +62,8 @@ class AreaCode extends Model { $this->order->state = Order::STATUS_SIGNED; $this->order->save(); - $this->status = self::STATUS_SIGN; + $this->status = self::STATUS_SIGN; + $this->pick_at = now(); $this->save(); return true; } diff --git a/database/migrations/2023_01_11_132907_create_area_codes_table.php b/database/migrations/2023_01_11_132907_create_area_codes_table.php index 0c03976..9f2e752 100644 --- a/database/migrations/2023_01_11_132907_create_area_codes_table.php +++ b/database/migrations/2023_01_11_132907_create_area_codes_table.php @@ -20,6 +20,7 @@ class CreateAreaCodesTable extends Migration $table->unsignedBigInteger('area_id')->index(); $table->string('code'); $table->boolean('status')->default(0); + $table->timestamp('get_at')->nullable()->comment('领取时间'); $table->timestamp('pick_at')->nullable()->comment('提货时间'); $table->timestamps(); }); diff --git a/modules/Mall/Http/Controllers/Api/OrderBuyController.php b/modules/Mall/Http/Controllers/Api/OrderBuyController.php index 837e2f9..3494850 100644 --- a/modules/Mall/Http/Controllers/Api/OrderBuyController.php +++ b/modules/Mall/Http/Controllers/Api/OrderBuyController.php @@ -77,9 +77,6 @@ class OrderBuyController extends Controller $type = OrderModel::TYPE_NORMAL; - info($goods_sku->goods->channel); - info($goods_sku->goods->id); - info($goods_sku->id); if ($goods_sku->goods->channel == Goods::CHANNEL_FREE) { $type = OrderModel::TYPE_SAMPLE; @@ -89,13 +86,10 @@ class OrderBuyController extends Controller $type = OrderModel::TYPE_SCORE; } + $areaCode = $user->info->areaCode; if ($type == OrderModel::TYPE_SAMPLE) { - if (! $user->info->areaCode) { - return $this->failed('您没有提货码不可参与此活动'); - } - $areaCode = AreaCode::where('code', $user->info->areaCode)->first(); if (! $areaCode) { - return $this->failed('您绑定的提货码不正确'); + return $this->failed('您没有提货码不可参与此活动'); } if ($areaCode->status != AreaCode::STATUS_INIT) { @@ -190,13 +184,10 @@ class OrderBuyController extends Controller $type = OrderModel::TYPE_SCORE; } + $areaCode = $user->info->areaCode; if ($type == OrderModel::TYPE_SAMPLE) { - if (! $user->info->areaCode) { - return $this->failed('您没有提货码不可参与此活动'); - } - $areaCode = AreaCode::where('code', $user->info->areaCode)->first(); if (! $areaCode) { - return $this->failed('您绑定的提货码不正确'); + return $this->failed('您没有提货码不可参与此活动'); } if ($areaCode->status != AreaCode::STATUS_INIT) { @@ -204,6 +195,7 @@ class OrderBuyController extends Controller } } + $address = Address::where('user_id', $user->id)->where('id', $address_id)->first(); if (in_array($type, [OrderModel::TYPE_SCORE, OrderModel::TYPE_NORMAL]) && ! $address) { diff --git a/modules/User/Http/Controllers/Api/Socialite/WeChatController.php b/modules/User/Http/Controllers/Api/Socialite/WeChatController.php index 6657ee0..d33452c 100644 --- a/modules/User/Http/Controllers/Api/Socialite/WeChatController.php +++ b/modules/User/Http/Controllers/Api/Socialite/WeChatController.php @@ -480,7 +480,8 @@ class WeChatController extends Controller 'delivery_code' => $delivery_code ]); $areaCode->update([ - 'user_id' => $user->id + 'user_id' => $user->id, + 'get_at' => now() ]); } else { if ($user->info->delivery_code && $user->info->delivery_code != $delivery_code) {