diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java index 846772b12..aac6df9d6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java @@ -208,6 +208,13 @@ public class LineInfoDAO { return lineInfoMapper.getLinesByKeyword(keyword); } + /** + * 查询已分配招商经理的所有线索 + */ + public List getLinesAssignInvestManager(String keyword) { + return lineInfoMapper.getLinesAssignInvestManager(keyword); + } + public List getByLineIds(List lineIds){ if (CollectionUtils.isEmpty(lineIds)){ return Lists.newArrayList(); diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java index 9a02fffa2..8f991d50d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java @@ -135,4 +135,8 @@ public interface LineInfoMapper extends Mapper { List getLinesByKeyword(@Param("keyword") String keyword); + /** + * 查询已分配招商经理的所有线索 + */ + List getLinesAssignInvestManager(@Param("keyword") String keyword); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml index 79dd32f8e..c4e0337be 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml @@ -650,6 +650,21 @@ order by id desc + + update xfsg_line_info set line_status = #{status} , investment_manager = #{investmentManager} ,region_id = #{regionId},invest_region_id = #{investRegionId} where id in diff --git a/coolstore-partner-dao/src/main/resources/mapper/visit/VisitRecordMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/visit/VisitRecordMapper.xml index 2085c530f..7a1b27697 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/visit/VisitRecordMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/visit/VisitRecordMapper.xml @@ -62,7 +62,7 @@ @@ -165,6 +171,12 @@ AND a.user_id = #{request.userId} + + AND a.desire = #{request.desire} + + + AND b.invest_region_id = #{request.investRegionId} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/VisitRecordQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/VisitRecordQueryRequest.java index 019d37b50..d5ec89c74 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/VisitRecordQueryRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/VisitRecordQueryRequest.java @@ -36,6 +36,12 @@ public class VisitRecordQueryRequest extends PageBasicInfo { @ApiModelProperty("拜访状态,0待签到 1待签退 2已完成 3已失效") private Integer status; + + @ApiModelProperty("开新店意愿") + private String desire; + + @ApiModelProperty("招商所属大区ID") + private Long investRegionId; @ApiModelProperty(value = "拜访人id", hidden = true) private String userId; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitPartnerListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitPartnerListVO.java index f9f9f0d3c..d7041401e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitPartnerListVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitPartnerListVO.java @@ -33,4 +33,10 @@ public class VisitPartnerListVO { @ApiModelProperty("新老加盟商,0新 1老") private Integer isVeteran; + + @ApiModelProperty("招商所属大区名称") + private String investRegionName; + + @ApiModelProperty("招商经理名称") + private String investmentManagerName; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordDetailVO.java index 00526ef73..347cba653 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordDetailVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordDetailVO.java @@ -93,6 +93,12 @@ public class VisitRecordDetailVO { @ApiModelProperty("拜访人名称") private String userName; + @ApiModelProperty("招商所属大区名称") + private String investRegionName; + + @ApiModelProperty("招商经理名称") + private String investmentManagerName; + public String getStatusName() { return VisitStatusEnum.getDescByStatus(status); } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordListVO.java index 970e6cd18..144836e48 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordListVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/VisitRecordListVO.java @@ -1,5 +1,6 @@ package com.cool.store.vo.visit; +import com.cool.store.annotation.DictField; import com.cool.store.enums.visit.VisitStatusEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -40,6 +41,10 @@ public class VisitRecordListVO { @ApiModelProperty("开新店意愿") private String desire; + @ApiModelProperty("开新店意愿名称") + @DictField + private String desireName; + @ApiModelProperty("意向开店城市") private String desireCity; @@ -73,6 +78,18 @@ public class VisitRecordListVO { @ApiModelProperty("拜访人") private String visitUserName; + @ApiModelProperty("招商所属大区ID") + private Long investRegionId; + + @ApiModelProperty("招商所属大区名称") + private String investRegionName; + + @ApiModelProperty("招商经理") + public String investmentManager; + + @ApiModelProperty("招商经理名称") + private String investmentManagerName; + public String getStatusName() { return VisitStatusEnum.getDescByStatus(status); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LineService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LineService.java index 3788a592a..e0a355628 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LineService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LineService.java @@ -101,6 +101,11 @@ public interface LineService { //增加查询资质审核的意向加盟商或正式加盟商搜索范围为全部 PageInfo getLines(LinesRequest request); + + /** + * 查询已分配招商经理的所有线索 + */ + PageInfo getLinesAssignInvestManager(LinesRequest request); /** * @Auther: wangshuo 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 ccb6c2057..13e26b0f0 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 @@ -647,6 +647,13 @@ public class LineServiceImpl implements LineService { return pageInfo; } + @Override + public PageInfo getLinesAssignInvestManager(LinesRequest request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List lines = lineInfoDAO.getLinesAssignInvestManager(request.getKeyword()); + return new PageInfo<>(lines); + } + @Override public Integer updatePartnerName(String username, Long lineId) { LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/visit/impl/VisitRecordServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/visit/impl/VisitRecordServiceImpl.java index ea1cdfc19..2082229fe 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/visit/impl/VisitRecordServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/visit/impl/VisitRecordServiceImpl.java @@ -10,6 +10,7 @@ import com.cool.store.dao.visit.VisitRecordDAO; import com.cool.store.dto.region.BigRegionDTO; import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.QualificationsInfoDO; +import com.cool.store.entity.RegionDO; import com.cool.store.entity.StoreDO; import com.cool.store.entity.store.StoreMasterSignerInfoDO; import com.cool.store.entity.visit.VisitRecordDO; @@ -59,6 +60,7 @@ public class VisitRecordServiceImpl implements VisitRecordService { private final SimpleMessageService simpleMessageService; private final AdDistrictDAO adDistrictDAO; private final EnterpriseUserDAO enterpriseUserDAO; + private final RegionDao regionDao; @Override public String signIn(VisitSignInRequest request) { @@ -129,6 +131,11 @@ public class VisitRecordServiceImpl implements VisitRecordService { List lineList = lineInfoDAO.getByLineIds(lineIds); Map lineMap = CollStreamUtil.toMap(lineList, LineInfoDO::getId, v -> v); Map storeNumMap = getStoreNumMap(lineIds); + Set investmentManagerIds = CollStreamUtil.toSet(lineList, LineInfoDO::getInvestmentManager); + Set investRegionIds = CollStreamUtil.toSet(lineList, LineInfoDO::getInvestRegionId); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(investmentManagerIds)); + Map regionNameMap = regionDao.getRegionNameMap(new ArrayList<>(investRegionIds)); + list.forEach(v -> { v.setOpenNum(storeNumMap.getOrDefault(v.getLineId(), 0)); v.setIsVeteran(v.getOpenNum() > 0 ? 1 : 0); @@ -136,6 +143,8 @@ public class VisitRecordServiceImpl implements VisitRecordService { if (Objects.nonNull(lineInfoDO)) { v.setName(lineInfoDO.getUsername()); v.setMobile(lineInfoDO.getMobile()); + v.setInvestmentManagerName(userNameMap.get(lineInfoDO.getInvestmentManager())); + v.setInvestRegionName(regionNameMap.get(lineInfoDO.getInvestRegionId())); } }); return result; @@ -157,6 +166,7 @@ public class VisitRecordServiceImpl implements VisitRecordService { storeNumMap.compute(signerInfoDO.getSigner2IdCardNo(), (k, v) -> Objects.isNull(v) ? 1 : v + 1); } } + storeNumMap.remove(null); return CollStreamUtil.toMap(lineIds, v -> v, v -> storeNumMap.getOrDefault(idCardMap.get(v), 0)); } @@ -198,6 +208,11 @@ public class VisitRecordServiceImpl implements VisitRecordService { if (Objects.nonNull(lineInfo)) { vo.setName(lineInfo.getUsername()); vo.setMobile(lineInfo.getMobile()); + vo.setInvestmentManagerName(enterpriseUserDAO.getUserName(lineInfo.getInvestmentManager())); + RegionDO investRegion = regionDao.getRegionById(lineInfo.getInvestRegionId()); + if (Objects.nonNull(investRegion)) { + vo.setInvestRegionName(investRegion.getName()); + } } if (StringUtils.isNotBlank(record.getUserId())){ String userName = enterpriseUserDAO.getUserName(record.getUserId()); @@ -230,24 +245,27 @@ public class VisitRecordServiceImpl implements VisitRecordService { List list = visitRecordDAO.getVisitRecordList(request); PageInfo page = new PageInfo<>(list); Set lineIds = CollStreamUtil.toSet(list, VisitRecordListVO::getLineId); - Set userIdList = CollStreamUtil.toSet(list, VisitRecordListVO::getVisitUserId); - Map userNameMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(userIdList)){ - userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIdList)); - } + Set userIdList = list.stream() + .flatMap(v -> Stream.of(v.getVisitUserId(), v.getInvestmentManager())) + .collect(Collectors.toSet()); + Set regionIds = CollStreamUtil.toSet(list, VisitRecordListVO::getInvestRegionId); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIdList)); + Map regionNameMap = regionDao.getRegionNameMap(new ArrayList<>(regionIds)); List adCodes = list.stream() .flatMap(v -> Stream.of(v.getDesireCity(), v.getDesireDistrict())) .distinct() .collect(Collectors.toList()); Map adNameMap = adDistrictDAO.getNameByCodes(adCodes); Map storeNumMap = getStoreNumMap(new ArrayList<>(lineIds)); - Map finalUserNameMap = userNameMap; list.forEach(v -> { v.setIsVeteran(storeNumMap.getOrDefault(v.getLineId(), 0) > 0 ? 1 : 0); v.setDesireCityName(adNameMap.get(v.getDesireCity())); v.setDesireDistrictName(adNameMap.get(v.getDesireDistrict())); - v.setVisitUserName(finalUserNameMap.get(v.getVisitUserId())); + v.setVisitUserName(userNameMap.get(v.getVisitUserId())); + v.setInvestRegionName(regionNameMap.get(v.getInvestRegionId())); + v.setInvestmentManagerName(userNameMap.get(v.getInvestmentManager())); }); + dictService.fillDictField(list); return page; } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java index c9e81990a..f0631a239 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/LineInfoController.java @@ -180,6 +180,12 @@ public class LineInfoController { return ResponseResult.success(lineService.getLines(request)); } + @ApiOperation("查询已分配招商经理的所有线索") + @PostMapping("/getLinesAssignInvest") + public ResponseResult> getLinesAssignInvestManager(@RequestBody LinesRequest request) { + return ResponseResult.success(lineService.getLinesAssignInvestManager(request)); + } + @ApiOperation("修改所属大区/分公司") @GetMapping("/updateLineRegion") public ResponseResult updateLineRegion(@RequestParam("regionId")Long regionId,