From 16dbc150bd73eccde223e603a746656c600de9ce Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 17 Sep 2020 18:03:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/CouponController.php | 31 ++-- app/Admin/Controllers/v3/StoreController.php | 32 +++- app/Console/Commands/MigrateCoupon.php | 139 ----------------- app/Console/Commands/MigrateCouponReceive.php | 23 ++- app/Console/Commands/MigrateCouponUse.php | 2 +- app/Console/Commands/MigrateFePrint.php | 80 ---------- app/Console/Commands/MigrateMarketData.php | 80 ---------- app/Console/Commands/MigrateStore.php | 143 ------------------ app/Models/v3/CouponReceiveType.php | 2 + 9 files changed, 64 insertions(+), 468 deletions(-) delete mode 100644 app/Console/Commands/MigrateCoupon.php delete mode 100644 app/Console/Commands/MigrateFePrint.php delete mode 100644 app/Console/Commands/MigrateMarketData.php delete mode 100644 app/Console/Commands/MigrateStore.php diff --git a/app/Admin/Controllers/v3/CouponController.php b/app/Admin/Controllers/v3/CouponController.php index 3097e0e..85230a0 100644 --- a/app/Admin/Controllers/v3/CouponController.php +++ b/app/Admin/Controllers/v3/CouponController.php @@ -130,20 +130,16 @@ class CouponController extends AdminController $builder = CouponModel::with('receiveType'); return Form::make($builder, function (Form $form) { $receiveTypeId = 0; - $startTime = null; - $endTime = null; - $usableStartTime = null; - $usableEndTime = null; if($form->isEditing()){ $id = $form->getKey(); // 查询已选择的领取方式 $receiveType = ReceiveTypeModel::getReceiveTypeOne([['coupon_id','=',$id]],'receive_type'); - $receiveTypeId = $receiveType ? $receiveType->receive_type : $this->receive_type ; - $startTime = date('Y-m-d H:i:s',$form->model()->start_time); - $endTime = date('Y-m-d H:i:s',$form->model()->end_time); - $usableStartTime = date('Y-m-d H:i:s',$form->model()->usable_start_time); - $usableEndTime = date('YmdHis',$form->model()->usable_end_time); + $receiveTypeId = $receiveType && !empty($receiveType->receive_type) ? $receiveType->receive_type : 0; + // $startTime = date('Y-m-d H:i:s',$form->model()->start_time); + // $endTime = date('Y-m-d H:i:s',$form->model()->end_time); + // $usableStartTime = date('Y-m-d H:i:s',$form->model()->usable_start_time); + // $usableEndTime = date('YmdHis',$form->model()->usable_end_time); // dd($usableEndTime); } @@ -155,10 +151,10 @@ class CouponController extends AdminController $form->radio('discount_type')->options(CouponModel::$_DISCOUNTTYPE)->default(1); $form->number('inventory')->required()->type('number')->attribute('min', 1)->default(1); $form->number('weigh')->type('number')->attribute('min', 0)->default(0); - $form->radio('is_new_user')->options(CouponModel::$_ISNEWUSER)->default(2)->disable(); + $form->hidden('is_new_user')->options(CouponModel::$_ISNEWUSER)->default(2); }); - + $form->column(6,function(Form $form) use($receiveTypeId){ $form->select('active_type')->required()->options(CouponModel::$_ACTIVETYPE)->default(1); /* 领取方式 */ @@ -193,7 +189,7 @@ class CouponController extends AdminController $form->column(12,function(Form $form){ $form->tags('activity_available','可用活动')->options(CouponModel::$_ACTIVITY_AVAILABLE); $form->tags('tags','标签')->options(['新人专享','满39减10','满19减5']); - $form->text('remark')->maxLength(500,'最多只能输入500个字'); + $form->text('remark')->maxLength(500,'最多只能输入500个字')->default(''); }); /* 页面按钮 */ @@ -204,18 +200,17 @@ class CouponController extends AdminController /* 不显示字段 */ $form->hidden('id'); - // $form->text('usable_number')->width(2)->default(1)->disable(); $form->saving(function (Form $form){ - // var_dump($form->usable_start_time); - // dd($form->receive_type); + if( $form->discount_type == 2 && ($form->discounts <= 0 || $form->discounts >= 10)){ return $form->error('优惠金额请输入1~10之间的数字'); } - - // $this->receive_type = $form->receive_type; - $form->deleteInput('receive_type'); + $form->activity_available = empty($form->input('activity_available'))? [] : $form->input('activity_available'); + $form->tags = empty($form->input('tags'))? [] : $form->input('tags'); + $form->tags = empty($form->input('tags'))? [] : $form->input('tags'); + $form->remark = empty($form->input('remark')) ? '' : $form->input('remark'); }); $form->saved(function (Form $form, $result){ diff --git a/app/Admin/Controllers/v3/StoreController.php b/app/Admin/Controllers/v3/StoreController.php index 4e9d2cc..a1db73b 100644 --- a/app/Admin/Controllers/v3/StoreController.php +++ b/app/Admin/Controllers/v3/StoreController.php @@ -190,7 +190,7 @@ class StoreController extends AdminController $form->column(6, function (Form $form) use($marketList,$categoryList){ $form->hidden('id'); $form->number('mm_user_id')->help('市场经理的懒ID'); - $form->select('market_id')->required()->options($marketList); + $form->select('market_id')->required()->options($marketList)->help('谨慎选择所属市场,添加成功后不能修改所属市场,因为会影响商品所属市场!'); $form->select('category_id')->options($categoryList); $form->text('name')->required()->maxLength(50); $form->image('logo')->autoUpload()->required(); @@ -224,9 +224,9 @@ class StoreController extends AdminController $form->number('user_id')->required()->min(0); $form->time('time1','时间段一开始')->required()->format('HH:mm'); $form->time('time2','时间段一结束')->required()->format('HH:mm')->rules('after:time1',['after'=>'选择的时间必须比时间段一开始时间晚']); - $form->time('time3','时间段二开始')->format('HH:mm')->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间晚']); - $form->time('time4','时间段二结束')->format('HH:mm')->rules('after:time3',['after'=>'选择的时间必须比时间段二开始时间晚']); - // $form->timeRange('time1','time2','营业时间段一')->required(); + $form->time('time3','时间段二开始')->format('HH:mm'); + $form->time('time4','时间段二结束')->format('HH:mm'); + // $form->timeRange('time1','time2','营业时间段一')->required();->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间晚']) // $form->timeRange('time3','time4','营业时间段二')->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间大']); }); $form->column(12, function (Form $form) { @@ -241,7 +241,29 @@ class StoreController extends AdminController // ->help("通过网址 https://lbs.amap.com/console/show/picker 获取经纬度"); $form->saving(function(Form $form){ $id = $form->getKey(); - $adminId = $form->input('admin_id'); + $adminId = $form->input('admin_id'); + $marketId = $form->input('market_id'); + + $time1 = $form->input('time1'); + $time2 = $form->input('time2'); + $time3 = $form->input('time3'); + $time4 = $form->input('time4'); + + if(!empty($time1) && !empty($time2) && (!empty($time3) || !empty($time4))){ + if($time3 && empty($time4)){ + return $form->error('请选择时间段二的结束时间!'); + }else if($time4 && empty($time3)){ + return $form->error('请选择时间段二的开始时间!'); + }else if(str_replace(':', '', $time3) <= str_replace(':', '', $time2)){ + return $form->error('时间段二的开始时间 必须大于 时间段一的结束时间!'); + }else if(str_replace(':', '', $time4) <= str_replace(':', '', $time3)){ + return $form->error('时间段二的结束时间 必须大于 时间段二的开始时间!'); + } + } + + if($form->isEditing() && !empty($marketId) && $marketId != $form->model()->market_id){ + return $form->error('不能更换市场,会影响店铺下商品所属市场!'); + } if(!empty($id) && !empty($adminId)){ $user = UserModel::getUserInfo($adminId,'id'); if(empty($user)){ diff --git a/app/Console/Commands/MigrateCoupon.php b/app/Console/Commands/MigrateCoupon.php deleted file mode 100644 index d8839dd..0000000 --- a/app/Console/Commands/MigrateCoupon.php +++ /dev/null @@ -1,139 +0,0 @@ -get(); - $oldData = DB::table($oldTableName)->get(); - $oldTypeData = DB::table($oldTypeTableName)->get(); - $bar = $this->output->createProgressBar(count($oldData)); - $bar->start(); - - $newSetData = []; - $newData = []; - $newTypeData = []; - foreach ($oldSetData as $key => $value) { - $newSetData[] = [ - 'id' => $value->id, - 'name' => $value->name ?? 0, - 'category' => $value->category ?? 0, - 'value' => $value->value ?? 0, - 'desc' => $value->desc ?? '', - 'sort' => $value->sort ?? 0, - 'status' => $value->status ?? 0, - - 'created_at' => time(), - 'updated_at' => time(), - ]; - } - foreach ($oldData as $key => $value) { - $newData[] = [ - 'id' => $value->id, - 'status' => $value->status ?? 0, - 'active_type' => $value->active_type ?? 0, - 'type' => $value->type ?? 0, - 'title' => $value->title ?? '', - 'introduce' => $value->introduce ?? '', - 'start_time' => $value->start_time ?? 0, - 'end_time' => $value->end_time, - 'full_amount' => $value->full_amount, - 'discounts' => $value->discounts ?? 0, - 'is_new_user' => $value->is_new_user ?? 0, - - 'inventory' => $value->inventory, - 'inventory_use' => $value->inventory_use ?? 0, - 'market_ids' => json_encode([]), - 'category_ids' => json_encode([]), - 'category' => $value->category ?? 0, - 'discount_type' => $value->discount_type ?? 0, - 'activity_available' => json_encode([]), - 'weigh' => $value->weigh ?? 0, - 'usable_number' => $value->usable_number ?? 0, - 'usable_start_time' => $value->usable_start_time ?? 0, - 'usable_end_time' => $value->usable_end_time ?? 0, - - 'remark' => $value->remark ?? 0, - 'add_user_id' => $value->add_user_id ?? 0, - 'update_user_id' => $value->update_user_id ?? 0, - 'tags' => json_encode([]), - - 'created_at' => $value->addtime ?? 0, - 'updated_at' => time(), - 'deleted_at' => $value->status == -1 ? time() : $value->deleted_at ?? null, - ]; - } - foreach ($oldTypeData as $key => $value) { - $newTypeData[] = [ - 'id' => $value->id, - 'coupon_id' => $value->system_coupon_user_id ?? 0, - - 'receive_type' => $value->receive_type ?? 0, - 'one_receive_number' => $value->one_receive_number ?? 0, - - 'created_at' => $value->add_time ?? 0, - 'updated_at' => time(), - ]; - $bar->advance(); - } - - // insert new data to new table - DB::table($newSetTableName)->insert($newSetData); - DB::table($newTableName)->insert($newData); - DB::table($newTypeTableName)->insert($newTypeData); - - $bar->finish(); - return 0; - } -} diff --git a/app/Console/Commands/MigrateCouponReceive.php b/app/Console/Commands/MigrateCouponReceive.php index 1243760..4671c44 100644 --- a/app/Console/Commands/MigrateCouponReceive.php +++ b/app/Console/Commands/MigrateCouponReceive.php @@ -41,7 +41,9 @@ class MigrateCouponReceive extends Command { $oldTableName = 'ims_system_coupon_user_receive'; - $newTableName = 'lanzu_coupon_receive_copy'; + $newTableName = 'lanzu_coupon_receive'; + + $newCouponName = 'lanzu_coupon'; // 判断表是否存在 if(!Schema::hasTable($oldTableName)){ var_dump('旧表不存在'); @@ -52,7 +54,7 @@ class MigrateCouponReceive extends Command return 0; } $oldData = DB::table($oldTableName)->get(); - + $couponData = DB::table($newCouponName)->get(); $bar = $this->output->createProgressBar(count($oldData)); $bar->start(); @@ -83,6 +85,23 @@ class MigrateCouponReceive extends Command // insert new data to new table DB::table($newTableName)->insert($newData); + // 优惠券添加的字段设置默认值 + foreach($couponData as $k => $v){ + $upData = [ + 'category' => empty($v->category)? 1 : $v->category, + 'category_ids' => empty($v->category_ids)? '[]' : $v->category_ids, + 'market_ids' => empty($v->market_ids)? '[]' : $v->market_ids, + 'is_new_user' => empty($v->is_new_user)? 2 : $v->is_new_user, + 'type' => empty($v->type)? 1 : $v->type, + 'activity_available' => empty($v->activity_available)? '[]' : $v->activity_available, + 'tags' => empty($v->tags)? '[]' : $v->tags, + 'remark' => empty($v->remark)? '' : $v->remark, + 'created_at' => empty($v->created_at)? time() : $v->created_at, + 'updated_at' => time(), + ]; + DB::table($newCouponName)->where('id',$v->id)->update($upData); + } + $bar->finish(); return 0; } diff --git a/app/Console/Commands/MigrateCouponUse.php b/app/Console/Commands/MigrateCouponUse.php index 89c88de..6fa4512 100644 --- a/app/Console/Commands/MigrateCouponUse.php +++ b/app/Console/Commands/MigrateCouponUse.php @@ -41,7 +41,7 @@ class MigrateCouponUse extends Command { $oldTableName = 'ims_system_coupon_user_use'; - $newTableName = 'lanzu_coupon_use_copy'; + $newTableName = 'lanzu_coupon_use'; // 判断表是否存在 if(!Schema::hasTable($oldTableName)){ var_dump('旧表不存在'); diff --git a/app/Console/Commands/MigrateFePrint.php b/app/Console/Commands/MigrateFePrint.php deleted file mode 100644 index 121bef0..0000000 --- a/app/Console/Commands/MigrateFePrint.php +++ /dev/null @@ -1,80 +0,0 @@ -get(); - - $bar = $this->output->createProgressBar(count($oldData)); - $bar->start(); - $newData = []; - foreach ($oldData as $key => $value) { - $newData[] = [ - 'id' => $value->id, - 'name' => $value->name ?? '', - 'sn' => $value->sn ?? '', - 'market_id' => $value->market_id ?? 0, - 'simnum' => $value->simnum ?? 0 , - 'addtime' => $value->addtime ?? 0, - 'status' => $value->status ?? 0, - - 'created_at' => $value->addtime ? strtotime($value->addtime) : 0, - 'updated_at' => time(), - ]; - - $bar->advance(); - } - - DB::table($newTableName)->insert($newData); - - $bar->finish(); - return 0; - } -} diff --git a/app/Console/Commands/MigrateMarketData.php b/app/Console/Commands/MigrateMarketData.php deleted file mode 100644 index d5ecae8..0000000 --- a/app/Console/Commands/MigrateMarketData.php +++ /dev/null @@ -1,80 +0,0 @@ -get(); - - $bar = $this->output->createProgressBar(count($oldData)); - $bar->start(); - - $newData = []; - foreach ($oldData as $key => $value) { - $coordinates = explode(',', $value->coordinates); - $newData[] = [ - 'id' => $value->id, - 'mp_id' => $value->mp_id ?? 0, - 'name' => $value->name ?? '', - 'logo' => $value->logo ?? '', - 'introduce' => $value->introduce ?? '', - 'imgs' => $value->imgs ?? '', - 'province_id' => 2162, - 'city_id' => 2163, - 'region_id' => 0, - 'address' => $value->address ?? '', - 'tel' => $value->tel ?? '', - 'lat' => $coordinates[0] ?? '', - 'lng' => $coordinates[1] ?? '', - 'status' => $value->status ?? 1, - 'sort' => $value->sort ?? 1, - 'created_at' => $value->addtime ? strtotime($value->addtime) : 0, - 'updated_at' => time(), - ]; - - $bar->advance(); - } - - // insert new data to new table - DB::table('lanzu_market')->insert($newData); - - $bar->finish(); - return 0; - } -} diff --git a/app/Console/Commands/MigrateStore.php b/app/Console/Commands/MigrateStore.php deleted file mode 100644 index 235e28e..0000000 --- a/app/Console/Commands/MigrateStore.php +++ /dev/null @@ -1,143 +0,0 @@ -orderBy('id','desc')->get(); - $bar = $this->output->createProgressBar(count($oldData)); - $bar->start(); - $startTime = time(); - $error = []; - $newData = []; - foreach ($oldData as $key => $value){ - $storeId = $value->id; - // 判断是否存在 - $exist = DB::table($newTableName)->where('id',$storeId)->exists(); - if($exist){ - continue; - } - $storeData =[ - 'id'=>$storeId, - 'market_id'=>$value->market_id, - 'is_open'=> $value->is_open == 1 ? 1 : 0, - 'is_rest'=> $value->is_rest == 1 ? 1 : 0, - 'status'=>$value->state, - 'category_id'=>$value->md_type, - 'user_id'=>$value->user_id, - 'admin_id'=>$value->admin_id, - - 'mm_user_id'=>$value->mm_user_id, - 'sort'=>$value->number, - 'loudspeaker_imei'=>$value->loudspeaker_imei, - 'name'=>$value->name, - 'logo'=>$value->logo, - - 'announcement'=>$value->announcement, - 'address' => $value->address, - 'business_license'=> ($storeId == 365) ? '' :$value->yyzz,/* 因为365的数据的营业资质数据乱码,目前只有365这个店铺的有问题 */ - 'zm_img' => $value->zm_img, - 'fm_img'=>$value->fm_img, - - 'tel' => $value->tel, - 'link_name'=>$value->link_name, - 'link_tel' => $value->link_tel, - 'expire_time'=> strtotime($value->rzdq_time), - 'time1' => (empty($value->time) || $value->time == 'null')? '': $value->time, - 'time2'=> (empty($value->time2) || $value->time2 == 'null')? '': $value->time2, - 'time3' => (empty($value->time3) || $value->time3 == 'null')? '': $value->time3, - 'time4'=> (empty($value->time4) || $value->time4 == 'null')? '': $value->time4, - - 'award_money' => $value->award_money, - 'sales'=>$value->score, - 'grade' => $value->sales, - - 'code'=>$value->code, - 'environment' => $value->environment, - - 'introduction'=> strip_tags($value->details), - - 'store_applet_img' => '', - 'cash_code_img' => '', - - 'created_at' => $value->time_add ?strtotime($value->time_add) : 0, - 'updated_at' => time(), - ]; - - // 获商户摊号 - $stallInfo = ''; - $res = preg_match('/[0-9]/', $value->name, $matches, PREG_OFFSET_CAPTURE); - if($res && count($matches)>0){ - $stallInfo = substr($value->name,$matches[0][1]); - } - $storeData['stall_info'] = $stallInfo; - - // 商户经纬度 - if(!empty($value->coordinates)){ - $coordinatesArr = explode(',',$value->coordinates); - $storeData['lng'] = $coordinatesArr[1]; - $storeData['lat'] = $coordinatesArr[0]; - } - $newData = $storeData; - $res = DB::table($newTableName)->insert($newData); - if(!$res){ - $error[] = ['id'=>$storeId]; - break; - } - $bar->advance(); - } - $bar->finish(); - var_dump([time()-$startTime]); - var_dump($error); - return 0; - } -} diff --git a/app/Models/v3/CouponReceiveType.php b/app/Models/v3/CouponReceiveType.php index 1b305bd..6b9d3b4 100644 --- a/app/Models/v3/CouponReceiveType.php +++ b/app/Models/v3/CouponReceiveType.php @@ -12,6 +12,8 @@ class CouponReceiveType extends Model protected $table = 'lanzu_coupon_receive_type'; protected $dateFormat = 'U'; + protected $fillable = ['receive_type', 'id', 'coupon_id','one_receive_number']; + public function setting(){ return $this->belongsTo(SettingModel::class,'receive_type','id','inner'); } From f429d45f6b5cd1c2033e4c2d4e7b65b29b87ee8e Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 17 Sep 2020 20:19:33 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8F=91=E5=B8=83=E5=92=8C=E7=A6=81=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Actions/Grid/v3/CouponForbidden.php | 39 ++++++++ app/Admin/Actions/Grid/v3/CouponPublish.php | 42 ++++++++ app/Admin/Controllers/v3/CouponController.php | 71 ++++---------- app/Admin/Forms/v3/CouponPublishForm.php | 95 +++++++++++++++++++ app/Models/v3/Coupon.php | 8 ++ app/Models/v3/CouponReceiveType.php | 22 +++++ 6 files changed, 225 insertions(+), 52 deletions(-) create mode 100644 app/Admin/Actions/Grid/v3/CouponForbidden.php create mode 100644 app/Admin/Actions/Grid/v3/CouponPublish.php create mode 100644 app/Admin/Forms/v3/CouponPublishForm.php diff --git a/app/Admin/Actions/Grid/v3/CouponForbidden.php b/app/Admin/Actions/Grid/v3/CouponForbidden.php new file mode 100644 index 0000000..df8e597 --- /dev/null +++ b/app/Admin/Actions/Grid/v3/CouponForbidden.php @@ -0,0 +1,39 @@ +getKey(); + $coupon = CouponModel::getInfo($id); + if(!empty($coupon)){ + $coupon->status = 3; + if($coupon->save()){ + return $this->response()->success('禁用成功!','/coupon'); + } + } + return $this->response()->success('禁用失败!'); + } + + // 确认弹窗信息 + public function confirm() + { + return '您确定要禁用吗?'; + } + + public function parameters() + { + return ['status'=>3]; + } +} diff --git a/app/Admin/Actions/Grid/v3/CouponPublish.php b/app/Admin/Actions/Grid/v3/CouponPublish.php new file mode 100644 index 0000000..885ee38 --- /dev/null +++ b/app/Admin/Actions/Grid/v3/CouponPublish.php @@ -0,0 +1,42 @@ +getKey(); + + $modal = Modal::make() + ->xl() + ->title($this->title) + ->body(CouponPublishForm::make()->setKey($id)) + ->button($this->title); + + return $modal; + } + + // 确认弹窗信息 + public function confirm() + { + return '您确定要发布吗?'; + } + + public function parameters() + { + + return [ + + ]; + } +} diff --git a/app/Admin/Controllers/v3/CouponController.php b/app/Admin/Controllers/v3/CouponController.php index 85230a0..7e50398 100644 --- a/app/Admin/Controllers/v3/CouponController.php +++ b/app/Admin/Controllers/v3/CouponController.php @@ -2,6 +2,8 @@ namespace App\Admin\Controllers\v3; +use App\Admin\Actions\Grid\v3\CouponForbidden; +use App\Admin\Actions\Grid\v3\CouponPublish; use App\Admin\Repositories\v3\Coupon; use Dcat\Admin\Form; use Dcat\Admin\Grid; @@ -52,6 +54,18 @@ class CouponController extends AdminController ); $grid->model()->orderBy('id','desc'); + + $grid->actions(function (Grid\Displayers\Actions $actions) use($grid){ + if(in_array($this->status,[0,3])){ + $actions->append(new CouponPublish()); + }else if(in_array($this->status,[1,2])){ + $actions->disableDelete(); + $actions->disableEdit(); + if($this->status == 1){ + $actions->append(new CouponForbidden()); + } + } + }); $grid->filter(function (Grid\Filter $filter) { $filter->like('title','标题'); $filter->equal('discount_type')->select(config('coupon.discount_type')); @@ -62,6 +76,9 @@ class CouponController extends AdminController }); $grid->disableBatchDelete(); + $grid->disableCreateButton(); + $grid->disableDeleteButton(); + $grid->disableEditButton(); }); } @@ -129,19 +146,6 @@ class CouponController extends AdminController { $builder = CouponModel::with('receiveType'); return Form::make($builder, function (Form $form) { - $receiveTypeId = 0; - - if($form->isEditing()){ - $id = $form->getKey(); - // 查询已选择的领取方式 - $receiveType = ReceiveTypeModel::getReceiveTypeOne([['coupon_id','=',$id]],'receive_type'); - $receiveTypeId = $receiveType && !empty($receiveType->receive_type) ? $receiveType->receive_type : 0; - // $startTime = date('Y-m-d H:i:s',$form->model()->start_time); - // $endTime = date('Y-m-d H:i:s',$form->model()->end_time); - // $usableStartTime = date('Y-m-d H:i:s',$form->model()->usable_start_time); - // $usableEndTime = date('YmdHis',$form->model()->usable_end_time); - // dd($usableEndTime); - } $form->column(6,function(Form $form){ $form->text('title')->required()->maxLength(255,'最多只能输入500个字'); @@ -152,21 +156,11 @@ class CouponController extends AdminController $form->number('inventory')->required()->type('number')->attribute('min', 1)->default(1); $form->number('weigh')->type('number')->attribute('min', 0)->default(0); $form->hidden('is_new_user')->options(CouponModel::$_ISNEWUSER)->default(2); - }); - $form->column(6,function(Form $form) use($receiveTypeId){ + $form->column(6,function(Form $form) { $form->select('active_type')->required()->options(CouponModel::$_ACTIVETYPE)->default(1); - /* 领取方式 */ - $receives = SettingModel::getSettingArray([['category','=',1]]); - $form->select('receive_type.receive_type','领取方式')->required()->options($receives)->value($receiveTypeId)->default($receiveTypeId); - // $form->hasMany('receive_type',function(NestedForm $form){ - // $form->select('receive_type')->options($receives); - // }); - // $receive = SettingModel::select('id','name')->where('category',1)->get()->keyBy('id')->toArray(); - // $receive = $this->keyToValue($receive,'id','name'); - // $form->select('receive_type')->options($receive)->value($receiveTypeId > 0? $receiveTypeId : 2); - + $form->datetimeRange('start_time','end_time','活动时间')->required(); // ->rules('after:now',[ // 'after' => '只能选择今天和之后的时间' @@ -183,7 +177,6 @@ class CouponController extends AdminController /* 目前默认全平台的分类 */ $categoryList = CategoryModel::getArray(); $form->multipleSelect('category_ids')->options($categoryList)->help('不选默认所有类型可用'); - }); $form->column(12,function(Form $form){ @@ -212,32 +205,6 @@ class CouponController extends AdminController $form->tags = empty($form->input('tags'))? [] : $form->input('tags'); $form->remark = empty($form->input('remark')) ? '' : $form->input('remark'); }); - $form->saved(function (Form $form, $result){ - - $id = $form->getKey(); - $receiveTypeId = $form->input('receive_type'); - // 判断是否是新增操作 - if ($form->isCreating()) { - $id = $result; - - if (! $result) { - return $form->error('数据保存失败'); - } - } - if($form->isEditing()){ - // 删除领取方式 - ReceiveTypeModel::where('coupon_id',$id)->delete(); - } - - // 添加领取方式 - $receiveModel = new ReceiveTypeModel(); - $receiveModel->coupon_id = $id; - $receiveModel->receive_type = $receiveTypeId; - // 获取一次可领取数量 - $receiveNumber = SettingModel::getSettingInfo($receiveTypeId,'value'); - $receiveModel->one_receive_number = empty($receiveNumber) ? 1 : $receiveNumber->value; - $receiveModel->save(); - }); }); } diff --git a/app/Admin/Forms/v3/CouponPublishForm.php b/app/Admin/Forms/v3/CouponPublishForm.php new file mode 100644 index 0000000..e069cfd --- /dev/null +++ b/app/Admin/Forms/v3/CouponPublishForm.php @@ -0,0 +1,95 @@ +error('优惠券不存在或已删除!'); + } + + switch($coupon->status){ + case 0: + case 3: + // 判断活动时间 还未判断 + + $coupon->status = 1; + if(!$coupon->save()){ + return $this->error('发布失败!'); + } + // 删除领取方式 + $delRes = ReceiveTypeModel::where('coupon_id',$id)->delete(); + if($delRes === false){ + return $this->error('发布失败!'); + } + // 添加领取方式 + $receiveModel = new ReceiveTypeModel(); + $receiveModel->coupon_id = $id; + $receiveModel->receive_type = $receiveType; + // 获取一次可领取数量 + $receiveNumber = SettingModel::getSettingInfo($receiveType,'value'); + $receiveModel->one_receive_number = empty($receiveNumber) ? 1 : $receiveNumber->value; + + if($receiveModel->save()){ + return $this->success('发布成功','/coupon'); + } + break; + case 1: + return $this->error('优惠券已发布!'); + break; + case 2: + return $this->error('优惠券已领完!'); + break; + case -1: + return $this->error('优惠券已删除!'); + break; + } + return $this->error('发布失败!'); + } + + /** + * Build a form here. + */ + public function form() + { + $id = $this->getKey(); + $receiveTypeInfo = ReceiveTypeModel::getReceiveTypeInfo($id,'receive_type'); + $list = SettingModel::getSettingArray(); + $receiveType = empty($receiveTypeInfo->receive_type)? 0 :$receiveTypeInfo->receive_type; + $this->hidden('id')->value($id); + $this->select('receive_type','领取方式')->required()->options($list)->value($receiveType); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +} diff --git a/app/Models/v3/Coupon.php b/app/Models/v3/Coupon.php index 690a3bd..bd2d58a 100644 --- a/app/Models/v3/Coupon.php +++ b/app/Models/v3/Coupon.php @@ -155,4 +155,12 @@ class Coupon extends Model { $this->attributes['usable_end_time'] = strtotime($value); } + + /** + * 根据id获取单条数据 + */ + public static function getInfo($id,$field = '*') + { + return self::select($field)->find($id); + } } diff --git a/app/Models/v3/CouponReceiveType.php b/app/Models/v3/CouponReceiveType.php index 6b9d3b4..7ea118a 100644 --- a/app/Models/v3/CouponReceiveType.php +++ b/app/Models/v3/CouponReceiveType.php @@ -32,4 +32,26 @@ class CouponReceiveType extends Model { return self::select($field)->find($id); } + + /** + * 获取二级分类数组 + * id为键 + * @return array + */ + public static function getArray($where = [],$options = []) + { + $model = self::where('status',1) + ->whereNull('deleted_at'); + + if(count($where) > 0){ + $model->where($where); + } + $list = $model->pluck('id','name')->toArray(); + if(!empty($options)){ + $new = array_merge($options,$list); + return array_flip($new); + }else{ + return array_flip($list); + } + } } From 6199c2bc94bcbaf9ef6e3b9dd11866188404e570 Mon Sep 17 00:00:00 2001 From: lanzu_qinsheng <334039090@qq.com> Date: Thu, 17 Sep 2020 20:25:29 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=95=86=E5=BF=85=E5=A1=AB=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/ImsCjdcMarketController.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Admin/Controllers/ImsCjdcMarketController.php b/app/Admin/Controllers/ImsCjdcMarketController.php index 51f9efa..2eae5c7 100644 --- a/app/Admin/Controllers/ImsCjdcMarketController.php +++ b/app/Admin/Controllers/ImsCjdcMarketController.php @@ -135,7 +135,7 @@ class ImsCjdcMarketController extends AdminController return Form::make(new Market(), function (Form $form) { $form->display('id'); $form->text('name')->required(); - $form->select('mp_id', '服务商')->options('/api/getMpInfo')->required(); + $form->select('mp_id', '服务商')->options('/api/getMpInfo'); $form->mobile('tel','电话')->required(); $form->select('province_id','省') ->options('/api/area')->required() @@ -149,6 +149,9 @@ class ImsCjdcMarketController extends AdminController ->required() ->placeholder('输入 经纬度,如: 108.281552,22.83731') ->help("通过网址 https://lbs.amap.com/console/show/picker 获取经纬度"); + if (!($form->mp_id)){ + $form->mp_id = '0'; + } }else{ $form->text('coordinates') ->required()