SysUser.cs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. // 麻省理工学院许可证
  2. //
  3. // 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司 联系电话/微信:18020030720 QQ:515096995
  4. //
  5. // 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
  6. //
  7. // 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
  8. // 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
  9. namespace Admin.NET.Core;
  10. /// <summary>
  11. /// 系统用户表
  12. /// </summary>
  13. [SugarTable(null, "系统用户表")]
  14. [SysTable]
  15. [SugarIndex("index_{table}_A", nameof(Account), OrderByType.Asc)]
  16. [SugarIndex("index_{table}_P", nameof(Phone), OrderByType.Asc)]
  17. public class SysUser : EntityTenant
  18. {
  19. /// <summary>
  20. /// 账号
  21. /// </summary>
  22. [SugarColumn(ColumnDescription = "账号", Length = 32)]
  23. [Required, MaxLength(32)]
  24. public virtual string Account { get; set; }
  25. /// <summary>
  26. /// 密码
  27. /// </summary>
  28. [SugarColumn(ColumnDescription = "密码", Length = 512)]
  29. [MaxLength(512)]
  30. [Newtonsoft.Json.JsonIgnore]
  31. [System.Text.Json.Serialization.JsonIgnore]
  32. public virtual string Password { get; set; }
  33. /// <summary>
  34. /// 真实姓名
  35. /// </summary>
  36. [SugarColumn(ColumnDescription = "真实姓名", Length = 32)]
  37. [MaxLength(32)]
  38. public virtual string RealName { get; set; }
  39. /// <summary>
  40. /// 昵称
  41. /// </summary>
  42. [SugarColumn(ColumnDescription = "昵称", Length = 32)]
  43. [MaxLength(32)]
  44. public string? NickName { get; set; }
  45. /// <summary>
  46. /// 头像
  47. /// </summary>
  48. [SugarColumn(ColumnDescription = "头像", Length = 512)]
  49. [MaxLength(512)]
  50. public string? Avatar { get; set; }
  51. /// <summary>
  52. /// 性别-男_1、女_2
  53. /// </summary>
  54. [SugarColumn(ColumnDescription = "性别")]
  55. public GenderEnum Sex { get; set; } = GenderEnum.Male;
  56. /// <summary>
  57. /// 年龄
  58. /// </summary>
  59. [SugarColumn(ColumnDescription = "年龄")]
  60. public int Age { get; set; }
  61. /// <summary>
  62. /// 出生日期
  63. /// </summary>
  64. [SugarColumn(ColumnDescription = "出生日期")]
  65. public DateTime? Birthday { get; set; }
  66. /// <summary>
  67. /// 民族
  68. /// </summary>
  69. [SugarColumn(ColumnDescription = "民族", Length = 32)]
  70. [MaxLength(32)]
  71. public string? Nation { get; set; }
  72. /// <summary>
  73. /// 手机号码
  74. /// </summary>
  75. [SugarColumn(ColumnDescription = "手机号码", Length = 16)]
  76. [MaxLength(16)]
  77. public string? Phone { get; set; }
  78. /// <summary>
  79. /// 证件类型
  80. /// </summary>
  81. [SugarColumn(ColumnDescription = "证件类型")]
  82. public CardTypeEnum CardType { get; set; }
  83. /// <summary>
  84. /// 身份证号
  85. /// </summary>
  86. [SugarColumn(ColumnDescription = "身份证号", Length = 32)]
  87. [MaxLength(32)]
  88. public string? IdCardNum { get; set; }
  89. /// <summary>
  90. /// 邮箱
  91. /// </summary>
  92. [SugarColumn(ColumnDescription = "邮箱", Length = 64)]
  93. [MaxLength(64)]
  94. public string? Email { get; set; }
  95. /// <summary>
  96. /// 地址
  97. /// </summary>
  98. [SugarColumn(ColumnDescription = "地址", Length = 256)]
  99. [MaxLength(256)]
  100. public string? Address { get; set; }
  101. /// <summary>
  102. /// 文化程度
  103. /// </summary>
  104. [SugarColumn(ColumnDescription = "文化程度")]
  105. public CultureLevelEnum CultureLevel { get; set; }
  106. /// <summary>
  107. /// 政治面貌
  108. /// </summary>
  109. [SugarColumn(ColumnDescription = "政治面貌", Length = 16)]
  110. [MaxLength(16)]
  111. public string? PoliticalOutlook { get; set; }
  112. /// <summary>
  113. /// 毕业院校
  114. /// </summary>COLLEGE
  115. [SugarColumn(ColumnDescription = "毕业院校", Length = 128)]
  116. [MaxLength(128)]
  117. public string? College { get; set; }
  118. /// <summary>
  119. /// 办公电话
  120. /// </summary>
  121. [SugarColumn(ColumnDescription = "办公电话", Length = 16)]
  122. [MaxLength(16)]
  123. public string? OfficePhone { get; set; }
  124. /// <summary>
  125. /// 紧急联系人
  126. /// </summary>
  127. [SugarColumn(ColumnDescription = "紧急联系人", Length = 32)]
  128. [MaxLength(32)]
  129. public string? EmergencyContact { get; set; }
  130. /// <summary>
  131. /// 紧急联系人电话
  132. /// </summary>
  133. [SugarColumn(ColumnDescription = "紧急联系人电话", Length = 16)]
  134. [MaxLength(16)]
  135. public string? EmergencyPhone { get; set; }
  136. /// <summary>
  137. /// 紧急联系人地址
  138. /// </summary>
  139. [SugarColumn(ColumnDescription = "紧急联系人地址", Length = 256)]
  140. [MaxLength(256)]
  141. public string? EmergencyAddress { get; set; }
  142. /// <summary>
  143. /// 个人简介
  144. /// </summary>
  145. [SugarColumn(ColumnDescription = "个人简介", Length = 512)]
  146. [MaxLength(512)]
  147. public string? Introduction { get; set; }
  148. /// <summary>
  149. /// 排序
  150. /// </summary>
  151. [SugarColumn(ColumnDescription = "排序")]
  152. public int OrderNo { get; set; } = 100;
  153. /// <summary>
  154. /// 状态
  155. /// </summary>
  156. [SugarColumn(ColumnDescription = "状态")]
  157. public StatusEnum Status { get; set; } = StatusEnum.Enable;
  158. /// <summary>
  159. /// 备注
  160. /// </summary>
  161. [SugarColumn(ColumnDescription = "备注", Length = 256)]
  162. [MaxLength(256)]
  163. public string? Remark { get; set; }
  164. /// <summary>
  165. /// 账号类型
  166. /// </summary>
  167. [SugarColumn(ColumnDescription = "账号类型")]
  168. public AccountTypeEnum AccountType { get; set; } = AccountTypeEnum.NormalUser;
  169. /// <summary>
  170. /// 直属机构Id
  171. /// </summary>
  172. [SugarColumn(ColumnDescription = "直属机构Id")]
  173. public long OrgId { get; set; }
  174. /// <summary>
  175. /// 直属机构
  176. /// </summary>
  177. [Navigate(NavigateType.OneToOne, nameof(OrgId))]
  178. public SysOrg SysOrg { get; set; }
  179. /// <summary>
  180. /// 直属主管Id
  181. /// </summary>
  182. [SugarColumn(ColumnDescription = "直属主管Id")]
  183. public long? ManagerUserId { get; set; }
  184. /// <summary>
  185. /// 直属主管
  186. /// </summary>
  187. [Newtonsoft.Json.JsonIgnore]
  188. [System.Text.Json.Serialization.JsonIgnore]
  189. [Navigate(NavigateType.OneToOne, nameof(ManagerUserId))]
  190. public SysUser ManagerUser { get; set; }
  191. /// <summary>
  192. /// 职位Id
  193. /// </summary>
  194. [SugarColumn(ColumnDescription = "职位Id")]
  195. public long PosId { get; set; }
  196. /// <summary>
  197. /// 职位
  198. /// </summary>
  199. [Newtonsoft.Json.JsonIgnore]
  200. [System.Text.Json.Serialization.JsonIgnore]
  201. [Navigate(NavigateType.OneToOne, nameof(PosId))]
  202. public SysPos SysPos { get; set; }
  203. /// <summary>
  204. /// 工号
  205. /// </summary>
  206. [SugarColumn(ColumnDescription = "工号", Length = 32)]
  207. [MaxLength(32)]
  208. public string? JobNum { get; set; }
  209. /// <summary>
  210. /// 职级
  211. /// </summary>
  212. [SugarColumn(ColumnDescription = "职级", Length = 32)]
  213. [MaxLength(32)]
  214. public string? PosLevel { get; set; }
  215. /// <summary>
  216. /// 职称
  217. /// </summary>
  218. [SugarColumn(ColumnDescription = "职称", Length = 32)]
  219. [MaxLength(32)]
  220. public string? PosTitle { get; set; }
  221. /// <summary>
  222. /// 擅长领域
  223. /// </summary>
  224. [SugarColumn(ColumnDescription = "擅长领域", Length = 32)]
  225. [MaxLength(32)]
  226. public string? Expertise { get; set; }
  227. /// <summary>
  228. /// 办公区域
  229. /// </summary>
  230. [SugarColumn(ColumnDescription = "办公区域", Length = 32)]
  231. [MaxLength(32)]
  232. public string? OfficeZone { get; set; }
  233. /// <summary>
  234. /// 办公室
  235. /// </summary>
  236. [SugarColumn(ColumnDescription = "办公室", Length = 32)]
  237. [MaxLength(32)]
  238. public string? Office { get; set; }
  239. /// <summary>
  240. /// 入职日期
  241. /// </summary>
  242. [SugarColumn(ColumnDescription = "入职日期")]
  243. public DateTime? JoinDate { get; set; }
  244. /// <summary>
  245. /// 最新登录Ip
  246. /// </summary>
  247. [SugarColumn(ColumnDescription = "最新登录Ip", Length = 256)]
  248. [MaxLength(256)]
  249. public string? LastLoginIp { get; set; }
  250. /// <summary>
  251. /// 最新登录地点
  252. /// </summary>
  253. [SugarColumn(ColumnDescription = "最新登录地点", Length = 128)]
  254. [MaxLength(128)]
  255. public string? LastLoginAddress { get; set; }
  256. /// <summary>
  257. /// 最新登录时间
  258. /// </summary>
  259. [SugarColumn(ColumnDescription = "最新登录时间")]
  260. public DateTime? LastLoginTime { get; set; }
  261. /// <summary>
  262. /// 最新登录设备
  263. /// </summary>
  264. [SugarColumn(ColumnDescription = "最新登录设备", Length = 128)]
  265. [MaxLength(128)]
  266. public string? LastLoginDevice { get; set; }
  267. /// <summary>
  268. /// 电子签名
  269. /// </summary>
  270. [SugarColumn(ColumnDescription = "电子签名", Length = 512)]
  271. [MaxLength(512)]
  272. public string? Signature { get; set; }
  273. }