request->isAjax) { if (\Yii::$app->request->isGet) { $page = \Yii::$app->request->get('page', 1); $limit = \Yii::$app->request->get('limit', $this->pageSize); $keyword = \Yii::$app->request->get('keyword'); $wheres[] = ['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]; if (!empty($keyword)) { $wheres[] = ['like', 'name', $keyword]; } $params = [ 'select' => 'id,level,name,team_commission,is_percent_team,equal_commission,is_percent_equal,over_commission,is_percent_over,created_at', 'where' => $wheres, 'order' => 'level asc,created_at desc', 'page' => $page, 'limit' => $limit, ]; $list = LuckyGroupLevel::listPage($params); if (false === $list['list']) { return $this->error(LuckyGroupLevel::getStaticError()); } foreach ($list['list'] as &$val) { if (1 == $val['is_percent_team']) { $val['team_commission'] .= '%'; } else { $val['team_commission'] .= ' 元'; } if (1 == $val['is_percent_equal']) { $val['equal_commission'] .= '%'; } else { $val['equal_commission'] .= ' 元'; } if (1 == $val['is_percent_over']) { $val['over_commission'] .= '%'; } else { $val['over_commission'] .= ' 元'; } } return $this->success('success', $list); } else { } } else { return $this->render('/level/index'); } } /** * @name: * @msg: 拼团等级--编辑 or 添加 * @param {*} * @return {*} */ public function actionStorage() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isGet) { $id = \Yii::$app->request->get('id'); $data['weights'] = LuckyGroupLevel::getLevelWeights($this->mall_id); if (!empty($id)) { // 编辑等级 $level_info = LuckyGroupLevel::find() ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $id]) ->asArray() ->one(); if (!empty($level_info['checked_condition_keys'])) { $level_info['checked_condition_keys'] = json_decode($level_info['checked_condition_keys'], true); } else { $level_info['checked_condition_keys'] = []; } if (!empty($level_info['checked_condition_values'])) { $level_info['checked_condition_values'] = json_decode($level_info['checked_condition_values'], true); } else { $update_conditions = UpgradeCondition::getData(UpgradeCondition::$lucky_group_condition_ids); $condition_values = []; foreach ($update_conditions as $key => $condition) { $condition_values[] = [ 'key' => $condition['id'], 'value' => [], ]; foreach($condition['setting'] as $val) { $condition_values[$key]['value'][$val['name']] = $val['default_val']; } } $level_info['checked_condition_values'] = $condition_values; } if (!empty($level_info['goods_ids'])) { $level_info['goods_ids'] = json_decode($level_info['goods_ids'], true); $level_info['goods_list'] = Goods::find() ->select('id,goods_name as name,cover_pic,price') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $level_info['goods_ids']]) ->orderBy('id asc') ->asArray() ->all(); } else { $level_info['goods_ids'] = []; $level_info['goods_list'] = []; } } else { $level_info = []; } $data['level_info'] = $level_info; return $this->success('success', $data); } else { $post = \Yii::$app->request->post(); // dd($post); if ($post['is_auto_upgrade'] == 1 && $post['upgrade_type_condition'] == 1 && empty($post['checked_condition_values'])) { return $this->error('按照条件自动升级必须先设置升级条件'); } $rules = [ [['name', 'team_commission', 'equal_commission', 'over_commission', 'init_attend_times', 'is_auto_upgrade', 'upgrade_type_goods', 'upgrade_type_condition', 'buy_goods_type', 'condition_type'], 'required'], [['level', 'init_attend_times', 'is_auto_upgrade', 'upgrade_type_goods', 'upgrade_type_condition', 'buy_goods_type', 'condition_type'], 'integer'], [['team_commission', 'equal_commission', 'over_commission'], 'number'], [['desc'], 'string'], [['id', 'goods_ids', 'checked_condition_keys', 'goods_type', 'checked_condition_values'], 'safe'], ]; $res = \Yii::$app->services->validate->validate($post, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $res = LuckyGroupLevel::setData($this->mall_id, $post); if (false === $res) { return $this->error(LuckyGroupLevel::getStaticError()); } return $this->success('保存成功'); } } else { $lucky_group_upgrade_condition = \Yii::$app->services->setting->addons->get($this->mall_id, LuckyGroupEnum::ADDONS_NAME, 'upgrade_condition'); $list = []; if (!empty($lucky_group_upgrade_condition['lucky_group_level_upgrade_condition'])) { $ids = json_decode($lucky_group_upgrade_condition['lucky_group_level_upgrade_condition'], true); if (!empty($ids)) { if(!empty($ids)) { $list = UpgradeCondition::getData($ids); } } } $upgrade_condition_data = UpgradeCondition::getUpgradeConditionData($this, $this->mall_id, $list); // dd(json_decode($upgrade_condition_data['source_list'], true)); // dd(json_decode($upgrade_condition_data['key_arr'], true)); return $this->render('/level/add-edit', $upgrade_condition_data); } } /** * @name: * @msg: 升级条件设置 * @param {*} * @return {*} */ public function actionCondition() { if (\Yii::$app->request->isAjax) { try { if (\Yii::$app->request->isGet) { $data['upgrade_condition'] = UpgradeCondition::getData(UpgradeCondition::$lucky_group_condition_ids); $lucky_group_upgrade_condition = \Yii::$app->services->setting->addons->get($this->mall_id, LuckyGroupEnum::ADDONS_NAME, 'upgrade_condition'); $data['checked_condition_keys'] = !empty($lucky_group_upgrade_condition['lucky_group_level_upgrade_condition']) ? json_decode($lucky_group_upgrade_condition['lucky_group_level_upgrade_condition'], true) : []; return $this->success('操作成功', $data); } else { $postData = \Yii::$app->request->post(); if (!isset($postData['checked_condition_keys'])) { $postData['checked_condition_keys'] = []; } $data['upgrade_condition'] = ['lucky_group_level_upgrade_condition' => json_encode($postData['checked_condition_keys'])]; \Yii::$app->services->setting->addons->set($this->mall_id, LuckyGroupEnum::ADDONS_NAME, $data); UpgradeCondition::clear($postData['checked_condition_keys'], 'addons\LuckyGroup\common\models\LuckyGroupLevel', $this->mall_id); return $this->success('操作成功'); } } catch (\Exception $e) { return $this->error($e->getMessage()); } } else { return $this->render('/level/condition'); } } /** * @name: * @msg: 删除等级 * @param {*} * @return {*} */ public function actionDelete() { if (!\Yii::$app->request->isPost) { return $this->error('请求方式错误'); } $id = \Yii::$app->request->post('id'); if (empty($id)) { return $this->error('参数错误'); } $level = LuckyGroupLevel::findOne(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $id]); if (empty($level)) { return $this->error('等级不存在'); } $lg_user = LuckyGroupUser::findOne(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'level' => $level->level]); if (!empty($lg_user)) { return $this->error('当前等级有拼团会员,不能删除'); } $params = ['id' => $id, 'status' => StatusEnum::DELETE]; $res = LuckyGroupLevel::setData($this->mall_id, $params); if (false === $res) { return $this->error(LuckyGroupLevel::getStaticError()); } return $this->success('删除成功'); } }