request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::VALUE_LABEL; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionUserLevel() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::USER_LEVEL; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionAgentLevel() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::AGENT_LEVEL; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionRepurchase() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::REPURCHASE; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionPoppularize() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::POPULARIZE; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionLead() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::LEAD; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionActive() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::ACTIVE; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionIncome() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::INCOME; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionShare() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::SHARE; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionRefund() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::REFUND; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function actionUserAge() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $param = Yii::$app->request->post(); $param['cate_id'] = MemberLabelEnum::USER_AGE; $result = $this->index($param); return $this->success('操作成功', $result); } } return $this->render('index'); } public function index($param) { $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'cate_id', $param['cate_id'] ?? 1]; $where[] = ['in', 'status', [StatusEnum::DISABLED, StatusEnum::ENABLED]]; if (isset($param['name'])) $where[] = ['like', 'name', $param['name']]; if (!empty($param['date_start'])) { $where[] = ['>=', 'created_at', strtotime($param['date_start'])]; } if (!empty($param['date_end'])) { $where[] = ['<=', 'created_at', strtotime($param['date_end'])]; } $params = array('where' => $where, 'order' => 'id asc', 'limit' => $param['limit'] ?? 50); $page_data = MemberLabel::listPage($params, false); $mapContent = MemberLabelEnum::getMapContent(); if ($page_data['list']) { switch ($param['cate_id']) { case MemberLabelEnum::USER_LEVEL: $level_list = UserLevel::lists([ 'where' => [ ['mall_id' => $this->mall_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]] ], 'select' => 'name,level', ]); $level_arr = array_column($level_list, 'name', 'level'); $level_arr[0] = MallSetting::getDefaultLevelName($this->mall_id); break; case MemberLabelEnum::AGENT_LEVEL: if (MallAddons::isInstall($this->mall_id, 'Agent')) { $level_list = AgentLevel::lists([ 'where' => [ ['mall_id' => $this->mall_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]] ], 'select' => 'name,level', ]); $level_arr = array_column($level_list, 'name', 'level'); } break; } foreach ($page_data['list'] as &$item) { $content = $mapContent[$item['cate_id']]; $item['condition'] = json_decode($item['condition'], true); if (empty($item['condition']['num'])) $item['condition']['num'] = 0; if (in_array($param['cate_id'], [MemberLabelEnum::USER_LEVEL, MemberLabelEnum::AGENT_LEVEL])) { $temp_num = $level_arr[$item['condition']['num']] ?? ''; $content = str_replace('{data}', $temp_num, $content); } else { $content = str_replace('{data}', $item['condition']['num'], $content); } $item['content'] = $content; } } $cateNameMap = MemberLabelEnum::getMap(); $page_data['cate_name'] = $cateNameMap[$param['cate_id']]; $page_data['cate_id'] = $param['cate_id']; return $page_data; } public function Edit() { try { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isGet) { $id = $request->get('id'); $cate_id = $request->get('cate_id'); $detail = []; if (!empty($id)) { $detail = MemberLabel::getOne([['id' => $id], ['mall_id' => $this->mall_id]], true); if (!empty($detail)) { $detail['condition'] = json_decode($detail['condition'], true); } } $contentMap = MemberLabelEnum::getMapContent(); $content = $contentMap[$cate_id] ?? ""; $contentArr = explode('{data}', $content); $content = $contentArr[0]; $unit = $contentArr[1]; $routeMap = MemberLabelEnum::getRouteMap(); $cateNameMap = MemberLabelEnum::getMap(); $level_arr = $levelMap = []; $levelTable = ''; switch ($cate_id) { case MemberLabelEnum::USER_LEVEL: $level_arr = UserLevel::lists([ 'where' => [ ['mall_id' => $this->mall_id], ['status' => StatusEnum::ENABLED] ], 'select' => 'id,name,level', 'order' => 'level asc' ]); $levelMap = array_column($level_arr, 'id', 'level'); $levelTable = UserLevel::tableName(); break; case MemberLabelEnum::AGENT_LEVEL: if (MallAddons::isInstall($this->mall_id, 'Agent')) { $level_arr = AgentLevel::lists([ 'where' => [ ['mall_id' => $this->mall_id], ['status' => StatusEnum::ENABLED] ], 'select' => 'id,name,level', 'order' => 'level asc' ]); $levelMap = array_column($level_arr, 'id', 'level'); $levelTable = AgentLevel::tableName(); } break; } return $this->success('操作成功', [ 'detail' => $detail, 'content' => $content, 'unit' => $unit, 'route' => $routeMap[$cate_id], 'cate_name' => $cateNameMap[$cate_id], 'level_arr' => $level_arr, 'levelMap' => $levelMap, 'levelTable' => $levelTable, ]); } //保存数据 if ($request->isPost) { $params = Yii::$app->request->post('form'); $res = Yii::$app->services->validate->validate($params, [ [['cate_id'], 'integer'], [['name', 'condition', 'color', 'status'], 'required'], [['id', 'source_table', 'source_table_id'], 'safe'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); try { $params['mall_id'] = $this->mall_id; $params['condition'] = json_encode($params['condition']); $model = MemberLabel::setData($params); if ($model == false) throw new \Exception(MemberLabel::getStaticError()); return $this->success('操作成功'); } catch (\Exception $e) { return $this->error($e->getMessage()); } } } } catch (\Exception $e) { return $this->error($e->getMessage(), []); } return $this->render($this->action->id); } public function SwitchStatus() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isPost) { $params = \Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id'], 'required'], [['status'], 'integer'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $res = MemberLabel::setData($params); if ($res === false) return $this->error(AgentLevel::getStaticError()); return $this->success('操作成功'); } } return $this->error(); } public function Del() { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isGet) { try { $params = Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($params, [ [['id', 'cate_id'], 'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['status'] = StatusEnum::DELETE; $params['mall_id'] = $this->mall_id; $res = UserMemberLabel::findOne(['cate_id' . $params['cate_id'] => $params['id'], 'status' => StatusEnum::ENABLED]); if (!empty($res)) throw new Exception('该标签关联了用户'); MemberLabel::updateAll(['status' => StatusEnum::DELETE], ['id' => $params['id'], 'cate_id' => $params['cate_id']]); $routeMap = MemberLabelEnum::getRouteMap(); return $this->success('操作成功', ['route' => $routeMap[$params['cate_id']]]); } catch (\Exception $e) { return $this->error($e->getMessage(), []); } } } } /** * 价值标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionValueLabelEdit() { $this->Edit(); } public function actionValueLabelSwitchStatus() { $this->SwitchStatus(); } public function actionValueLabelDel() { $this->Del(); } /** * 会员等级标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionUserLevelEdit() { $this->Edit(); } public function actionUserLevelSwitchStatus() { $this->SwitchStatus(); } public function actionUserLevelDel() { $this->Del(); } /** * 团队等级标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionAgentLevelEdit() { $this->Edit(); } public function actionAgentLevelSwitchStatus() { $this->SwitchStatus(); } public function actionAgentLevelDel() { $this->Del(); } /** * 复购标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionRepurchaseEdit() { $this->Edit(); } public function actionRepurchaseSwitchStatus() { $this->SwitchStatus(); } public function actionRepurchaseDel() { $this->Del(); } /** * 活跃标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionActiveEdit() { $this->Edit(); } public function actionActiveSwitchStatus() { $this->SwitchStatus(); } public function actionActiveDel() { $this->Del(); } /** * 收入标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionIncomeEdit() { $this->Edit(); } public function actionIncomeSwitchStatus() { $this->SwitchStatus(); } public function actionIncomeDel() { $this->Del(); } /** * 分享标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionShareEdit() { $this->Edit(); } public function actionShareSwitchStatus() { $this->SwitchStatus(); } public function actionShareDel() { $this->Del(); } /** * 退款标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionRefundEdit() { $this->Edit(); } public function actionRefundSwitchStatus() { $this->SwitchStatus(); } public function actionRefundDel() { $this->Del(); } /** * 会员年龄标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionUserAgeEdit() { $this->Edit(); } public function actionUserAgeSwitchStatus() { $this->SwitchStatus(); } public function actionUserAgeDel() { $this->Del(); } /** * 推广标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionPoppularizeEdit() { $this->Edit(); } public function actionPoppularizeSwitchStatus() { $this->SwitchStatus(); } public function actionPoppularizeDel() { $this->Del(); } /** * 领导标签增删改 * @Author: lun * @DateTime: 2023/5/29 0029 17:04 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function actionLeadEdit() { $this->Edit(); } public function actionLeadSwitchStatus() { $this->SwitchStatus(); } public function actionLeadDel() { $this->Del(); } }