From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 19 八月 2025 11:01:40 +0800
Subject: [PATCH] 优化

---
 server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |   72 +++++++++++++++++++++++++++---------
 1 files changed, 54 insertions(+), 18 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 33954ea..adde7de 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
@@ -13,10 +13,9 @@
 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.ManagersMapper;
 import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.model.Company;
-import com.doumee.dao.business.model.CompanyMember;
-import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.dto.LoginH5DTO;
 import com.doumee.dao.web.dto.UpdEmailDTO;
@@ -27,14 +26,19 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestHeader;
 
+import javax.annotation.Resource;
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -46,8 +50,11 @@
  * @since 2025/04/02 17:49
  */
 @Service
+@Slf4j
 public class MemberServiceImpl implements MemberService {
 
+    @Resource(name="sessionRedisTemplate")
+    private RedisTemplate<Object, Serializable> redisTemplate;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
@@ -56,6 +63,8 @@
     private CompanyMapper companyMapper;
     @Autowired
     private CompanyMemberMapper companyMemberMapper;
+    @Autowired
+    private ManagersMapper managersMapper;
 
     @Override
     public Integer create(Member member) {
@@ -84,7 +93,19 @@
 
     @Override
     public void updateById(Member member) {
-        memberMapper.updateById(member);
+        if( member.getId() == null){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                .eq(Member::getId,member.getId() )
+                .set(Member::getSex,member.getSex() )
+                .set(Member::getPhone,member.getPhone() )
+                .set(Member::getRemark,member.getRemark() )
+                .set(Member::getEmail,member.getEmail() )
+                .set(Member::getEditDate,new Date())
+                .set(Member::getEditor,user.getId())
+        );
     }
 
     @Override
@@ -207,6 +228,11 @@
             //涓嶅寘鍚笅绾х粍缁�
             queryWrapper.exists(pageWrap.getModel().getCompanyId()!=null,"select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getModel().getCompanyId()+"'  and cm.member_id=t.id");
         }
+
+        if(Objects.nonNull(pageWrap.getModel().getIsSendCopy())&&Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getIsSendCopy())){
+            queryWrapper.apply(" t.id in ( select MEMBER_ID  from managers where  ISDELETED= 0 and STATUS = 0 and TYPE = 1  ) ");
+        }
+
         queryWrapper.orderByAsc(Member::getCreateDate);
         PageData<Member> record =  PageData.from(memberMapper.selectJoinPage(page,Member.class, queryWrapper));
         if(record!=null && record.getRecords()!=null){
@@ -226,6 +252,7 @@
     }
 
     @Override
+    @Transactional
     public  void syncQwAll(){
         if(Constants.DEALING_MEMBER_SYNC){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍚屾浠诲姟姝e湪杩涜锛岃绋嶅悗鍒锋柊椤甸潰閲嶈瘯锛�");
@@ -243,15 +270,20 @@
             LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
             Date date = new Date();
             List<QywxUserListResponse>  list = new ArrayList<>();
+            int index =0;
             for(Company c : companyList){
                 List<QywxUserListResponse> tList =   QywxUtil.getUserList(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),c.getQwId());
                 if(tList!=null){
+                    log.error((index++)+"==============="+c.getName()+"============浜哄憳鏁伴噺锛�"+tList.size());
                     list.addAll(tList);
+                }else{
+                    log.error((index++)+"==============="+c.getName()+"============浜哄憳鏁伴噺锛�0");
                 }
             }
             if(list == null || list.size() ==0){
                 throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
             }
+            log.error( "###################=================浜哄憳鎬绘暟閲忥細"+list.size());
             List<Member>  memberList = memberMapper.selectList(new LambdaQueryWrapper<Member>().eq(Member::getIsdeleted,Constants.ZERO));
             List<Member>  newList = new ArrayList<>();
             List<Member>  updateList = new ArrayList<>();
@@ -286,7 +318,7 @@
                         if(StringUtils.isNotBlank(comNames)){
                             comNames += ",";
                         }
-                        comNames += c.getNamePath();
+                        comNames += StringUtils.defaultString(c.getNamePath(),c.getName());
                     }
                 }
                 cm.setCompanyList(qycom);
@@ -418,18 +450,18 @@
         }
         String token = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode();
         //鏍规嵁code鎹㈠尯浼佷笟寰俊ID
-        QywxBaseResponse<String> qwIdBaseResponse= null;// 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();
-        String qwId = dto.getCode();
+        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();
+//        String qwId = dto.getCode();
         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 鏌ヨ鐢ㄦ埛淇℃伅
@@ -437,7 +469,7 @@
             if(Objects.isNull(qywxUserInfoResponse)||Objects.isNull(qywxUserInfoResponse.getErrcode())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鑾峰彇鐢ㄦ埛淇℃伅瑙f瀽澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
-            if(Constants.equalsInteger(qywxUserInfoResponse.getErrcode(),Constants.ZERO)){
+            if(!Constants.equalsInteger(qywxUserInfoResponse.getErrcode(),Constants.ZERO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼佷笟寰俊鑾峰彇鐢ㄦ埛淇℃伅澶辫触锛�"+qwIdBaseResponse.getErrmsg());
             }
             member = new Member();
@@ -450,6 +482,10 @@
             member.setQwId(qwId);
             memberMapper.insert(member);
         }
+        //鏌ヨ鏄惁鏈夋潈闄�
+        member.setDcaButton(managersMapper.selectCount(new QueryWrapper<Managers>().lambda()
+                .eq(Managers::getIsdeleted,Constants.ZERO).eq(Managers::getMemberId,member.getId())
+                .eq(Managers::getType,Constants.TWO))>Constants.ZERO?Constants.ONE:Constants.ZERO);
         return member;
     }
 

--
Gitblit v1.9.3