longz
2026-06-29 9d4cbff7464ebfd7803c2ce53ded49d0f73fe011
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
export interface MiniLoginResponse {
  token: string
  mpUserId: number
  userType: string
  deptId: number | null
  deptName?: string | null
  deptLeader?: boolean | null
  avatarUrl: string | null
  companyName?: string | null
  displayName: string
}
 
export interface OfficialOAuthUrlResponse {
  url: string
}
 
export interface MiniOfficialLoginResponse {
  mobileRequired: boolean
  bindToken?: string | null
  login?: MiniLoginResponse | null
}
 
export interface MiniAuthMeResponse {
  mpUserId: number
  userType: string
  deptId: number | null
  deptName?: string | null
  deptLeaderFlag: boolean
  nickName: string
  avatarUrl: string | null
  mobile: string
  gender?: string | null
  companyName?: string | null
}
 
export interface MiniUserProfile {
  mpUserId: number
  userType: string
  deptId: number | null
  deptName: string | null
  deptLeaderFlag: boolean
  avatarUrl: string | null
  displayName: string
  mobile: string | null
  gender: string | null
  companyName: string | null
}
 
export interface MiniProfileUpdateRequest {
  nickName: string
  gender?: string | null
  companyName?: string | null
  avatarUrl?: string | null
}
 
export function normalizeProfileDisplayName(value?: string | null) {
  return (value || '').trim()
}
 
export function normalizeLoginProfile(data: MiniLoginResponse): MiniUserProfile {
  return {
    mpUserId: data.mpUserId,
    userType: data.userType,
    deptId: data.deptId ?? null,
    deptName: data.deptName ?? null,
    deptLeaderFlag: false,
    avatarUrl: data.avatarUrl ?? null,
    displayName: normalizeProfileDisplayName(data.displayName),
    mobile: null,
    gender: null,
    companyName: data.companyName ?? null,
  }
}
 
export function normalizeMeProfile(data: MiniAuthMeResponse): MiniUserProfile {
  return {
    mpUserId: data.mpUserId,
    userType: data.userType,
    deptId: data.deptId ?? null,
    deptName: data.deptName ?? null,
    deptLeaderFlag: false,
    avatarUrl: data.avatarUrl ?? null,
    displayName: normalizeProfileDisplayName(data.nickName),
    mobile: data.mobile ?? null,
    gender: data.gender ?? null,
    companyName: data.companyName ?? null,
  }
}