using Furion.DatabaseAccessor; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Admin.NET.Core { /// /// 用户表 /// [Table("sys_user")] [Comment("用户表")] public class SysUser : DEntityBase, IEntityTypeBuilder { /// /// 账号 /// [Comment("账号")] [Required, MaxLength(50)] public string Account { get; set; } /// /// 密码(默认MD5加密) /// [Comment("密码")] [Required, MaxLength(50)] public string Password { get; set; } /// /// 昵称 /// [Comment("昵称")] [MaxLength(20)] public string NickName { get; set; } /// /// 姓名 /// [Comment("姓名")] [MaxLength(20)] public string Name { get; set; } /// /// 头像 /// [Comment("头像")] public string Avatar { get; set; } /// /// 生日 /// [Comment("生日")] public DateTimeOffset? Birthday { get; set; } /// /// 性别-男_1、女_2 /// [Comment("性别-男_1、女_2")] public Gender Sex { get; set; } /// /// 邮箱 /// [Comment("邮箱")] [MaxLength(50)] public string Email { get; set; } /// /// 手机 /// [Comment("手机")] [MaxLength(20)] public string Phone { get; set; } /// /// 电话 /// [Comment("电话")] [MaxLength(20)] public string Tel { get; set; } /// /// 最后登录IP /// [Comment("最后登录IP")] [MaxLength(20)] public string LastLoginIp { get; set; } /// /// 最后登录时间 /// [Comment("最后登录时间")] public DateTimeOffset? LastLoginTime { get; set; } /// /// 管理员类型-超级管理员_1、管理员_2、普通账号_3 /// [Comment("管理员类型-超级管理员_1、管理员_2、普通账号_3")] public AdminType AdminType { get; set; } /// /// 状态-正常_0、停用_1、删除_2 /// [Comment("状态-正常_0、停用_1、删除_2")] public CommonStatus Status { get; set; } = CommonStatus.ENABLE; /// /// 多对多(角色) /// public ICollection SysRoles { get; set; } /// /// 多对多中间表(用户-角色) /// public List SysUserRoles { get; set; } /// /// 多对多(机构) /// public ICollection SysOrgs { get; set; } /// /// 多对多中间表(用户-机构 数据范围) /// public List SysUserDataScopes { get; set; } /// /// 配置多对多关系 /// /// /// /// public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder.HasMany(p => p.SysRoles).WithMany(p => p.SysUsers).UsingEntity( u => u.HasOne(c => c.SysRole).WithMany(c => c.SysUserRoles).HasForeignKey(c => c.SysRoleId), u => u.HasOne(c => c.SysUser).WithMany(c => c.SysUserRoles).HasForeignKey(c => c.SysUserId), u => { u.HasKey(c => new { c.SysUserId, c.SysRoleId }); }); entityBuilder.HasMany(p => p.SysOrgs).WithMany(p => p.SysUsers).UsingEntity( u => u.HasOne(c => c.SysOrg).WithMany(c => c.SysUserDataScopes).HasForeignKey(c => c.SysOrgId), u => u.HasOne(c => c.SysUser).WithMany(c => c.SysUserDataScopes).HasForeignKey(c => c.SysUserId), u => { u.HasKey(c => new { c.SysUserId, c.SysOrgId }); }); } /// /// 所属车间 /// public LesWorkShopType WorkShopType { get; set; } /// /// 所属车间产线 /// public long ProductionlineId { get; set; } } }