添加测试的行政处罚卷宗,添加登录的地区的字段(根据端口号)
This commit is contained in:
@@ -47,6 +47,7 @@ export interface UserInfo {
|
||||
ou_name?: string; // 所属部门名称
|
||||
status?: number; // 账户状态: 0=正常, 1=禁用
|
||||
is_leader?: boolean; // 是否为部门负责人
|
||||
area?: string; // 用户所属地区
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,6 +64,7 @@ export interface SsoUser {
|
||||
ou_name: string;
|
||||
status: number;
|
||||
is_leader: boolean;
|
||||
area?: string;
|
||||
created_at?: string;
|
||||
updated_at?: string;
|
||||
deleted_at?: string;
|
||||
@@ -517,16 +519,18 @@ async function callIDaaSLogout(accessToken: string, appId: string): Promise<void
|
||||
|
||||
/**
|
||||
* 保存用户信息到数据库
|
||||
*
|
||||
*
|
||||
* 此函数实现以下逻辑:
|
||||
* 1. 根据 userInfo.sub 查询 sso_users 表中是否已存在该用户
|
||||
* 2. 如果存在,则更新用户信息
|
||||
* 2. 如果存在,则更新用户信息(如果用户已有 area 值则不更新)
|
||||
* 3. 如果不存在,则插入新的用户记录
|
||||
*
|
||||
*
|
||||
* @param userInfo - 从 IDaaS 获取的用户信息
|
||||
* @param token - JWT令牌
|
||||
* @param area - 用户所属地区,根据端口号确定
|
||||
* @returns Promise<{success: boolean, data?: SsoUser, error?: string}>
|
||||
*/
|
||||
export async function saveUserInfo(userInfo: UserInfo, token?: string): Promise<{success: boolean, data?: SsoUser, error?: string}> {
|
||||
export async function saveUserInfo(userInfo: UserInfo, token?: string, area?: string): Promise<{success: boolean, data?: SsoUser, error?: string}> {
|
||||
try {
|
||||
console.log("开始保存用户信息", userInfo);
|
||||
|
||||
@@ -569,7 +573,15 @@ export async function saveUserInfo(userInfo: UserInfo, token?: string): Promise<
|
||||
if (existingUser) {
|
||||
// 2. 用户已存在,执行更新操作
|
||||
console.log("用户已存在,执行更新操作", existingUser.id);
|
||||
|
||||
|
||||
// 只有在现有用户没有 area 或 area 为空时,才更新 area
|
||||
if (area && !existingUser.area) {
|
||||
userData.area = area;
|
||||
console.log("用户原本无地区信息,更新地区为:", area);
|
||||
} else if (existingUser.area) {
|
||||
console.log("用户已有地区信息:", existingUser.area, "不更新");
|
||||
}
|
||||
|
||||
const updateResult = await postgrestPut<SsoUser[], Partial<SsoUser>>(
|
||||
"sso_users",
|
||||
userData,
|
||||
@@ -583,14 +595,20 @@ export async function saveUserInfo(userInfo: UserInfo, token?: string): Promise<
|
||||
}
|
||||
|
||||
console.log("用户信息更新成功");
|
||||
return {
|
||||
success: true,
|
||||
return {
|
||||
success: true,
|
||||
data: Array.isArray(updateResult.data) ? updateResult.data[0] : updateResult.data as unknown as SsoUser
|
||||
};
|
||||
} else {
|
||||
// 3. 用户不存在,执行插入操作 同时需要给这个用户默认添加一个角色,角色为common
|
||||
// 3. 用户不存在,执行插入操作,设置地区信息
|
||||
console.log("用户不存在,执行插入操作");
|
||||
|
||||
|
||||
// 新用户直接设置 area
|
||||
if (area) {
|
||||
userData.area = area;
|
||||
console.log("新用户,设置地区为:", area);
|
||||
}
|
||||
|
||||
const insertResult = await postgrestPost<SsoUser[], SsoUser>("sso_users", userData as SsoUser, token);
|
||||
|
||||
if (insertResult.error) {
|
||||
@@ -606,8 +624,8 @@ export async function saveUserInfo(userInfo: UserInfo, token?: string): Promise<
|
||||
await addDefaultRole(userData_with_id.id, 2, token);
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
return {
|
||||
success: true,
|
||||
data: userData_with_id
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user