| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- <?php
- namespace addons\LuckyGroup\backend\controllers;
- use addons\LuckyGroup\common\enums\LuckyGroupEnum;
- use addons\LuckyGroup\common\models\LuckyGroupLevel;
- use addons\LuckyGroup\common\models\LuckyGroupUser;
- use common\enums\StatusEnum;
- use common\models\common\UpgradeCondition;
- use common\models\goods\Goods;
- class GroupLevelController extends BaseController
- {
- /**
- * @name:
- * @msg: 拼团等级首页
- * @param {*}
- * @return {*}
- */
- public function actionIndex()
- {
- if (\Yii::$app->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('删除成功');
- }
- }
|