底层创建账号提交

This commit is contained in:
wong
2025-04-18 13:46:34 +08:00
parent b16786c74a
commit ac8600ab6d
3 changed files with 81 additions and 67 deletions

View File

@@ -5,6 +5,7 @@ namespace app\api\controller;
use app\api\model\CompanyAccountModel; use app\api\model\CompanyAccountModel;
use app\api\model\CompanyModel; use app\api\model\CompanyModel;
use Library\S2\Logics\AccountLogic; use Library\S2\Logics\AccountLogic;
use think\Db;
use think\facade\Request; use think\facade\Request;
/** /**
@@ -124,12 +125,11 @@ class AccountController extends BaseController
// 检查账号是否已存在 // 检查账号是否已存在
$existingAccount = CompanyAccountModel::where('userName', $userName)->find(); $existingAccount = CompanyAccountModel::where('userName', $userName)->find();
if(!empty($existingAccount)){ if (!empty($existingAccount)) {
return successJson($existingAccount); return errorJson('账号已存在');
} }
// 构建请求参数 // 构建请求参数
$params = [ $params = [
'userName' => $userName, 'userName' => $userName,
@@ -185,6 +185,7 @@ class AccountController extends BaseController
return errorJson('缺少授权信息'); return errorJson('缺少授权信息');
} }
DB::startTrans();
try { try {
// 获取参数 // 获取参数
$departmentName = $this->request->param('departmentName', ''); $departmentName = $this->request->param('departmentName', '');
@@ -208,83 +209,88 @@ class AccountController extends BaseController
// 检查部门是否已存在 // 检查部门是否已存在
$existingDepartment = CompanyModel::where('name', $departmentName)->find(); $existingDepartment = CompanyModel::where('name', $departmentName)->find();
if (!empty($existingDepartment)) {
return errorJson('部门以存在');
}
// 检查账号是否已存在 // 检查账号是否已存在
$existingAccount = CompanyAccountModel::where('userName', $accountName)->find(); $existingAccount = CompanyAccountModel::where('userName', $accountName)->find();
if (!empty($existingAccount)) {
return errorJson('账号已存在');
}
$headerData = ['client:system']; $headerData = ['client:system'];
$header = setHeader($headerData, $authorization, 'json'); $header = setHeader($headerData, $authorization, 'json');
// 1. 创建部门 // 1. 创建部门
if (empty($existingDepartment)) { $departmentParams = [
$departmentParams = [ 'name' => $departmentName,
'memo' => $departmentMemo,
'departmentIdArr' => [914],
'parentId' => 914
];
$departmentResult = requestCurl($this->baseUrl . 'api/Department/createDepartment', $departmentParams, 'POST', $header, 'json');
if (is_numeric($departmentResult)) {
// 保存部门到数据库
CompanyModel::create([
'id' => $departmentResult,
'name' => $departmentName, 'name' => $departmentName,
'memo' => $departmentMemo, 'memo' => $departmentMemo,
'departmentIdArr' => [914], 'tenantId' => 242,
'parentId' => 914 'isTop' => 0,
]; 'level' => 1,
'parentId' => 914,
$departmentResult = requestCurl($this->baseUrl . 'api/Department/createDepartment', $departmentParams, 'POST', $header, 'json'); 'privileges' => '',
if (is_numeric($departmentResult)) { 'createTime' => time(),
// 保存部门到数据库 'lastUpdateTime' => 0
CompanyModel::create([ ]);
'id' => $departmentResult,
'name' => $departmentName,
'memo' => $departmentMemo,
'tenantId' => 242,
'isTop' => 0,
'level' => 1,
'parentId' => 914,
'privileges' => '',
'createTime' => time(),
'lastUpdateTime' => 0
]);
} else {
return errorJson('创建部门失败:' . $departmentResult);
}
} else { } else {
$departmentResult = $existingDepartment['id']; DB::rollback();
return errorJson('创建部门失败:' . $departmentResult);
} }
if (empty($existingAccount)) {
// 2. 创建账号 // 2. 创建账号
$accountParams = [ $accountParams = [
'userName' => $accountName,
'password' => $accountPassword,
'realName' => $accountRealName,
'nickname' => $accountNickname,
'memo' => $accountMemo,
'departmentId' => $departmentResult,
'departmentIdArr' => [914, $departmentResult]
];
$accountResult = requestCurl($this->baseUrl . 'api/Account/newAccount', $accountParams, 'POST', $header, 'json');
if (is_numeric($accountResult)) {
$res = CompanyAccountModel::create([
'id' => $accountResult,
'tenantId' => 242,
'userName' => $accountName, 'userName' => $accountName,
'password' => $accountPassword,
'realName' => $accountRealName, 'realName' => $accountRealName,
'nickname' => $accountNickname, 'nickname' => $accountNickname,
'passwordMd5' => md5($accountPassword),
'passwordLocal' => localEncrypt($accountPassword),
'memo' => $accountMemo, 'memo' => $accountMemo,
'accountType' => 11,
'departmentId' => $departmentResult, 'departmentId' => $departmentResult,
'departmentIdArr' => [914, $departmentResult] 'createTime' => time(),
]; 'privilegeIds' => json_encode([])
]);
$accountResult = requestCurl($this->baseUrl . 'api/Account/newAccount', $accountParams, 'POST', $header, 'json'); DB::commit();
return successJson($res, '账号创建成功');
if (is_numeric($accountResult)) {
$res = CompanyAccountModel::create([
'id' => $accountResult,
'tenantId' => 242,
'userName' => $accountName,
'realName' => $accountRealName,
'nickname' => $accountNickname,
'passwordMd5' => md5($accountPassword),
'passwordLocal' => localEncrypt($accountPassword),
'memo' => $accountMemo,
'accountType' => 11,
'departmentId' => $departmentResult,
'createTime' => time(),
'privilegeIds' => json_encode([])
]);
return successJson($res, '账号创建成功');
} else {
// 如果创建账号失败,删除已创建的部门
$this->deleteDepartment($accountResult);
return errorJson('创建账号失败:' . $accountResult['msg']);
}
} else { } else {
return successJson($existingAccount, '账号获取成功'); // 如果创建账号失败,删除已创建的部门
$this->deleteDepartment($departmentResult);
DB::rollback();
return errorJson('创建账号失败:' . $accountResult);
} }
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollback();
return errorJson('创建账号失败:' . $e->getMessage()); return errorJson('创建账号失败:' . $e->getMessage());
} }
} }
@@ -363,7 +369,7 @@ class AccountController extends BaseController
// 检查部门名称是否已存在 // 检查部门名称是否已存在
$departmentId = CompanyModel::where('name', $name)->find(); $departmentId = CompanyModel::where('name', $name)->find();
if (!empty($departmentId)) { if (!empty($departmentId)) {
return successJson($departmentId); return errorJson('部门已存在');
} }
// 构建请求参数 // 构建请求参数
@@ -497,10 +503,10 @@ class AccountController extends BaseController
// 设置请求头 // 设置请求头
$headerData = ['client:system']; $headerData = ['client:system'];
$header = setHeader($headerData, $authorization, 'plain'); $header = setHeader($headerData, $authorization, 'json');
// 发送删除请求 // 发送删除请求
$result = requestCurl($this->baseUrl . 'api/Department/del/' . $id, [], 'DELETE', $header); $result = requestCurl($this->baseUrl . 'api/Department/del/' . $id, [], 'DELETE', $header, 'json');
if ($result) { if ($result) {
return errorJson($result); return errorJson($result);

View File

@@ -67,6 +67,6 @@ Route::group('v1/', function () {
// 好友相关 // 好友相关
Route::group('friend', function () { Route::group('friend', function () {
Route::get('', 'app\\cunkebao\\controller\\FriendController@index'); // 获取好友列表 Route::get('', 'app\\cunkebao\\controller\\friend\\GetFriendListV1Controller@index'); // 获取好友列表
}); });
})->middleware(['jwt']); })->middleware(['jwt']);

View File

@@ -19,6 +19,9 @@ class GetFriendListV1Controller extends BaseController
*/ */
public function index() public function index()
{ {
$page = $this->request->param('page',1);
$limit = $this->request->param('limit',20);
try { try {
$where = []; $where = [];
@@ -26,9 +29,12 @@ class GetFriendListV1Controller extends BaseController
$where['companyId'] = $this->getUserInfo('companyId'); $where['companyId'] = $this->getUserInfo('companyId');
} else { } else {
$where['companyId'] = $this->getUserInfo('companyId'); $where['companyId'] = $this->getUserInfo('companyId');
$where['userId'] = $this->getUserInfo('id'); //$where['userId'] = $this->getUserInfo('id');
} }
print_r($where);
exit;
$data = WechatFriend::alias('wf') $data = WechatFriend::alias('wf')
->field(['wa1.nickname','wa1.avatar','wa1.alias','wa1.wechatId','wa2.nickname as ownerNickname','wa2.alias as ownerAlias','wf.createTime']) ->field(['wa1.nickname','wa1.avatar','wa1.alias','wa1.wechatId','wa2.nickname as ownerNickname','wa2.alias as ownerAlias','wf.createTime'])
@@ -36,6 +42,8 @@ class GetFriendListV1Controller extends BaseController
->leftJoin('wechat_account wa2','wf.ownerWechatId = wa2.wechatId') ->leftJoin('wechat_account wa2','wf.ownerWechatId = wa2.wechatId')
->where($where); ->where($where);
$total = $data->count();
$list = $data->page($page, $limit)->select();
@@ -44,8 +52,8 @@ class GetFriendListV1Controller extends BaseController
'code' => 200, 'code' => 200,
'msg' => '获取成功', 'msg' => '获取成功',
'data' => [ 'data' => [
'list' => $data->select(), 'list' => $list,
'total' => $data->total(), 'total' => $total,
] ]
]); ]);
} catch (\Exception $e) { } catch (\Exception $e) {