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()