SettingController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace addons\Redpack\backend\controllers;
  3. use addons\Album\common\models\AddonsAlbum;
  4. use addons\Redpack\common\helper\RedpackHelper;
  5. use addons\Agent\common\models\AgentLevel;
  6. use addons\Xhs\common\enums\RedpackEnum;
  7. use common\enums\AddonsEnum;
  8. use common\enums\StatusEnum;
  9. use common\models\common\MallSetting;
  10. use common\models\common\PlatformSetting;
  11. use common\models\mall\MallAddons;
  12. use Yii;
  13. use common\controllers\AddonsController;
  14. use common\models\user\UserLevel;
  15. /**
  16. * 默认控制器
  17. *
  18. * Class SettingController
  19. * @package addons\Xhs\backend\controllers
  20. */
  21. class SettingController extends BaseController
  22. {
  23. public $enableCsrfValidation = false;
  24. /**
  25. * 首页
  26. *
  27. * @return string
  28. */
  29. public function actionIndex()
  30. {
  31. $retuest = Yii::$app->request;
  32. if ($retuest->isAjax) {
  33. if ($retuest->isPost) {
  34. $params = Yii::$app->request->post();
  35. $res = Yii::$app->services->validate->validate($params,[
  36. [['frozen_status','activation_num','activation_time','transfer_status','transfer_red_type'],'safe'],
  37. [['auth_status','transfer_percentage','transfer_out_status','transfer_out_type','transfer_out_mode'],'safe'],
  38. [['transfer_out_percentage','transfer_out_service','transfer_out_balance','transfer_out_score','give_type','redpack_name'],'safe'],
  39. [['frozen_redpack_transfer_out_mode','frozen_redpack_transfer_out_balance','frozen_redpack_transfer_out_score',
  40. 'frozen_redpack_transfer_out_service','frozen_redpack_transfer_out_service_rate'],'safe'],
  41. [['redpack_transfer_out_mode','redpack_transfer_out_balance','redpack_transfer_out_score',
  42. 'redpack_transfer_out_service','redpack_transfer_out_service_rate'],'safe'],
  43. [['is_accelerated_activation','accelerated_goods_ids','accelerated_goods_list',
  44. 'accelerated_user_level_ids','accelerate_settlement_type', 'is_set_activate', 'setting_agent_level_list', 'setting_user_level_list'],'safe'],
  45. ]);
  46. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  47. if ($params['is_accelerated_activation'] == 0) {
  48. $params['accelerated_goods_ids'] = $params['accelerated_goods_list'] = [];
  49. }
  50. if ($params['setting_user_level_list']) {
  51. $params['setting_user_level_list'] = array_column($params['setting_user_level_list'], 'value', 'level');
  52. }
  53. if ($params['setting_agent_level_list']) {
  54. $params['setting_agent_level_list'] = array_column($params['setting_agent_level_list'], 'value', 'level');
  55. }
  56. //var_dump($params);
  57. // 保存配置
  58. $config = Yii::$app->services->setting->addons->set($this->mall_id, AddonsEnum::ADDONS_NAME_REDPACK, ['basic' => $params]);
  59. $this->success('保存成功', $config);
  60. } else {
  61. // 获取配置
  62. $config = Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_REDPACK, 'basic');
  63. $config = RedpackHelper::initConfig($config);
  64. $config['user_level_list'] = UserLevel::getUserLevel([['mall_id' => $this->mall_id]], [], 1);
  65. $setting_user_level_list = json_decode($config['setting_user_level_list'], true) ?? [];
  66. $setting_agent_level_list = json_decode($config['setting_agent_level_list'], true) ?? [];
  67. //添加层数配置 会员等级列表处理
  68. $config['setting_user_level_list'] = array_map(function ($value) use ($setting_user_level_list){
  69. return [
  70. 'level' => $value['level'],
  71. 'name' => $value['name'],
  72. 'value' => $setting_user_level_list[$value['level']] ?? 0
  73. ];
  74. }, $config['user_level_list']);
  75. $config['setting_agent_level_list'] = [];
  76. if (MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_AGENT)) {
  77. //安装了渠道分红
  78. $config['setting_agent_level_list'] = AgentLevel::find()
  79. ->where([
  80. 'mall_id' => $this->mall_id,
  81. 'status' => StatusEnum::ENABLED
  82. ])
  83. ->select('id,name,level')
  84. ->orderBy('level asc')
  85. ->asArray()
  86. ->all();
  87. $config['setting_agent_level_list'] = array_map(function ($value) use ($setting_agent_level_list) {
  88. return [
  89. 'level' => $value['level'],
  90. 'name' => $value['name'],
  91. 'value' => $setting_agent_level_list[$value['level']] ?? 0,
  92. ];
  93. }, $config['setting_agent_level_list']);
  94. }
  95. $this->success('获取成功', $config);
  96. }
  97. }
  98. return $this->render($this->action->id);
  99. }
  100. }