From 80f9adf3f7682edf1d997f48c65a9bac2e4c1605 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期日, 28 九月 2025 15:25:42 +0800
Subject: [PATCH] 钉钉授权 与 通知开发

---
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 0fdc117..5334a12 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -156,7 +156,7 @@
             }
         }
         try {
-            LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request);
+            LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),dto.getDdUnionId(),request);
             systemLoginLogService.create(loginLog);
             return  user;
         }catch (BusinessException e){
@@ -186,7 +186,7 @@
                 throw e;
             }
         }
-        LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request);
+        LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),dto.getDdUnionId(),request);
         systemLoginLogService.create(loginLog);
         return  user;
     }
@@ -213,7 +213,7 @@
         isCaptcheValide(dto.getPhone(),dto.getCode());//妫�鏌ラ獙璇佺爜
         SystemLoginLog loginLog = getInitLoginlog(dto.getPhone(),request);
         try{
-            LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(), request );
+            LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(),dto.getDdUnionId(), request );
             systemLoginLogService.create(loginLog);
             return userInfo;
         }catch (BusinessException e){
@@ -227,7 +227,7 @@
             throw e;
         }
     }
-    private LoginUserInfo dealLoginByPwdNewBiz(String username,String pwd, String phone, String openid, ServerHttpRequest request) {
+    private LoginUserInfo dealLoginByPwdNewBiz(String username,String pwd, String phone, String openid, String ddUnionId, ServerHttpRequest request) {
         // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
         SystemUser queryDto = new SystemUser();
         queryDto.setMobile(phone);
@@ -248,7 +248,12 @@
                 throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
             }
         }
-        dealOpenIdBiz(user,openid);
+        if(StringUtils.isNotBlank(openid)){
+            dealOpenIdBiz(user,openid);
+        }
+        if(StringUtils.isNotBlank(ddUnionId)){
+            dealDDUnionIdBiz(user,ddUnionId);
+        }
         Company company = new Company();
         if(Objects.nonNull(user.getCompanyId())){
             company = companyMapper.selectById(user.getCompanyId());
@@ -320,6 +325,24 @@
                     .eq(SystemUser::getId,user.getId()));
         }
     }
+
+    private void dealDDUnionIdBiz(SystemUser user, String ddUnionId) {
+        if(StringUtils.isNotBlank(ddUnionId)){
+            //濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid
+            systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+                    .set(SystemUser::getDdUnionId,null)
+                    .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+                    .ne(SystemUser::getType,Constants.memberType.gkuser)
+                    .eq(SystemUser::getDdUnionId,ddUnionId)
+            );
+            systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+                    .set(SystemUser::getDdUnionId,ddUnionId)
+                    .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+                    .set(SystemUser::getOpenidHkDate,null)
+                    .set(SystemUser::getOpenidHkInfo,null)
+                    .eq(SystemUser::getId,user.getId()));
+        }
+    }
     private void dealOpenIdBizForGk(SystemUser user, String openid) {
         if(StringUtils.isNotBlank(openid)){
             //濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid

--
Gitblit v1.9.3