From fe910d268980a24ad6ba565f045ecae792bc208c Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期三, 06 八月 2025 15:41:27 +0800
Subject: [PATCH] feat:企业开发

---
 FlexJobApi.Core/Entities/Users/UserAuth.cs                                   |   28 --
 FlexJobApi.Core/Utils/JwtUtils/CurrentLogier.cs                              |    2 
 FlexJobApi.User.Application/Auths/Commands/PasswordLoginCommandHandler.cs    |    4 
 FlexJobApi.Core/Entities/Users/UserInfoPhoto.cs                              |    7 
 FlexJobApi.Core/Entities/Users/Enterprise.cs                                 |   75 +++++--
 FlexJobApi.Core/Entities/Users/UserInfo.cs                                   |   10 +
 /dev/null                                                                    |   37 ---
 FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterprisesQuery.cs       |    2 
 FlexJobApi.User.Application/Enterprises/Commands/EnterpriseCommandHandler.cs |   81 ++++++++
 FlexJobApi.Core/Models/User/Enterprises/Commands/SaveEnterpriseCommand.cs    |  109 ++++++++++
 FlexJobApi.Core/FlexJobApi.Core.xml                                          |  185 +++++-------------
 FlexJobApi.User.Application/Enterprises/Queries/EnterprisesQueryHandler.cs   |   43 ++++
 FlexJobApi.Core/Entities/Users/UserInfoCredential.cs                         |   14 -
 13 files changed, 358 insertions(+), 239 deletions(-)

diff --git a/FlexJobApi.Core/Entities/Common/FileStore.cs b/FlexJobApi.Core/Entities/Common/FileStore.cs
deleted file mode 100644
index 93b689b..0000000
--- a/FlexJobApi.Core/Entities/Common/FileStore.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-锘縰sing FlexJobApi.Core.Enums.Common;
-using Microsoft.VisualBasic.FileIO;
-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 FileStore : CommonEntity
-    {
-        /// <summary>
-        /// 閫氶亾
-        /// </summary>
-        public EnumFileStoreAccess Access { get; set; }
-
-        /// <summary>
-        /// 缁濆璺緞
-        /// </summary>
-        [Required]
-        public string AbsolutePath { get; set; }
-
-        /// <summary>
-        /// 鐩稿璺緞
-        /// </summary>
-        public string RelativePath { get; set; }
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 鎵╁睍鍚�
-        /// </summary>
-        [MaxLength(32)]
-        [Required]
-        public string Extension { get; set; }
-
-        /// <summary>
-        /// 鍐呭绫诲瀷
-        /// </summary>
-        [MaxLength(128)]
-        [Required]
-        public string ContentType { get; set; }
-
-        /// <summary>
-        /// 鏂囦欢绫诲瀷
-        /// </summary>
-        public EnumFileType FileType { get; set; }
-
-        /// <summary>
-        /// 鏂囦欢澶у皬锛堝瓧鑺傦級
-        /// </summary>
-        public long Length { get; set; }
-
-        /// <summary>
-        /// 鍝堝笇
-        /// </summary>
-        [Required]
-        public string Hash { get; set; }
-
-        /// <summary>
-        /// 瀹藉害锛堝儚绱狅級
-        /// </summary>
-        public int? ImageWidth { get; set; }
-
-        /// <summary>
-        /// 楂樺害锛堝儚绱狅級
-        /// </summary>
-        public int? ImageHeight { get; set; }
-    }
-}
diff --git a/FlexJobApi.Core/Entities/Common/FileVirtualPath.cs b/FlexJobApi.Core/Entities/Common/FileVirtualPath.cs
deleted file mode 100644
index 7cb2864..0000000
--- a/FlexJobApi.Core/Entities/Common/FileVirtualPath.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-锘縰sing 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 FileVirtualPath : CommonEntity
-    {
-        /// <summary>
-        /// 鏂囦欢瀛樺偍Id
-        /// </summary>
-        public Guid StoreId { get; set; }
-
-        /// <summary>
-        /// 鏂囦欢瀛樺偍
-        /// </summary>
-        public FileStore Store { get; set; }
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 铏氭嫙璺緞
-        /// </summary>
-        [Required]
-        public string VirtualPath { get; set; }
-    }
-}
diff --git a/FlexJobApi.Core/Entities/Users/Enterprise.cs b/FlexJobApi.Core/Entities/Users/Enterprise.cs
index 36aa3fe..1f3887b 100644
--- a/FlexJobApi.Core/Entities/Users/Enterprise.cs
+++ b/FlexJobApi.Core/Entities/Users/Enterprise.cs
@@ -38,20 +38,56 @@
         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>
         /// 娉曚汉濮撳悕
         /// </summary>
         [MaxLength(32)]
         public string LegalPerson { get; set; }
