| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace addons\Boss\backend\controllers;
- use addons\Boss\common\enums\BossEnum;
- use addons\Boss\common\enums\LevelEnum;
- use addons\Boss\common\listeners\OrderPaidListener;
- use addons\Boss\common\models\AddonsBoss;
- use addons\Boss\common\models\AddonsBossLevel;
- use Yii;
- use common\controllers\AddonsController;
- use common\enums\StatusEnum;
- /**
- * 基础配置控制器
- *
- * Class SettingController
- * @package addons\Boss\backend\controllers
- */
- class SettingController extends AddonsController
- {
- /**
- * @var string
- */
- // public $layout = "@addons/Boss/backend/views/layouts/main";
- public $enableCsrfValidation = false;
- /**
- * 基础配置
- * @Author: lun
- * @DateTime: 2021/10/23 0023 10:14
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionIndex()
- {
- $retuest = Yii::$app->request;
- if ($retuest->isAjax) {
- if ($retuest->isPost) {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params,[
- [['detail'], 'string'],
- [['is_enable','compute_type','compute_period','settlement_method','settlement_period','is_show_at_center','is_sediment','sediment_type', 'is_decr_score', 'is_prize_pool', 'prize_pool_time', 'prize_pool_period', 'performance_settlement_method', 'prize_pool_source', 'custom_compute_days'], 'integer'],
- [['is_enable','compute_type','compute_period','settlement_method','settlement_period'], 'required'],
- [['sediment_percent', 'prize_pool_amount'], 'double'],
- [['boss_level', 'participate_decr_score_type'], 'safe'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- if (!empty($params['boss_level'])) $params['boss_level'] = json_encode($params['boss_level']);
- if (
- isset($params['compute_period']) &&
- $params['compute_period'] == LevelEnum::PERIOD_CUSTOM_DAYS &&
- (empty($params['custom_compute_days']) || $params['custom_compute_days'] <= 0)
- ) {
- $this->error('请输入正确结算天数');
- return;
- }
- // 保存配置
- $config = Yii::$app->services->setting->addons->set($this->mall_id, BossEnum::ADDONS_NAME, ['basic' => $params]);
- $this->success('保存成功', $config);
- } else {
- // 获取配置
- $config = Yii::$app->services->setting->addons->get($this->mall_id, BossEnum::ADDONS_NAME, 'basic');
- //$is_show_decr_score = isset(\Yii::$app->params['is_show_decr_score']) ? intval(\Yii::$app->params['is_show_decr_score']): 0;
- $is_show_decr_score = 1;
- $config['is_show_decr_score'] = $is_show_decr_score;
- $config['participate_decr_score_type'] = json_decode($config['participate_decr_score_type'] ?? '', true) ?: [];
- $config['participate_decr_score_type'] = array_merge([
- 'perpetual' => 1,
- 'extra' => 0
- ], $config['participate_decr_score_type']);
- if(!isset($config['is_show_at_center'])) $config['is_show_at_center'] = 1;
- $config['boss_level'] = !empty($config['boss_level']) ? json_decode($config['boss_level'], true) : [];
- //获取股东权重数据
- $levels = AddonsBossLevel::lists([
- 'where' => [
- ['mall_id' => $this->mall_id],
- ['status' => StatusEnum::ENABLED],
- ],
- 'select' => 'id,level,name',
- ]);
- $config['levels'] = $levels;
- $this->success('获取成功', $config);
- }
- }
- return $this->render($this->action->id);
- }
- }
|