From 82dbcc7ad9aeae270449139278dc9693de4ad218 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 06 八月 2025 16:58:59 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/ApiFlexJob

---
 FlexJobApi.User.Application/FlexJobApi.User.Application.xml                  |   31 ++
 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                                          |  288 +++++++++++----------
 FlexJobApi.User.Application/Enterprises/Queries/EnterprisesQueryHandler.cs   |   43 +++
 FlexJobApi.Core/Entities/Users/UserInfoCredential.cs                         |   14 
 FlexJobApi.Core/Utils/JwtUtils/JwtUtils.cs                                   |    4 
 15 files changed, 490 insertions(+), 245 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 d670d87..44f4a08 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,59 @@
             娉曚汉濮撳悕
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.Enterprise.LegalIdentity">
+            <summary>
+            娉曚汉韬唤璇佸彿
+            </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.IndustryTypeId">
+            <summary>
+            鎵�灞炶涓欼d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Enterprise.IndustryType">
+            <summary>
+            鎵�灞炶涓�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.Enterprise.MainBusiness">
+            <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 +784,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 +799,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">
@@ -1104,11 +1049,6 @@
             鐢ㄦ埛
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.UserAuth.AvatarId">
-            <summary>
-            澶村儚Id
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.UserAuth.Avatar">
             <summary>
             澶村儚
@@ -1144,19 +1084,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 +1097,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 +1187,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 +1339,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 +1412,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">
@@ -2558,6 +2478,96 @@
         <member name="T:FlexJobApi.Core.GetCurrentLogierMenusQuery">
             <summary>
             鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鑿滃崟
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.SaveEnterpriseCommand">
+            <summary>
+            淇濆瓨浼佷笟
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.EnterpriseName">
+            <summary>
+            浼佷笟鍏ㄧО
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.SocietyCreditCode">
+            <summary>
+            缁熶竴绀句細淇$敤浠g爜
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.LicenseImage">
+            <summary>
+            钀ヤ笟鎵х収鐓х墖
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.LegalPerson">
+            <summary>
+            娉曚汉濮撳悕
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.LegalIdentity">
+            <summary>
+            娉曚汉韬唤璇佸彿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.ProvinceId">
+            <summary>
+            鎵�鍦ㄧ渷浠絀d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.Province">
+            <summary>
+            鎵�鍦ㄧ渷浠�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.CityId">
+            <summary>
+            鎵�鍦ㄥ煄甯侷d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.City">
+            <summary>
+            鎵�鍦ㄥ煄甯�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.IndustryTypeId">
+            <summary>
+            鎵�灞炶涓欼d
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.IndustryType">
+            <summary>
+            鎵�灞炶涓�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.MainBusiness">
+            <summary>
+            涓昏惀涓氬姟
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.Contacts">
+            <summary>
+            鑱旂郴浜�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.ContactPhoneNumber">
+            <summary>
+            鑱旂郴鐢佃瘽
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.ContactEmail">
+            <summary>
+            鑱旂郴閭
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.UserName">
+            <summary>
+            璐﹀彿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.Password">
+            <summary>
+            瀵嗙爜
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.GetEnterprisesQuery">
@@ -4418,7 +4428,7 @@
             鍒锋柊浠ょ墝
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.CurrentLogier.AvatarId">
+        <member name="P:FlexJobApi.Core.CurrentLogier.Avatar">
             <summary>
             澶村儚
             </summary>
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.Core/Utils/JwtUtils/JwtUtils.cs b/FlexJobApi.Core/Utils/JwtUtils/JwtUtils.cs
index 7760e5b..d2c9a5c 100644
--- a/FlexJobApi.Core/Utils/JwtUtils/JwtUtils.cs
+++ b/FlexJobApi.Core/Utils/JwtUtils/JwtUtils.cs
@@ -30,7 +30,7 @@
             logier.AccessToken = JWTEncryption.Encrypt(new Dictionary<string, object>()
             {
                 { "UserInfoId", logier.UserInfoId },
-                { "Avatar",logier.AvatarId },
+                { "Avatar",logier.Avatar },
                 { "Name",logier.Name },
                 { "UserName",logier.UserName },
                 { "PhoneNumber",logier.PhoneNumber },
@@ -54,7 +54,7 @@
                 var logier = new CurrentLogier();
                 if (Guid.TryParse(App.User?.FindFirstValue("UserInfoId"), out var userInfoId)) logier.UserInfoId = userInfoId;
                 else return null;
-                if (Guid.TryParse(App.User?.FindFirstValue("AvatarId"), out var avatarId)) logier.AvatarId = avatarId;
+                logier.Avatar = App.User?.FindFirstValue("Avatar");
                 logier.Name = App.User?.FindFirstValue("Name");
                 logier.UserName = App.User?.FindFirstValue("UserName");
                 logier.PhoneNumber = App.User?.FindFirstValue("PhoneNumber");
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);
+        }
+    }
+}
diff --git a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml
index b0058c5..2456bb5 100644
--- a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml
+++ b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml
@@ -46,6 +46,37 @@
             <param name="all"></param>
             <param name="roleMenuIds"></param>
         </member>
+        <member name="T:FlexJobApi.User.Application.EnterpriseCommandHandler">
+            <summary>
+            浼佷笟鍛戒护澶勭悊鍣�
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.EnterpriseCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.UserInfo})">
+            <summary>
+            浼佷笟鍛戒护澶勭悊鍣�
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.EnterpriseCommandHandler.Handle(FlexJobApi.Core.SaveEnterpriseCommand,System.Threading.CancellationToken)">
+            <summary>
+            淇濆瓨浼佷笟
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
+        <member name="T:FlexJobApi.User.Application.EnterprisesQueryHandler">
+            <summary>
+            浼佷笟鏌ヨ澶勭悊鍣�
+            </summary>
+        </member>
+        <member name="M:FlexJobApi.User.Application.EnterprisesQueryHandler.Handle(FlexJobApi.Core.GetEnterprisesQuery,System.Threading.CancellationToken)">
+            <summary>
+            鏌ヨ浼佷笟淇℃伅鍒嗛〉鍒楄〃鏁版嵁
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="F:FlexJobApi.User.Application.EnumUserErrorCodeType.u1000">
             <summary>
             璐﹀彿鎴栧瘑鐮佷笉瀛樺湪

--
Gitblit v1.9.1