diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java index ba6721d8d..24df8635b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java @@ -212,4 +212,11 @@ public class ShopInfoDAO { } return shopInfoMapper.batchUpdate(list); } + + public List selectInvestmentByLines(List lineIds) { + if (CollectionUtils.isEmpty(lineIds)) { + return new ArrayList<>(); + } + return shopInfoMapper.selectInvestmentByList(lineIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java index c068e7a4a..c56f33362 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java @@ -117,4 +117,6 @@ public interface ShopInfoMapper extends Mapper { List selectAllDataOrByLineId(@Param("lineId") Long lineId); Boolean batchUpdate(List list); + + List selectInvestmentByList (@Param("list") List list); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 9bb9f0f9e..7e5345236 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -381,6 +381,15 @@ + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java index bd97b83d4..f28d2e5f8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java @@ -41,6 +41,8 @@ import java.util.stream.Stream; @Service public class LineServiceImpl implements LineService { + @Resource + ShopInfoDAO shopInfoDAO; @Resource LineInfoDAO lineInfoDAO; @Resource @@ -98,11 +100,21 @@ public class LineServiceImpl implements LineService { Map channelMapByIds = hyPartnerUserChannelDAO.getChannelMapByIds(Arrays.asList(lineInfo.getLineSource())); result.setLineSourceName(channelMapByIds.get(lineInfo.getLineSource())); } - if (StringUtil.isNotEmpty(lineInfo.getInvestmentManager())){ - EnterpriseUserDO user = enterpriseUserDAO.getUserInfoById(lineInfo.getInvestmentManager()); - result.setInvestmentManagerName(user.getName()); - result.setInvestmentManagerMobile(user.getMobile()); + + List shopInfoDOS = shopInfoDAO.selectInvestmentByLines(Collections.singletonList(lineInfo.getId())); + Set userIds = shopInfoDOS.stream().map(ShopInfoDO::getInvestmentManager).collect(Collectors.toSet()); + userIds.add(lineInfo.getInvestmentManager()); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds)); + StringBuilder investmentManagerName = new StringBuilder(); + for (String userId : userNameMap.keySet()){ + investmentManagerName.append(userNameMap.get(userId)).append(","); } + result.setInvestmentManagerName(investmentManagerName.toString().substring(0, investmentManagerName.length() - 1)); +// if (StringUtil.isNotEmpty(lineInfo.getInvestmentManager())){ +// EnterpriseUserDO user = enterpriseUserDAO.getUserInfoById(lineInfo.getInvestmentManager()); +// result.setInvestmentManagerName(user.getName()); +// result.setInvestmentManagerMobile(user.getMobile()); +// } if(lineInfo.getRegionId() != null && lineInfo.getRegionId() != 0){ Long bigRegionIdByAreaId = regionService.getBigRegionIdByAreaId(lineInfo.getWantShopAreaId()); Map regionNameMap = regionDao.getRegionNameMap(Arrays.asList(bigRegionIdByAreaId, lineInfo.getRegionId())); @@ -246,19 +258,22 @@ public class LineServiceImpl implements LineService { PageHelper.startPage(partnerRequest.getPageNum(), partnerRequest.getPageSize()); List lineInfoDOS = lineInfoDAO.partnerList(partnerRequest,areaName, userId, regionId); PageInfo page = new PageInfo(lineInfoDOS); + List lineIds = lineInfoDOS.stream().map(LineInfoDO::getId).collect(Collectors.toList()); + List shopInfoDOS = shopInfoDAO.selectInvestmentByLines(lineIds); + Map> investmentManagerIdMapByLineId = shopInfoDOS.stream().collect(Collectors.groupingBy(ShopInfoDO::getLineId, Collectors.mapping(ShopInfoDO::getInvestmentManager, Collectors.toSet()))); + Set investmentManagerIds =shopInfoDOS.stream().map(ShopInfoDO::getInvestmentManager).collect(Collectors.toSet()); Map userPortraitMap = deskService.getUserPortraitMap(lineInfoDOS); List wantShopAreaIdList = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIdList); List lineSourceIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getLineSource() != null).map(LineInfoDO::getLineSource).collect(Collectors.toList()); Map channelMapByIds = hyPartnerUserChannelDAO.getChannelMapByIds(lineSourceIds); - - List userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getInvestmentManager() != null).map(LineInfoDO::getInvestmentManager).collect(Collectors.toList()); + Set userIds = new HashSet<>(); + userIds.addAll(lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getInvestmentManager() != null).map(LineInfoDO::getInvestmentManager).collect(Collectors.toList())); userIds.addAll(lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getDevelopmentManager() != null).map(LineInfoDO::getDevelopmentManager).collect(Collectors.toList())); userIds.addAll(lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getUpdateUserId() != null).map(LineInfoDO::getUpdateUserId).collect(Collectors.toList())); - Map userNameMap = enterpriseUserDAO.getUserNameMap(userIds); + userIds.addAll(investmentManagerIds); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds)); - - List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); List signingBaseInfoDOS = intentAgreementMapper.selectByLineIds(lineIds); Map dateMap = signingBaseInfoDOS.stream().collect(Collectors.toMap(SigningBaseInfoDO::getLineId, SigningBaseInfoDO::getCreateTime)); @@ -275,12 +290,19 @@ public class LineServiceImpl implements LineService { if (regionNameMap!=null){ partnerListVO.setRegionName(regionNameMap.get(x.getRegionId())); } + StringBuilder investmentManagerUserName = new StringBuilder(); + investmentManagerUserName.append(userNameMap.get(x.getInvestmentManager())); + if (investmentManagerIdMapByLineId.get(x.getId()) != null){ + for (String s : investmentManagerIdMapByLineId.get(x.getId())){ + investmentManagerUserName.append(",").append(userNameMap.get(s)); + } + } partnerListVO.setUpdateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, x.getUpdateTime())); partnerListVO.setLineSourceName(channelMapByIds.get(x.getLineSource())); partnerListVO.setJoinStatus(x.getJoinStatus()); partnerListVO.setJoinMode(x.getJoinMode()); partnerListVO.setPartnerNum(x.getPartnerNum()); - partnerListVO.setInvestmentManagerUserName(userNameMap.get(x.getInvestmentManager())); + partnerListVO.setInvestmentManagerUserName(investmentManagerUserName.toString()); partnerListVO.setUpdateUserName(userNameMap.get(x.getUpdateUserId())); partnerListVO.setDevelopmentManagerUserName(userNameMap.get(x.getDevelopmentManager())); partnerListVO.setWantShopNum(x.getWantShopNum());