SettingController.php 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace addons\DoubleCopy\backend\controllers;
  3. use addons\DoubleCopy\common\enums\DoubleCopyEnum;
  4. use addons\DoubleCopy\common\models\DoubleCopyLevel;
  5. use common\enums\StatusEnum;
  6. use common\models\goods\Goods;
  7. use Yii;
  8. use yii\helpers\Json;
  9. /**
  10. * Class SettingController
  11. * @package addons\BossBonus\backend\controllers
  12. */
  13. class SettingController extends BaseController
  14. {
  15. public $enableCsrfValidation = false;
  16. /**
  17. * @return mixed|string|void
  18. */
  19. public function actionIndex()
  20. {
  21. if (Yii::$app->request->isAjax) {
  22. if(Yii::$app->request->isGet){
  23. $configs = Yii::$app->services->setting->addons->get($this->mall_id, DoubleCopyEnum::ADDONS_NAME, 'basic');
  24. if(!isset($configs['is_show_at_center'])) $configs['is_show_at_center'] = 1;
  25. if(empty($configs['reward_name'])) {
  26. $configs['reward_name'] = DoubleCopyEnum::getCapitalMap();
  27. } else {
  28. $configs['reward_name'] = Json::decode($configs['reward_name'], true);
  29. if (empty($configs['reward_name'][DoubleCopyEnum::INDIRECT_PRIZE])) $configs['reward_name'][DoubleCopyEnum::INDIRECT_PRIZE] = '间推奖';
  30. if (empty($configs['reward_name'][DoubleCopyEnum::ALLOWANCE_PRICE])) $configs['reward_name'][DoubleCopyEnum::ALLOWANCE_PRICE] = '津贴奖';
  31. }
  32. // 获取业绩商品
  33. $configs['thaw_goods_ids'] = Json::decode($configs['thaw_goods_ids'], true) ?? [];
  34. $configs['thaw_goods_list'] = [];
  35. if (!empty($configs['thaw_goods_ids'])) {
  36. $configs['thaw_goods_list'] = Goods::find()->select("id,goods_name as name,price,cover_pic,is_on_sale,status")
  37. ->where(['id' => $configs['thaw_goods_ids']])
  38. ->orderBy(["FIELD(id, ".join(',',$configs['thaw_goods_ids']).")" => true])
  39. ->asArray()->all();
  40. }
  41. // 是否显示隐藏前端奖励项默认值
  42. if (empty($configs['show_reward'])) {
  43. $configs['show_reward'] = DoubleCopyEnum::defaultShowReward();
  44. } else {
  45. $configs['show_reward'] = Json::decode($configs['show_reward'], true);
  46. }
  47. if(!isset($configs['reward_currency'])) $configs['reward_currency'] = 'commission';
  48. // 获取等级列表
  49. $configs['levels'] = DoubleCopyLevel::getLevelMap($this->mall_id);
  50. return $this->success('操作成功', $configs);
  51. }
  52. if(Yii::$app->request->isPost){
  53. $post = Yii::$app->request->post('basic');
  54. $rules = [
  55. [['computing_method', 'compute_type', 'equal_settle_basis', 'frozen_settle_basis', 'equal_settle_type','is_send_second',
  56. 'show_achievement','is_show_at_center','achievement_settle', 'is_open_pool', 'deposit_type', 'cycle_type','is_open_level_limit',
  57. 'is_open_no_rewards', 'is_hidden_mobile','is_enable_login','fracture_reward','first_fracture_reward','allowance_level','allowance_compute','equal_level_settle_basis','equal_level_settle_type','is_open_frozen_fund_clear','frozen_fund_clear_time_show','second_prize_diff', 'auto_virtual_user', 'is_freeze_fund_monthly_limited'], 'integer'],
  58. [['reward_name','thaw_goods_ids','pool_name','show_reward'], 'safe'],
  59. [['reward_currency','frozen_fund_clear_time','frozen_fund_clear_date'], 'string'],
  60. ];
  61. $res = Yii::$app->services->validate->validate($post, $rules);
  62. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  63. // 将数组转为json
  64. foreach ($post as &$item) {
  65. if (is_array($item)) $item = Json::encode($item);
  66. }
  67. Yii::$app->services->setting->addons->set($this->mall_id, DoubleCopyEnum::ADDONS_NAME, ['basic' => $post]);
  68. return $this->success('操作成功');
  69. }
  70. }
  71. return $this->render('index');
  72. }
  73. }