From bf17ad2051de62b9b49fb72bf6ae14d23bfef62b Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 11 九月 2025 10:20:20 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs
index 4232314..35e592a 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/PersonalUserRealCommandHandler.cs
@@ -65,7 +65,7 @@
                 }
                 else
                 {
-                    throw Oops.Oh(EnumErrorCodeType.s510, result?.Msg ?? "娉ㄥ唽瀹炲悕璐﹀彿寮傚父");
+                    throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "娉ㄥ唽瀹炲悕璐﹀彿寮傚父");
                 }
             }
             var sendRealSmsResult = await new SendRealSmsInput
@@ -78,7 +78,7 @@
                 Mobile = request.PhoneNumber
             }.SendHttpAsync<SendRealSmsInput, ElectronSignServerResult<object>>(EnumResourceHttpProvider.ElectronSignServerCustomer);
             if (sendRealSmsResult?.Success != true)
-                throw Oops.Oh(EnumErrorCodeType.s510, sendRealSmsResult?.Msg ?? "鍙戦�佸疄鍚嶇煭淇″紓甯�");
+                throw Oops.Oh(EnumErrorCodeType.s510, sendRealSmsResult?.Message ?? "鍙戦�佸疄鍚嶇煭淇″紓甯�");
 
             PersonalReal(
                 EnumPersonalUserRealStatus.Checking,
@@ -107,6 +107,30 @@
                 .FirstOrDefaultAsync();
             if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐢ㄦ埛");
             if (user.IsReal) throw Oops.Oh(EnumErrorCodeType.s510, "鐢ㄦ埛宸插疄鍚嶏紝璇峰嬁閲嶅鐢宠");
+            if (user.UserAuth == null)
+            {
+                user.UserAuth = new UserAuth();
+            }
+            if (user.UserAuth.ElectronSignUserId == null)
+            {
+                var resultRegOrUpdateUser = await new RegOrUpdateUserInput
+                {
+                    OutUserId = user.Id.ToString(),
+                    UserType = EnumElectronSignUserType.Personal,
+                    Name = request.Name,
+                    Identity = request.Identity,
+                    Mobile = request.PhoneNumber
+                }.SendHttpAsync<RegOrUpdateUserInput, ElectronSignServerResult<Guid?>>(EnumResourceHttpProvider.ElectronSignServerCustomer);
+
+                if (resultRegOrUpdateUser?.Success == true)
+                {
+                    user.UserAuth.ElectronSignUserId = resultRegOrUpdateUser.Result;
+                }
+                else
+                {
+                    throw Oops.Oh(EnumErrorCodeType.s510, resultRegOrUpdateUser?.Message ?? "娉ㄥ唽瀹炲悕璐﹀彿寮傚父");
+                }
+            }
             var result = await new RealPersonalInput
             {
                 OutUserId = user.Id.ToString(),
@@ -119,7 +143,7 @@
                 VCode = request.VerifyCode
             }.SendHttpAsync<RealPersonalInput, ElectronSignServerResult<RealPersonalOutput>>(EnumResourceHttpProvider.ElectronSignServerCustomer);
             if (result?.Success != true || result.Result?.Status != EnumElectronSignRealStatus.Real)
-                throw Oops.Oh(EnumErrorCodeType.s510, result?.Msg ?? "瀹炲悕寮傚父");
+                throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "瀹炲悕寮傚父");
 
             var enterpriseEmployees = await repUser.Change<EnterpriseEmployee>().AsQueryable()
                 .Where(it => it.UserId == user.Id)
@@ -154,12 +178,30 @@
                 .FirstOrDefaultAsync();
             if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐢ㄦ埛");
             if (user.IsReal) throw Oops.Oh(EnumErrorCodeType.s510, "鐢ㄦ埛宸插疄鍚嶏紝璇峰嬁閲嶅鐢宠");
-            if (user.UserAuth.Name == request.Name
-                && user.UserAuth.Identity == request.Identity
-                && user.UserAuth.RealStatus == EnumPersonalUserRealStatus.Checking
-                && user.UserAuth.FaceRealUrl.IsNotNull())
-                return user.UserAuth.FaceRealUrl;
+            if (user.UserAuth == null)
+            {
+                user.UserAuth = new UserAuth();
+            }
+            if (user.UserAuth.ElectronSignUserId == null)
+            {
+                var resultRegOrUpdateUser = await new RegOrUpdateUserInput
+                {
+                    OutUserId = user.Id.ToString(),
+                    UserType = EnumElectronSignUserType.Personal,
+                    Name = request.Name,
+                    Identity = request.Identity,
+                    Mobile = user.PhoneNumber
+                }.SendHttpAsync<RegOrUpdateUserInput, ElectronSignServerResult<Guid?>>(EnumResourceHttpProvider.ElectronSignServerCustomer);
 
+                if (resultRegOrUpdateUser?.Success == true)
+                {
+                    user.UserAuth.ElectronSignUserId = resultRegOrUpdateUser.Result;
+                }
+                else
+                {
+                    throw Oops.Oh(EnumErrorCodeType.s510, resultRegOrUpdateUser?.Message ?? "娉ㄥ唽瀹炲悕璐﹀彿寮傚父");
+                }
+            }
             var result = await new RealPersonalInput
             {
                 OutUserId = user.Id.ToString(),
@@ -170,7 +212,7 @@
                 IdentityBackImgUrl = request.IdentityBackImg,
             }.SendHttpAsync<RealPersonalInput, ElectronSignServerResult<RealPersonalOutput>>(EnumResourceHttpProvider.ElectronSignServerCustomer);
             if (result?.Success != true || result.Result?.Status != EnumElectronSignRealStatus.Checking)
-                throw Oops.Oh(EnumErrorCodeType.s510, result?.Msg ?? "瀹炲悕寮傚父");
+                throw Oops.Oh(EnumErrorCodeType.s510, result?.Message ?? "瀹炲悕寮傚父");
 
             var enterpriseEmployees = await repUser.Change<EnterpriseEmployee>().AsQueryable()
                 .Where(it => it.UserId == user.Id)
@@ -187,7 +229,8 @@
                 faceRealUrl: result.Result.FaceUrl);
             await repUser.UpdateAsync(user);
 
-            return result.Result.FaceUrl;
+            return result.Result.FaceUrl
+                .Replace("https://h5-v2.kych5.com", "https://wx05.ssqian.com.cn");
         }
 
         /// <summary>
@@ -214,6 +257,10 @@
             user.UserAuth.IdentityBackImg = identityBackImg;
             user.UserAuth.RealAccess = EnumRealAccess.BestSign;
             user.UserAuth.RealStatus = status;
+            if (user.UserAuth.RealStatus == EnumPersonalUserRealStatus.Checking)
+            {
+                user.UserAuth.RealInProcessStartTime = DateTime.Now;
+            }
             user.RealMethod = method;
             if (user.RealMethod == EnumUserRealMethod.Identity3)
             {

--
Gitblit v1.9.1