This commit is contained in:
zhangchenbiao
2024-04-09 11:31:54 +08:00
parent b9aa62f758
commit e4de100cd6
37 changed files with 1323 additions and 59 deletions

View File

@@ -1,9 +1,9 @@
package com.cool.store.service;
import com.cool.store.request.*;
import com.cool.store.vo.LineUsernameAndMobileVO;
import com.cool.store.vo.point.AuditSettingVO;
import com.cool.store.vo.point.PointDetailVO;
import com.cool.store.vo.LinePointBaseInfoVO;
import com.cool.store.vo.point.*;
import com.github.pagehelper.PageInfo;
import java.util.List;
@@ -118,8 +118,64 @@ public interface ShopPointService {
/**
* 获取我负责的线索列表
* @param developmentManager
* @param request
* @return
*/
List<LineUsernameAndMobileVO> getLineList(String developmentManager);
PageInfo<LinePointBaseInfoVO> getLinePage(PointLinePageRequest request);
/**
* 获取我的数据
* @param userId
* @return
*/
PointHomePageDataVO getMyPointData(String userId);
/**
* 获取我的铺位
* @param request
* @return
*/
PageInfo<PointPageVO> getMyPointPage(PointPageRequest request);
/**
* 获取审批记录
* @param pointId
* @return
*/
List<PointAuditRecordVO> getPointAllAuditRecord(Long pointId);
/**
* 获取推荐铺位列表
* @param lineId
* @return
*/
List<PointRecommendPageVO> getLineRecommendPointList(Long lineId);
/**
* 获取我的可推荐铺位列表
* @param request
* @return
*/
PageInfo<PointPageVO> getRecommendPointList(RecommendPointPageRequest request);
/**
* 推送铺位
* @param request
* @return
*/
Integer recommendPoint(RecommendPointRequest request);
/**
* 选址人员转让加盟商
* @param request
* @return
*/
Integer turnLine(TurnLineRequest request);
/**
* 修改意向开店数量
* @param request
* @return
*/
Integer updateWantShopNum(UpdateWantShopNumRequest request);
}

View File

