From ff087240b3dee29ce4e14ad0836e76b9fdf312cf Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 19 八月 2025 09:28:07 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/lianhelihua_sh

---
 server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java |   86 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 69 insertions(+), 17 deletions(-)

diff --git a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
index 5e57bfb..112f4c5 100644
--- a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
@@ -8,8 +8,10 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyMapper;
 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.Managers;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.system.model.SystemUser;
@@ -23,8 +25,10 @@
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -40,29 +44,76 @@
     private ManagersMapper managersMapper;
     @Autowired
     private MemberMapper memberMapper;
+    @Autowired
+    private CompanyMapper companyMapper;
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(Managers managers) {
-        Member member =memberMapper.selectById(managers.getMemberId());
-        if(member == null || Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){
-            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヨ礋璐d汉淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+
+        List<Managers> newList = new ArrayList<>();
+        if(  managers.getIsMember() == null || managers.getType() == null){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        Managers model =managersMapper.selectOne(new LambdaQueryWrapper<Managers>().eq(Managers::getMemberId,managers.getMemberId())
-                .eq(Managers::getType,managers.getType())
-                .eq(Managers::getIsdeleted,Constants.ZERO)
-        );
-        if(model !=null){
-            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇ヤ汉鍛樹俊鎭凡璁剧疆锛屾棤闇�閲嶆柊娣诲姞");
+        List<Member> memberList = new ArrayList<>();
+        List<Integer> memberIdList = new ArrayList<>();
+
+        //璁剧疆鑼冨洿 0鐩村睘閮ㄩ棬鍛樺伐 1閮ㄩ棬鍙婂叾涓嬬骇甯冩仼鍛樺伐 2鎸囧畾浜哄憳
+        if(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO) || Constants.equalsInteger(managers.getIsMember(),Constants.ONE)){
+            //鐩村睘閮ㄩ棬 鎴� 閮ㄩ棬鍙婂叾瀛愰儴闂�
+          /*  if(managers.getCompanyId() ==null ){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+            Company company = companyMapper.selectById(managers.getCompanyId());
+            if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
+                throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝閮ㄩ棬淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+            }*/
+            if(managers.getCompanyIds() ==null  || managers.getCompanyIds().size() ==0 ){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+            memberList  =memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                    .selectAll(Member.class)
+                    .eq(Member::getIsdeleted,Constants.ZERO)
+                    .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO),"select (cm.id) from company_member cm where cm.company_id in ("+String.join(",",managers.getCompanyIds())+" ) and cm.member_id=t.id")
+//                    .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ONE),"select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%'  and cm.member_id=t.id")
+            );
+        }else{
+            if(managers.getMemberIds()==null || managers.getMemberIds().size()==0){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜瑕佹眰閫夋嫨鎸囧畾鍛樺伐淇℃伅锛�");
+            }
+            memberList  =memberMapper.selectList(new LambdaQueryWrapper<Member>()
+                    .eq(Member::getIsdeleted,Constants.ZERO)
+                    .in(Member::getId,managers.getMemberIds()));
+        }
+        if(memberList.size() ==0){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝閫夋嫨鑼冨洿鏈煡璇㈠埌鐩稿叧鍛樺伐淇℃伅锛屾娆¤缃棤鏁堬紒");
         }
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        managers.setCreator(user.getId());
-        managers.setCreateDate(new Date());
-        managers.setIsdeleted(Constants.ZERO);
-        managers.setEditor(managers.getCreator());
-        managers.setEditDate(managers.getCreateDate());
-        managers.setStatus(Constants.ZERO);
-        managersMapper.insert(managers);
-        return managers.getId();
+
+        Date date = new Date();
+        for(Member m :memberList){
+            Managers mm = new Managers();
+            mm.setCreator(user.getId());
+            mm.setCreateDate(date);
+            mm.setIsdeleted(Constants.ZERO);
+            mm.setEditor(mm.getCreator());
+            mm.setEditDate(mm.getCreateDate());
+            mm.setStatus(Constants.ZERO);
+            mm.setType(managers.getType());
+            mm.setMemberId(m.getId());
+            mm.setIsQw(managers.getIsQw());
+            mm.setIsEmail(managers.getIsEmail());
+            mm.setRemark(managers.getRemark());
+            memberIdList.add(m.getId());
+            newList.add(mm);
+        }
+        //娓呯┖鍘熸湁鐨勮缃俊鎭�
+        managersMapper.delete(new UpdateWrapper<Managers>().lambda()
+                .eq(Managers::getType,managers.getType())
+                .in(Managers::getMemberId,memberIdList)
+        );
+        managersMapper.insert(newList);
+        return newList.size();
     }
 
     @Override
@@ -166,6 +217,7 @@
         queryWrapper.selectAll(Managers.class )
                 .selectAs(Member::getPhone,Managers::getMemberPhone)
                 .selectAs(Member::getName,Managers::getMemberName)
+                .selectAs(Member::getQwId,Managers::getMemberQwId)
                 .selectAs(Member::getEmail,Managers::getMemberEmail)
                 .selectAs(Member::getCompanyName,Managers::getCompanyName)
                 .selectAs(SystemUser::getUsername,Managers::getEditorName)

--
Gitblit v1.9.3