SettingController.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?php
  2. /**
  3. * @link:http://www.goodmall.com/
  4. * @copyright: Copyright (c) 2022
  5. * Created by PhpStorm
  6. * Author: zmz
  7. * Date: 2022-10-18
  8. * Time: 16:09
  9. */
  10. namespace addons\CircleDistribution\backend\controllers;
  11. use addons\CircleDistribution\common\enums\DistributionEnum;
  12. use common\enums\AddonsEnum;
  13. use common\enums\StatusEnum;
  14. use common\models\goods\Goods;
  15. use yii\helpers\Json;
  16. class SettingController extends BaseController
  17. {
  18. public $enableCsrfValidation = false;
  19. public function actionIndex()
  20. {
  21. if (\Yii::$app->request->isAjax) {
  22. if(\Yii::$app->request->isGet){
  23. $group = \Yii::$app->request->get('group');
  24. $group = $group ?: 'basic';
  25. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CIRCLE_DISTRIBUTION, $group);
  26. if (!empty($configs['score'])) {
  27. $configs['score'] = json_decode($configs['score'], true);
  28. $configs['score']['list'] = $configs['score']['list'] ?? [];
  29. } else {
  30. $configs['score'] = [
  31. 'is_percent' => 0,
  32. 'list' => []
  33. ];
  34. }
  35. if (!empty($configs['commission'])) {
  36. $configs['commission'] = json_decode($configs['commission'], true);
  37. $configs['commission']['list'] = $configs['commission']['list'] ?? [];
  38. } else {
  39. $configs['commission'] = [
  40. 'is_percent' => 0,
  41. 'list' => []
  42. ];
  43. }
  44. $configs['thaw_goods_ids'] = $configs['thaw_goods_ids'] ? Json::decode($configs['thaw_goods_ids'], true) : [];
  45. $configs['thaw_goods_list'] = [];
  46. if (!empty($configs['thaw_goods_ids'])) {
  47. $configs['thaw_goods_list'] = Goods::find()->select("id,goods_name as name,price,cover_pic,is_on_sale,status")
  48. ->where(['id' => $configs['thaw_goods_ids']])
  49. ->orderBy(["FIELD(id, ".join(',',$configs['thaw_goods_ids']).")" => true])
  50. ->asArray()->all();
  51. }
  52. $configs['become_goods_ids'] = isset($configs['become_goods_ids']) && !empty($configs['become_goods_ids']) ? Json::decode($configs['become_goods_ids'], true) : [];
  53. $configs['become_goods_list'] = [];
  54. if (!empty($configs['become_goods_ids'])) {
  55. $configs['become_goods_list'] = Goods::find()->select("id,goods_name as name,price,cover_pic,is_on_sale,status")
  56. ->where(['id' => $configs['become_goods_ids']])
  57. ->orderBy(["FIELD(id, ".join(',',$configs['become_goods_ids']).")" => true])
  58. ->asArray()->all();
  59. }
  60. if(!isset($configs['is_show_at_center'])) $configs['is_show_at_center'] = 1;
  61. return $this->success('操作成功', $configs);
  62. }
  63. if(\Yii::$app->request->isPost){
  64. $post = \Yii::$app->request->post();
  65. $rules = [
  66. [['level', 'is_apply', 'is_check', 'is_self_buy', 'is_show_share_level', 'is_rebuy', 'is_team', 'subsidy_price_date', 'is_subsidy', 'computing_method', 'compute_type','is_enable','score','is_enable', 'become_goods_way'], 'required'],
  67. [['protocol'], 'string'],
  68. [['commission', 'score','is_show_at_center'], 'safe'],
  69. [['level', 'is_apply', 'is_check', 'is_self_buy', 'is_show_share_level', 'is_rebuy', 'is_team', 'subsidy_price_date', 'is_subsidy', 'computing_method', 'compute_type'], 'number'],
  70. [['is_circle_repurchase','repurchase_compute_type', 'become_order_status'], 'integer'],
  71. [['thaw_goods_ids', 'become_goods_ids'], 'safe'],
  72. ];
  73. $res = \Yii::$app->services->validate->validate($post['basic'], $rules);
  74. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  75. // 将数组转为json
  76. foreach ($post['basic'] as &$item) {
  77. if (is_array($item)) $item = Json::encode($item);
  78. }
  79. \Yii::$app->services->setting->addons->set($this->mall_id, DistributionEnum::ADDONS_NAME, ['basic' => $post['basic']]);
  80. return $this->success('操作成功');
  81. }
  82. }
  83. return $this->render('index');
  84. }
  85. public function actionConfigVal()
  86. {
  87. if (!\Yii::$app->request->isGet) {
  88. return $this->error('请求方式错误');
  89. }
  90. $group = \Yii::$app->request->get('group');
  91. $group = $group ?: 'basic';
  92. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CIRCLE_DISTRIBUTION, $group);
  93. if (!empty($configs['score'])) {
  94. $configs['score'] = json_decode($configs['score'], true);
  95. } else {
  96. $configs['score'] = [
  97. 'is_percent' => 0,
  98. 'first_prize' => 0,
  99. 'second_prize' => 0,
  100. 'third_prize' => 0,
  101. ];
  102. }
  103. if (!empty($configs['commission'])) {
  104. $configs['commission'] = json_decode($configs['commission'], true);
  105. } else {
  106. $configs['commission'] = [
  107. 'is_percent' => 0,
  108. 'first_prize' => 0,
  109. 'second_prize' => 0,
  110. 'third_prize' => 0,
  111. ];
  112. }
  113. return $this->success('操作成功', $configs);
  114. }
  115. public function actionStore()
  116. {
  117. if (!\Yii::$app->request->isPost) {
  118. return $this->error('请求方式错误');
  119. }
  120. $post = \Yii::$app->request->post();
  121. $rules = [
  122. [['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'],
  123. [['protocol'], 'string'],
  124. [['commission', 'score'], 'safe'],
  125. [['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']
  126. ];
  127. $res = \Yii::$app->services->validate->validate($post['basic'], $rules);
  128. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  129. \Yii::$app->services->setting->addons->set($this->mall_id, 'Distribution', ['basic' => $post['basic']]);
  130. return $this->success('操作成功');
  131. }
  132. public function actionConfigSetting()
  133. {
  134. $setting = \Yii::$app->services->setting->addons->get($this->mall_id, DistributionEnum::ADDONS_NAME, 'basic');
  135. $data['levels'] = $setting['level'] ?? '2';
  136. return $this->success('操作成功', $data);
  137. }
  138. }