Ruleconfig.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. namespace app\admin\controller\kl;
  3. use app\common\controller\Backend;
  4. use app\common\library\Redis;
  5. use app\main\constants\KlConstants;
  6. use app\main\service\AdminKlUpdateService;
  7. use think\Controller;
  8. use think\Request;
  9. /**
  10. * 扣量-规则配置
  11. *
  12. * @icon fa fa-circle-o
  13. */
  14. class Ruleconfig extends Backend
  15. {
  16. /**
  17. * KlRuleConfig模型对象
  18. */
  19. protected $model = null;
  20. protected $rule_id = null;
  21. public function _initialize()
  22. {
  23. parent::_initialize();
  24. $this->model = model('KlRuleConfig');
  25. $this->rule_id = Request::instance()->param('rule_id', 0);
  26. if (empty($this->rule_id)) {
  27. $this->error("缺少参数 rule_id");
  28. }
  29. $this->assignconfig('rule_id', $this->rule_id);
  30. $this->view->assign('rule_id', $this->rule_id);
  31. $this->view->assign("sNewUserStatusList", $this->model->getSNewUserStatusList());
  32. $this->view->assign("sNewUserCityStatusList", $this->model->getSNewUserCityStatusList());
  33. $this->view->assign("sNewUserAddStatusList", $this->model->getSNewUserAddStatusList());
  34. $this->view->assign("sNewUserAddOpList", $this->model->getSNewUserAddOpList());
  35. $this->view->assign("sNewUserRechargeStatusList", $this->model->getSNewUserRechargeStatusList());
  36. $this->view->assign("sNewUserRechargeOpList", $this->model->getSNewUserRechargeOpList());
  37. $this->view->assign("sNewRelationList", $this->model->getSNewRelationList());
  38. $this->view->assign("sOldUserStatusList", $this->model->getSOldUserStatusList());
  39. $this->view->assign("sOldUserCityStatusList", $this->model->getSOldUserCityStatusList());
  40. $this->view->assign("sOldUserActiveStatusList", $this->model->getSOldUserActiveStatusList());
  41. $this->view->assign("sOldUserActiveOpList", $this->model->getSOldUserActiveOpList());
  42. $this->view->assign("sOldUserRechargeStatusList", $this->model->getSOldUserRechargeStatusList());
  43. $this->view->assign("sOldUserRechargeOpList", $this->model->getSOldUserRechargeOpList());
  44. $this->view->assign("sOldRelationList", $this->model->getSOldRelationList());
  45. $this->view->assign("fBehaviorStatusList", $this->model->getFBehaviorStatusList());
  46. $this->view->assign("fOneRechargeStatusList", $this->model->getFOneRechargeStatusList());
  47. $this->view->assign("fRechargeStatusList", $this->model->getFRechargeStatusList());
  48. $this->view->assign("fReadStatusList", $this->model->getFReadStatusList());
  49. $this->view->assign("fReadOpList", $this->model->getFReadOpList());
  50. $this->view->assign("fKandianStatusList", $this->model->getFKandianStatusList());
  51. $this->view->assign("fKandianOpList", $this->model->getFKandianOpList());
  52. $this->view->assign("fOrdersStatusList", $this->model->getFOrdersStatusList());
  53. $this->view->assign("fOrdersOpList", $this->model->getFOrdersOpList());
  54. $this->view->assign("fBehaviorRelationList", $this->model->getFBehaviorRelationList());
  55. $this->view->assign("fRegisterStatusList", $this->model->getFRegisterStatusList());
  56. $this->view->assign("fRegisterOpList", $this->model->getFRegisterOpList());
  57. $this->view->assign("fRegisterRelationList", $this->model->getFRegisterRelationList());
  58. $this->view->assign("oGeneralStatusList", $this->model->getOGeneralStatusList());
  59. $this->view->assign("oGeneralNewStatusList", $this->model->getOGeneralNewStatusList());
  60. $this->view->assign("oGeneralNewOpList", $this->model->getOGeneralNewOpList());
  61. $this->view->assign("oGeneralOldStatusList", $this->model->getOGeneralOldStatusList());
  62. $this->view->assign("oGeneralOldOpList", $this->model->getOGeneralOldOpList());
  63. $this->view->assign("oGeneralManyStatusList", $this->model->getOGeneralManyStatusList());
  64. $this->view->assign("oGeneralManyOpList", $this->model->getOGeneralManyOpList());
  65. $this->view->assign("oGeneralRelationList", $this->model->getOGeneralRelationList());
  66. $this->view->assign("oVipStatusList", $this->model->getOVipStatusList());
  67. $this->view->assign("oVipNewStatusList", $this->model->getOVipNewStatusList());
  68. $this->view->assign("oVipNewOpList", $this->model->getOVipNewOpList());
  69. $this->view->assign("oVipOldStatusList", $this->model->getOVipOldStatusList());
  70. $this->view->assign("oVipOldOpList", $this->model->getOVipOldOpList());
  71. $this->view->assign("oVipManyStatusList", $this->model->getOVipManyStatusList());
  72. $this->view->assign("oVipManyOpList", $this->model->getOVipManyOpList());
  73. $this->view->assign("oVipRelationList", $this->model->getOVipRelationList());
  74. $this->view->assign("oActivityStatusList", $this->model->getOActivityStatusList());
  75. $this->view->assign("oActivityNewStatusList", $this->model->getOActivityNewStatusList());
  76. $this->view->assign("oActivityNewOpList", $this->model->getOActivityNewOpList());
  77. $this->view->assign("oActivityOldStatusList", $this->model->getOActivityOldStatusList());
  78. $this->view->assign("oActivityOldOpList", $this->model->getOActivityOldOpList());
  79. $this->view->assign("oActivityManyStatusList", $this->model->getOActivityManyStatusList());
  80. $this->view->assign("oActivityManyOpList", $this->model->getOActivityManyOpList());
  81. $this->view->assign("oActivityRelationList", $this->model->getOActivityRelationList());
  82. }
  83. /**
  84. * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个方法
  85. * 因此在当前控制器中可不用编写增删改查的代码,如果需要自己控制这部分逻辑
  86. * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
  87. */
  88. /**
  89. * 添加
  90. */
  91. public function add()
  92. {
  93. if ($this->request->isPost())
  94. {
  95. $params = $this->request->post("row/a");
  96. //print_r($params['f_recharge']);die;
  97. if ($params)
  98. {
  99. /*
  100. * 已经弃用,如果为了兼容老版可取消注释
  101. foreach ($params as $k => &$v)
  102. {
  103. $v = is_array($v) ? implode(',', $v) : $v;
  104. }
  105. */
  106. if ($this->dataLimit)
  107. {
  108. $params[$this->dataLimitField] = $this->auth->id;
  109. }
  110. try
  111. {
  112. //是否采用模型验证
  113. if ($this->modelValidate)
  114. {
  115. $name = basename(str_replace('\\', '/', get_class($this->model)));
  116. $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : true) : $this->modelValidate;
  117. $this->model->validate($validate);
  118. }
  119. if (isset($params['f_recharge'])) {
  120. $params['f_recharge'] = implode(",", $params['f_recharge']);
  121. }
  122. $result = $this->model->allowField(true)->save($params);
  123. if ($result !== false)
  124. {
  125. AdminKlUpdateService::instance()->updateConfigUserCache($this->rule_id, $this->auth->id, '添加条件规则');
  126. $redisKey = KlConstants::REDIS_KEY_PREFIX.$this->rule_id;
  127. Redis::instance()->del($redisKey);
  128. $this->success();
  129. }
  130. else
  131. {
  132. $this->error($this->model->getError());
  133. }
  134. }
  135. catch (\think\exception\PDOException $e)
  136. {
  137. $this->error($e->getMessage());
  138. }
  139. }
  140. $this->error(__('Parameter %s can not be empty', ''));
  141. }
  142. return $this->view->fetch();
  143. }
  144. /**
  145. * 编辑
  146. */
  147. public function edit($ids = NULL)
  148. {
  149. $row = $this->model->get($ids);
  150. if (!$row)
  151. $this->error(__('No Results were found'));
  152. $adminIds = $this->getDataLimitAdminIds();
  153. if (is_array($adminIds))
  154. {
  155. if (!in_array($row[$this->dataLimitField], $adminIds))
  156. {
  157. $this->error(__('You have no permission'));
  158. }
  159. }
  160. if ($this->request->isPost())
  161. {
  162. $params = $this->request->post("row/a");
  163. if ($params)
  164. {
  165. /*
  166. * 已经弃用,如果为了兼容老版可取消注释
  167. foreach ($params as $k => &$v)
  168. {
  169. $v = is_array($v) ? implode(',', $v) : $v;
  170. }
  171. */
  172. try
  173. {
  174. //删除重新添加
  175. $row->delete();
  176. //是否采用模型验证
  177. if ($this->modelValidate)
  178. {
  179. $name = basename(str_replace('\\', '/', get_class($this->model)));
  180. $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : true) : $this->modelValidate;
  181. $this->model->validate($validate);
  182. }
  183. if (isset($params['f_recharge'])) {
  184. $params['f_recharge'] = implode(",", $params['f_recharge']);
  185. }
  186. $result = $this->model->allowField(true)->save($params);
  187. if ($result !== false)
  188. {
  189. AdminKlUpdateService::instance()->updateConfigUserCache($this->rule_id, $this->auth->id, "编辑条件规则");
  190. $redisKey = KlConstants::REDIS_KEY_PREFIX.$this->rule_id;
  191. Redis::instance()->del($redisKey);
  192. $this->success();
  193. }
  194. else
  195. {
  196. $this->error($this->model->getError());
  197. }
  198. }
  199. catch (\think\exception\PDOException $e)
  200. {
  201. $this->error($e->getMessage());
  202. }
  203. }
  204. $this->error(__('Parameter %s can not be empty', ''));
  205. }
  206. if (!empty($row['f_recharge'])) {
  207. $row['f_recharge'] = explode(',', $row['f_recharge']);
  208. } else {
  209. $row['f_recharge'] = [];
  210. }
  211. $this->view->assign("row", $row);
  212. return $this->view->fetch();
  213. }
  214. }