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/ManagersServiceImpl.java | 166 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 149 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 6d4430c..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 @@ -1,19 +1,35 @@ package com.doumee.service.business.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.doumee.core.constants.Constants; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; 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; import com.doumee.service.business.ManagersService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import io.swagger.models.auth.In; +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; /** @@ -26,16 +42,89 @@ @Autowired private ManagersMapper managersMapper; + @Autowired + private MemberMapper memberMapper; + @Autowired + private CompanyMapper companyMapper; @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer create(Managers managers) { - managersMapper.insert(managers); - return managers.getId(); + + List<Managers> newList = new ArrayList<>(); + if( managers.getIsMember() == null || managers.getType() == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + 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(); + + 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 public void deleteById(Integer id) { - managersMapper.deleteById(id); + Managers managers = new Managers(); + managers.setId(id); + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + managers.setEditor(user.getId()); + managers.setEditDate(new Date()); + managers.setIsdeleted(Constants.ONE); + managersMapper.updateById(managers); } @Override @@ -49,11 +138,16 @@ if (CollectionUtils.isEmpty(ids)) { return; } - managersMapper.deleteBatchIds(ids); + for(Integer id :ids){ + deleteById(id); + } } @Override public void updateById(Managers managers) { + LoginUserInfo user = new LoginUserInfo(); + managers.setEditor(user.getId()); + managers.setEditDate(new Date()); managersMapper.updateById(managers); } @@ -79,17 +173,56 @@ } @Override - public List<Managers> findList(Managers managers) { - QueryWrapper<Managers> wrapper = new QueryWrapper<>(managers); - return managersMapper.selectList(wrapper); + public List<Managers> findList(Managers pageWrap) { + MPJLambdaWrapper<Managers> queryWrapper = new MPJLambdaWrapper<>(); + pageWrap.setIsdeleted(Constants.ZERO); + queryWrapper.selectAll(Managers.class ) + .selectAs(Member::getPhone,Managers::getMemberPhone) + .selectAs(Member::getName,Managers::getMemberName) + .selectAs(Member::getEmail,Managers::getMemberEmail) + .selectAs(Member::getCompanyName,Managers::getCompanyName) + .selectAs(SystemUser::getUsername,Managers::getEditorName) + .leftJoin(Member.class,Member::getId,Managers::getMemberId) + .leftJoin(SystemUser.class,SystemUser::getId,Managers::getEditor) + .eq(pageWrap.getId() != null, Managers::getId, pageWrap.getId()) + .eq(pageWrap.getCreator() != null, Managers::getCreator, pageWrap.getCreator()) + .ge(pageWrap.getCreateDate() != null, Managers::getCreateDate, Utils.Date.getStart(pageWrap.getCreateDate())) + .le(pageWrap.getCreateDate() != null, Managers::getCreateDate, Utils.Date.getEnd(pageWrap.getCreateDate())) + .eq(pageWrap.getEditor() != null, Managers::getEditor, pageWrap.getEditor()) + .ge(pageWrap.getEditDate() != null, Managers::getEditDate, Utils.Date.getStart(pageWrap.getEditDate())) + .le(pageWrap.getEditDate() != null, Managers::getEditDate, Utils.Date.getEnd(pageWrap.getEditDate())) + .eq(pageWrap.getIsdeleted() != null, Managers::getIsdeleted, pageWrap.getIsdeleted()) + .eq(pageWrap.getCategoryId() != null, Managers::getCategoryId, pageWrap.getCategoryId()) + .eq(pageWrap.getRemark() != null, Managers::getRemark, pageWrap.getRemark()) + .eq(pageWrap.getStatus() != null, Managers::getStatus, pageWrap.getStatus()) + .eq(pageWrap.getSortnum() != null, Managers::getSortnum, pageWrap.getSortnum()) + .eq(pageWrap.getType() != null, Managers::getType, pageWrap.getType()) + .eq(pageWrap.getMemberId() != null, Managers::getMemberId, pageWrap.getMemberId()) + .like(pageWrap.getMemberName() != null, Member::getName, pageWrap.getMemberName()); + if (pageWrap.getKeyword() != null) { + queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getKeyword()) + .or().like(Member::getPhone,pageWrap.getKeyword()) + .or().like(Member::getCompanyName,pageWrap .getKeyword())); + } + queryWrapper.orderByDesc(Managers::getCreateDate); + return managersMapper.selectJoinList( Managers.class, queryWrapper); } @Override public PageData<Managers> findPage(PageWrap<Managers> pageWrap) { IPage<Managers> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - QueryWrapper<Managers> queryWrapper = new QueryWrapper<>(); + MPJLambdaWrapper<Managers> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); - queryWrapper.lambda() + pageWrap.getModel().setIsdeleted(Constants.ZERO); + 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) + .leftJoin(Member.class,Member::getId,Managers::getMemberId) + .leftJoin(SystemUser.class,SystemUser::getId,Managers::getEditor) .eq(pageWrap.getModel().getId() != null, Managers::getId, pageWrap.getModel().getId()) .eq(pageWrap.getModel().getCreator() != null, Managers::getCreator, pageWrap.getModel().getCreator()) .ge(pageWrap.getModel().getCreateDate() != null, Managers::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())) @@ -104,15 +237,14 @@ .eq(pageWrap.getModel().getSortnum() != null, Managers::getSortnum, pageWrap.getModel().getSortnum()) .eq(pageWrap.getModel().getType() != null, Managers::getType, pageWrap.getModel().getType()) .eq(pageWrap.getModel().getMemberId() != null, Managers::getMemberId, pageWrap.getModel().getMemberId()) - ; - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } + .like(pageWrap.getModel().getMemberName() != null, Member::getName, pageWrap.getModel().getMemberName()); + if (pageWrap.getModel().getKeyword() != null) { + queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getModel().getKeyword()) + .or().like(Member::getPhone,pageWrap.getModel().getKeyword()) + .or().like(Member::getCompanyName,pageWrap.getModel().getKeyword())); } - return PageData.from(managersMapper.selectPage(page, queryWrapper)); + queryWrapper.orderByDesc(Managers::getCreateDate); + return PageData.from(managersMapper.selectJoinPage(page,Managers.class, queryWrapper)); } @Override -- Gitblit v1.9.3