using Furion.DatabaseAccessor; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// /// 用户信息 /// public class User : CommonEntity, IEntitySeedData, IEntityTypeBuilder { public User() { UserRoles = []; UserDepartments = []; BankCards = []; UserExpectJobs = []; UserCredentials = []; Photos = []; EnterpriseEmployees = []; EnterpriseUserCollects = []; UserManageIndustrialParks = []; } /// /// 用户认证 /// public UserAuth UserAuth { get; set; } /// /// 用户类型 /// public EnumUserType Type { get; set; } /// /// 企业Id /// public Guid? EnterpriseId { get; set; } /// /// 企业 /// public Enterprise Enterprise { get; set; } /// /// 头像 /// public string Avatar { get; set; } /// /// 姓名 /// [MaxLength(32)] public string Name { get; set; } /// /// 用户名 /// [Required] [MaxLength(32)] public string UserName { get; set; } /// /// 手机号 /// /// 登录手机号 [MaxLength(11)] public string PhoneNumber { get; set; } /// /// 是否已校验手机号 /// public bool IsCheckPhoneNumber { get; set; } /// /// 身份证号 /// public string Identity { get; set; } /// /// 性别 /// public EnumUserGender? Gender { get; set; } /// /// 生日 /// public DateTime? Birthday { get; set; } /// /// 年龄 /// public int? Age { get; set; } /// /// 密码 /// public string Password { get; set; } /// /// 微信开放Id /// [MaxLength(32)] public string WxmpOpenId { get; set; } /// /// 级别 /// public int Level { get; set; } /// /// 是否实名 /// public bool IsReal { get; set; } /// /// 实名时间 /// public DateTime? RealTime { get; set; } /// /// 实名方式 /// public EnumUserRealMethod? RealMethod { get; set; } /// /// 手机号 /// /// 联系电话 [MaxLength(11)] public string ContactPhoneNumber { get; set; } /// /// 常驻省份编号 /// public string ProvinceCode { get; set; } /// /// 常驻省份 /// public DictionaryData Province { get; set; } /// /// 常驻城市编号 /// public string CityCode { get; set; } /// /// 常驻城市 /// public DictionaryData City { get; set; } /// /// 身份编号 /// public string PersonalIdentityCode { get; set; } /// /// 身份 /// public DictionaryData PersonalIdentity { get; set; } /// /// 学历编号 /// public string EducationalBackgroundCode { get; set; } /// /// 学历 /// public DictionaryData EducationalBackground { get; set; } /// /// 空闲时间 /// public EnumPersonalFreeTime? FreeTime { get; set; } /// /// 求职状态 /// public EnumPersonalJobSeekingStatus? JobSeekingStatus { get; set; } /// /// 工作资历 /// public string WorkSeniority { get; set; } /// /// 工作经验 /// public string WorkExperience { get; set; } /// /// 身高 /// public int? Height { get; set; } /// /// 体重 /// public int? Weight { get; set; } /// /// 数据来源 /// public EnumDataSource? DataSource { get; set; } /// /// 数据来源Id /// public Guid? DataSourceId { get; set; } /// /// 备注 /// public string Remark { get; set; } /// /// 状态 /// public EnumUserStatus Status { get; set; } /// /// 用户信息角色 /// public List UserRoles { get; set; } /// /// 用户信息部门 /// public List UserDepartments { get; set; } /// /// 银行卡 /// public List BankCards { get; set; } /// /// 用户信息期望岗位 /// public List UserExpectJobs { get; set; } /// /// 用户信息资格证书 /// public List UserCredentials { get; set; } /// /// 生活照 /// public List Photos { get; set; } /// /// 灵工 /// public List EnterpriseEmployees { get; set; } /// /// 谁家企业收藏/联系我 /// public List EnterpriseUserCollects { get; set; } /// /// 管理园区 /// public List UserManageIndustrialParks { get; set; } public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder .HasOne(it => it.UserAuth) .WithOne(it => it.User) .HasForeignKey(it => it.Id); entityBuilder .HasOne(it => it.Province) .WithMany() .HasForeignKey(it => it.ProvinceCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); entityBuilder .HasOne(it => it.City) .WithMany() .HasForeignKey(it => it.CityCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); entityBuilder .HasOne(it => it.PersonalIdentity) .WithMany() .HasForeignKey(it => it.PersonalIdentityCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); entityBuilder .HasOne(it => it.EducationalBackground) .WithMany() .HasForeignKey(it => it.EducationalBackgroundCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); } public IEnumerable HasData(DbContext dbContext, Type dbContextLocator) { return new List { new User { Id = new Guid("11111111-1111-1111-1111-111111111111"), Name = "管理员", UserName = "system", Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=", Type = EnumUserType.Operation, Level = 999, Status = EnumUserStatus.Normal, CreatedTime = new DateTime(2000, 1, 1) } }; } } }