| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <?php
- namespace addons\ScoreExpansion\backend\controllers;
- use addons\Redpack\common\enums\RedpackEnum;
- use addons\Redpack\common\models\Redpack;
- use addons\Redpack\common\models\RedpackGoodsSetting;
- use addons\ScoreExpansion\common\enums\ScoreExpansionEnum;
- use addons\ScoreExpansion\common\models\ScoreExpansion;
- use addons\ScoreExpansion\common\models\ScoreExpansionGoodsSetting;
- use common\enums\StatusEnum;
- use common\models\common\PlatformSetting;
- use common\models\user\UserLevel;
- use Yii;
- use common\controllers\AddonsController;
- use yii\db\Exception;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\ScoreExpansion\backend\controllers
- */
- class DefaultController extends BaseController
- {
- public $enableCsrfValidation = false;
- /**
- * 首页
- *
- * @return string
- */
- public function actionIndex()
- {
- try {
- $request = Yii::$app->request;
- if ($request->isAjax) {
- // 提交等级内容
- if ($request->isPost) {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['page','title','id','date_start','date_end'], 'safe'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- if(!empty($params['title'])) $where[] = ['like','title',$params['title']];
- if(!empty($params['id'])) $where[] = ['=','id',$params['id']];
- if($params['date_start'] && $params['date_end']) $where[] = ['between', 'created_at', strtotime($params['date_start']),strtotime($params['date_end'])];
- $where[] = ['=','mall_id',$this->mall_id];
- $where[] = ['>=','status',StatusEnum::DISABLED];
- $order = 'id desc';
- //var_dump($where);
- $list = ScoreExpansion::listPage(['where' => $where,'order' => $order],false);
- // echo '<pre>';print_r($list);die;
- $list['integral_type'] = ScoreExpansionEnum::getRedpackType('', $this->mall_id);
- $list['new_time'] = time();
- $Platform_config = PlatformSetting::getConfByGroup( 'system', true);
- $web_url = $Platform_config['h5_url']['value'];
- $mall_sign = $this->mall['mall_sign'];
- $list['redpacklinks'] = $web_url.'/#/'.ScoreExpansionEnum::INTEGRAL_LINKS."?sign=".$mall_sign;
- // var_dump($list['redpacklinks']);die;
- return $this->success('操作成功',$list);
- }
- }
- } catch (\Exception $e) {
- return $this->error($e->getMessage(), []);
- }
- return $this->render($this->action->id);
- }
- /**
- * @Author: ltm
- * @DateTime: 2022/3/21 0021 16:16
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @param $data
- * @return string
- */
- public function actionEdit(){
- try {
- $request = Yii::$app->request;
- if ($request->isAjax) {
- // 提交等级内容
- if ($request->isGet) {
- $params = Yii::$app->request->get();
- $res = Yii::$app->services->validate->validate($params, [
- [['id','type'], 'safe'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $detail = ScoreExpansion::getOne([['id'=>$params['id']]],true);
- $user_level_list = UserLevel::getUserLevel([['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]], [], 1,'level,name,id');
- $default['level'] = 0;
- $default['name'] = '系统默认会员等级';
- $default['id'] = 0;
- array_unshift($user_level_list,$default);
- $list = [];
- if(!empty($detail['rule_values'])) $detail['rule_data'] = json_decode($detail['rule_values']);
- if(!empty($detail['limit_user_level'])) $detail['limit_user_level'] = json_decode($detail['limit_user_level']);
- if(!empty($detail['rule'])) $detail['rule'] = json_decode($detail['rule']);
- if(!empty($detail['start_time'])) $detail['start_time'] = date("Y-m-d H:i:s",$detail['start_time']);
- if(!empty($detail['end_time'])) $detail['end_time'] = date("Y-m-d H:i:s",$detail['end_time']);
- if($params['type'] == 1) unset($detail['id']);
- $list['detail'] = $detail;
- $list['limit_user_level_list'] = $user_level_list;
- $integral_name = Yii::$app->services->setting->addons->get($this->mall_id, ScoreExpansionEnum::ADDONS_NAME, 'basic.integral_name');
- $integral_name = empty($integral_name) ? '积分' : $integral_name;
- $list['integral_name'] = $integral_name;
- // echo '<pre>';print_r($list);die;
- return $this->success('操作成功',$list);
- }
- //提交等级内容
- if ($request->isPost) {
- $params = Yii::$app->request->post();
- // echo '<pre>';print_r($params);die;
- $res = Yii::$app->services->validate->validate($params, [
- [['title','time_type','integral_type'], 'required'],
- [['times','id','integral_type','status','rule','rule_data'], 'safe'],
- [['description','cover','time_type_time','award','day_award','limit_user_level','virtual_award','time_slot'],'safe']
- ]);
- $params = ScoreExpansion::exceptNullVal($params);
- // echo '<pre>';print_r($params);die;
- if($params['time_type'] == 1){
- $params['start_time'] = strtotime($params['time_type_time']['0']);
- $params['end_time'] = strtotime($params['time_type_time']['1']);
- }else{
- $params['start_time'] = strtotime($params['time_slot']['0']);
- $params['end_time'] = strtotime($params['time_slot']['1']);
- }
- $params['rule'] = json_encode($params['rule']);
- $params['rule_values'] = json_encode($params['rule_data']);
- $params['limit_user_level'] = json_encode($params['limit_user_level']);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $params['mall_id'] = $this->mall_id;
- $res = ScoreExpansion::setData($params);
- if ($res === false) throw new Exception(Redpack::getStaticCodeError()['error']);
- return $this->success('操作成功');
- }
- }
- } catch (\Exception $e) {
- return $this->error($e->getMessage(), []);
- }
- return $this->render($this->action->id);
- }
- /**
- * 失效或删除
- * @Author: ltm
- * @DateTime: 2022/3/23 0023 14:06
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|string|void
- */
- public function actionDelOrEnable(){
- try {
- $request = Yii::$app->request;
- if ($request->isAjax) {
- if ($request->isPost) {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['id','type'], 'required'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- if($params['type'] == StatusEnum::ENABLED) $params['status'] = StatusEnum::ENABLED;
- if($params['type'] == StatusEnum::DISABLED) $params['status'] = StatusEnum::DISABLED;
- if($params['type'] == StatusEnum::DELETE) $params['status'] = StatusEnum::DELETE;
- $params['mall_id'] = $this->mall_id;
- $res = ScoreExpansion::setData($params);
- if ($res === false) throw new Exception(Redpack::getStaticCodeError()['error']);
- return $this->success('操作成功');
- }
- }
- } catch (\Exception $e) {
- return $this->error($e->getMessage(), []);
- }
- return $this->render($this->action->id);
- }
- /**
- * 商品红包设置
- * @Author: lun
- * @DateTime: 2022/3/23 0023 14:07
- * @Copyright: copyright (c) 2021 广东七件事集团
- */
- public function actionGoodsSetting()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- $post = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($post, [
- [['goods_id'], 'required'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- // echo '<pre>';print_r($post);die;
- $where[] = ['=', 'mall_id', $this->mall_id];
- $where[] = ['=', 'goods_id', $post['goods_id']];
- $where[] = ['=', 'status', StatusEnum::ENABLED];
- $select = "goods_id,integral_wallet_type,is_enable,is_percent,give,deduct_type,deduct_money,is_deduct_percent,parent";
- $params = compact('where', 'select');
- $list = ScoreExpansionGoodsSetting::lists($params);
- $data['list'] = $list;
- foreach($list as $item){
- $data['marketing_model'] = $item['is_enable'];
- break;
- }
- // dd($data);
- return $this->success('操作成功', $data);
- }
- }
- }
|