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