Browse Source

活动商品-活动设置

master
liangyuyan 5 years ago
parent
commit
af4d6aff5c
  1. 130
      app/Admin/Forms/v3/GoodsActivitySettingForm.php
  2. 2
      app/Libs/Redis/RedisKey.php

130
app/Admin/Forms/v3/GoodsActivitySettingForm.php

@ -10,6 +10,20 @@ use App\Libs\Redis\RedisKey;
class GoodsActivitySettingForm extends Form class GoodsActivitySettingForm extends Form
{ {
protected $typeOptions = [
1 => '列表轮播',
2 => '大图片',
];
protected $indexOptions = [
1 => '秒杀',
2 => '团购',
3 => '新品'
];
protected $indexOptionsValue = [
1 => 'flash_sale',
2 => 'group_buy',
3 => 'new_product'
];
/** /**
* Handle the form request. * Handle the form request.
* *
@ -20,18 +34,60 @@ class GoodsActivitySettingForm extends Form
public function handle(array $input) public function handle(array $input)
{ {
// 获取外部传递参数 // 获取外部传递参数
$flashSale = $input['flash_sale'];
$groupBuy= $input['group_buy'];
$newProduct= $input['new_product'];
// $data = [
// 'flash_sale' => $input['flash_sale'] ?? 0,
// 'group_buy' => $input['group_buy'] ?? 0,
// 'new_product' => $input['new_product'] ?? 0,
// ];
$activitySetting = [
'index_activity_type' => $input['index_activity_type'] ?? 1
];
$setting = [
'buy_num_limit' => $input['buy_num_limit'] ?? 6,
];
switch($activitySetting['index_activity_type']){
case 1:
$setting = [
'banner' => $input['banner'] ?? '',
'show_type' => $input['show_type'] ?? 1,
'index_num' => $input['index_num'] ?? 6,
'index_image' => $input['index_image'] ?? '',
'index_url' => $input['index_url'] ?? '',
];
$data = [
'flash_sale' => $setting['buy_num_limit'] ?? 0,
];
break;
case 2:
$setting = [
'banner' => $input['banner'] ?? '',
];
$data = [
'group_buy' => $setting['buy_num_limit'] ?? 0,
];
break;
case 3:
$setting = [
'banner' => $input['banner'] ?? '',
];
$data = [ $data = [
'flash_sale' => $flashSale,
'group_buy' => $groupBuy,
'new_product' => $newProduct,
'new_product' => $setting['buy_num_limit'] ?? 0,
]; ];
break;
default:
return $this->error('请选择正确的首页展示的活动类型!');
break;
}
// var_dump($setting);
$activitySetting[$this->indexOptionsValue[$activitySetting['index_activity_type']]] = json_encode($setting);
dd([$activitySetting['index_activity_type'],json_decode($activitySetting[$this->indexOptionsValue[$activitySetting['index_activity_type']]])]);
$res1 = Redis::hmset(RedisKey::ACTIVITY_TYPE_LIMIT_NUMS , $data);
$res2 = Redis::hmset(RedisKey::ACTIVITY_TYPE_SETTING , $activitySetting);
$res = Redis::hmset(RedisKey::ACTIVITY_TYPE_LIMIT_NUMS , $data);
if($res){
if($res1 && $res2){
return $this->success('修改成功','/goods_activity'); return $this->success('修改成功','/goods_activity');
}else{ }else{
return $this->error('修改失败'); return $this->error('修改失败');
@ -44,15 +100,59 @@ class GoodsActivitySettingForm extends Form
public function form() public function form()
{ {
$data = Redis::hgetall(RedisKey::ACTIVITY_TYPE_LIMIT_NUMS); $data = Redis::hgetall(RedisKey::ACTIVITY_TYPE_LIMIT_NUMS);
$setting = Redis::hgetall(RedisKey::ACTIVITY_TYPE_SETTING);
// dd([$data,$setting]);
$limitData = [
1 => isset($data['flash_sale']) ? $data['flash_sale']:0,
2 => isset($data['group_buy']) ? $data['group_buy']:0,
3 => isset($data['new_product']) ? $data['new_product']:0,
];
$settingData = [
'index_activity_type' => isset($setting['index_activity_type']) ?? 1,
1 => isset($setting['flash_sale']) ? json_decode($setting['flash_sale']) : [],
2 => isset($setting['group_buy']) ? json_decode($setting['group_buy']) : [],
3 => isset($setting['new_product']) ? json_decode($setting['new_product']) : [],
];
$this->select('index_activity_type','首页展示的活动类型')
->when([1],function(Form $form) use($limitData,$settingData){
$buyNumLimit = $limitData[1] ?? 0;
$sData = $settingData[1] ?? [];
$form->number('buy_num_limit','购买数量限制')->attribute('min', 0)->default(1)->value($buyNumLimit)->width(6)->help('同一活动类型的商品,单笔订单可购买商品个数');
$form->image('banner','banner')->value($sData['banner'] ?? '')->autoUpload()->saveFullUrl()->width(3);
$form->radio('show_type','展示形式')
->when([1],function(Form $form) use($sData){
$form->number('index_num','首页显示数量')->value($sData['index_num'] ?? 6)->min(1)->default(6)->width(6);
})
->when([2],function(Form $form) use($sData){
$form->image('index_image','首页大图')->value($sData['index_image'] ?? '')->autoUpload()->saveFullUrl()->width(3);
$form->url('index_url','跳转链接')->value($sData['index_url'] ?? '')->width(4);
})
->options($form->typeOptions)
->value($sData['show_type'] ?? 1)
->default(1);
$flashSale = isset($data['flash_sale'])?$data['flash_sale']:0;
$groupBuy= isset($data['group_buy'])?$data['group_buy']:0;
$newProduct= isset($data['new_product'])?$data['new_product']:0;
})
->when([2],function(Form $form) use($limitData,$settingData){
$buyNumLimit = $limitData[2] ?? 0;
$sData = $settingData[1] ?? [];
$form->number('buy_num_limit','购买数量限制')->attribute('min', 0)->default(1)->value($buyNumLimit)->width(6)->help('同一活动类型的商品,单笔订单可购买商品个数');
$form->image('banner','banner')->value($sData['banner'] ?? '')->autoUpload()->saveFullUrl()->width(3);
})
->when([3],function(Form $form) use($limitData,$settingData){
$buyNumLimit = $limitData[3] ?? 0;
$sData = $settingData[1] ?? [];
$form->number('buy_num_limit','购买数量限制')->attribute('min', 0)->default(1)->value($buyNumLimit)->width(6)->help('同一活动类型的商品,单笔订单可购买商品个数');
$form->image('banner','banner')->value($sData['banner'] ?? '')->autoUpload()->saveFullUrl()->width(3);
})
->options($this->indexOptions)->value($settingData['index_activity_type'] ?? 1)->default(1)->width(4);
$this->display(RedisKey::ACTIVITY_TYPE_LIMIT_NUMS , '设置')->value('同一活动类型的商品,单笔订单可购买商品种数');
$this->number('flash_sale','秒杀')->attribute('min', 0)->default(1)->value($flashSale);
$this->number('group_buy','团购')->attribute('min', 0)->default(1)->value($groupBuy);
$this->number('new_product','新品')->attribute('min', 0)->default(1)->value($newProduct);
// $this->display(RedisKey::ACTIVITY_TYPE_SETTING , '设置')->value('同一活动类型的商品,单笔订单可购买商品种数');
// $this->number('flash_sale','秒杀')->attribute('min', 0)->default(1)->value($flashSale);
// $this->number('group_buy','团购')->attribute('min', 0)->default(1)->value($groupBuy);
// $this->number('new_product','新品')->attribute('min', 0)->default(1)->value($newProduct);
} }
/** /**

2
app/Libs/Redis/RedisKey.php

@ -8,5 +8,5 @@ class RedisKey
{ {
const ACTIVITY_TYPE_LIMIT_NUMS = 'activity_type_limit_nums'; const ACTIVITY_TYPE_LIMIT_NUMS = 'activity_type_limit_nums';
const ACTIVITY_TYPE_SETTING = 'activity_type_setting';
} }
Loading…
Cancel
Save