user.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. import { IProCptItem } from './compilation';
  2. // 实体类型
  3. export enum EntityType {
  4. // 个人
  5. PERSON = 1,
  6. // 企业
  7. ENTERPRISE = 2,
  8. }
  9. // 登录类型(与实体类型有语义上的区别)
  10. export enum LoginType {
  11. PERSON = 'person',
  12. ENTERPRISE = 'enterprise',
  13. }
  14. // 登录方式(使用密码还是短信进行登录,与登录类型是不同概念)
  15. export enum LoginMode {
  16. PASSWORD = 'password',
  17. SMS = 'sms',
  18. }
  19. export enum UserType {
  20. NORMAL = 'normal',
  21. PROFESSIONAL = 'professional',
  22. }
  23. export interface IUsedCptItem {
  24. // 编办 ID
  25. compilationID: string;
  26. // 第一次使用的时间
  27. firstUseTime: number;
  28. }
  29. export interface IContactItem {
  30. // 用户 ID
  31. userID: string;
  32. // 第一成为联系人的时间
  33. firstContactTime: number;
  34. }
  35. export interface IEverydayOnlineTimeItem {
  36. // 日期
  37. date: number;
  38. // 在线时长
  39. onlineTime: number;
  40. }
  41. export interface ISummary {
  42. // 最后登录时间
  43. lastLoginTime: number;
  44. // 上次使用的编办
  45. lastUsedCpt: string;
  46. // 总共在线时长
  47. totalOnlineTime: number;
  48. // 今天目前的在线时长
  49. todayOnlineTime: number;
  50. // 每天的在线时长
  51. everydayOnlineTime: IEverydayOnlineTimeItem[];
  52. }
  53. export interface IUserArea {
  54. province: string; // 省份
  55. municipality: string; // 城市
  56. }
  57. export interface IUser {
  58. ID: string;
  59. ssoID: string;
  60. mobile: string;
  61. realName: string;
  62. createTime: number;
  63. proCptList: IProCptItem[];
  64. usedCptList: IUsedCptItem[];
  65. specifyCpt: string;
  66. contacts: IContactItem[];
  67. onlySMSLogin: boolean;
  68. abnormalLoginAlert: boolean;
  69. defaultEnterprise: string;
  70. summaryInfo: ISummary;
  71. institutionName: string; // 用户输入的机构名称
  72. area: IUserArea; // 用户选择的省份、城市、地区
  73. }
  74. export interface IAPInstitution {
  75. ID: string;
  76. name: string;
  77. }
  78. export interface IAPOrganizationalStructure {
  79. ID: string;
  80. name: string;
  81. }
  82. export interface IQualifications {
  83. ID: string;
  84. school: string;
  85. professional: string;
  86. qualifications: string;
  87. certificateNo: string;
  88. validTime: string;
  89. filePath: string;
  90. }
  91. export interface ICertificate {
  92. ID: string;
  93. name: string[];
  94. professional: string;
  95. lv: string;
  96. certificateNo: string;
  97. validTime: string;
  98. filePath: string;
  99. }
  100. export interface IAPUser {
  101. ID: string;
  102. createdTime: number;
  103. gender: string;
  104. accountType: string;
  105. account: string;
  106. password: string;
  107. name: string;
  108. phone: string;
  109. contactMobile: string;
  110. officePhone: string;
  111. email: string;
  112. institution: IAPInstitution;
  113. organizationalStructure: IAPOrganizationalStructure;
  114. dataID: string;
  115. created: string;
  116. createdID: string; // 创建人ID
  117. isCreated?: boolean; // 是否可创建,字段由后台定义
  118. roleIDs?: string[]; // 角色ID列表
  119. enable?: boolean;
  120. projectLimit?: number; // 创建项目数量的限制
  121. failLoginCount?: number; // 登陆失败的次数
  122. lastTryLoginTime?: number; // 上次尝试登陆的时间
  123. passwordModifyTime?: number; // 密码修改时间
  124. phrases: string[]; // 常用语
  125. idCode: string; // 身份证号码
  126. isIdAuth: boolean; // 身份证是否经过实名认证
  127. registere: string; // 注册审批状态
  128. reason: string; // 注册审批备注
  129. qualifications: IQualifications[];
  130. certificate: ICertificate[];
  131. employmentCertificateName: string;
  132. MAC?: string; // 验证用户信息的mac值
  133. isNP?: string; // 是否通过密码机加密码的用户密码
  134. }
  135. // 最近联系人
  136. export interface IRecentUser extends IUser {
  137. recentDate: number;
  138. }
  139. // 正在查看项目的用户
  140. export interface IViewingProjectUser {
  141. projectID: string;
  142. userID: string;
  143. userName: string;
  144. mobile: string;
  145. enterpriseID: string;
  146. enterpriseName: string;
  147. }
  148. // 安全策略配置
  149. export interface ISecurityConfiguration {
  150. ID: string;
  151. loginTimes: number;
  152. accountLockTimes: number;
  153. passwordVerification: number;
  154. passwordValidity: number;
  155. logReserveDay: number;
  156. }
  157. export enum ERegisterStatus {
  158. PENDING = 'pending', // 审批中
  159. PASS = 'pass', // 审批通过
  160. RETURN = 'return', // 驳回
  161. }