代码提交

This commit is contained in:
wong
2025-11-14 11:39:20 +08:00
parent 58243d9c17
commit 5715849de5
6 changed files with 88 additions and 11 deletions

View File

@@ -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'); // 获取好友列表

View File

@@ -0,0 +1,69 @@
<?php
namespace app\chukebao\controller;
use library\ResponseHelper;
use think\Db;
class AccountsController extends BaseController
{
/**
* 获取账号列表(过滤掉后缀为 _offline 与 _delete 的账号)
* @return \think\response\Json
*/
public function getList()
{
try {
$companyId = $this->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,
]);
}
}

View File

@@ -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);
}

View File

@@ -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']) : '';

View File

@@ -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; // 操盘手

View File

@@ -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();