From 5715849de5d5ca10daeebf4c32a2adbf5657f868 Mon Sep 17 00:00:00 2001 From: wong <106998207@qq.com> Date: Fri, 14 Nov 2025 11:39:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/application/chukebao/config/route.php | 5 ++ .../controller/AccountsController.php | 69 +++++++++++++++++++ .../chukebao/controller/MessageController.php | 7 +- .../controller/WechatFriendController.php | 1 - Server/application/common/model/User.php | 2 +- .../company/CreateCompanyController.php | 15 ++-- 6 files changed, 88 insertions(+), 11 deletions(-) create mode 100644 Server/application/chukebao/controller/AccountsController.php diff --git a/Server/application/chukebao/config/route.php b/Server/application/chukebao/config/route.php index f9d04ddf..289e6fb0 100644 --- a/Server/application/chukebao/config/route.php +++ b/Server/application/chukebao/config/route.php @@ -27,6 +27,11 @@ Route::group('v1/', function () { Route::get('list', 'app\chukebao\controller\CustomerServiceController@getList'); // 获取好友列表 }); + //账号管理 + Route::group('accounts/', function () { + Route::get('list', 'app\chukebao\controller\AccountsController@getList'); // 获取账号列表 + }); + //客服相关 Route::group('message/', function () { Route::get('list', 'app\chukebao\controller\MessageController@getList'); // 获取好友列表 diff --git a/Server/application/chukebao/controller/AccountsController.php b/Server/application/chukebao/controller/AccountsController.php new file mode 100644 index 00000000..c69d9534 --- /dev/null +++ b/Server/application/chukebao/controller/AccountsController.php @@ -0,0 +1,69 @@ +getUserInfo('companyId'); + } catch (\Exception $e) { + return ResponseHelper::error($e->getMessage(), $e->getCode() ?: 401); + } + + if (empty($companyId)) { + return ResponseHelper::error('请先登录', 401); + } + + $page = max(1, intval($this->request->param('page', 1))); + $limit = max(1, intval($this->request->param('limit', 10))); + $keyword = trim((string)$this->request->param('keyword', '')); + + $query = Db::table('s2_company_account') + ->alias('a') + ->where([ + ['a.departmentId', '=', $companyId], + ['a.status', '=', 0], + ]) + ->whereNotLike('a.userName', '%_offline') + ->whereNotLike('a.userName', '%_delete'); + + if ($keyword !== '') { + $query->where(function ($subQuery) use ($keyword) { + $likeKeyword = '%' . $keyword . '%'; + $subQuery->whereLike('a.userName', $likeKeyword) + ->whereOrLike('a.realName', $likeKeyword) + ->whereOrLike('a.nickname', $likeKeyword); + }); + } + + $total = (clone $query)->count(); + $list = $query->field([ + 'a.id', + 'a.userName', + 'a.realName', + 'a.nickname', + 'a.departmentId', + 'a.departmentName', + 'a.avatar' + ]) + ->order('a.id', 'desc') + ->page($page, $limit) + ->select(); + + + + return ResponseHelper::success([ + 'total' => $total, + 'list' => $list, + ]); + } +} \ No newline at end of file diff --git a/Server/application/chukebao/controller/MessageController.php b/Server/application/chukebao/controller/MessageController.php index 5a6402c2..93f491a9 100644 --- a/Server/application/chukebao/controller/MessageController.php +++ b/Server/application/chukebao/controller/MessageController.php @@ -20,7 +20,7 @@ class MessageController extends BaseController $friends = Db::table('s2_wechat_friend') ->where(['accountId' => $accountId, 'isDeleted' => 0]) - ->column('id,nickname,avatar,conRemark,labels,groupId,wechatAccountId,wechatId'); + ->column('id,nickname,avatar,conRemark,labels,groupId,wechatAccountId,wechatId,extendFields,phone,region'); // 构建好友子查询 @@ -119,7 +119,11 @@ class MessageController extends BaseController $v['groupId'] = !empty($friends[$v['wechatFriendId']]) ? $friends[$v['wechatFriendId']]['groupId'] : ''; $v['wechatAccountId'] = !empty($friends[$v['wechatFriendId']]) ? $friends[$v['wechatFriendId']]['wechatAccountId'] : ''; $v['wechatId'] = !empty($friends[$v['wechatFriendId']]) ? $friends[$v['wechatFriendId']]['wechatId'] : ''; + $v['extendFields'] = !empty($friends[$v['wechatFriendId']]) ? $friends[$v['wechatFriendId']]['extendFields'] : []; + $v['region'] = !empty($friends[$v['wechatFriendId']]) ? $friends[$v['wechatFriendId']]['region'] : ''; + $v['phone'] = !empty($friends[$v['wechatFriendId']]) ? $friends[$v['wechatFriendId']]['phone'] : ''; $v['labels'] = !empty($friends[$v['wechatFriendId']]) ? json_decode($friends[$v['wechatFriendId']]['labels'], true) : []; + $unreadCount = isset($friendUnreadMap[$v['wechatFriendId']]) ? (int)$friendUnreadMap[$v['wechatFriendId']] : 0; $v['aiType'] = isset($aiTypeData[$v['wechatFriendId']]) ? $aiTypeData[$v['wechatFriendId']] : 0; unset($v['chatroomId']); @@ -150,7 +154,6 @@ class MessageController extends BaseController } unset($v); - return ResponseHelper::success($list); } diff --git a/Server/application/chukebao/controller/WechatFriendController.php b/Server/application/chukebao/controller/WechatFriendController.php index 74710c1e..644bd0a9 100644 --- a/Server/application/chukebao/controller/WechatFriendController.php +++ b/Server/application/chukebao/controller/WechatFriendController.php @@ -36,7 +36,6 @@ class WechatFriendController extends BaseController foreach ($list as $k => &$v) { $v['labels'] = json_decode($v['labels'], true); $v['siteLabels'] = json_decode($v['siteLabels'], true); - $v['extendFields'] = json_decode($v['extendFields'], true); $v['createTime'] = !empty($v['createTime']) ? date('Y-m-d H:i:s', $v['createTime']) : ''; $v['updateTime'] = !empty($v['updateTime']) ? date('Y-m-d H:i:s', $v['updateTime']) : ''; $v['passTime'] = !empty($v['passTime']) ? date('Y-m-d H:i:s', $v['passTime']) : ''; diff --git a/Server/application/common/model/User.php b/Server/application/common/model/User.php index 9bb3450b..e5397c4d 100644 --- a/Server/application/common/model/User.php +++ b/Server/application/common/model/User.php @@ -9,7 +9,7 @@ class User extends Model { use SoftDelete; - const ADMIN_STP = 1; // 主操盘手账号 + const ADMIN_STP = 1; // 操盘手账号 const ADMIN_OTP = 0; const NOT_USER = -1; // 非登录用户用于任务操作的(S2系统专属) const MASTER_USER = 1; // 操盘手 diff --git a/Server/application/superadmin/controller/company/CreateCompanyController.php b/Server/application/superadmin/controller/company/CreateCompanyController.php index c01e2a7f..33bf632d 100644 --- a/Server/application/superadmin/controller/company/CreateCompanyController.php +++ b/Server/application/superadmin/controller/company/CreateCompanyController.php @@ -176,9 +176,9 @@ class CreateCompanyController extends BaseController protected function createFuncUsers(array $params): void { $seedCols = [ - ['account' => $params['account'] . '_01', 'username' => $params['username'] . '_子账号01', 'status' => UsersModel::STATUS_STOP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::NOT_USER], - ['account' => $params['account'] . '_02', 'username' => $params['username'] . '_子账号02', 'status' => UsersModel::STATUS_STOP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::NOT_USER], - ['account' => $params['account'] . '_03', 'username' => $params['username'] . '_子账号03', 'status' => UsersModel::STATUS_STOP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::NOT_USER], + ['account' => $params['account'] . '_01', 'username' => $params['username'] . '_子账号01', 'status' => UsersModel::ADMIN_STP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::MASTER_USER], + ['account' => $params['account'] . '_02', 'username' => $params['username'] . '_子账号02', 'status' => UsersModel::ADMIN_STP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::MASTER_USER], + ['account' => $params['account'] . '_03', 'username' => $params['username'] . '_子账号03', 'status' => UsersModel::ADMIN_STP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::MASTER_USER], ['account' => $params['account'] . '_offline', 'username' => $params['username'] . '_处理离线专用', 'status' => UsersModel::STATUS_STOP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::NOT_USER], ['account' => $params['account'] . '_delete', 'username' => $params['username'] . '_处理删除专用', 'status' => UsersModel::STATUS_STOP, 'isAdmin' => UsersModel::ADMIN_OTP, 'typeId' => UsersModel::NOT_USER], ]; @@ -267,7 +267,7 @@ class CreateCompanyController extends BaseController protected function setDepartmentPrivileges(array $params): void { - $params = ArrHelper::getValue('companyId=departmentId', $params); + $params = ArrHelper::getValue('companyId', $params); $accountController = new \app\api\controller\AccountController(); $accountController->setPrivileges(['id' => $params['companyId']]); } @@ -283,8 +283,12 @@ class CreateCompanyController extends BaseController $params = $this->request->only(['name', 'status', 'username', 'account', 'password', 'phone', 'memo']); $params = $this->dataValidate($params)->creatS2About($params); + // 设置部门权限 + $this->setDepartmentPrivileges($params); + Db::startTrans(); + $this->checkCompanyNameOrAccountOrPhoneExists(ArrHelper::getValue('name,account,phone', $params)); $this->createCkbAbout($params); @@ -292,9 +296,6 @@ class CreateCompanyController extends BaseController $this->createFuncUsers($params); Db::commit(); - // 设置部门权限 ????? - $this->setDepartmentPrivileges($params); - return ResponseHelper::success(); } catch (Exception $e) { Db::rollback();