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
|
{
|
/// <summary>
|
/// 用户信息
|
/// </summary>
|
public class User : CommonEntity, IEntitySeedData<User>, IEntityTypeBuilder<User>
|
{
|
public User()
|
{
|
UserRoles = [];
|
UserDepartments = [];
|
BankCards = [];
|
UserExpectJobs = [];
|
UserCredentials = [];
|
Photos = [];
|
}
|
|
/// <summary>
|
/// 用户认证
|
/// </summary>
|
public UserAuth UserAuth { get; set; }
|
|
/// <summary>
|
/// 用户类型
|
/// </summary>
|
public EnumUserType Type { get; set; }
|
|
/// <summary>
|
/// 企业Id
|
/// </summary>
|
public Guid? EnterpriseId { get; set; }
|
|
/// <summary>
|
/// 企业
|
/// </summary>
|
public Enterprise Enterprise { get; set; }
|
|
/// <summary>
|
/// 头像
|
/// </summary>
|
public string Avatar { get; set; }
|
|
/// <summary>
|
/// 姓名
|
/// </summary>
|
[MaxLength(32)]
|
public string Name { get; set; }
|
|
/// <summary>
|
/// 用户名
|
/// </summary>
|
[Required]
|
[MaxLength(32)]
|
public string UserName { get; set; }
|
|
/// <summary>
|
/// 手机号
|
/// </summary>
|
/// <remarks>登录手机号</remarks>
|
[MaxLength(11)]
|
public string PhoneNumber { get; set; }
|
|
/// <summary>
|
/// 是否已校验手机号
|
/// </summary>
|
public bool IsCheckPhoneNumber { get; set; }
|
|
/// <summary>
|
/// 身份证号
|
/// </summary>
|
public string Identity { get; set; }
|
|
/// <summary>
|
/// 性别
|
/// </summary>
|
public EnumUserGender? Gender { get; set; }
|
|
/// <summary>
|
/// 生日
|
/// </summary>
|
public DateTime? Birthday { get; set; }
|
|
/// <summary>
|
/// 年龄
|
/// </summary>
|
public int? Age { get; set; }
|
|
/// <summary>
|
/// 密码
|
/// </summary>
|
public string Password { get; set; }
|
|
/// <summary>
|
/// 微信开放Id
|
/// </summary>
|
[MaxLength(32)]
|
public string WxmpOpenId { get; set; }
|
|
/// <summary>
|
/// 级别
|
/// </summary>
|
public int Level { get; set; }
|
|
/// <summary>
|
/// 实名通道
|
/// </summary>
|
public EnumRealAccess? RealAccess { get; set; }
|
|
/// <summary>
|
/// 是否实名
|
/// </summary>
|
public bool IsReal { get; set; }
|
|
/// <summary>
|
/// 手机号
|
/// </summary>
|
/// <remarks>联系电话</remarks>
|
[MaxLength(11)]
|
public string ContactPhoneNumber { get; set; }
|
|
/// <summary>
|
/// 常驻省份编号
|
/// </summary>
|
public string ProvinceCode { get; set; }
|
|
/// <summary>
|
/// 常驻省份
|
/// </summary>
|
public DictionaryData Province { get; set; }
|
|
/// <summary>
|
/// 常驻城市编号
|
/// </summary>
|
public string CityCode { get; set; }
|
|
/// <summary>
|
/// 常驻城市
|
/// </summary>
|
public DictionaryData City { get; set; }
|
|
/// <summary>
|
/// 身份编号
|
/// </summary>
|
public string PersonalIdentityCode { get; set; }
|
|
/// <summary>
|
/// 身份
|
/// </summary>
|
public DictionaryData PersonalIdentity { get; set; }
|
|
/// <summary>
|
/// 学历编号
|
/// </summary>
|
public string EducationalBackgroundCode { get; set; }
|
|
/// <summary>
|
/// 学历
|
/// </summary>
|
public DictionaryData EducationalBackground { get; set; }
|
|
/// <summary>
|
/// 空闲时间
|
/// </summary>
|
public EnumPersonalFreeTime? FreeTime { get; set; }
|
|
/// <summary>
|
/// 求职状态
|
/// </summary>
|
public EnumPersonalJobSeekingStatus? JobSeekingStatus { get; set; }
|
|
/// <summary>
|
/// 工作资历
|
/// </summary>
|
public string WorkSeniority { get; set; }
|
|
/// <summary>
|
/// 工作经验
|
/// </summary>
|
public string WorkExperience { get; set; }
|
|
/// <summary>
|
/// 身高
|
/// </summary>
|
public int? Height { get; set; }
|
|
/// <summary>
|
/// 体重
|
/// </summary>
|
public int? Weight { get; set; }
|
|
/// <summary>
|
/// 备注
|
/// </summary>
|
public string Remark { get; set; }
|
|
/// <summary>
|
/// 状态
|
/// </summary>
|
public EnumUserStatus Status { get; set; }
|
|
/// <summary>
|
/// 用户信息角色
|
/// </summary>
|
public List<UserRole> UserRoles { get; set; }
|
|
/// <summary>
|
/// 用户信息部门
|
/// </summary>
|
public List<UserDepartment> UserDepartments { get; set; }
|
|
/// <summary>
|
/// 银行卡
|
/// </summary>
|
public List<UserBankCard> BankCards { get; set; }
|
|
/// <summary>
|
/// 用户信息期望岗位
|
/// </summary>
|
public List<UserExpectJob> UserExpectJobs { get; set; }
|
|
/// <summary>
|
/// 用户信息资格证书
|
/// </summary>
|
public List<UserCredential> UserCredentials { get; set; }
|
|
/// <summary>
|
/// 生活照
|
/// </summary>
|
public List<UserPhoto> Photos { get; set; }
|
|
public void Configure(EntityTypeBuilder<User> entityBuilder, DbContext dbContext, Type dbContextLocator)
|
{
|
entityBuilder
|
.HasOne(it => it.UserAuth)
|
.WithOne(it => it.User)
|
.HasForeignKey<UserAuth>(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<User> HasData(DbContext dbContext, Type dbContextLocator)
|
{
|
return new List<User>
|
{
|
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)
|
}
|
};
|
}
|
}
|
}
|