SettingController.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. /**
  3. * @link:http://www.goodmall.com/
  4. * @copyright: Copyright (c) 2020
  5. * Created by PhpStorm
  6. * Author: ganxiaohao
  7. * Date: 2020-05-08
  8. * Time: 16:09
  9. */
  10. namespace addons\Distribution\backend\controllers;
  11. use addons\Distribution\common\enums\DistributionEnum;
  12. use addons\Distribution\common\models\DistributionLevel;
  13. use common\enums\addons\MallAddonsEnum;
  14. use common\enums\AddonsEnum;
  15. use common\enums\StatusEnum;
  16. use common\models\mall\MallAddons;
  17. use common\enums\GoodsTypeEnum;
  18. use common\globals\GlobalInvoke;
  19. class SettingController extends BaseController
  20. {
  21. public $enableCsrfValidation = false;
  22. public function actionIndex()
  23. {
  24. if (\Yii::$app->request->isAjax) {
  25. if(\Yii::$app->request->isGet){
  26. $group = \Yii::$app->request->get('group');
  27. $group = $group ?: 'basic';
  28. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_DISTRIBUTION, $group);
  29. $configs['is_huiju_beauty'] = DistributionEnum::getHuiJuBeauty($this->mall_id);
  30. if (!empty($configs['score'])) {
  31. $configs['score'] = json_decode($configs['score'], true);
  32. } else {
  33. $configs['score'] = [
  34. 'is_percent' => 0,
  35. 'first_prize' => 0,
  36. 'second_prize' => 0,
  37. 'third_prize' => 0,
  38. ];
  39. }
  40. if (!empty($configs['commission'])) {
  41. $configs['commission'] = json_decode($configs['commission'], true);
  42. } else {
  43. $configs['commission'] = [
  44. 'is_percent' => 0,
  45. 'first_prize' => 0,
  46. 'second_prize' => 0,
  47. 'third_prize' => 0,
  48. ];
  49. }
  50. if (!empty($configs['drive_cy'])) {
  51. $configs['drive_cy'] = json_decode($configs['drive_cy'], true);
  52. } else {
  53. $configs['drive_cy'] = [
  54. 'is_percent' => 0,
  55. 'first_prize' => 0,
  56. 'second_prize' => 0,
  57. 'third_prize' => 0,
  58. ];
  59. }
  60. if (!empty($configs['digital'])) {
  61. $configs['digital'] = json_decode($configs['digital'], true);
  62. } else {
  63. $configs['digital'] = [
  64. 'is_percent' => 0,
  65. 'first_prize' => 0,
  66. 'second_prize' => 0,
  67. 'third_prize' => 0,
  68. ];
  69. }
  70. if(!isset($configs['is_show_at_center'])) $configs['is_show_at_center'] = 1;
  71. if(!isset($configs['is_default_level'])) $configs['is_default_level'] = 1;
  72. if(!isset($configs['default_level_name'])) $configs['default_level_name'] = '默认等级';
  73. $is_show_decr_score = isset(\Yii::$app->params['is_show_decr_score']) ? intval(\Yii::$app->params['is_show_decr_score']): 0;
  74. $configs['is_show_decr_score'] = $is_show_decr_score;
  75. if(!isset( $configs['set_team_achievement'])) $configs['is_open_level_limit'] = 0;
  76. if(!isset( $configs['is_open_level_limit'])) $configs['is_open_level_limit'] = 0;
  77. if(!isset( $configs['enable_repurchase_reward'])) $configs['enable_repurchase_reward'] = 0;
  78. if(!isset( $configs['is_reward_score_limit'])) $configs['is_reward_score_limit'] = 0;
  79. if(!isset( $configs['reward_score_limit'])) $configs['reward_score_limit'] = 0;
  80. return $this->success('操作成功', $configs);
  81. }
  82. if(\Yii::$app->request->isPost){
  83. $post = \Yii::$app->request->post();
  84. $rules = [
  85. [['level', 'is_apply', 'is_check', 'is_self_buy', 'is_show_share_level', 'rebuy_price_date', 'is_rebuy', 'is_team', 'subsidy_price_date', 'is_subsidy', 'computing_method', 'compute_type','set_team_achievement','is_open_level_limit'], 'required'],
  86. [['protocol'], 'string'],
  87. [['enable_repurchase_reward','is_reward_score_limit'], 'integer'],
  88. [['commission', 'score','is_show_at_center','default_level_name','is_default_level', 'drive_cy','digital'], 'safe'],
  89. [['level', 'is_apply', 'is_check', 'is_self_buy', 'is_show_share_level', 'rebuy_price_date', 'is_rebuy', 'is_team', 'subsidy_price_date', 'is_subsidy', 'computing_method', 'compute_type', 'is_decr_score','reward_score_limit'], 'number']
  90. ];
  91. $res = \Yii::$app->services->validate->validate($post['basic'], $rules);
  92. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  93. \Yii::$app->services->setting->addons->set($this->mall_id, DistributionEnum::ADDONS_NAME, ['basic' => $post['basic']]);
  94. return $this->success('操作成功');
  95. }
  96. }
  97. return $this->render('index');
  98. }
  99. public function actionConfigVal()
  100. {
  101. if (!\Yii::$app->request->isGet) {
  102. return $this->error('请求方式错误');
  103. }
  104. $group = \Yii::$app->request->get('group');
  105. $group = $group ?: 'basic';
  106. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_DISTRIBUTION, $group);
  107. if (!empty($configs['score'])) {
  108. $configs['score'] = json_decode($configs['score'], true);
  109. } else {
  110. $configs['score'] = [
  111. 'is_percent' => 0,
  112. 'first_prize' => 0,
  113. 'second_prize' => 0,
  114. 'third_prize' => 0,
  115. ];
  116. }
  117. if (!empty($configs['commission'])) {
  118. $configs['commission'] = json_decode($configs['commission'], true);
  119. } else {
  120. $configs['commission'] = [
  121. 'is_percent' => 0,
  122. 'first_prize' => 0,
  123. 'second_prize' => 0,
  124. 'third_prize' => 0,
  125. ];
  126. }
  127. return $this->success('操作成功', $configs);
  128. }
  129. public function actionStore()
  130. {
  131. if (!\Yii::$app->request->isPost) {
  132. return $this->error('请求方式错误');
  133. }
  134. $post = \Yii::$app->request->post();
  135. $rules = [
  136. [['level', 'is_apply', 'is_check', 'is_self_buy', 'price_type', 'score_type', 'first_price', 'second_price', 'third_price', 'first_score', 'second_score', 'third_score', 'is_show_share_level', 'rebuy_price_date', 'is_rebuy', 'is_team', 'subsidy_price_date', 'is_subsidy', 'computing_method', 'compute_type'], 'required'],
  137. [['protocol'], 'string'],
  138. [['commission', 'score'], 'safe'],
  139. [['level', 'is_apply', 'is_check', 'is_self_buy', 'price_type', 'score_type', 'first_price', 'second_price', 'third_price', 'first_score', 'second_score', 'third_score', 'is_show_share_level', 'rebuy_price_date', 'is_rebuy', 'is_team', 'subsidy_price_date', 'is_subsidy', 'computing_method', 'compute_type'], 'number']
  140. ];
  141. $res = \Yii::$app->services->validate->validate($post['basic'], $rules);
  142. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  143. \Yii::$app->services->setting->addons->set($this->mall_id, 'Distribution', ['basic' => $post['basic']]);
  144. return $this->success('操作成功');
  145. }
  146. public function actionConfigSetting()
  147. {
  148. $setting = \Yii::$app->services->setting->addons->get($this->mall_id, DistributionEnum::ADDONS_NAME, 'basic');
  149. $data['levels'] = $setting['level'] ?? '2';
  150. $data['level_list'] = DistributionLevel::lists([
  151. 'where' => [
  152. ['mall_id' => $this->mall_id],
  153. ['status' => StatusEnum::ENABLED]
  154. ],
  155. 'select' => 'id, level, name'
  156. ]);
  157. $default_level_name = '默认等级';
  158. if(!empty($setting['default_level_name'])){
  159. $default_level_name = $setting['default_level_name'];
  160. }
  161. array_unshift($data['level_list'], ['id' => 0,'level' => 0, 'name' => $default_level_name]);
  162. $data['is_install_regular_bonus'] = (int)MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_REGULAR_BONUS);
  163. return $this->success('操作成功', $data);
  164. }
  165. }