+
+        /// <summary>
+        /// 娉曚汉韬唤璇佸彿
+        /// </summary>
+        [MaxLength(18)]
+        public string LegalIdentity { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄧ渷浠絀d
+        /// </summary>
+        public Guid? ProvinceId { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄧ渷浠�
+        /// </summary>
+        public DictionaryData Province { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄥ煄甯侷d
+        /// </summary>
+        public Guid? CityId { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄥ煄甯�
+        /// </summary>
+        public DictionaryData City { get; set; }
+
+        /// <summary>
+        /// 鎵�灞炶涓欼d
+        /// </summary>
+        public Guid? IndustryTypeId { get; set; }
+
+        /// <summary>
+        /// 鎵�灞炶涓�
+        /// </summary>
+        public DictionaryData IndustryType { get; set; }
+
+        /// <summary>
+        /// 涓昏惀涓氬姟
+        /// </summary>
+        public string MainBusiness { get; set; }
 
         /// <summary>
         /// 鑱旂郴浜�
@@ -63,7 +99,12 @@
         /// 鑱旂郴鐢佃瘽
         /// </summary>
         [MaxLength(11)]
-        public string ContactNumber { get; set; }
+        public string ContactPhoneNumber { get; set; }
+
+        /// <summary>
+        /// 鑱旂郴閭
+        /// </summary>
+        public string ContactEmail { get; set; }
 
         /// <summary>
         /// 娉曚汉鎴栫粡鍔炰汉瀹炲悕鏂瑰紡
@@ -83,24 +124,14 @@
         public string Identity { get; set; }
 
         /// <summary>
-        /// 娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰Id
-        /// </summary>
-        public Guid? IdentityImgId { get; set; }
-
-        /// <summary>
         /// 娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰
         /// </summary>
-        public FileVirtualPath IdentityImg { get; set; }
-
-        /// <summary>
-        /// 娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰Id
-        /// </summary>
-        public Guid? IdentityBackImgId { get; set; }
+        public string IdentityImg { get; set; }
 
         /// <summary>
         /// 娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰
         /// </summary>
-        public FileVirtualPath IdentityBackImg { get; set; }
+        public string IdentityBackImg { get; set; }
 
         /// <summary>
         /// 娉曚汉鎴栫粡鍔炰汉閾惰鍗″彿
@@ -109,9 +140,9 @@
         public string BankCard { get; set; }
 
         /// <summary>
-        /// 娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗嘔d
+        /// 娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗�
         /// </summary>
-        public Guid? BankCardImgId { get; set; }
+        public string BankCardImg { get; set; }
 
         /// <summary>
         /// 娉曚汉鎴栫粡鍔炰汉鎵嬫満鍙�
@@ -139,6 +170,8 @@
         /// </summary>
         public bool IsReal { get; set; }
 
+
+
         /// <summary>
         /// 閮ㄩ棬
         /// </summary>
diff --git a/FlexJobApi.Core/Entities/Users/UserAuth.cs b/FlexJobApi.Core/Entities/Users/UserAuth.cs
index 1d21a61..512ab8d 100644
--- a/FlexJobApi.Core/Entities/Users/UserAuth.cs
+++ b/FlexJobApi.Core/Entities/Users/UserAuth.cs
@@ -22,14 +22,9 @@
         }
 
         /// <summary>
-        /// 澶村儚Id
-        /// </summary>
-        public Guid? AvatarId { get; set; }
-
-        /// <summary>
         /// 澶村儚
         /// </summary>
-        public FileVirtualPath Avatar { get; set; }
+        public string Avatar { get; set; }
 
         /// <summary>
         /// 濮撳悕
@@ -67,24 +62,14 @@
         public string Identity { get; set; }
 
         /// <summary>
-        /// 韬唤璇佷汉鍍忛潰Id
-        /// </summary>
-        public Guid? IdentityImgId { get; set; }
-
-        /// <summary>
         /// 韬唤璇佷汉鍍忛潰
         /// </summary>
-        public FileVirtualPath IdentityImg { get; set; }
-
-        /// <summary>
-        /// 韬唤璇佸浗寰介潰Id
-        /// </summary>
-        public Guid? IdentityBackImgId { get; set; }
+        public string IdentityImg { get; set; }
 
         /// <summary>
         /// 韬唤璇佸浗寰介潰
         /// </summary>
-        public FileVirtualPath IdentityBackImg { get; set; }
+        public string IdentityBackImg { get; set; }
 
         /// <summary>
         /// 閾惰鍗″彿
@@ -93,14 +78,9 @@
         public string BankCard { get; set; }
 
         /// <summary>
-        /// 閾惰鍗$収鐗嘔d
-        /// </summary>
-        public Guid? BankCardImgId { get; set; }
-
-        /// <summary>
         /// 閾惰鍗$収鐗�
         /// </summary>
-        public FileVirtualPath BankCardImg { get; set; }
+        public string BankCardImg { get; set; }
 
         /// <summary>
         /// 瀹炲悕閫氶亾
diff --git a/FlexJobApi.Core/Entities/Users/UserInfo.cs b/FlexJobApi.Core/Entities/Users/UserInfo.cs
index 2869593..c993a16 100644
--- a/FlexJobApi.Core/Entities/Users/UserInfo.cs
+++ b/FlexJobApi.Core/Entities/Users/UserInfo.cs
@@ -89,6 +89,16 @@
         public DictionaryData EducationalBackground { get; set; }
 
         /// <summary>
+        /// 甯搁┗鐪佷唤Id
+        /// </summary>
+        public Guid? ProvinceId { get; set; }
+
+        /// <summary>
+        /// 甯搁┗鐪佷唤
+        /// </summary>
+        public DictionaryData Province { get; set; }
+
+        /// <summary>
         /// 甯搁┗鍩庡競Id
         /// </summary>
         public Guid? CityId { get; set; }
diff --git a/FlexJobApi.Core/Entities/Users/UserInfoCredential.cs b/FlexJobApi.Core/Entities/Users/UserInfoCredential.cs
index ed41dc5..cda1e12 100644
--- a/FlexJobApi.Core/Entities/Users/UserInfoCredential.cs
+++ b/FlexJobApi.Core/Entities/Users/UserInfoCredential.cs
@@ -60,24 +60,14 @@
         public string IssueUnit { get; set; }
 
         /// <summary>
-        /// 璇佷功姝i潰鐓х墖Id
-        /// </summary>
-        public Guid ImgId { get; set; }
-
-        /// <summary>
         /// 璇佷功姝i潰鐓х墖
         /// </summary>
-        public FileVirtualPath Img { get; set; }
-
-        /// <summary>
-        /// 璇佷功鍙嶉潰鐓х墖Id
-        /// </summary>
-        public Guid? BackImgId { get; set; }
+        public string Img { get; set; }
 
         /// <summary>
         /// 璇佷功鍙嶉潰鐓х墖
         /// </summary>
-        public FileVirtualPath BackImg { get; set; }
+        public string BackImg { get; set; }
 
     }
 }
diff --git a/FlexJobApi.Core/Entities/Users/UserInfoPhoto.cs b/FlexJobApi.Core/Entities/Users/UserInfoPhoto.cs
index a10298c..9a221b6 100644
--- a/FlexJobApi.Core/Entities/Users/UserInfoPhoto.cs
+++ b/FlexJobApi.Core/Entities/Users/UserInfoPhoto.cs
@@ -22,13 +22,8 @@
         public UserInfo UserInfo { get; set; }
 
         /// <summary>
-        /// 鐓х墖Id
-        /// </summary>
-        public Guid ImgId { get; set; }
-
-        /// <summary>
         /// 鐓х墖
         /// </summary>
-        public FileVirtualPath Img { get; set; }
+        public string Img { get; set; }
     }
 }
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 47bb11e..1762813 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -159,91 +159,6 @@
             鏄惁绂佺敤
             </summary>
         </member>
