From 7bc9c5f7432a9533a0b552c40fb63fc07de5b5fe Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 29 九月 2025 09:56:24 +0800
Subject: [PATCH] 优化
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 86 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 86 insertions(+), 0 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 43c2c6f..624ce03 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
import com.dingtalk.api.response.OapiV2UserGetResponse;
+import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.annotation.excel.ExcelImporter;
@@ -22,6 +23,7 @@
import com.doumee.core.haikang.model.param.respose.UserAddResponse;
import com.doumee.core.haikang.model.param.respose.UserDelResponse;
import com.doumee.core.haikang.service.HKService;
+import com.doumee.dao.web.response.DDAuthorizeVO;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
@@ -1845,6 +1847,12 @@
return wxAuthorizeVO;
}
+ /**
+ * 寰俊鎺堟潈 鍐呴儴浜哄憳鐧诲綍
+ * @param wxAuthorizeVO
+ * @param openId
+ * @param source
+ */
private void dealSystemUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId, Integer source) {
SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
.eq(SystemUser::getOpenid,openId)
@@ -1874,6 +1882,44 @@
wxAuthorizeVO.setToken(token);
}
}
+
+ /**
+ * 閽夐拤鎺堟潈鑾峰彇鍐呴儴浜哄憳鐧诲綍淇℃伅
+ * @param ddAuthorizeVO
+ * @param unionId
+ * @param source
+ */
+ private void dealSystemUserAuthBizByDD(DDAuthorizeVO ddAuthorizeVO, String unionId, Integer source) {
+ SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(SystemUser::getDdUnionId,unionId)
+ .in(SystemUser::getType,Constants.memberType.internal)
+ .eq(SystemUser::getDeleted,Constants.ZERO)
+ .last(" limit 1 "));
+ //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛
+ if(!Objects.isNull(user)){
+ Member member = memberMapper.selectById(user.getMemberId());
+ if(member == null || member.getIsdeleted() == Constants.ONE){
+ return;
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
+ }
+ if(member.getStatus() != Constants.ZERO){
+ return;
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
+ }
+ if(StringUtils.isNotBlank(member.getIdcardNo())){
+ member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo()));
+ }
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+ member.setPrefixUrl(prefixUrl);
+ ddAuthorizeVO.setMember(member);
+ //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token
+ String token = systemLoginService.loginByUserId(user.getId());
+ ddAuthorizeVO.setToken(token);
+ }
+ }
+
+
private void dealDriverUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId, Integer source) {
SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
.eq(SystemUser::getOpenid,openId)
@@ -2568,5 +2614,45 @@
}
}
+ /**
+ * 閽夐拤鎺堟潈鐧诲綍
+ * @param code
+ * @param source
+ * @return
+ * @throws ApiException
+ */
+ @Override
+ public DDAuthorizeVO ddAuthorize(String code, Integer source) throws ApiException {
+ if(StringUtils.isBlank(code)||Objects.isNull(source)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ OapiV2UserGetuserinfoResponse.UserGetByCodeResponse userGetByCodeResponse = dingTalk.getDDUserByCode(code);
+ if(Objects.isNull(userGetByCodeResponse)
+ || StringUtils.isBlank(userGetByCodeResponse.getUnionid())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤鎺堟潈澶辫触");
+ }
+ String unionId = userGetByCodeResponse.getUnionid();
+
+ DDAuthorizeVO ddAuthorizeVO = new DDAuthorizeVO();
+ if(StringUtils.isBlank(unionId)){
+ return ddAuthorizeVO;
+ }
+ ddAuthorizeVO.setUnionId(unionId);
+// if(source==1){
+// //澶勭悊鏅�氳瀹汉鍛樿嚜鍔ㄦ巿鏉冮�昏緫
+// dealVisitUserAuthBiz(wxAuthorizeVO,openId,source);
+// }else if(source == 3){
+// //澶勭悊tms绠℃帶浜哄憳鑷姩鎺堟潈閫昏緫
+// dealGkUserAuthBiz(wxAuthorizeVO,openId,source);
+// }else if(source == 0){
+// //濡傛灉鏄徃鏈猴紝鍒欎粠system_user鏌ヨ
+// dealDriverUserAuthBiz(wxAuthorizeVO,openId,source);
+// }else{
+ //濡傛灉鏄唴閮ㄤ汉鍛橈紝鍒欎粠system_user鏌ヨ
+ dealSystemUserAuthBizByDD(ddAuthorizeVO,unionId,source);
+// }
+ return ddAuthorizeVO;
+ }
+
}
--
Gitblit v1.9.3