sunpengfei
2025-08-08 32288af3e5f12bc48d8360114c872fde5d9ff4a8
FlexJobApi.Core/Entities/Users/Enterprise.cs
@@ -1,4 +1,7 @@
using System;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
@@ -10,18 +13,18 @@
    /// <summary>
    /// 企业
    /// </summary>
    public class Enterprise : CommonEntity
    public class Enterprise : CommonEntity, IEntityTypeBuilder<Enterprise>
    {
        public Enterprise()
        {
            UserInfos = [];
            Users = [];
            Departments = [];
        }
        /// <summary>
        /// 企业认证方式
        /// 企业认证
        /// </summary>
        public EnumEnterpriseRealMethod? EnterpriseRealMethod { get; set; }
        public EnterpriseAuth EnterpriseAuth { get; set; }
        /// <summary>
        /// 企业全称
@@ -38,14 +41,9 @@
        public string SocietyCreditCode { get; set; }
        /// <summary>
        /// 营业执照照片Id
        /// </summary>
        public Guid? LicenseImageId { get; set; }
        /// <summary>
        /// 营业执照照片
        /// </summary>
        public FileVirtualPath LicenseImage { get; set; }
        public string LicenseImage { get; set; }
        /// <summary>
        /// 法人姓名
@@ -54,73 +52,118 @@
        public string LegalPerson { get; set; }
        /// <summary>
        /// 法人或经办人实名方式
        /// </summary>
        public EnumPersonalRealMethod? PersonalRealMethod { get; set; }
        /// <summary>
        /// 法人或经办人姓名
        /// </summary>
        [MaxLength(32)]
        public string Name { get; set; }
        /// <summary>
        /// 法人或经办人身份证号
        /// 法人身份证号
        /// </summary>
        [MaxLength(18)]
        public string Identity { get; set; }
        public string LegalIdentity { get; set; }
        /// <summary>
        /// 法人或经办人身份证人像面Id
        /// 所在省份编号
        /// </summary>
        public Guid? IdentityImgId { get; set; }
        public string ProvinceCode { get; set; }
        /// <summary>
        /// 法人或经办人身份证人像面
        /// 所在省份
        /// </summary>
        public FileVirtualPath IdentityImg { get; set; }
        public DictionaryData Province { get; set; }
        /// <summary>
        /// 法人或经办人身份证国徽面Id
        /// 所在城市编号
        /// </summary>
        public Guid? IdentityBackImgId { get; set; }
        public string CityCode { get; set; }
        /// <summary>
        /// 法人或经办人身份证国徽面
        /// 所在城市
        /// </summary>
        public FileVirtualPath IdentityBackImg { get; set; }
        public DictionaryData City { get; set; }
        /// <summary>
        /// 法人或经办人银行卡号
        /// 所属行业编号
        /// </summary>
        public string IndustryTypeCode { get; set; }
        /// <summary>
        /// 所属行业
        /// </summary>
        public DictionaryData IndustryType { get; set; }
        /// <summary>
        /// 主营业务
        /// </summary>
        public string MainBusiness { get; set; }
        /// <summary>
        /// 联系人
        /// </summary>
        [MaxLength(32)]
        public string Contacts { get; set; }
        /// <summary>
        /// 联系电话
        /// </summary>
        [MaxLength(11)]
        public string ContactPhoneNumber { get; set; }
        /// <summary>
        /// 联系邮箱
        /// </summary>
        public string ContactEmail { get; set; }
        /// <summary>
        /// 支付通道
        /// </summary>
        public EnumPayAccess? PayAccess { get; set; }
        /// <summary>
        /// 开户总行
        /// </summary>
        public string BankName { get; set; }
        /// <summary>
        /// 开户支行
        /// </summary>
        public string BankBranchName { get; set; }
        /// <summary>
        /// 银行账户
        /// </summary>
        [MaxLength(32)]
        public string BankCard { get; set; }
        /// <summary>
        /// 法人或经办人银行卡照片Id
        /// 是否已校验银行账户
        /// </summary>
        public Guid? BankCardImgId { get; set; }
        /// <summary>
        /// 法人或经办人手机号
        /// </summary>
        [MaxLength(11)]
        public string PhoneNumber { get; set; }
        /// <summary>
        /// 是否委托经办人
        /// </summary>
        public bool? Proxy { get; set; }
        /// <summary>
        /// 企业授权书
        /// </summary>
        public string ProxyPowerAttorneyUrl { get; set; }
        public bool IsCheckedBankCard { get; set; }
        /// <summary>
        /// 实名通道
        /// </summary>
        public EnumRealAccess? RealAccess { get; set; }
        /// <summary>
        /// 实名费用
        /// </summary>
        public decimal? RealVerifyCost { get; set; }
        /// <summary>
        /// 签约费用
        /// </summary>
        public decimal? SignCost { get; set; }
        /// <summary>
        /// 一口价
        /// </summary>
        public decimal? MergeSignCost { get; set; }
        /// <summary>
        /// 短信通道
        /// </summary>
        public EnumSmsAccess? SmsAccess { get; set; }
        /// <summary>
        /// 短信费用
        /// </summary>
        public decimal SmsCost { get; set; }
        /// <summary>
        /// 是否实名
@@ -135,6 +178,32 @@
        /// <summary>
        /// 用户信息
        /// </summary>
        public List<UserInfo> UserInfos { get; set; }
        public List<User> Users { get; set; }
        public void Configure(EntityTypeBuilder<Enterprise> entityBuilder, DbContext dbContext, Type dbContextLocator)
        {
            entityBuilder
                .HasOne(it => it.EnterpriseAuth)
                .WithOne(it => it.Enterprise)
                .HasForeignKey<EnterpriseAuth>(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.IndustryType)
                .WithMany()
                .HasForeignKey(it => it.IndustryTypeCode)
                .HasPrincipalKey(it => it.Code)
                .OnDelete(DeleteBehavior.Restrict);
        }
    }
}