From 9f7777c83f2d07c8d83c506ab2a13bc543f47de9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 10 四月 2025 11:08:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |   84 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index b35e7e0..051b031 100644
--- a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -10,10 +10,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.core.utils.qiyeweixin.QywxUtil;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxDepartInfoResponse;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxUserAttrInfoResponse;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxUserExtAttrResponse;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxUserListResponse;
+import com.doumee.core.utils.qiyeweixin.model.response.*;
 import com.doumee.dao.business.CompanyMapper;
 import com.doumee.dao.business.CompanyMemberMapper;
 import com.doumee.dao.business.MemberMapper;
@@ -21,6 +18,8 @@
 import com.doumee.dao.business.model.CompanyMember;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.dto.LoginH5DTO;
+import com.doumee.dao.web.dto.UpdEmailDTO;
 import com.doumee.service.business.MemberService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -39,6 +38,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 浜哄憳淇℃伅琛⊿ervice瀹炵幇
@@ -402,4 +402,80 @@
         return  null;
     }
 
+    @Override
+    public Member getUserInfo(LoginH5DTO dto){
+        if(Objects.isNull(dto)||
+                StringUtils.isBlank(dto.getCode())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        String token = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode();
+        //鏍规嵁code鎹㈠尯浼佷笟寰俊ID
+        QywxBaseResponse<String> qwIdBaseResponse=  QywxUtil.getUserInfoByCode(token,dto.getCode());
+        if(Objects.isNull(qwIdBaseResponse)||Objects.isNull(qwIdBaseResponse.getErrcode())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鐧诲綍鐮佽В鏋愬け璐ワ紝璇疯仈绯荤鐞嗗憳");
+        }
+        if(Constants.equalsInteger(qwIdBaseResponse.getErrcode(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鐧诲綍澶辫触锛�"+qwIdBaseResponse.getErrmsg());
+        }
+        if(Objects.isNull(qwIdBaseResponse.getData())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鐢ㄦ埛淇℃伅瑙f瀽澶辫触锛岃鑱旂郴绠$悊鍛�");
+        }
+        String qwId = qwIdBaseResponse.getData();
+        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getQwId,qwId).eq(Member::getIsdeleted,Constants.ZERO).last(" limit 1 "));
+        if(Objects.isNull(member)){
+            //鏍规嵁浼佷笟寰俊ID 鏌ヨ鐢ㄦ埛淇℃伅
+            QywxUserInfoResponse qywxUserInfoResponse =  QywxUtil.getUserInfo(token,qwId);
+            if(Objects.isNull(qywxUserInfoResponse)||Objects.isNull(qywxUserInfoResponse.getErrcode())){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鑾峰彇鐢ㄦ埛淇℃伅瑙f瀽澶辫触锛岃鑱旂郴绠$悊鍛�");
+            }
+            if(Constants.equalsInteger(qywxUserInfoResponse.getErrcode(),Constants.ZERO)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鑾峰彇鐢ㄦ埛淇℃伅澶辫触锛�"+qwIdBaseResponse.getErrmsg());
+            }
+            member = new Member();
+            member.setCreateDate(new Date());
+            member.setStatus(Constants.ZERO);
+            member.setIsdeleted(Constants.ZERO);
+            member.setName(StringUtils.isNotBlank(qywxUserInfoResponse.getName())?qywxUserInfoResponse.getName():null);
+            member.setImgurl(StringUtils.isNotBlank(qywxUserInfoResponse.getAvatar())?qywxUserInfoResponse.getAvatar():null);
+            member.setPhone(StringUtils.isNotBlank(qywxUserInfoResponse.getMobile())?qywxUserInfoResponse.getMobile():null);
+            member.setQwId(qwId);
+            memberMapper.insert(member);
+        }
+        return member;
+    }
+
+
+
+    @Override
+    public void updEmail(UpdEmailDTO updEmailDTO){
+        if(Objects.isNull(updEmailDTO)
+            || StringUtils.isBlank(updEmailDTO.getEmail())
+            || Objects.isNull(updEmailDTO.getUserId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Member member = memberMapper.selectById(updEmailDTO.getUserId());
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
+        }
+        memberMapper.update(null,new UpdateWrapper<Member>().lambda().set(Member::getEmail,updEmailDTO.getEmail()).eq(Member::getId,member.getId()));
+    }
+
+
+    @Override
+    public Member checkUserValid(Member member){
+        if(Objects.isNull(member)||Objects.isNull(member.getId())){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈夋晥鐢ㄦ埛淇℃伅");
+        }
+        Member dbMember = memberMapper.selectById(member.getId());
+        if(Objects.isNull(dbMember)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛宸叉敞閿�");
+        }
+        if(!Constants.equalsInteger(dbMember.getIsdeleted(),Constants.ZERO)||!Constants.equalsInteger(dbMember.getStatus(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛宸茬鐢�");
+        }
+        return dbMember;
+    }
+
+
+
 }

--
Gitblit v1.9.3