SettingController.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace addons\Agent\backend\controllers;
  3. use addons\Agent\common\models\AgentLevel;
  4. use common\enums\StatusEnum;
  5. use common\models\user\User;
  6. use Exception;
  7. use Yii;
  8. class SettingController extends BaseController
  9. {
  10. public $enableCsrfValidation = false;
  11. /**
  12. * 经销商配置
  13. */
  14. public function actionIndex() {
  15. if (\Yii::$app->request->isAjax) {
  16. if (\Yii::$app->request->isGet) {
  17. $group = \Yii::$app->request->get('group','');
  18. $group = $group ?: 'basic';
  19. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, 'Agent', $group);
  20. if($group == 'basic'){
  21. if(!isset($configs['is_show_at_center'])) $configs['is_show_at_center'] = 1;
  22. if(!isset($configs['over_settle_type'])) $configs['over_settle_type'] = 0;
  23. if(!isset($configs['over_calculation_basis'])) $configs['over_calculation_basis'] = 0;
  24. if(isset($configs['agent_level_info'])){
  25. $configs['agent_level_info'] = json_decode($configs['agent_level_info'],true);
  26. }else{
  27. $configs['agent_level_info'] = [];
  28. }
  29. if(isset($configs['agent_level_select'])){
  30. $configs['agent_level_select'] = json_decode($configs['agent_level_select'],true);
  31. }else{
  32. $configs['agent_level_select'] = [];
  33. }
  34. if(isset($configs['diff_bonus_area'])){
  35. $configs['diff_bonus_area'] = json_decode($configs['diff_bonus_area'],true);
  36. }else{
  37. $configs['diff_bonus_area'] = [
  38. 'regional_team_prize'=> 0,//省
  39. 'province_team_prize'=> 0,//省
  40. 'city_team_prize'=> 0,//市
  41. 'district_team_prize'=> 0,//区
  42. 'town_team_prize'=> 0,//镇
  43. 'community_team_prize'=> 0,//小区
  44. ];
  45. }
  46. $list['userList'] = [];
  47. if(isset($configs['diff_bonus_user'])){
  48. $configs['diff_bonus_user'] = json_decode($configs['diff_bonus_user'],true);
  49. $list['userList'] = $configs['diff_bonus_user'];
  50. }else{
  51. $configs['diff_bonus_user'] = [];
  52. }
  53. $where = [['mall_id' => $this->mall_id], ['=', 'status', StatusEnum::ENABLED]];
  54. $args['where'] = $where;
  55. $args['select'] = 'id,level,name';
  56. $args['order'] = 'level asc';
  57. $list['agent_level_list'] = AgentLevel::lists($args, true);
  58. foreach($list['agent_level_list'] as $agent_level){
  59. if(in_array($agent_level['level'],$configs['agent_level_select'])){
  60. $list['agent_level_select_list'][] = $agent_level;
  61. }
  62. }
  63. }
  64. $list['list'] = $configs;
  65. return $this->success('操作成功', $list);
  66. } else {
  67. $postData = \Yii::$app->request->post();
  68. $group = $postData['group'] ?? '';
  69. if (empty($group)) {
  70. return $this->error('参数错误');
  71. }
  72. $rules = [
  73. 'basic' => [
  74. [['is_enable', 'is_self_buy', 'enable_goods_deduct', 'is_equal', 'is_contain_self', 'equal_settle_type', 'calculation_basis', 'is_equal_self', 'is_equal_prize_first',
  75. 'equal_prize_deep', 'over_level', 'team_prize_deep', 'compute_type', 'computing_method','team_achievement_compute_type', 'is_enable_skip_level'], 'required'],
  76. [['is_show_at_center','is_drainage_subsidy','is_team_subsidy','is_extra_equal_prize', 'is_enable_province','is_enable_recommend_award','enable_repurchase_reward','is_manage_prize','manage_prize_deep', 'is_find_equal_parent','find_a_level','alone_equal_settle_type','is_enable_diff_bonus','is_equal_by_upgrade','is_upgrade_to_agent','is_equal_computing_method','equal_computing_method','is_over_computing_method','over_computing_method', 'is_enable_skip_level', 'skip_level', 'equal_prize_type', 'is_enable_to_buyer_equal', 'skip_equal_level', 'is_enable_me_over_equal'], 'integer'],
  77. [['compute_delay_day'], 'integer', 'min' => 0, 'max' => 30],
  78. [['agent_level_select','agent_level_info','over_settle_type','over_calculation_basis','parent_diff_bonus','diff_bonus_area','diff_bonus_user'],'safe']
  79. ],
  80. 'more' => [
  81. [['is_enable_team_buy_detail', 'compute_type', 'is_check', 'is_apply',], 'integer'],
  82. [['protocol'],'string']
  83. ],
  84. ];
  85. $res = \Yii::$app->services->validate->validate($postData[$group], $rules[$group]);
  86. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  87. $postData['mall_id'] = $this->mall_id;
  88. \Yii::$app->services->setting->addons->set($this->mall_id, 'Agent', [$group => $postData[$group]]);
  89. return $this->success('操作成功');
  90. }
  91. }
  92. return $this->render('setting');
  93. }
  94. }