-        <member name="T:FlexJobApi.Core.FileStore">
-            <summary>
-            鏂囦欢瀛樺偍
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.Access">
-            <summary>
-            閫氶亾
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.AbsolutePath">
-            <summary>
-            缁濆璺緞
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.RelativePath">
-            <summary>
-            鐩稿璺緞
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.Name">
-            <summary>
-            鍚嶇О
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.Extension">
-            <summary>
-            鎵╁睍鍚�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.ContentType">
-            <summary>
-            鍐呭绫诲瀷
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.FileType">
-            <summary>
-            鏂囦欢绫诲瀷
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.Length">
-            <summary>
-            鏂囦欢澶у皬锛堝瓧鑺傦級
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.Hash">
-            <summary>
-            鍝堝笇
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.ImageWidth">
-            <summary>
-            瀹藉害锛堝儚绱狅級
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileStore.ImageHeight">
-            <summary>
-            楂樺害锛堝儚绱狅級
-            </summary>
-        </member>
-        <member name="T:FlexJobApi.Core.FileVirtualPath">
-            <summary>
-            鏂囦欢铏氭嫙璺緞
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileVirtualPath.StoreId">
-            <summary>
-            鏂囦欢瀛樺偍Id
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileVirtualPath.Store">
-            <summary>
-            鏂囦欢瀛樺偍
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileVirtualPath.Name">
-            <summary>
-            鍚嶇О
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.FileVirtualPath.VirtualPath">
-            <summary>
-            铏氭嫙璺緞
-            </summary>
-        </member>
         <member name="T:FlexJobApi.Core.Resource">
             <summary>
             璧勬簮
