request->isAjax) { if (\Yii::$app->request->isGet) { $get = \Yii::$app->request->get(); $get['mall_id'] = $this->mall_id; $params = []; $user_id_arr = []; $is_search = 0; if (!empty($get['user_id'])) { $is_search = 1; $user_id_arr[] = $get['user_id']; } if (!empty($get['keyword'])) { $is_search = 1; $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['like', 'username', $get['keyword']], ['like', 'nickname', $get['keyword']], ['like', 'mobile', $get['keyword']] ]], 'select' => 'id']); $user_ids = array_column($user_list, 'id'); if (!empty($user_id_arr)) { $user_id_arr = array_intersect($user_id_arr, $user_ids); } else { $user_id_arr = $user_ids; } $company_list = SalesCompany::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['like', 'name', $get['keyword']], ]], 'select' => 'user_id']); $company_user_ids = array_column($company_list, 'user_id'); if (!empty($user_id_arr)) { $user_id_arr = array_merge($user_id_arr, $company_user_ids); } else { $user_id_arr = $company_user_ids; } } if ($is_search) $params['where'][] = ['in', 'user_id', $user_id_arr]; $params['where'][] = ['=', 'mall_id', $this->mall_id]; $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]]; $params['limit'] = 10; $params['order'] = 'created_at desc'; try{ $pageData = SalesCompany::listPage($params, false); }catch(\Exception $e){ return $this->fail('获取数据失败'); } if ($pageData === false) return $this->error(SalesCompany::getStaticError()); if (!empty($pageData['list'])) { $user_id_arr = array_column($pageData['list'], 'user_id'); $user_list = $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile']); $user_arr = []; $company_log = CommissionLog::lists(['where' => [['mall_id' => $this->mall_id,'status'=>StatusEnum::ENABLED,'is_frozen'=>0]], 'index' => 'user_id','select'=>'sum(num) as total_num,user_id','group'=>'user_id']); foreach ($user_list as $item) { $user_arr[$item['id']] = $item; } foreach ($pageData['list'] as &$v) { $v['nickname'] = $v['avatar_url'] = $v['mobile'] = ''; if (isset($user_arr[$v['user_id']])) { $v['mobile'] = $user_arr[$v['user_id']]['mobile']; $v['nickname'] = $user_arr[$v['user_id']]['nickname']; $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url']; } $count = SalesCompanyAgent::find()->where(['mall_id'=>$this->mall_id,'status'=>StatusEnum::ENABLED,'company_id'=>$v['id']])->count(); $v['agent_num'] = $count; $v['num'] = 0; if(isset($company_log[$v['user_id']])){ $v['num'] = $company_log[$v['user_id']]['total_num']; } } } return $this->success('操作成功', $pageData); } } return $this->render('index'); } /** * 查找用户 * @return string */ public function actionSearchUser() { if (\Yii::$app->request->isAjax) { $keyword = \Yii::$app->request->get('keyword', ''); $params = ['keyword' => $keyword, 'mall_id' => $this->mall_id]; $query = User::find()->alias('u') ->where(['u.status' => StatusEnum::ENABLED, 'u.mall_id' => $params['mall_id']]); if (isset($params['keyword']) && !empty($params['keyword'])) { $query->andWhere(['or', ['like', 'nickname', $params['keyword']], ['like', 'mobile', $params['keyword']], ['like', 'id', $params['keyword']]]); } $list = $query->limit(20)->select('u.id,u.nickname,u.mobile')->asArray()->all(); foreach ($list as &$item) { if (empty($item['nickname'])) { $item['nickname'] = $item['mobile'] . "(id:{$item['id']})"; } } $data['list'] = $list; return $this->success('操作成功', $data); } return $this->error(); } /** * 添加用户 * @return string */ public function actionEdit() { try { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['user_id','name'], 'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $params['is_enable'] = 1; $res = SalesCompany::getOne([['mall_id' => $this->mall_id], ['user_id' => $params['user_id']], ['status' => [StatusEnum::ENABLED]]]); if ($res) return $this->error('该会员已绑定销售公司'); $res = SalesCompany::setData($params); if ($res === false) return $this->error(SalesCompany::getStaticError()); return $this->success('操作成功'); }else{ $data['level'] = $level; return $this->success('操作成功',$data); } } } catch (\Exception $e) { return $this->error($e->getMessage(), []); } return $this->render('edit',[ // 'level' => EightOutTwoLogic::getUpgradeLevel($this->mall_id), ]); } /*代理列表*/ public function actionAgentList() { if (\Yii::$app->request->isAjax) { $page = \Yii::$app->request->get('page', 1); $limit = \Yii::$app->request->get('limit', $this->pageSize); $get = Yii::$app->request->get(); $salesCompany = SalesCompany::getOne([['id' => $get['company_id']]]); if (!$salesCompany) { return $this->error('销售公司数据不存在'); } if (!empty($get['user_id'])) { $is_search = 1; $user_id_arr[] = $get['user_id']; } if (!empty($get['keyword'])) { $is_search = 1; $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['like', 'username', $get['keyword']], ['like', 'nickname', $get['keyword']], ['like', 'mobile', $get['keyword']] ]], 'select' => 'id']); $user_ids = array_column($user_list, 'id'); if (!empty($user_id_arr)) { $user_id_arr = array_intersect($user_id_arr, $user_ids); } else { $user_id_arr = $user_ids; } } if ($is_search) $wheres[] = ['in', 'user_id', $user_id_arr]; $wheres[] = ['mall_id' => $this->mall_id]; $wheres[] = ['company_id' => $get['company_id']]; $wheres[] = ['status' => StatusEnum::ENABLED]; $params = [ 'select' => 'id,mall_id,user_id,company_id', 'where' => $wheres, 'order' => 'created_at desc', 'page' => $page, 'limit' => $limit, ]; $salesCompanyAgent = SalesCompanyAgent::listPage($params); if (false === $salesCompanyAgent) { return $this->error(SalesCompanyAgent::getStaticError()); } if (empty($salesCompanyAgent['list'])) { return $this->success('success', $salesCompanyAgent); } $user_ids = array_column($salesCompanyAgent['list'], 'user_id'); $user_list = $user_list = User::lists(['where' => [['id' => $user_ids]], 'select' => 'id,nickname,avatar_url,mobile']); $user_arr = []; foreach ($user_list as $item) { $user_arr[$item['id']] = $item; } $agent_list = CloudStockTwoAgent::lists(['where' => [['user_id' => $user_ids,'status'=>StatusEnum::ENABLED]], 'select' => 'level,user_id','index' => 'user_id']); $level_list = CloudStockTwoLevel::lists(['where' => [['mall_id' => $this->mall_id], ['status' => StatusEnum::ENABLED]], 'index' => 'level']); $level_arr = array_column($salesCompanyAgent['list'], 'level'); foreach ($salesCompanyAgent['list'] as $k => &$v) { $v['nickname'] = $v['avatar_url'] = $v['mobile'] = ''; if (isset($user_arr[$v['user_id']])) { $v['mobile'] = $user_arr[$v['user_id']]['mobile']; $v['nickname'] = $user_arr[$v['user_id']]['nickname']; $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url']; } $v['level'] = $agent_list[$v['user_id']]['level'] ?? 0; $v['level_name'] = $level_list[$v['level']]['name'] ?? ''; } return $this->success('success', $salesCompanyAgent); } return $this->render('index'); } /** * 查找代理 * @return string */ public function actionSearchAgent() { if (\Yii::$app->request->isAjax) { $keyword = \Yii::$app->request->get('keyword', ''); $params = ['keyword' => $keyword, 'mall_id' => $this->mall_id]; $cloudStockAgent = CloudStockTwoAgent::find() ->select('user_id') ->where(['mall_id' => $this->mall_id,'status'=>StatusEnum::ENABLED]) ->asArray() ->column(); $query = User::find()->alias('u') ->where(['u.status' => StatusEnum::ENABLED, 'u.mall_id' => $params['mall_id'],'id'=>$cloudStockAgent]); if (isset($params['keyword']) && !empty($params['keyword'])) { $query->andWhere(['or', ['like', 'nickname', $params['keyword']], ['like', 'mobile', $params['keyword']], ['like', 'id', $params['keyword']]]); } $list = $query->limit(20)->select('u.id,u.nickname,u.mobile')->asArray()->all(); foreach ($list as &$item) { if (empty($item['nickname'])) { $item['nickname'] = $item['mobile'] . "(id:{$item['id']})"; } } $data['list'] = $list; return $this->success('操作成功', $data); } return $this->error(); } /** * 添加代理 * @return string */ public function actionAgentEdit() { try { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['user_id','company_id'], 'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $res = SalesCompanyAgent::getOne([['mall_id' => $this->mall_id], ['user_id' => $params['user_id']], ['status' => [StatusEnum::ENABLED]]]); if ($res) return $this->error('该会员已绑定销售公司'); $res = SalesCompanyAgent::setData($params); if ($res === false) return $this->error(SalesCompany::getStaticError()); return $this->success('操作成功'); }else{ $data['level'] = $level; return $this->success('操作成功',$data); } } } catch (\Exception $e) { return $this->error($e->getMessage(), []); } return $this->render('edit',[ // 'level' => EightOutTwoLogic::getUpgradeLevel($this->mall_id), ]); } /** * 删除 * * @return string */ public function actionAgentDelete() { try { $request = Yii::$app->request; if ($request->isAjax) { if ($request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id'], 'required'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $salesCompanyAgent = SalesCompanyAgent::getOne([['id' => $params['id']]]); if (!$salesCompanyAgent) return $this->error('数据不存在'); $salesCompanyAgent->status = StatusEnum::DELETE; $res = $salesCompanyAgent->save(); if ($res === false) return $this->error("修改失败"); return $this->success('操作成功'); } } } catch (\Exception $e) { return $this->error($e->getMessage(), []); } } /** * 基础配置 * * @return string */ public function actionSetting() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params,[ [['management_fee',], 'integer'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 保存配置 $config = Yii::$app->services->setting->addons->set($this->mall_id, SalesCompanyEnum::ADDONS_NAME, ['basic' => $params]); $this->success('保存成功', $config); } else { // 获取配置 $config = Yii::$app->services->setting->addons->get($this->mall_id, SalesCompanyEnum::ADDONS_NAME, 'basic'); $this->success('获取成功', $config); } } return $this->render($this->action->id); } /* *更改状态 */ public function actionUpdateStatus() { $params = Yii::$app->request->post(); if (!in_array($params['is_enable'], [StatusEnum::ENABLED, StatusEnum::DISABLED])) { return $this->error('参数不对'); } $params['mall_id'] = $this->mall_id; $res = SalesCompany::setData($params); if ($res === false) return $this->error(SalesCompany::getStaticError()); return $this->success('操作成功'); } public function actionIncomeList() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isGet) { $get = \Yii::$app->request->get(); $get['mall_id'] = $this->mall_id; $params = []; $user_id_arr = []; $is_search = 0; if (!empty($get['user_id'])) { $is_search = 1; $user_id_arr[] = $get['user_id']; } if (!empty($get['keyword'])) { $is_search = 1; $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['like', 'username', $get['keyword']], ['like', 'nickname', $get['keyword']], ['like', 'mobile', $get['keyword']] ]], 'select' => 'id']); $company_user_ids = SalesCompany::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['like', 'name', $get['keyword']], ]], 'select' => 'user_id as id']); $user_list_merge = array_merge($user_list,$company_user_ids); $user_ids = array_column($user_list_merge, 'id'); if (!empty($user_id_arr)) { $user_id_arr = array_intersect($user_id_arr, $user_ids); } else { $user_id_arr = $user_ids; } } if ($is_search) $params['where'][] = ['in', 'user_id', $user_id_arr]; $params['where'][] = ['=', 'mall_id', $this->mall_id]; $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]]; $params['where'][] = ['=', 'is_frozen', $get['type']]; $params['limit'] = 10; $params['order'] = 'created_at desc'; try{ $pageData = CommissionLog::listPage($params, false); }catch(\Exception $e){ return $this->fail('获取数据失败'); } if ($pageData === false) return $this->error(CommissionLog::getStaticError()); if (!empty($pageData['list'])) { $user_id_arr = array_column($pageData['list'], 'user_id'); $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile,parent_id']); $user_arr = []; foreach ($user_list as $item) { $user_arr[$item['id']] = $item; } $sales_company_list = SalesCompany::lists(['where' => [['mall_id' => $this->mall_id]], 'select' => 'user_id,name']); $sales_company_arr = []; foreach ($sales_company_list as $item) { $sales_company_arr[$item['user_id']] = $item; } foreach ($pageData['list'] as &$v) { $v['nickname'] = $v['avatar_url'] = $v['mobile'] = ''; if (isset($user_arr[$v['user_id']])) { $v['mobile'] = $user_arr[$v['user_id']]['mobile']; $v['nickname'] = $user_arr[$v['user_id']]['nickname']; $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url']; } $v['rate_money'] = bcsub($v['total_money'],$v['money'],2); $v['company_name'] = $sales_company_arr[$v['user_id']]['name'] ?? ''; } } $total_rate = 0; $total_price = 0; $total = CommissionLog::find()->select('sum(money) as price,sum(total_money) as total_price')->where(['mall_id'=>$this->mall_id,'is_frozen'=>0])->asArray()->one(); if(!empty($total)){ $total_price = $total['price']; $total_rate = $total['total_price'] - $total_price; } $pageData['orderTotalArr'] = [ [ 'type' => 'total_order', 'name' => '平台总抽佣', 'value' => $total_rate, ], [ 'type' => 'total_price', 'name' => '总结算金额', 'value' => $total_price, ], ]; return $this->success('操作成功', $pageData); } } return $this->render('income-list'); } }