SettingController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?php
  2. namespace addons\CloudStock\backend\controllers;
  3. use addons\CloudStock\common\models\CloudStockBonusPoolLevel;
  4. use addons\CloudStock\common\models\CloudStockLevel;
  5. use addons\CloudStock\common\models\CloudStockSms;
  6. use common\enums\AddonsEnum;
  7. use common\enums\StatusEnum;
  8. use common\enums\WithdrawWayEnum;
  9. use common\globals\GlobalInvoke;
  10. use common\models\common\Addons;
  11. use common\models\goods\Goods;
  12. use common\models\mall\MallAddons;
  13. class SettingController extends BaseController
  14. {
  15. public $enableCsrfValidation = false;
  16. public function actionIndex()
  17. {
  18. if (\Yii::$app->request->isAjax) {
  19. if (\Yii::$app->request->isGet) {
  20. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'basic');
  21. if(empty($configs)) $configs = [];
  22. if(empty($configs['award_proportion'])){
  23. $configs['award_proportion'] = [['num'=>0,'money'=>0]];
  24. }else{
  25. $configs['award_proportion'] = json_decode($configs['award_proportion'],true);
  26. }
  27. if(empty($configs['cloud_stock_level_arr'])){
  28. $configs['cloud_stock_level_arr'] = [];//
  29. }else{
  30. $configs['cloud_stock_level_arr'] = json_decode($configs['cloud_stock_level_arr']);//
  31. }
  32. if(empty($configs['cloud_stock_bonus_level_arr'])){
  33. $configs['cloud_stock_bonus_level_arr'] = [];//
  34. }else{
  35. $configs['cloud_stock_bonus_level_arr'] = json_decode($configs['cloud_stock_bonus_level_arr']);//
  36. }
  37. if(empty($configs['is_deduct_goods']))$configs['is_deduct_goods'] = 0;//
  38. if(empty($configs['is_equal_2_step']))$configs['is_equal_2_step'] = 0;//
  39. if(empty($configs['award_proportion_settlement_type']))$configs['award_proportion_settlement_type'] = 0;//
  40. if(empty($configs['is_upgrade_bag_give_goods']))$configs['is_upgrade_bag_give_goods'] = 0;//
  41. if(empty($configs['fill_price_difference']))$configs['fill_price_difference'] = 0;//
  42. if(empty($configs['buy_price_difference']))$configs['buy_price_difference'] = 0;//
  43. if(empty($configs['price_difference_type']))$configs['price_difference_type'] = 0;//
  44. if(empty($configs['fill_bonus']))$configs['fill_bonus'] = 0;//
  45. if(empty($configs['is_sync_boss_bonus']))$configs['is_sync_boss_bonus'] = 0;//
  46. if(empty($configs['is_sync_agent_level']))$configs['is_sync_agent_level'] = 0;//
  47. if(empty($configs['is_enable_wangdiantong']))$configs['is_enable_wangdiantong'] = 0;//
  48. if(empty($configs['level_up_give_stock_by_parent_type']))$configs['level_up_give_stock_by_parent_type'] = 0;//
  49. if(empty($configs['buy_double_copy_goods_dec_cloud_stock_goods']))$configs['buy_double_copy_goods_dec_cloud_stock_goods'] = 0;//
  50. if(empty($configs['upgrade_bag_product_deduction']))$configs['upgrade_bag_product_deduction'] = 0;//
  51. if(empty($configs['upgrade_bag_product_up_limit']))$configs['upgrade_bag_product_up_limit'] = 0;//
  52. if(empty($configs['payment_is_not_in_commission']))$configs['payment_is_not_in_commission'] = 0;//
  53. if (empty($configs['profit_in_commission'])) $configs['profit_in_commission'] = 0;//
  54. if(empty($configs['payment_withdraw']))$configs['payment_withdraw'] = 0;//
  55. if(empty($configs['payment_withdraw_poundage']))$configs['payment_withdraw_poundage'] = 0;//
  56. if(empty($configs['payment_to_balance']))$configs['payment_to_balance'] = 0;//
  57. if(empty($configs['payment_to_balance_poundage']))$configs['payment_to_balance_poundage'] = 0;//
  58. if(empty($configs['gift_plan_give_type']))$configs['gift_plan_give_type'] = 0;//
  59. if (empty($configs['settlement_cycle_of_equal_prize'])) $configs['settlement_cycle_of_equal_prize'] = 0;//
  60. if (empty($configs['is_find_equal'])) $configs['is_find_equal'] = 0;//
  61. if (empty($configs['payment_for_goods_price_difference'])) $configs['payment_for_goods_price_difference'] = 0;//
  62. if (empty($configs['is_show_setting_btn'])) $configs['is_show_setting_btn'] = 0;//
  63. if(empty($configs['withdraw_cash_type'])){
  64. $configs['withdraw_cash_type'] = [];
  65. }else{
  66. $configs['withdraw_cash_type'] = json_decode($configs['withdraw_cash_type'],true);
  67. }
  68. if(empty($configs['upgrade_bag_product_deduction_level']))$configs['upgrade_bag_product_deduction_level'] = '';//
  69. if(empty($configs['team_reward_goods_id'])){
  70. $configs['team_reward_goods_id'] = [];//
  71. }else{
  72. $configs['team_reward_goods_id'] = json_decode($configs['team_reward_goods_id'],true);//
  73. }
  74. if (!isset($configs['is_enable_order_num_limit']) || !is_numeric($configs['is_enable_order_num_limit'])) {
  75. $configs['is_enable_order_num_limit'] = 0;
  76. }
  77. if (!isset($configs['order_limit_num']) || !is_numeric($configs['order_limit_num'])) {
  78. $configs['order_limit_num'] = 0;
  79. }
  80. if (!isset($configs['order_limit_type']) || !is_numeric($configs['order_limit_type'])) {
  81. $configs['order_limit_type'] = 1;
  82. }
  83. if (!isset($configs['is_stock_assignment']) || !is_numeric($configs['is_stock_assignment'])) {
  84. $configs['is_stock_assignment'] = 1;
  85. }
  86. if (empty($configs['is_by_buy_agent_level'])) $configs['is_by_buy_agent_level'] = 0;//
  87. $level_list = CloudStockLevel::lists(['where'=>[['mall_id'=>$this->mall_id],['status'=>StatusEnum::ENABLED]],'order'=>'level asc','select'=>'level,name']);
  88. $bonus_level_list = CloudStockBonusPoolLevel::lists(['where'=>[['mall_id'=>$this->mall_id],['status'=>StatusEnum::ENABLED]],'select'=>'level,name']);
  89. $configs['level_list'] = $level_list;
  90. $configs['bonus_level_list'] = $bonus_level_list;
  91. $team_reward_goods_list = Goods::lists(['where'=>[['id'=>$configs['team_reward_goods_id']]],'select'=>'id,goods_name as name,cover_pic']);
  92. $configs['team_reward_goods_list'] = $team_reward_goods_list;
  93. if(!empty($configs['deduction_commission_arr'])){
  94. $configs['deduction_commission_arr'] = json_decode($configs['deduction_commission_arr'],true);
  95. $configs['deduction_commission_arr'] = $this->getAddonsArr($configs['deduction_commission_arr']);
  96. }else{
  97. $configs['deduction_commission_arr'] = $this->getAddonsArr();
  98. }
  99. if(!isset($configs['is_sync_area_reward']))$configs['is_sync_area_reward'] = 1;
  100. if(empty($configs['is_enable_rand_fee']))$configs['is_enable_rand_fee'] = 0;
  101. if(empty($configs['rand_condition'])){
  102. $configs['rand_condition'] = [['total_price'=>0,'rand_min'=>0,'rand_max'=>0]];
  103. }else{
  104. $configs['rand_condition'] = json_decode($configs['rand_condition'],true);
  105. }
  106. if(empty($configs['is_enable_freight_charges']))$configs['is_enable_freight_charges'] = 0;
  107. empty($configs['compute_type']) && $configs['compute_type'] = 0;
  108. empty($configs['compute_delay_day']) && $configs['compute_delay_day'] = 0;
  109. $default_withdraw_way = WithdrawWayEnum::getDefaultWithDrawWayMap(WithdrawWayEnum::WITHDRAW_TYPE_2);
  110. // 全局获取提现方式
  111. $extension_withdraw_way = GlobalInvoke::exec(
  112. GlobalInvoke::INVOKE_GET_WITHDRAW_EXTENSION_WAY,
  113. $this->mall_id,
  114. ['mall_id' => $this->mall_id]
  115. );
  116. $all_withdraw = array_merge($default_withdraw_way, $extension_withdraw_way);
  117. unset($all_withdraw[WithdrawWayEnum::BALANCE]);
  118. $configs['withdraw_way'] = $all_withdraw;
  119. if (!empty($configs['withdraw_way']['alipay_tax'])) {
  120. $configs['withdraw_way']['alipay_tax'] = $configs['withdraw_way']['alipay_tax']['name'];
  121. }
  122. if (empty($configs['is_buy_type'])) $configs['is_buy_type'] = 0;
  123. if (empty($configs['buy_type'])) $configs['buy_type'] = 1;
  124. if (empty($configs['is_jump_level'])) $configs['is_jump_level'] = 0;
  125. if (empty($configs['jump_level'])) {
  126. $configs['jump_level'] = [];
  127. } else {
  128. $configs['jump_level'] = json_decode($configs['jump_level'], true);
  129. }
  130. return $this->success('操作成功', $configs);
  131. }
  132. if (\Yii::$app->request->isPost) {
  133. $post = \Yii::$app->request->post();
  134. if(!isset($post['team_reward_goods_id'])) $post['team_reward_goods_id'] = [];
  135. if(empty($post['cloud_stock_bonus_level_arr'])) $post['cloud_stock_bonus_level_arr'] = [];
  136. if(empty($post['jump_level'])) $post['jump_level'] = [];
  137. \Yii::$app->services->setting->addons->set($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, ['basic' => $post]);
  138. return $this->success('操作成功');
  139. }
  140. }
  141. return $this->render('index', ['is_install_wangdiantong' =>
  142. (int) MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_WANG_DIAN_TONG)]);
  143. }
  144. public function getAddonsArr($deduction_commission_arr=[]){
  145. $addons_arr = [AddonsEnum::ADDONS_NAME_AGENT,AddonsEnum::ADDONS_NAME_DISTRIBUTION,AddonsEnum::ADDONS_NAME_AREA,AddonsEnum::ADDONS_NAME_DOUBLE_COPY];
  146. $addons_list = [];
  147. foreach ($addons_arr as $addons){
  148. if(MallAddons::isInstall($this->mall_id,$addons)){
  149. $addons_list[] = $addons;
  150. }
  151. }
  152. $addons = Addons::lists(['where'=>[['name'=>$addons_list]],'index'=>'name']);
  153. $arr = [];
  154. foreach ($addons_list as $addon){
  155. if(!isset($deduction_commission_arr[$addon])){
  156. $arr[$addon] = ['title'=>$addons[$addon]['title']??'', 'is_open'=>0,];
  157. }else{
  158. $arr[$addon] = ['title'=>$addons[$addon]['title']??'','is_open'=>$deduction_commission_arr[$addon]['is_open']];
  159. }
  160. }
  161. return $arr;
  162. }
  163. //不用验证权限
  164. public function actionSmsList()
  165. {
  166. $data = array_values(CloudStockSms::$sms_data);
  167. return $this->success('操作成功', $data);
  168. }
  169. //不用验证权限
  170. public function actionGetSmsDetail()
  171. {
  172. $params = \Yii::$app->request->get();
  173. $where = [
  174. ['mall_id' => $this->mall_id],
  175. ['sms_key' => $params['sms_key']]
  176. ];
  177. $data = CloudStockSms::getOne($where, true);
  178. return $this->success('操作成功', $data??CloudStockSms::$sms_data[$params['sms_key']]);
  179. }
  180. //不用验证权限
  181. public function actionSmsSave(){
  182. $params = \Yii::$app->request->post();
  183. $params['mall_id'] = $this->mall_id;
  184. $res = CloudStockSms::setData($params);
  185. if ($res === false) return $this->error(CloudStockSms::getStaticError());
  186. return $this->success('操作成功');
  187. }
  188. }