@@ -789,11 +704,6 @@
             缁熶竴绀句細淇$敤浠g爜
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.Enterprise.LicenseImageId">
-            <summary>
-            钀ヤ笟鎵х収鐓х墖Id
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.Enterprise.LicenseImage">
             <summary>
             钀ヤ笟鎵х収鐓х墖
@@ -804,14 +714,39 @@
             娉曚汉濮撳悕
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.Enterprise.ProvinceId">
+            <summary>
+            鎵�鍦ㄧ渷浠絀d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Enterprise.Province">
+            <summary>
+            鎵�鍦ㄧ渷浠�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Enterprise.CityId">
+            <summary>
+            鎵�鍦ㄥ煄甯侷d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Enterprise.City">
+            <summary>
+            鎵�鍦ㄥ煄甯�
+            </summary>
+        </member>
         <member name="P:FlexJobApi.Core.Enterprise.Contacts">
             <summary>
             鑱旂郴浜�
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.Enterprise.ContactNumber">
+        <member name="P:FlexJobApi.Core.Enterprise.ContactPhoneNumber">
             <summary>
             鑱旂郴鐢佃瘽
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Enterprise.ContactEmail">
+            <summary>
+            鑱旂郴閭
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.Enterprise.PersonalRealMethod">
@@ -829,19 +764,9 @@
             娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.Enterprise.IdentityImgId">
-            <summary>
-            娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰Id
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.Enterprise.IdentityImg">
             <summary>
             娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.Enterprise.IdentityBackImgId">
-            <summary>
-            娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰Id
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.Enterprise.IdentityBackImg">
@@ -854,9 +779,9 @@
             娉曚汉鎴栫粡鍔炰汉閾惰鍗″彿
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.Enterprise.BankCardImgId">
+        <member name="P:FlexJobApi.Core.Enterprise.BankCardImg">
             <summary>
