DefaultController.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. namespace addons\ScoreExpansion\backend\controllers;
  3. use addons\Redpack\common\enums\RedpackEnum;
  4. use addons\Redpack\common\models\Redpack;
  5. use addons\Redpack\common\models\RedpackGoodsSetting;
  6. use addons\ScoreExpansion\common\enums\ScoreExpansionEnum;
  7. use addons\ScoreExpansion\common\models\ScoreExpansion;
  8. use addons\ScoreExpansion\common\models\ScoreExpansionGoodsSetting;
  9. use common\enums\StatusEnum;
  10. use common\models\common\PlatformSetting;
  11. use common\models\user\UserLevel;
  12. use Yii;
  13. use common\controllers\AddonsController;
  14. use yii\db\Exception;
  15. /**
  16. * 默认控制器
  17. *
  18. * Class DefaultController
  19. * @package addons\ScoreExpansion\backend\controllers
  20. */
  21. class DefaultController extends BaseController
  22. {
  23. public $enableCsrfValidation = false;
  24. /**
  25. * 首页
  26. *
  27. * @return string
  28. */
  29. public function actionIndex()
  30. {
  31. try {
  32. $request = Yii::$app->request;
  33. if ($request->isAjax) {
  34. // 提交等级内容
  35. if ($request->isPost) {
  36. $params = Yii::$app->request->post();
  37. $res = Yii::$app->services->validate->validate($params, [
  38. [['page','title','id','date_start','date_end'], 'safe'],
  39. ]);
  40. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  41. if(!empty($params['title'])) $where[] = ['like','title',$params['title']];
  42. if(!empty($params['id'])) $where[] = ['=','id',$params['id']];
  43. if($params['date_start'] && $params['date_end']) $where[] = ['between', 'created_at', strtotime($params['date_start']),strtotime($params['date_end'])];
  44. $where[] = ['=','mall_id',$this->mall_id];
  45. $where[] = ['>=','status',StatusEnum::DISABLED];
  46. $order = 'id desc';
  47. //var_dump($where);
  48. $list = ScoreExpansion::listPage(['where' => $where,'order' => $order],false);
  49. // echo '<pre>';print_r($list);die;
  50. $list['integral_type'] = ScoreExpansionEnum::getRedpackType('', $this->mall_id);
  51. $list['new_time'] = time();
  52. $Platform_config = PlatformSetting::getConfByGroup( 'system', true);
  53. $web_url = $Platform_config['h5_url']['value'];
  54. $mall_sign = $this->mall['mall_sign'];
  55. $list['redpacklinks'] = $web_url.'/#/'.ScoreExpansionEnum::INTEGRAL_LINKS."?sign=".$mall_sign;
  56. // var_dump($list['redpacklinks']);die;
  57. return $this->success('操作成功',$list);
  58. }
  59. }
  60. } catch (\Exception $e) {
  61. return $this->error($e->getMessage(), []);
  62. }
  63. return $this->render($this->action->id);
  64. }
  65. /**
  66. * @Author: ltm
  67. * @DateTime: 2022/3/21 0021 16:16
  68. * @Copyright: copyright (c) 2021 广东七件事集团
  69. * @param $data
  70. * @return string
  71. */
  72. public function actionEdit(){
  73. try {
  74. $request = Yii::$app->request;
  75. if ($request->isAjax) {
  76. // 提交等级内容
  77. if ($request->isGet) {
  78. $params = Yii::$app->request->get();
  79. $res = Yii::$app->services->validate->validate($params, [
  80. [['id','type'], 'safe'],
  81. ]);
  82. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  83. $detail = ScoreExpansion::getOne([['id'=>$params['id']]],true);
  84. $user_level_list = UserLevel::getUserLevel([['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]], [], 1,'level,name,id');
  85. $default['level'] = 0;
  86. $default['name'] = '系统默认会员等级';
  87. $default['id'] = 0;
  88. array_unshift($user_level_list,$default);
  89. $list = [];
  90. if(!empty($detail['rule_values'])) $detail['rule_data'] = json_decode($detail['rule_values']);
  91. if(!empty($detail['limit_user_level'])) $detail['limit_user_level'] = json_decode($detail['limit_user_level']);
  92. if(!empty($detail['rule'])) $detail['rule'] = json_decode($detail['rule']);
  93. if(!empty($detail['start_time'])) $detail['start_time'] = date("Y-m-d H:i:s",$detail['start_time']);
  94. if(!empty($detail['end_time'])) $detail['end_time'] = date("Y-m-d H:i:s",$detail['end_time']);
  95. if($params['type'] == 1) unset($detail['id']);
  96. $list['detail'] = $detail;
  97. $list['limit_user_level_list'] = $user_level_list;
  98. $integral_name = Yii::$app->services->setting->addons->get($this->mall_id, ScoreExpansionEnum::ADDONS_NAME, 'basic.integral_name');
  99. $integral_name = empty($integral_name) ? '积分' : $integral_name;
  100. $list['integral_name'] = $integral_name;
  101. // echo '<pre>';print_r($list);die;
  102. return $this->success('操作成功',$list);
  103. }
  104. //提交等级内容
  105. if ($request->isPost) {
  106. $params = Yii::$app->request->post();
  107. // echo '<pre>';print_r($params);die;
  108. $res = Yii::$app->services->validate->validate($params, [
  109. [['title','time_type','integral_type'], 'required'],
  110. [['times','id','integral_type','status','rule','rule_data'], 'safe'],
  111. [['description','cover','time_type_time','award','day_award','limit_user_level','virtual_award','time_slot'],'safe']
  112. ]);
  113. $params = ScoreExpansion::exceptNullVal($params);
  114. // echo '<pre>';print_r($params);die;
  115. if($params['time_type'] == 1){
  116. $params['start_time'] = strtotime($params['time_type_time']['0']);
  117. $params['end_time'] = strtotime($params['time_type_time']['1']);
  118. }else{
  119. $params['start_time'] = strtotime($params['time_slot']['0']);
  120. $params['end_time'] = strtotime($params['time_slot']['1']);
  121. }
  122. $params['rule'] = json_encode($params['rule']);
  123. $params['rule_values'] = json_encode($params['rule_data']);
  124. $params['limit_user_level'] = json_encode($params['limit_user_level']);
  125. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  126. $params['mall_id'] = $this->mall_id;
  127. $res = ScoreExpansion::setData($params);
  128. if ($res === false) throw new Exception(Redpack::getStaticCodeError()['error']);
  129. return $this->success('操作成功');
  130. }
  131. }
  132. } catch (\Exception $e) {
  133. return $this->error($e->getMessage(), []);
  134. }
  135. return $this->render($this->action->id);
  136. }
  137. /**
  138. * 失效或删除
  139. * @Author: ltm
  140. * @DateTime: 2022/3/23 0023 14:06
  141. * @Copyright: copyright (c) 2021 广东七件事集团
  142. * @return mixed|string|void
  143. */
  144. public function actionDelOrEnable(){
  145. try {
  146. $request = Yii::$app->request;
  147. if ($request->isAjax) {
  148. if ($request->isPost) {
  149. $params = Yii::$app->request->post();
  150. $res = Yii::$app->services->validate->validate($params, [
  151. [['id','type'], 'required'],
  152. ]);
  153. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  154. if($params['type'] == StatusEnum::ENABLED) $params['status'] = StatusEnum::ENABLED;
  155. if($params['type'] == StatusEnum::DISABLED) $params['status'] = StatusEnum::DISABLED;
  156. if($params['type'] == StatusEnum::DELETE) $params['status'] = StatusEnum::DELETE;
  157. $params['mall_id'] = $this->mall_id;
  158. $res = ScoreExpansion::setData($params);
  159. if ($res === false) throw new Exception(Redpack::getStaticCodeError()['error']);
  160. return $this->success('操作成功');
  161. }
  162. }
  163. } catch (\Exception $e) {
  164. return $this->error($e->getMessage(), []);
  165. }
  166. return $this->render($this->action->id);
  167. }
  168. /**
  169. * 商品红包设置
  170. * @Author: lun
  171. * @DateTime: 2022/3/23 0023 14:07
  172. * @Copyright: copyright (c) 2021 广东七件事集团
  173. */
  174. public function actionGoodsSetting()
  175. {
  176. $request = Yii::$app->request;
  177. if ($request->isAjax && $request->isPost) {
  178. $post = Yii::$app->request->post();
  179. $res = Yii::$app->services->validate->validate($post, [
  180. [['goods_id'], 'required'],
  181. ]);
  182. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  183. // echo '<pre>';print_r($post);die;
  184. $where[] = ['=', 'mall_id', $this->mall_id];
  185. $where[] = ['=', 'goods_id', $post['goods_id']];
  186. $where[] = ['=', 'status', StatusEnum::ENABLED];
  187. $select = "goods_id,integral_wallet_type,is_enable,is_percent,give,deduct_type,deduct_money,is_deduct_percent,parent";
  188. $params = compact('where', 'select');
  189. $list = ScoreExpansionGoodsSetting::lists($params);
  190. $data['list'] = $list;
  191. foreach($list as $item){
  192. $data['marketing_model'] = $item['is_enable'];
  193. break;
  194. }
  195. // dd($data);
  196. return $this->success('操作成功', $data);
  197. }
  198. }
  199. }