@@ -62,17 +62,6 @@ public class CommonService {
return (LineFlowService)applicationContext.getBean(workflowSubStageEnum.getClazz());
}
/**
* 获取用户id
* @param areaId 城市id
* @param userRole
* @return
*/
public String getUserIdByAreaAndUserRole(Long areaId, UserRoleEnum userRole){
//随机一个
return enterpriseUserDAO.getUserInfoByUserIds(Arrays.asList("02012524481349484395", "123836131931284423")).stream().findAny().get().getUserId();
}
public void sendMessage(List<String> userIds, Long lineId, MessageEnum message, String... param){
if(CollectionUtils.isEmpty(userIds)){
return;

View File

@@ -3,23 +3,29 @@ package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dto.interview.LineInterviewPageDTO;
import com.cool.store.dto.point.AuditNodeDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.AuditStatusEnum;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.NodeNoEnum;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.enums.point.PointRecommendStatus;
import com.cool.store.enums.point.PointStatusEnum;
import com.cool.store.enums.point.SelectStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.*;
import com.cool.store.service.LabelService;
import com.cool.store.service.RegionService;
import com.cool.store.service.ShopPointService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.vo.LineUsernameAndMobileVO;
import com.cool.store.vo.point.AuditSettingVO;
import com.cool.store.vo.point.PointDetailVO;
import com.cool.store.vo.LinePointBaseInfoVO;
import com.cool.store.vo.point.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
@@ -61,10 +67,19 @@ public class ShopPointServiceImpl implements ShopPointService {
private PointAuditRecordDAO pointAuditRecordDAO;
@Resource
private PointTodoInfoDAO pointTodoInfoDAO;
@Resource
private EnterpriseUserDAO enterpriseUserDAO;
@Resource
private RegionService regionService;
@Resource
private LabelService labelService;
@Resource
private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
private static final String AUDIT_SETTING_KEY = "audit_setting_key";
@Override
@Transactional(rollbackFor = Exception.class)
public Long addPointDetailInfo(AddPointDetailRequest shopPointDetailRequest, String userId) {
PointInfoDO shopPointInfo = AddPointDetailRequest.convertPointDO(shopPointDetailRequest);
shopPointInfo.setPointCode(generateCode());
@@ -92,6 +107,7 @@ public class ShopPointServiceImpl implements ShopPointService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updatePointDetailInfo(UpdatePointDetailRequest shopPointDetailRequest) {
PointInfoDO shopPointInfo = UpdatePointDetailRequest.convertPointDO(shopPointDetailRequest);
PointDetailInfoDO shopPoint = UpdatePointDetailRequest.convertDO(shopPointDetailRequest);
@@ -137,6 +153,7 @@ public class ShopPointServiceImpl implements ShopPointService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer pointUnbind(Long pointId) {
PointInfoDO pointInfo = pointInfoDAO.getPointInfoById(pointId);
if(Objects.isNull(pointInfo)){
@@ -189,6 +206,7 @@ public class ShopPointServiceImpl implements ShopPointService {
updatePoint.setId(pointId);
updatePoint.setPointStatus(PointStatusEnum.POINT_STATUS_3.getCode());
updatePoint.setSubmitAuditCount(submitAuditCount);
updatePoint.setOperateUserId(request.getOperateUserId());
PointDetailInfoDO updatePointDetail = new PointDetailInfoDO();
updatePointDetail.setId(pointDetailInfo.getId());
updatePointDetail.setDevelopmentManagerSign(request.getDevelopmentManagerSign());
@@ -297,6 +315,9 @@ public class ShopPointServiceImpl implements ShopPointService {
@Override
@Transactional(rollbackFor = Exception.class)
public Integer audit(String userId, PointAuditRequest request) {
if(!request.check()){
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
Long pointId = request.getPointId();
PointTodoInfoDO pointTodo = pointTodoInfoDAO.getPointToDoByUserIdAndPointId(userId, pointId);
if(Objects.isNull(pointTodo)){
@@ -357,9 +378,123 @@ public class ShopPointServiceImpl implements ShopPointService {
}
@Override
public List<LineUsernameAndMobileVO> getLineList(String developmentManager) {
lineInfoDAO.getLineListByDevelopmentManager(developmentManager);
return null;
public PageInfo<LinePointBaseInfoVO> getLinePage(PointLinePageRequest request) {
Page<LineInfoDO> lineList = lineInfoDAO.getLinePageByDevelopmentManager(request);
List<String> userPortraitList = lineList.stream().filter(x -> StringUtils.isNotEmpty(x.getUserPortrait() )).map(LineInfoDO::getUserPortrait).collect(Collectors.toList());
List<String> investmentManagerUserIds = lineList.stream().filter(x -> StringUtils.isNotEmpty(x.getInvestmentManager() )).map(LineInfoDO::getInvestmentManager).collect(Collectors.toList());
List<Long> lineIds = lineList.stream().map(LineInfoDO::getId).collect(Collectors.toList());
List<Long> wantShopAreaIds = lineList.stream().map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList());
Map<Long, Integer> recommendShopNumMap = pointRecommendDAO.getPushShopNumMap(lineIds);
Map<Long, HyOpenAreaInfoDO> cityMap = hyOpenAreaInfoDAO.getCityMap(wantShopAreaIds);
Map<Long, Integer> selectedShopNumMap = pointInfoDAO.getSelectedShopNumMap(lineIds);
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(investmentManagerUserIds);
Map<Long, String> userPortraitMap = labelService.getUserPortraitMap(userPortraitList);
List<LinePointBaseInfoVO> resultList = LinePointBaseInfoVO.convertList(lineList, userNameMap, userPortraitMap, cityMap, recommendShopNumMap, selectedShopNumMap);
PageInfo resultPage = new PageInfo(lineList);
resultPage.setList(resultList);
return resultPage;
}
@Override
public PointHomePageDataVO getMyPointData(String userId) {
return pointInfoDAO.getMyPointData(userId);
}
@Override
public PageInfo<PointPageVO> getMyPointPage(PointPageRequest request) {
if(Objects.nonNull(request.getPointStatus()) && PointStatusEnum.POINT_STATUS_3.getCode().equals(request.getPointStatus())){
request.setPointStatus(CommonConstants.ONE == request.getStorageStatus() ? PointStatusEnum.POINT_STATUS_4.getCode() : PointStatusEnum.POINT_STATUS_3.getCode());
}
List<PointPageVO> resultList = new ArrayList();
Page<PointInfoDO> pointPage = pointInfoDAO.getMyPointPage(request);
if(Objects.nonNull(pointPage) && CollectionUtils.isNotEmpty(pointPage.getResult())){
List<Long> regionIds = pointPage.stream().map(PointInfoDO::getRegionId).distinct().collect(Collectors.toList());
List<String> developmentManagers = pointPage.stream().map(PointInfoDO::getDevelopmentManager).distinct().collect(Collectors.toList());
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(developmentManagers);
Map<Long, String> regionNameMap = new HashMap<>();
resultList = PointPageVO.convertVO(pointPage.getResult(), userNameMap, regionNameMap);
}
PageInfo resultPage = new PageInfo(pointPage);
resultPage.setList(resultList);
return resultPage;
}
@Override
public List<PointAuditRecordVO> getPointAllAuditRecord(Long pointId) {
List<PointAuditRecordDO> auditRecordList = pointAuditRecordDAO.getPointAllAuditRecord(pointId);
if(CollectionUtils.isEmpty(auditRecordList)){
return Lists.newArrayList();
}
List<String> userIds = auditRecordList.stream().map(o->JSONObject.parseArray(o.getHandlerUserIds(), String.class)).flatMap(Collection::stream).distinct().collect(Collectors.toList());
Map<String, EnterpriseUserDO> userMap = enterpriseUserDAO.getUserInfoMap(userIds);
return PointAuditRecordVO.convert(auditRecordList, userMap);
}
@Override
public List<PointRecommendPageVO> getLineRecommendPointList(Long lineId) {
List<PointRecommendDO> recommendPointList = pointRecommendDAO.getRecommendPointList(lineId);
List<Long> pointIds = recommendPointList.stream().map(PointRecommendDO::getPointId).distinct().collect(Collectors.toList());
List<PointInfoDO> pointList = pointInfoDAO.getPointListByIds(pointIds);
List<Long> regionIds = pointList.stream().map(PointInfoDO::getRegionId).distinct().collect(Collectors.toList());
List<String> developmentManagers = pointList.stream().map(PointInfoDO::getDevelopmentManager).distinct().collect(Collectors.toList());
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(developmentManagers);
Map<Long, String> regionNameMap = new HashMap<>();
return PointRecommendPageVO.convertVO(recommendPointList, pointList, userNameMap, regionNameMap);
}
@Override
public PageInfo<PointPageVO> getRecommendPointList(RecommendPointPageRequest request) {
if(Objects.nonNull(request.getPointStatus()) && PointStatusEnum.POINT_STATUS_3.getCode().equals(request.getPointStatus())){
request.setPointStatus(PointStatusEnum.POINT_STATUS_4.getCode());
}
List<PointPageVO> resultList = new ArrayList();
Page<PointInfoDO> pointPage = pointInfoDAO.getRecommendPointList(request);
if(Objects.nonNull(pointPage) && CollectionUtils.isNotEmpty(pointPage.getResult())){
List<Long> regionIds = pointPage.stream().map(PointInfoDO::getRegionId).distinct().collect(Collectors.toList());
List<String> developmentManagers = pointPage.stream().map(PointInfoDO::getDevelopmentManager).distinct().collect(Collectors.toList());
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(developmentManagers);
Map<Long, String> regionNameMap = new HashMap<>();
resultList = PointPageVO.convertVO(pointPage.getResult(), userNameMap, regionNameMap);
}
PageInfo resultPage = new PageInfo(pointPage);
resultPage.setList(resultList);
return resultPage;
}
@Override
public Integer recommendPoint(RecommendPointRequest request) {
List<PointRecommendDO> recommendList = request.convertList();
return pointRecommendDAO.addRecommendPoint(recommendList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer turnLine(TurnLineRequest request) {
Long lineId = request.getLineId();
//更改线索中的拓展经理
LineInfoDO updateLineInfo = new LineInfoDO();
updateLineInfo.setId(lineId);
updateLineInfo.setDevelopmentManager(request.getDevelopmentManager());
lineInfoDAO.updateLineInfo(updateLineInfo);
//更新已被选择的铺位的拓展经理
pointInfoDAO.updateSelectedDevelopmentManager(lineId, request.getDevelopmentManager());
//删除未选择的推荐铺位
return pointRecommendDAO.deleteUnselectedRecommendPointByLineId(lineId);
}
@Override
public Integer updateWantShopNum(UpdateWantShopNumRequest request) {
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if(Objects.isNull(lineInfo)){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if(!WorkflowStageEnum.INTENT.getCode().equals(lineInfo.getWorkflowStage())){
throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_MODIFY_WANT_SHOP_NUM);
}
LineInfoDO updateLine = new LineInfoDO();
updateLine.setId(request.getLineId());
updateLine.setWantShopNum(request.getWantShopNum());
return lineInfoDAO.updateLineInfo(updateLine);
}
public List<AuditNodeDTO> dealAuditNode(AuditSettingVO auditSetting, PointInfoDO pointInfo) {