-            娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗嘔d
+            娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗�
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.Enterprise.PhoneNumber">
@@ -1144,19 +1069,9 @@
             韬唤璇佸彿
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.UserAuth.IdentityImgId">
-            <summary>
-            韬唤璇佷汉鍍忛潰Id
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.UserAuth.IdentityImg">
             <summary>
             韬唤璇佷汉鍍忛潰
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.UserAuth.IdentityBackImgId">
-            <summary>
-            韬唤璇佸浗寰介潰Id
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.UserAuth.IdentityBackImg">
@@ -1167,11 +1082,6 @@
         <member name="P:FlexJobApi.Core.UserAuth.BankCard">
             <summary>
             閾惰鍗″彿
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.UserAuth.BankCardImgId">
-            <summary>
-            閾惰鍗$収鐗嘔d
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.UserAuth.BankCardImg">
@@ -1262,6 +1172,16 @@
         <member name="P:FlexJobApi.Core.UserInfo.EducationalBackground">
             <summary>
             瀛﹀巻
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserInfo.ProvinceId">
+            <summary>
+            甯搁┗鐪佷唤Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.UserInfo.Province">
+            <summary>
+            甯搁┗鐪佷唤
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.UserInfo.CityId">
@@ -1404,19 +1324,9 @@
             鍙戣瘉鍗曚綅
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.UserInfoCredential.ImgId">
-            <summary>
-            璇佷功姝i潰鐓х墖Id
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.UserInfoCredential.Img">
             <summary>
             璇佷功姝i潰鐓х墖
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.UserInfoCredential.BackImgId">
-            <summary>
-            璇佷功鍙嶉潰鐓х墖Id
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.UserInfoCredential.BackImg">
@@ -1487,11 +1397,6 @@
         <member name="P:FlexJobApi.Core.UserInfoPhoto.UserInfo">
             <summary>
             鐢ㄦ埛淇℃伅
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.UserInfoPhoto.ImgId">
-            <summary>
-            鐓х墖Id
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.UserInfoPhoto.Img">
@@ -2337,7 +2242,12 @@
         </member>
         <member name="P:FlexJobApi.Core.GetDictionaryDataSelectQuery.CategoryId">
             <summary>
-            绫诲埆Id
+            绫诲埆Id锛圛d/缂栧彿浜岄�変竴锛�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetDictionaryDataSelectQuery.CategoryCode">
+            <summary>
+            绫诲埆缂栧彿锛圛d/缂栧彿浜岄�変竴锛�
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.GetDictionaryDataSelectQuery.ParentId">
@@ -2397,7 +2307,12 @@
         </member>
         <member name="P:FlexJobApi.Core.GetDictionaryDatasQuery.CategoryId">
             <summary>
