Browse Source

config and email reg and customer switch

master
chuan 3 months ago
parent
commit
bab341caf1
  1. 8
      app/admin/controller/Agent.php
  2. 1
      app/admin/route/app.php
  3. 18
      app/admin/service/AgentService.php
  4. 19
      app/admin/service/UserService.php
  5. 16
      app/home/controller/Config.php
  6. 1
      app/home/route/app.php
  7. 25
      app/home/service/ConfigService.php
  8. 15
      app/home/service/LoginService.php
  9. 4
      app/home/validate/LoginValidate.php
  10. 10
      app/model/AdminModel.php

8
app/admin/controller/Agent.php

@ -39,6 +39,14 @@ class Agent extends AdminBaseController
return json($result);
}
// 客服接待用户开启或关闭
public function customerReceptionEdit()
{
$service = new AgentService();
$result = $service->customerReceptionEdit($this->request->param());
return json($result);
}
// 客服下所有用户
public function customerUserList()
{

1
app/admin/route/app.php

@ -179,6 +179,7 @@ Route::group('/', function () {
Route::post('/agent/user', 'Agent/user');
Route::post('/agent/manager', 'Agent/manager');
Route::post('/agent/customer_list', 'Agent/customerList'); //客服列表,支持搜索某个代理下的客服
Route::post('/agent/customer_reception_edit', 'Agent/customerReceptionEdit'); // 客服开启接待用户、关闭接待用户设置
Route::post('agent/customer_user_list', 'Agent/customerUserList'); //获取客服下所有用户
Route::post('/agent/change_user_customer', 'Agent/changeUserCustomer')->middleware('admin_log'); //变更用户绑定的客服
Route::post('/agent/aws_ivs_list', 'Agent/awsIvsList'); //直播推流列表

18
app/admin/service/AgentService.php

@ -203,6 +203,24 @@ class AgentService extends AdminBaseService
}
}
public function customerReceptionEdit($param)
{
try {
if (empty($param['id']) || empty($param['ext'])) {
return $this->toData('400', '缺少参数');
}
$role = AdminModel::where(['id'=>$param['id']])->find();
if (empty($role)) {
return $this->toData('400', '修改的数据不存在');
}
$role->ext = $param['ext'];
$role->save();
return $this->toData('0', 'success');
} catch (\Exception $e){
return $this->toData('500', '系统异常 请稍后重试', [$e->getMessage(), $e->getTrace()]);
}
}
public function customerUserList($param)
{
try {

19
app/admin/service/UserService.php

@ -78,6 +78,21 @@ class UserService extends AdminBaseService
$where['base_label'] = trim($param['base_label']);
}
// 用户标签状态过滤
$cdt = [];
if (isset($param['first_stage_state'])) {
$filterUserIds = UserStageStateModel::where(['first_stage_state' => $param['first_stage_state']])->column('user_id');
}
if (isset($param['second_stage_state'])) {
$filterUserIds = UserStageStateModel::where(['second_stage_state' => $param['second_stage_state']])->column('user_id');
}
if (isset($param['third_stage_state'])) {
$filterUserIds = UserStageStateModel::where(['third_stage_state' => $param['third_stage_state']])->column('user_id');
}
if (!empty($filterUserIds)) {
$cdt[] = ['user_id', 'in', $filterUserIds];
}
// 邮箱搜索
if (!empty($param['email']) && trim($param['email'])) {
$where['email'] = $param['email'];
@ -146,11 +161,11 @@ class UserService extends AdminBaseService
return $this->toData('0', 'SUCCESS', ['total' => 0, 'list' => [], 'extent' => ['market_type_list' => StockMarketModel::STOCK_MARKET_TYPE, 'is_agent' => $IsAgent, 'agent_list' => $agentNameArr, 'market_rate' => $marketRate, 'market_tape_list' => $tapeList]]);
}
$userList = UserModel::where($where)->where($whereU)->page($param['page'], $param['limit'])->order('user_id', 'desc')->select();
$userList = UserModel::where($where)->where($cdt)->where($whereU)->page($param['page'], $param['limit'])->order('user_id', 'desc')->select();
if (empty($userList)) {
return $this->toData('0', 'SUCCESS', ['total' => 0, 'list' => [], 'extent' => ['market_type_list' => StockMarketModel::STOCK_MARKET_TYPE, 'is_agent' => $IsAgent, 'agent_list' => $agentNameArr, 'market_rate' => $marketRate, 'market_tape_list' => $tapeList]]);
}
$total = UserModel::where($where)->where($whereU)->count();
$total = UserModel::where($where)->where($cdt)->where($whereU)->count();
$rows = [];

16
app/home/controller/Config.php

@ -0,0 +1,16 @@
<?php
namespace app\home\controller;
use app\home\service\ConfigService;
class Config extends HomeBaseController{
// 获取管理端添加的配置
public function getConfigByKey()
{
$service = new ConfigService();
$result = $service->getConfigByKey($this->request->param());
return json($result);
}
}

1
app/home/route/app.php

@ -44,6 +44,7 @@ Route::group('/',function (){
// 获取配置
Route::post('/get_config', 'Upload/getConfig');
Route::post('/get_config_by_key', 'Config/getConfigByKey'); // 获取指定keyd的配置
})->middleware(\app\home\middleware\RepeatOperateMiddleware::class);
// 获取帮助中心文档

25
app/home/service/ConfigService.php

@ -0,0 +1,25 @@
<?php
namespace app\home\service;
use app\model\ConfigModel;
class ConfigService extends BaseHomeService
{
public function getConfigByKey($param)
{
try {
if (empty($param['name'])) {
return $this->toData('400', '参数错误');
}
$configData = [];
$config = ConfigModel::where(['name'=>trim($param['name'])])->find();
if (!empty($config)) {
$configData = $config->toArray();
}
return $this->toData('0', 'SUCCESS', ['data' => $configData]);
} catch (\Exception $e) {
return $this->toData('500', 'The system is busy. Please try again later.', [$e->getMessage()]);
}
}
}

15
app/home/service/LoginService.php

@ -92,10 +92,11 @@ class LoginService extends BaseHomeService
// 获取客户端ip
$ip = $this->getClientRealIp();
$param['invite_code'] = $param['invite_code'] ?? ''; // 邀请码,可以是管理端的非代理账号,也可以是user表的用户
$param['agent_code'] = $param['agent_code'] ?? ''; // 代理
$inviteCode = $param['invite_code'] ?? AdminModel::getDefaultAgentId(); // p2项目中如果注册时未填写邀请码,则将用户分配到这个默认的代理下
$agentCode = $param['agent_code'] ?? ''; // 代理
$chCode = $param['ch_code'] ?? ''; // 注册渠道标识码
$phone = $param['phone']; //p2定制需求-邮箱注册必须传手机号
$email = $param['email'];
// 邮件注册参数校验
validate(LoginValidate::class)->scene('emailRegister')->check($param);
@ -119,10 +120,6 @@ class LoginService extends BaseHomeService
}
}
$email = $param['email'];
$inviteCode = trim($param['invite_code']);
$agentCode = trim($param['agent_code']);
// 邮箱是否已经存在
$emailExists = UserModel::checkEmailExists($email);
if ($emailExists) {
@ -437,8 +434,8 @@ class LoginService extends BaseHomeService
// 防止重复操作
$ip = $this->getClientRealIp();
$param['invite_code'] = $param['invite_code'] ?? '';
$param['agent_code'] = $param['agent_code'] ?? '';
$inviteCode = $param['invite_code'] ?? AdminModel::getDefaultAgentId(); // p2项目中如果注册时未填写邀请码,则将用户分配到这个默认的代理下
$agentCode = $param['agent_code'] ?? ''; // 代理
$chCode = $param['ch_code'] ?? '';
// 短信注册参数校验
@ -470,8 +467,6 @@ class LoginService extends BaseHomeService
}
// 邀请人
$inviteCode = trim($param['invite_code']);
$agentCode = trim($param['agent_code']);
$parentUserId = 0;
$agentId = 0;
if (!empty($inviteCode)) {

4
app/home/validate/LoginValidate.php

@ -42,10 +42,10 @@ class LoginValidate extends BaseHomeValidate
protected $scene = [
'sendEmail' => ['email'],
'emailRegister' => ['phone', 'email', 'email_code', 'password', 'invite_code'],
'emailRegister' => ['phone', 'email', 'email_code', 'password'],
'emailLogin' => ['email', 'password','device'],
'sendSms' => ['phone', 'nation'],
'smsRegister' => ['phone', 'nation','sms_code', 'password', 'invite_code'],
'smsRegister' => ['phone', 'nation','sms_code', 'password'],
'smsLogin' => ['phone', 'nation','sms_code','device'],
'emailForget' => ['email', 'email_code', 'password'],
'smsForget' => ['phone', 'nation','sms_code', 'password'],

10
app/model/AdminModel.php

@ -12,6 +12,7 @@ class AdminModel extends BaseModel
const ROLE_ID_ADMIN = 1; //超级管理员角色
const ROLE_ID_AGENT = 2; // 代理角色
const DEFAULT_AGENT_ID = 2; // 默认的代理ID(P2项目用户注册时,邀请码未填时,就分配给这个默认的代理下)
// 通过代理id 获取代理下面可以访问的所有用户id
public static function getUserIdsByAgentId($agentId)
{
@ -81,12 +82,19 @@ class AdminModel extends BaseModel
return $self;
}
// 获取默认的代理ID
public static function getDefaultAgentId(): int
{
return self::DEFAULT_AGENT_ID;
}
public static function getCustomerIdsByAgentId($agentId): array
{
$role = AuthRoleModel::where(['name'=>'客服'])->find();
if (empty($role)) {
return [];
}
return self::where(['role_id'=>$role->id,'parent_id'=>$agentId])->column('id');
// p2项目中有客服接待开关,如果客服开启接待,则ext字段设置为1,否则为空或者2
return self::where(['role_id'=>$role->id,'parent_id'=>$agentId,'ext'=>1])->column('id');
}
}
Loading…
Cancel
Save