-            绫诲埆Id
+            绫诲埆Id锛圛d/缂栧彿浜岄�変竴锛�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetDictionaryDatasQuery.CategoryCode">
+            <summary>
+            绫诲埆缂栧彿锛圛d/缂栧彿浜岄�変竴锛�
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.GetDictionaryDatasQuery.Keywords">
diff --git a/FlexJobApi.Core/Models/User/Enterprises/Commands/SaveEnterpriseCommand.cs b/FlexJobApi.Core/Models/User/Enterprises/Commands/SaveEnterpriseCommand.cs
new file mode 100644
index 0000000..04ddb38
--- /dev/null
+++ b/FlexJobApi.Core/Models/User/Enterprises/Commands/SaveEnterpriseCommand.cs
@@ -0,0 +1,109 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 淇濆瓨浼佷笟
+    /// </summary>
+    [Resource([EnumResourceController.Enterprise])]
+    public class SaveEnterpriseCommand : SaveDataCommand
+    {
+        /// <summary>
+        /// 浼佷笟鍏ㄧО
+        /// </summary>
+        [Required]
+        [MaxLength(128)]
+        public string EnterpriseName { get; set; }
+
+        /// <summary>
+        /// 缁熶竴绀句細淇$敤浠g爜
+        /// </summary>
+        [Required]
+        [MaxLength(18)]
+        public string SocietyCreditCode { get; set; }
+
+        /// <summary>
+        /// 钀ヤ笟鎵х収鐓х墖
+        /// </summary>
+        public string LicenseImage { get; set; }
+
+        /// <summary>
+        /// 娉曚汉濮撳悕
+        /// </summary>
+        [MaxLength(32)]
+        public string LegalPerson { get; set; }
+
+        /// <summary>
+        /// 娉曚汉韬唤璇佸彿
+        /// </summary>
+        [MaxLength(18)]
+        public string LegalIdentity { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄧ渷浠絀d
+        /// </summary>
+        public Guid? ProvinceId { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄧ渷浠�
+        /// </summary>
+        public DictionaryData Province { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄥ煄甯侷d
+        /// </summary>
+        public Guid? CityId { get; set; }
+
+        /// <summary>
+        /// 鎵�鍦ㄥ煄甯�
+        /// </summary>
+        public DictionaryData City { get; set; }
+
+        /// <summary>
+        /// 鎵�灞炶涓欼d
+        /// </summary>
+        public Guid? IndustryTypeId { 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 string UserName { get; set; }
+
+        /// <summary>
+        /// 瀵嗙爜
+        /// </summary>
+        public string Password { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterprisesQuery.cs b/FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterprisesQuery.cs
index 739cb0c..b52c815 100644
--- a/FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterprisesQuery.cs
+++ b/FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterprisesQuery.cs
@@ -22,7 +22,7 @@
         /// <summary>
         /// 鏄惁宸查厤缃�
         /// </summary>
-        public bool IsConfigured { get; set; }
+        public bool? IsConfigured { get; set; }
     }
 
     /// <summary>
diff --git a/FlexJobApi.Core/Utils/JwtUtils/CurrentLogier.cs b/FlexJobApi.Core/Utils/JwtUtils/CurrentLogier.cs
index ff54428..c32f336 100644
--- a/FlexJobApi.Core/Utils/JwtUtils/CurrentLogier.cs
+++ b/FlexJobApi.Core/Utils/JwtUtils/CurrentLogier.cs
@@ -26,7 +26,7 @@
         /// <summary>
         /// 澶村儚
         /// </summary>
-        public Guid? AvatarId { get; set; }
+        public string Avatar { get; set; }
 
         /// <summary>
         /// 鏄电О
diff --git a/FlexJobApi.User.Application/Auths/Commands/PasswordLoginCommandHandler.cs b/FlexJobApi.User.Application/Auths/Commands/PasswordLoginCommandHandler.cs
index 71f3444..3ec1b54 100644
--- a/FlexJobApi.User.Application/Auths/Commands/PasswordLoginCommandHandler.cs
+++ b/FlexJobApi.User.Application/Auths/Commands/PasswordLoginCommandHandler.cs
@@ -33,7 +33,7 @@
                 .Select(it => new
                 {
                     it.Id,
-                    it.UserAuth.AvatarId,
+                    it.UserAuth.Avatar,
                     it.UserAuth.Name,
                     it.UserAuth.UserName,
                     it.UserAuth.PhoneNumber,
@@ -47,7 +47,7 @@
             var logier = new CurrentLogier
             {
                 UserInfoId = userInfo.Id,
-                AvatarId = userInfo.AvatarId,
+                Avatar = userInfo.Avatar,
                 Name = userInfo.Name,
                 UserName = userInfo.UserName,
                 PhoneNumber = userInfo.PhoneNumber,
diff --git a/FlexJobApi.User.Application/Enterprises/Commands/EnterpriseCommandHandler.cs b/FlexJobApi.User.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
new file mode 100644
index 0000000..f30c36b
--- /dev/null
+++ b/FlexJobApi.User.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
@@ -0,0 +1,81 @@
+锘縰sing FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+using Furion.DataEncryption;
+using Furion.FriendlyException;
+using Mapster;
+using MediatR;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.User.Application
+{
+    /// <summary>
+    /// 浼佷笟鍛戒护澶勭悊鍣�
+    /// </summary>
+    public class EnterpriseCommandHandler(
+            IRepository<Enterprise> rep,
+            IRepository<UserInfo> repUserInfo
+        )
+        : IRequestHandler<SaveEnterpriseCommand, Guid>
+    {
+        private readonly IRepository<Enterprise> rep = rep;
+        private readonly IRepository<UserInfo> repUserInfo = repUserInfo;
+
+        /// <summary>
+        /// 淇濆瓨浼佷笟
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<Guid> Handle(SaveEnterpriseCommand request, CancellationToken cancellationToken)
+        {
+            var entity = await rep.AsQueryable()
+                .FirstOrDefaultAsync(it => it.SocietyCreditCode == request.SocietyCreditCode);
+            if (entity == null)
+            {
+                entity = new Enterprise();
+                request.Adapt(entity);
+                await rep.InsertAsync(entity);
+            }
+            else
+            {
+                request.Adapt(entity);
+                await rep.UpdateAsync(entity);
+            }
+
+            var userInfo = await repUserInfo.AsQueryable()
+                .Include(it => it.UserAuth)
+                .FirstOrDefaultAsync(it =>
+                    it.Type == EnumUserType.Enterprise
+                    && it.UserAuth.UserName == request.UserName);
+            if (userInfo == null)
+            {
+                userInfo = new UserInfo
+                {
+                    EnterpriseId = entity.Id,
+                    Type = EnumUserType.Enterprise,
+                    Status = EnumUserInfoStatus.Normal,
+                    UserAuth = new UserAuth
+                    {
+                        UserName = request.UserName,
+                        PhoneNumber = request.ContactPhoneNumber,
+                        Password = PBKDF2Encryption.Encrypt(request.Password)
+                    }
+                };
+                await repUserInfo.InsertAsync(userInfo);
+            }
+            else
+            {
+                if (userInfo.EnterpriseId != entity.Id) throw Oops.Oh(EnumErrorCodeType.s405, "璇ヨ处鍙�");
+                userInfo.UserAuth.PhoneNumber = request.ContactPhoneNumber;
+                await repUserInfo.UpdateAsync(userInfo);
+            }
+
+            return entity.Id;
+        }
+    }
+}
diff --git a/FlexJobApi.User.Application/Enterprises/Queries/EnterprisesQueryHandler.cs b/FlexJobApi.User.Application/Enterprises/Queries/EnterprisesQueryHandler.cs
new file mode 100644
index 0000000..70aa43d
--- /dev/null
+++ b/FlexJobApi.User.Application/Enterprises/Queries/EnterprisesQueryHandler.cs
@@ -0,0 +1,43 @@
+锘縰sing FlexJobApi.Core;
+using MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.User.Application
+{
+    /// <summary>
+    /// 浼佷笟鏌ヨ澶勭悊鍣�
+    /// </summary>
+    public class EnterprisesQueryHandler
+        : IRequestHandler<GetEnterprisesQuery, PagedListQueryResult<GetEnterprisesQueryResultItem>>
+    {
+        /// <summary>
+        /// 鏌ヨ浼佷笟淇℃伅鍒嗛〉鍒楄〃鏁版嵁
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public Task<PagedListQueryResult<GetEnterprisesQueryResultItem>> Handle(GetEnterprisesQuery request, CancellationToken cancellationToken)
+        {
+            return request.PageModel.GetPagedListAsync<Enterprise, GetEnterprisesQueryResultItem>(
+                q =>
+                {
+                    if (request.Keywords.IsNotNull())
+                    {
+                        q = q.Where(it =>
+                            it.EnterpriseName.Contains(request.Keywords)
+                            || it.LegalPerson.Contains(request.Keywords)
+                            || it.Contacts.Contains(request.Keywords));
+                    }
+                    if (request.IsConfigured.HasValue)
+                    {
+
+                    }
+                    return q;
+                }, cancellationToken: cancellationToken);
+        }
+    }
+}

--
Gitblit v1.9.1