From 5d2afdf9c58c6cb5c57e2b06fb5ad82d710b0ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 10 Jan 2025 19:02:16 +0800 Subject: [PATCH] feat:V2.4 --- .../com/cool/store/enums/ErrorCodeEnum.java | 2 + .../java/com/cool/store/dao/LineInfoDAO.java | 9 ++ .../java/com/cool/store/dao/PointInfoDAO.java | 6 +- .../com/cool/store/dao/PointRecommendDAO.java | 46 +++++- .../java/com/cool/store/dao/ShopInfoDAO.java | 18 +++ .../com/cool/store/mapper/LineInfoMapper.java | 2 + .../cool/store/mapper/PointInfoMapper.java | 4 +- .../store/mapper/PointRecommendMapper.java | 31 +++- .../com/cool/store/mapper/ShopInfoMapper.java | 14 ++ .../main/resources/mapper/PointInfoMapper.xml | 2 +- .../resources/mapper/PointRecommendMapper.xml | 76 ++++++++- .../main/resources/mapper/ShopInfoMapper.xml | 40 +++++ .../resources/mapper/ShopStageInfoMapper.xml | 7 +- .../cool/store/dto/point/ShopCountDTO.java | 23 +++ .../cool/store/dto/point/ShopPointDTO.java | 31 ++++ .../cool/store/entity/PointRecommendDO.java | 3 + .../request/LineRecommendPointRequest.java | 8 +- .../store/request/MiniPointPageRequest.java | 4 +- .../request/PointRecommendLineRequest.java | 8 +- .../store/request/RejectPointRequest.java | 4 +- .../cool/store/request/TurnLineRequest.java | 4 +- .../cool/store/vo/point/MiniPointPageVO.java | 2 +- .../store/vo/shop/ShopPointBaseInfoVO.java | 119 ++++++++++++++ .../com/cool/store/service/DeskService.java | 47 +----- .../com/cool/store/service/PointService.java | 17 ++ .../store/service/PreparationService.java | 8 + .../com/cool/store/service/ShopService.java | 12 ++ .../store/service/impl/DeskServiceImpl.java | 132 ---------------- .../store/service/impl/PointServiceImpl.java | 147 ++++++++++++++---- .../service/impl/PreparationServiceImpl.java | 28 +++- .../store/service/impl/ShopServiceImpl.java | 81 ++++++++-- .../store/controller/webb/DeskController.java | 44 ------ .../controller/webb/PCShopController.java | 7 + .../controller/webb/PointController.java | 26 +++- .../controller/webc/MiniShopController.java | 4 - .../store/controller/webc/TestController.java | 8 + 36 files changed, 702 insertions(+), 322 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopCountDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopPointDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/shop/ShopPointBaseInfoVO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index f94f79df3..c67313712 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -200,6 +200,8 @@ public enum ErrorCodeEnum { INVOICING_EXIST(109016, "当前门店发票信息已存在!", null), + SHOP_STATUS_NOT_SUPPORT_HANDLER(109016, "当前门店状态为:{},不能进行结束跟进操作", null), + INSERT_OPENING_OPERATION_PLAN_AUDIT_FALSE(103001,"插入运营方案审核信息失败",null), INSERT_OPENING_OPERATION_PLAN_FALSE(103002,"插入运营方案失败",null), 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 49d6c41cb..ab123db41 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 @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.aliyun.openservices.shade.com.google.common.collect.Lists; import com.cool.store.constants.CommonConstants; import com.cool.store.dto.InvestmentCountDTO; import com.cool.store.dto.PendingCountDTO; @@ -204,4 +205,12 @@ public class LineInfoDAO { public List getLines(String keyword){ return lineInfoMapper.getLinesByKeyword(keyword); } + + public List getByLineIds(List lineIds){ + if (CollectionUtils.isEmpty(lineIds)){ + return Lists.newArrayList(); + } + return lineInfoMapper.getByLineIds(lineIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java index c2c1b6e15..a3cc1f24f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointInfoDAO.java @@ -99,11 +99,11 @@ public class PointInfoDAO { return pointInfoMapper.getRecommendPointList(request); } - public Integer updateSelectedDevelopmentManager(Long lineId, String developmentManager) { - if(Objects.isNull(lineId) || StringUtils.isBlank(developmentManager)){ + public Integer updateSelectedDevelopmentManager(Long shopId, String developmentManager) { + if(Objects.isNull(shopId) || StringUtils.isBlank(developmentManager)){ return null; } - return pointInfoMapper.updateSelectedDevelopmentManager(lineId, developmentManager); + return pointInfoMapper.updateSelectedDevelopmentManager(shopId, developmentManager); } public Page getTeamPointPage(AllPointPageRequest request) { diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointRecommendDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointRecommendDAO.java index 6087ef9d3..7b21a1e42 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointRecommendDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointRecommendDAO.java @@ -3,6 +3,7 @@ package com.cool.store.dao; import com.cool.store.constants.CommonConstants; import com.cool.store.dto.point.LineCountDTO; import com.cool.store.dto.point.MiniPointPageDTO; +import com.cool.store.dto.point.ShopCountDTO; import com.cool.store.entity.PointRecommendDO; import com.cool.store.enums.point.PointRecommendStatusEnum; import com.cool.store.mapper.PointRecommendMapper; @@ -70,6 +71,7 @@ public class PointRecommendDAO { * @param lineIds * @return */ + @Deprecated public Map getPushShopNumMap(List lineIds) { if(CollectionUtils.isEmpty(lineIds)){ return Maps.newHashMap(); @@ -78,6 +80,15 @@ public class PointRecommendDAO { return pushShopNumMap.stream().collect(Collectors.toMap(k->k.getLineId(), v->v.getRecommendShopNum())); } + + public Map getShopPushPointNumMap(List shopIds) { + if(CollectionUtils.isEmpty(shopIds)){ + return Maps.newHashMap(); + } + List pushShopNumMap = pointRecommendMapper.getShopPushPointNumMap(shopIds); + return pushShopNumMap.stream().collect(Collectors.toMap(k->k.getShopId(), v->v.getRecommendShopNum())); + } + /** * 获取推荐列表 * @param lineId @@ -90,6 +101,13 @@ public class PointRecommendDAO { return pointRecommendMapper.getRecommendPointList(lineId); } + public List getShopRecommendPointList(Long lineId) { + if(Objects.isNull(lineId)){ + return Lists.newArrayList(); + } + return pointRecommendMapper.getShopRecommendPointList(lineId); + } + public Integer addRecommendPoint(List recommendList) { if(CollectionUtils.isEmpty(recommendList)){ return CommonConstants.ZERO; @@ -102,8 +120,8 @@ public class PointRecommendDAO { * @param lineId * @return */ - public Integer turnLineUpdateRecommendStatus(Long lineId, String developmentManager) { - return pointRecommendMapper.turnLineUpdateRecommendStatus(lineId, developmentManager); + public Integer turnLineUpdateRecommendStatus(Long shopId, String developmentManager) { + return pointRecommendMapper.turnLineUpdateRecommendStatus(shopId, developmentManager); } /** @@ -116,11 +134,11 @@ public class PointRecommendDAO { return pointRecommendMapper.getLineRecommendPointPage(request); } - public Integer updateStatusByPointIdAndLineId(Long pointId, Long lineId){ - if(Objects.isNull(pointId) || Objects.isNull(lineId)){ + public Integer updateStatusByPointIdAndLineId(Long pointId,Long shopId){ + if(Objects.isNull(pointId) || Objects.isNull(shopId)){ return 0; } - return pointRecommendMapper.updateStatusByPointIdAndLineId(pointId, lineId); + return pointRecommendMapper.updateStatusByPointIdAndLineId(pointId,shopId); } /** @@ -130,11 +148,11 @@ public class PointRecommendDAO { * @param reason * @return */ - public Integer rejectPoint(Long lineId, Long pointId, String reason) { - if(Objects.isNull(lineId) || Objects.isNull(pointId)){ + public Integer rejectPoint(Long shopId, Long pointId, String reason) { + if(Objects.isNull(shopId) || Objects.isNull(pointId)){ return CommonConstants.ZERO; } - return pointRecommendMapper.rejectPoint(lineId, pointId, reason); + return pointRecommendMapper.rejectPoint(shopId, pointId, reason); } /** @@ -148,4 +166,16 @@ public class PointRecommendDAO { } return pointRecommendMapper.getRecommendPointListByPointId(pointId); } + + + public List getAllRecommendPointList(Long lineId) { + return pointRecommendMapper.getAllRecommendPointList(lineId); + } + + public Boolean batchUpdateShopId(List recommendList) { + if (CollectionUtils.isEmpty(recommendList)){ + return Boolean.TRUE; + } + return pointRecommendMapper.batchUpdateShopId(recommendList); + } } 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 01051d323..e968c92f7 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 @@ -5,12 +5,15 @@ import com.cool.store.dto.LicenseSyncDTO; import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO; import com.cool.store.dto.point.LineCountDTO; +import com.cool.store.dto.point.ShopPointDTO; +import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.ShopInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.ShopInfoMapper; import com.cool.store.request.BranchShopRequest; import com.cool.store.request.PlanListRequest; +import com.cool.store.request.PointLinePageRequest; import com.cool.store.request.PreparationRequest; import com.cool.store.request.platformBuildListRequest; import com.cool.store.response.PlatformBuildListResponse; @@ -193,5 +196,20 @@ public class ShopInfoDAO { return shopInfoMapper.getShopAndStoreList(eid,shopIds); } + public List getShopPointListByDevelopmentManager(PointLinePageRequest request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + return shopInfoMapper.getShopPointListByDevelopmentManager(request); + } + + public List selectAllDataOrByShopId(Long shopId) { + return shopInfoMapper.selectAllDataOrByShopId(shopId); + } + + public Boolean batchUpdate(List list) { + if (CollectionUtils.isEmpty(list)){ + return Boolean.FALSE; + } + return shopInfoMapper.batchUpdate(list); + } } 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 2d5f31a78..739cec392 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 @@ -4,6 +4,7 @@ import com.cool.store.dto.InvestmentCountDTO; import com.cool.store.dto.PendingCountDTO; import com.cool.store.dto.openPreparation.PlanLineDTO; import com.cool.store.entity.LineInfoDO; +import com.cool.store.entity.ShopInfoDO; import com.cool.store.request.LineListRequest; import com.cool.store.request.PartnerRequest; import com.cool.store.request.PointLinePageRequest; @@ -128,4 +129,5 @@ public interface LineInfoMapper extends Mapper { @Param("investmentManager") String investmentManager, @Param("regionId") Long regionId); List getLinesByKeyword(@Param("keyword") String keyword); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java index 99cb06120..2a9ba62e3 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointInfoMapper.java @@ -53,11 +53,11 @@ public interface PointInfoMapper extends Mapper { /** * 更新铺位的拓展经理 - * @param lineId + * @param shopId * @param developmentManager * @return */ - Integer updateSelectedDevelopmentManager(@Param("lineId") Long lineId, @Param("developmentManager")String developmentManager); + Integer updateSelectedDevelopmentManager(@Param("shopId") Long shopId, @Param("developmentManager")String developmentManager); /** * 获取团队铺位 diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointRecommendMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointRecommendMapper.java index 3d7cb0b19..d1a0e67eb 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointRecommendMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointRecommendMapper.java @@ -2,6 +2,7 @@ package com.cool.store.mapper; import com.cool.store.dto.point.LineCountDTO; import com.cool.store.dto.point.MiniPointPageDTO; +import com.cool.store.dto.point.ShopCountDTO; import com.cool.store.entity.PointRecommendDO; import com.cool.store.request.MiniPointPageRequest; import com.github.pagehelper.Page; @@ -36,6 +37,13 @@ public interface PointRecommendMapper extends Mapper { */ List getPushShopNumMap(@Param("lineIds") List lineIds); + /** + * 查询门店推送的铺位数量 + * @param shopIds + * @return + */ + List getShopPushPointNumMap(@Param("shopIds") List shopIds); + /** * 获取推荐列表 * @param lineId @@ -43,6 +51,13 @@ public interface PointRecommendMapper extends Mapper { */ List getRecommendPointList(@Param("lineId") Long lineId); + /** + * 获取门店推荐列表 + * @param shopId + * @return + */ + List getShopRecommendPointList(@Param("shopId") Long shopId); + /** * 批量新增 * @param recommendList @@ -55,7 +70,7 @@ public interface PointRecommendMapper extends Mapper { * @param lineId * @return */ - Integer turnLineUpdateRecommendStatus(@Param("lineId") Long lineId, @Param("developmentManager")String developmentManager); + Integer turnLineUpdateRecommendStatus(@Param("shopId") Long shopId, @Param("developmentManager")String developmentManager); /** * 线索获取推荐铺位列表 @@ -70,7 +85,7 @@ public interface PointRecommendMapper extends Mapper { * @param lineId * @return */ - Integer updateStatusByPointIdAndLineId(@Param("pointId") Long pointId, @Param("lineId") Long lineId); + Integer updateStatusByPointIdAndLineId(@Param("pointId") Long pointId, @Param("shopId") Long shopId); /** * 铺位拒绝 @@ -79,7 +94,7 @@ public interface PointRecommendMapper extends Mapper { * @param reason * @return */ - Integer rejectPoint(@Param("lineId") Long lineId, @Param("pointId") Long pointId, @Param("reason") String reason); + Integer rejectPoint(@Param("shopId") Long shopId, @Param("pointId") Long pointId, @Param("reason") String reason); /** * 获取铺位推送过哪些线索 @@ -87,4 +102,14 @@ public interface PointRecommendMapper extends Mapper { * @return */ List getRecommendPointListByPointId(@Param("pointId") Long pointId); + + /** + * 数据处理 + * @param lineId + * @return + */ + List getAllRecommendPointList(@Param("lineId") Long lineId); + + Boolean batchUpdateShopId(@Param("recommendList") List recommendList); + } \ No newline at end of file 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 e8ad0d596..8f2fd7cdb 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 @@ -4,10 +4,12 @@ import com.cool.store.dto.LicenseSyncDTO; import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO; import com.cool.store.dto.point.LineCountDTO; +import com.cool.store.dto.point.ShopPointDTO; import com.cool.store.entity.PointInfoDO; import com.cool.store.entity.ShopInfoDO; import com.cool.store.request.BranchShopRequest; import com.cool.store.request.PlanListRequest; +import com.cool.store.request.PointLinePageRequest; import com.cool.store.request.PreparationRequest; import com.cool.store.request.platformBuildListRequest; import com.cool.store.response.PlatformBuildListResponse; @@ -103,4 +105,16 @@ public interface ShopInfoMapper extends Mapper { List getShopAndStoreList(@Param("enterpriseId") String eid , @Param("shopIds") List shopIds); + + + List getShopPointListByDevelopmentManager(@Param("request") PointLinePageRequest request); + + /** + * selectAllDataOrByShopId + * @param shopId + * @return + */ + List selectAllDataOrByShopId(Long shopId); + + Boolean batchUpdate(List list); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml index 3f80bb482..e3428d0c9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PointInfoMapper.xml @@ -139,7 +139,7 @@ set development_manager = #{developmentManager} where - line_id = #{lineId} and select_status = '1' and deleted = 0 + shop_id = #{shopId} and select_status = '1' and deleted = 0 + + + + + - insert into xfsg_point_recommend (line_id, point_id, development_manager, status) - values (#{item.lineId}, #{item.pointId}, #{item.developmentManager}, #{item.status}) + insert into xfsg_point_recommend (shop_id, point_id, development_manager, status) + values (#{item.shopId}, #{item.pointId}, #{item.developmentManager}, #{item.status}) @@ -76,7 +106,7 @@ deleted = if(status = 1, 1, deleted), development_manager = if(status in (2,4), #{developmentManager}, development_manager) where - line_id = #{lineId} + shop_id = #{shopId} @@ -133,4 +163,34 @@ where point_id = #{pointId} and deleted = 0 + + + + + + update xfsg_point_recommend + set + shop_id = case id + + when #{item.id} then #{item.shopId} + + end + where + id in + + #{entity.id} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index b8939b5c1..bd6d1ef73 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -332,5 +332,45 @@ + + + + + + + UPDATE xfsg_shop_info + SET + development_manager = #{item.developmentManager}, + join_mode = #{item.joinMode}, + shop_status = #{item.shopStatus}, + franchise_brand = #{item.franchiseBrand}, + investment_manager = #{item.investmentManager}, + want_shop_area_id = #{item.wantShopAreaId} + WHERE id = #{item.id} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml index 25560bc9c..07d496a28 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml @@ -235,10 +235,7 @@ select * from xfsg_shop_stage_info a - - left join xfsg_line_info b on a.line_id = b.id - - + left join xfsg_shop_info si on a.shop_id = si.id @@ -258,7 +255,7 @@ - and b.investment_manager = #{investmentUserId} + and si.investment_manager = #{investmentUserId} and si.region_id in diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopCountDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopCountDTO.java new file mode 100644 index 000000000..a88abb076 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopCountDTO.java @@ -0,0 +1,23 @@ +package com.cool.store.dto.point; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/1/8 15:41 + * @Version 1.0 + */ +@Data +public class ShopCountDTO { + + @ApiModelProperty("门店ID") + private Long shopId; + + @ApiModelProperty("推荐门店数量") + private Integer recommendShopNum; + + @ApiModelProperty("选择门店数量") + private Integer selectedShopNum; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopPointDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopPointDTO.java new file mode 100644 index 000000000..17f2b6534 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/point/ShopPointDTO.java @@ -0,0 +1,31 @@ +package com.cool.store.dto.point; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/1/8 15:12 + * @Version 1.0 + */ +@Data +public class ShopPointDTO { + + private Long shopId; + + private Long lineId; + + private Long pointId; + + private String userName; + + private String mobile; + + private String shopName; + + private Long wantShopAreaId; + + private String userPortrait; + + private String investmentManager; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/PointRecommendDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/PointRecommendDO.java index cbf2582cc..c066c1872 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/PointRecommendDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/PointRecommendDO.java @@ -18,6 +18,9 @@ public class PointRecommendDO { @Column(name = "line_id") private Long lineId; + @Column(name = "shop_id") + private Long shopId; + /** * 点位id */ diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LineRecommendPointRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LineRecommendPointRequest.java index f1751b7ac..0208a9088 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LineRecommendPointRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LineRecommendPointRequest.java @@ -20,8 +20,8 @@ import java.util.stream.Collectors; @Data public class LineRecommendPointRequest { - @ApiModelProperty("线索id") - private Long lineId; + @ApiModelProperty("门店ID") + private Long shopId; @ApiModelProperty("铺位ids") private List pointIds; @@ -30,12 +30,12 @@ public class LineRecommendPointRequest { private String developmentManager; public List convertList(){ - if(Objects.isNull(this.lineId) || CollectionUtils.isEmpty(pointIds)){ + if(Objects.isNull(this.shopId) || CollectionUtils.isEmpty(pointIds)){ return Lists.newArrayList(); } return this.pointIds.stream().map(pointId -> { PointRecommendDO pointRecommendDO = new PointRecommendDO(); - pointRecommendDO.setLineId(this.lineId); + pointRecommendDO.setShopId(this.shopId); pointRecommendDO.setDevelopmentManager(this.developmentManager); pointRecommendDO.setPointId(pointId); pointRecommendDO.setStatus(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1.getCode()); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java index 3a9dd4c24..acfe8ade1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/MiniPointPageRequest.java @@ -21,7 +21,7 @@ public class MiniPointPageRequest extends PageBasicInfo { @ApiModelProperty("1.待选择 2.已选择 3.拒绝/失效") private Integer status; - @ApiModelProperty(value = "线索id") - private Long lineId; + @ApiModelProperty(value = "门店线索ID") + private Long shopId; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/PointRecommendLineRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/PointRecommendLineRequest.java index e4ec2b377..54cc61fa3 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/PointRecommendLineRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/PointRecommendLineRequest.java @@ -21,7 +21,7 @@ import java.util.stream.Collectors; public class PointRecommendLineRequest { @ApiModelProperty("线索ids") - private List lineIds; + private List shopIds; @ApiModelProperty("铺位id") private Long pointId; @@ -30,12 +30,12 @@ public class PointRecommendLineRequest { private String developmentManager; public List convertList(){ - if(Objects.isNull(this.lineIds) || CollectionUtils.isEmpty(this.lineIds) || Objects.isNull(pointId)){ + if(Objects.isNull(this.shopIds) || CollectionUtils.isEmpty(this.shopIds) || Objects.isNull(pointId)){ return Lists.newArrayList(); } - return this.lineIds.stream().map(lineId -> { + return this.shopIds.stream().map(shopIds -> { PointRecommendDO pointRecommendDO = new PointRecommendDO(); - pointRecommendDO.setLineId(lineId); + pointRecommendDO.setLineId(shopIds); pointRecommendDO.setDevelopmentManager(this.developmentManager); pointRecommendDO.setPointId(pointId); pointRecommendDO.setStatus(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1.getCode()); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/RejectPointRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/RejectPointRequest.java index 9a51a0b13..0eb9a4738 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/RejectPointRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/RejectPointRequest.java @@ -23,8 +23,8 @@ public class RejectPointRequest { @ApiModelProperty("拒绝原因") private String reason; - @ApiModelProperty(value = "当前线索id", hidden = true) - private Long lineId; + @ApiModelProperty(value = "门店Id") + private Long shopId; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/TurnLineRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/TurnLineRequest.java index 4079e2a5d..bec40469a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/TurnLineRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/TurnLineRequest.java @@ -12,8 +12,8 @@ import lombok.Data; @Data public class TurnLineRequest { - @ApiModelProperty("线索id") - private Long lineId; + @ApiModelProperty("门店ID") + private Long shopId; @ApiModelProperty("新的选址人员") private String developmentManager; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/point/MiniPointPageVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/point/MiniPointPageVO.java index 3a521695e..a9449637a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/point/MiniPointPageVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/point/MiniPointPageVO.java @@ -41,7 +41,7 @@ public class MiniPointPageVO { @ApiModelProperty("1.待选择 2.已选择 3.已被他人选择 4.已签约 5.已拒绝 6.已失效") private Integer recommendStatus; - public static List convertVO(List pointList, Map regionNameMap, Long curLineId) { + public static List convertVO(List pointList, Map regionNameMap) { if(CollectionUtils.isEmpty(pointList)){ return Lists.newArrayList(); } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/shop/ShopPointBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/shop/ShopPointBaseInfoVO.java new file mode 100644 index 000000000..c275b8c74 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/shop/ShopPointBaseInfoVO.java @@ -0,0 +1,119 @@ +package com.cool.store.vo.shop; + +import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.point.ShopPointDTO; +import com.cool.store.entity.HyOpenAreaInfoDO; +import com.cool.store.entity.LineInfoDO; +import com.cool.store.vo.LinePointBaseInfoVO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * @Author suzhuhong + * @Date 2025/1/8 14:59 + * @Version 1.0 + */ +@Data +public class ShopPointBaseInfoVO { + + @ApiModelProperty("门店ID") + private Long shopId; + + @ApiModelProperty("门店名称") + private String shopName; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("区域名称") + private String areaName; + + @ApiModelProperty("区域路径") + private String areaPath; + + @ApiModelProperty("用户标签") + private List userPortraitList; + + @ApiModelProperty("招商经理") + private String investmentManagerUsername; + + @ApiModelProperty("已推门店") + private Integer recommendShopNum; + + @ApiModelProperty("已选门店") + private Integer selectedShopNum; + + public ShopPointBaseInfoVO(Long shopId, String shopName, String mobile) { + this.shopId = shopId; + this.shopName = shopName; + this.mobile = mobile; + } + + public static List convertList(List lineList, Map userNameMap, Map userPortraitMap, Map cityMap, Map recommendShopNumMap){ + List resultList = new ArrayList<>(); + for (ShopPointDTO shopPointDTO : lineList) { + ShopPointBaseInfoVO shopPointBaseInfoVO = new ShopPointBaseInfoVO(shopPointDTO.getShopId(), shopPointDTO.getShopName(), shopPointDTO.getMobile()); + String username = userNameMap.get(shopPointDTO.getInvestmentManager()); + shopPointBaseInfoVO.setInvestmentManagerUsername(username); + HyOpenAreaInfoDO areaInfo = cityMap.get(shopPointDTO.getWantShopAreaId()); + if(Objects.nonNull(areaInfo)){ + shopPointBaseInfoVO.setAreaName(areaInfo.getAreaName()); + shopPointBaseInfoVO.setAreaPath(areaInfo.getAreaPath().replace("/", "").trim()); + } + shopPointBaseInfoVO.setRecommendShopNum(recommendShopNumMap.get(shopPointDTO.getShopId())); + shopPointBaseInfoVO.setSelectedShopNum((shopPointDTO.getPointId()!=null&&shopPointDTO.getPointId()> CommonConstants.ZERO)?CommonConstants.ONE:CommonConstants.ZERO); + if(StringUtils.isNotBlank(shopPointDTO.getUserPortrait())){ + List userPortraitList = new ArrayList<>(); + String[] parts = shopPointDTO.getUserPortrait().split(","); + for (String part : parts) { + String trimmedPart = part.trim(); + if (StringUtils.isNotBlank(trimmedPart)) { + String s = userPortraitMap.get(Long.valueOf(part)); + if(StringUtils.isNotBlank(s)){ + userPortraitList.add(s); + } + } + } + shopPointBaseInfoVO.setUserPortraitList(userPortraitList); + } + resultList.add(shopPointBaseInfoVO); + } + return resultList; + } + + + public static ShopPointBaseInfoVO convert(LineInfoDO lineInfo, String username, Map userPortraitMap, HyOpenAreaInfoDO cityArea, Map recommendShopNumMap, Map selectedShopNumMap){ + ShopPointBaseInfoVO linePointBaseInfo = new ShopPointBaseInfoVO(lineInfo.getId(), lineInfo.getUsername(), lineInfo.getMobile()); + linePointBaseInfo.setInvestmentManagerUsername(username); + if(Objects.nonNull(cityArea)){ + linePointBaseInfo.setAreaName(cityArea.getAreaName()); + linePointBaseInfo.setAreaPath(cityArea.getAreaPath().replace("/", "").trim()); + } + linePointBaseInfo.setRecommendShopNum(recommendShopNumMap.get(lineInfo.getId())); + linePointBaseInfo.setSelectedShopNum(selectedShopNumMap.get(lineInfo.getId())); + if(StringUtils.isNotBlank(lineInfo.getUserPortrait())){ + List userPortraitList = new ArrayList<>(); + String[] parts = lineInfo.getUserPortrait().split(","); + for (String part : parts) { + String trimmedPart = part.trim(); + if (StringUtils.isNotBlank(trimmedPart)) { + String s = userPortraitMap.get(Long.valueOf(part)); + if(StringUtils.isNotBlank(s)){ + userPortraitList.add(s); + } + } + } + linePointBaseInfo.setUserPortraitList(userPortraitList); + } + return linePointBaseInfo; + } + + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java index baacac9d9..0c3a999c3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java @@ -29,32 +29,6 @@ public interface DeskService { */ PageInfo intendPendingList(Integer pageNum, Integer pageSize,String userId); - /** - * 面试待处理 - * @param pageNum - * @param pageSize - * @param userId - * @return - */ - PageInfo interviewPendingList(Integer pageNum, Integer pageSize,String userId); - - /** - * 一审面试待处理 - * @param pageNum - * @param pageSize - * @param user - * @return - */ - PageInfo firstInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); - - /** - * 二审面试待处理 - * @param pageNum - * @param pageSize - * @param user - * @return - */ - PageInfo secondInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); /** * payStagePendingList @@ -75,14 +49,6 @@ public interface DeskService { */ PageInfo signingPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); - /** - * storeExperiencePendingList - * @param pageNum - * @param pageSize - * @param user - * @return - */ - PageInfo storeExperiencePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); /** * convertToBaseInfoVO @@ -110,14 +76,6 @@ public interface DeskService { InvestmentCountDTO getInvestmentCount(LoginUserInfo user); - /** - * 系统建店待处理数据 - * @param pageNum - * @param pageSize - * @param user - * @return - */ - PageInfo systemBuildStorePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); /** * 缴纳加盟费待处理数据 * @param pageNum @@ -152,15 +110,14 @@ public interface DeskService { * @return */ PageInfo openingAndOperationPlanPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + /** - * 首批订货清单待处理数据 + * 培训清单待处理数据 * @param pageNum * @param pageSize * @param user * @return */ - PageInfo firstOrderListPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); - PageInfo trainListPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); /** * 信发系统 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PointService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PointService.java index 556fa5f91..0498042ff 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PointService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PointService.java @@ -4,6 +4,7 @@ import com.cool.store.request.*; import com.cool.store.vo.LinePointBaseInfoVO; import com.cool.store.vo.point.*; import com.cool.store.vo.shop.RentInfoToDoVO; +import com.cool.store.vo.shop.ShopPointBaseInfoVO; import com.github.pagehelper.PageInfo; import java.util.List; @@ -124,6 +125,8 @@ public interface PointService { */ PageInfo getLinePage(PointLinePageRequest request); + PageInfo getShopPage(PointLinePageRequest request); + /** * 获取单个加盟商信息 @@ -167,6 +170,13 @@ public interface PointService { */ List getLineRecommendPointList(Long lineId); + /** + * 获取门店推荐列表 + * @param shopId + * @return + */ + List getShopRecommendPointList(Long shopId); + /** * 获取我的可推荐铺位列表 * @param request @@ -284,4 +294,11 @@ public interface PointService { * @return */ PageInfo getRentContractToDoPage(String userId, Integer pageNumber, Integer pageSize); + + + /** + * 数据处理 V2.4 + * @return + */ + Boolean linePointToShopPoint(Long lineId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java index 31899faba..cfb2de692 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PreparationService.java @@ -7,6 +7,7 @@ import com.cool.store.vo.Preparation.PreparationScheduleVO; import com.github.pagehelper.PageInfo; import java.util.List; +import java.util.Map; /** * @Author suzhuhong @@ -68,4 +69,11 @@ public interface PreparationService { //阶段完成奢shop_status=1已完成 void updateShopStatus(Long shopId); + + /** + * 获取店铺状态 + * @param shopIds + * @return + */ + Map getShopStatus(List shopIds); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java index 1e3124630..0dd1a10dd 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java @@ -87,8 +87,20 @@ public interface ShopService { * 修改门店招商专员/督导 */ Integer updateShopInvestment(Long shopId,String updateUserId,String userId); + + + /** + * 门店结束跟进 + * @param shopId + * @return + */ + Boolean shopClose(Long shopId); + + /** * 分店列表 */ PageInfo getBranchShopList(BranchShopRequest request, String userId); + + Boolean dataHandle(Long shopId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index 91dad8bfd..80e7dde16 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -104,98 +104,6 @@ public class DeskServiceImpl implements DeskService { return page; } - @Override - public PageInfo interviewPendingList(Integer pageNum, Integer pageSize, String userId) { -// PageHelper.startPage(pageNum, pageSize); -// List lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId,Arrays.asList(WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_20.getCode())); -// PageInfo page = new PageInfo(lineInfoDOS); -// Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); -// List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); -// Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); -// List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); -// List interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.MEET); -// Map interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); -// -// List list = new ArrayList<>(); -// lineInfoDOS.forEach(x->{ -// BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); -// InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); -// LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); -// if (lineInterviewDO != null){ -// interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); -// interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); -// } -// list.add(interviewPendingVO); -// }); -// page.setList(list); - return new PageInfo<>(); - } - - @Override - public PageInfo firstInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) { -// PageHelper.startPage(pageNum, pageSize); -// List lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.INTERVIEW.getCode(), -// Arrays.asList(WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30.getCode(),WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_35.getCode()),WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_40.getCode(),null); -// PageInfo page = new PageInfo(lineInfoDOS); -// Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); -// List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); -// Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); -// List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); -// List interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.INTERVIEW); -// Map interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); -// List userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getFirstInterviewer() != null).map(LineInfoDO::getFirstInterviewer).collect(Collectors.toList()); -// Map userInfoMap = enterpriseUserDAO.getUserInfoMap(userIds); -// -// List list = new ArrayList<>(); -// lineInfoDOS.forEach(x->{ -// BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); -// InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); -// LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); -// if (lineInterviewDO != null){ -// interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); -// interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); -// interviewPendingVO.setInterviewer(userInfoMap.getOrDefault(x.getFirstInterviewer(),new EnterpriseUserDO()).getName()); -// interviewPendingVO.setInterviewId(lineInterviewDO.getId()); -// } -// list.add(interviewPendingVO); -// }); -// page.setList(list); - return new PageInfo<>(); - } - - - @Override - public PageInfo secondInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) { -// PageHelper.startPage(pageNum, pageSize); -// List lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.SECOND_INTERVIEW.getCode(), -// Arrays.asList(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105.getCode(),WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110.getCode()), WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_115.getCode(),null); -// PageInfo page = new PageInfo(lineInfoDOS); -// Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); -// List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); -// Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); -// List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); -// List interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.SECOND_INTERVIEW); -// Map interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); -// List userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getSecondInterviewer() != null).map(LineInfoDO::getSecondInterviewer).collect(Collectors.toList()); -// Map userInfoMap = enterpriseUserDAO.getUserInfoMap(userIds); -// -// -// List list = new ArrayList<>(); -// lineInfoDOS.forEach(x->{ -// BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); -// InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); -// LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); -// if (lineInterviewDO != null){ -// interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); -// interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); -// interviewPendingVO.setInterviewer(userInfoMap.getOrDefault(x.getSecondInterviewer(),new EnterpriseUserDO()).getName()); -// interviewPendingVO.setInterviewId(lineInterviewDO.getId()); -// } -// list.add(interviewPendingVO); -// }); -// page.setList(list); - return new PageInfo<>(); - } @Override public PageInfo payStagePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { @@ -248,38 +156,6 @@ public class DeskServiceImpl implements DeskService { return page; } - @Override - public PageInfo storeExperiencePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { -// PageHelper.startPage(pageNum, pageSize); -// List lineInfoDOS = lineInfoDAO.listByInvestmentManager(user.getUserId(), -// Arrays.asList(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode(), -// WorkflowSubStageStatusEnum.STORE_EXPERIENCE_95.getCode())); -// PageInfo page = new PageInfo(lineInfoDOS); -// Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); -// List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); -// Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); -// List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); -// Map infoDOMap = new HashMap<>(); -// if (CollectionUtils.isNotEmpty(lineIds)){ -// List leaseBaseInfoDOS = trainingExperienceMapper.selectByLineIds(lineIds); -// infoDOMap = leaseBaseInfoDOS.stream().collect(Collectors.toMap(LeaseBaseInfoDO::getLineId, x -> x)); -// } -// List list = new ArrayList<>(); -// Map finalInfoDOMap = infoDOMap; -// lineInfoDOS.forEach(x->{ -// BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); -// StoreExperiencePendingVO storeExperiencePendingVO = new StoreExperiencePendingVO(baseInfoVO); -// LeaseBaseInfoDO date = finalInfoDOMap.get(x.getId()); -// if (date != null && date.getExperienceStartTime() != null && date.getExperienceEndTime() != null){ -// storeExperiencePendingVO.setExperienceStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1,date.getExperienceStartTime())); -// storeExperiencePendingVO.setExperienceEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_2,date.getExperienceEndTime())); -// } -// list.add(storeExperiencePendingVO); -// }); -// page.setList(list); - return new PageInfo<>(); - } - /** * convertToBaseInfoVO @@ -347,10 +223,6 @@ public class DeskServiceImpl implements DeskService { } - @Override - public PageInfo systemBuildStorePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { - return null; - } @Override public PageInfo payFranchiseFeesPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { @@ -401,10 +273,6 @@ public class DeskServiceImpl implements DeskService { return commonPendingVOPageInfo(pageNum, pageSize, user, ShopSubStageEnum.SHOP_STAGE_14, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140.getShopSubStageStatus()), Boolean.FALSE); } - @Override - public PageInfo firstOrderListPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { - return null; - } @Override public PageInfo trainListPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java index 86cd7ac12..19e660e12 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PointServiceImpl.java @@ -1,10 +1,12 @@ package com.cool.store.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.dto.point.AuditNodeDTO; import com.cool.store.dto.point.MiniPointPageDTO; +import com.cool.store.dto.point.ShopPointDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; import com.cool.store.enums.point.*; @@ -18,6 +20,7 @@ import com.cool.store.vo.AuditInfoVO; import com.cool.store.vo.LinePointBaseInfoVO; import com.cool.store.vo.point.*; import com.cool.store.vo.shop.RentInfoToDoVO; +import com.cool.store.vo.shop.ShopPointBaseInfoVO; import com.github.pagehelper.Page; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; @@ -194,7 +197,7 @@ public class PointServiceImpl implements PointService { * 回退选址状态 * @return */ - private void rollbackSelectPoint(Long shopId, Long pointId){ + private void rollbackSelectPoint(Long shopId, Long pointId){ //店铺回退待带选址 shopInfoDAO.unbindPoint(shopId); //铺位回退 @@ -204,7 +207,7 @@ public class PointServiceImpl implements PointService { //租赁合同回到未开始 Integer result = shopStageInfoDAO.updateShopStageToNotStarted(shopId, ShopSubStageEnum.SHOP_STAGE_2); if(result > CommonConstants.ZERO){ - //删除租赁合同 + //删除租赁合同 shopRentInfoDAO.deleteRentContractByShopId(shopId); } } @@ -455,6 +458,23 @@ public class PointServiceImpl implements PointService { return resultPage; } + @Override + public PageInfo getShopPage(PointLinePageRequest request) { + List listByDevelopmentManager = shopInfoDAO.getShopPointListByDevelopmentManager(request); + List userPortraitList = listByDevelopmentManager.stream().filter(x -> StringUtils.isNotEmpty(x.getUserPortrait() )).map(ShopPointDTO::getUserPortrait).collect(Collectors.toList()); + List investmentManagerUserIds = listByDevelopmentManager.stream().filter(x -> StringUtils.isNotEmpty(x.getInvestmentManager() )).map(ShopPointDTO::getInvestmentManager).collect(Collectors.toList()); + List shopIds = listByDevelopmentManager.stream().map(ShopPointDTO::getShopId).collect(Collectors.toList()); + List wantShopAreaIds = listByDevelopmentManager.stream().map(ShopPointDTO::getWantShopAreaId).collect(Collectors.toList()); + Map recommendShopNumMap = pointRecommendDAO.getShopPushPointNumMap(shopIds); + Map cityMap = hyOpenAreaInfoDAO.getCityMap(wantShopAreaIds); + Map userNameMap = enterpriseUserDAO.getUserNameMap(investmentManagerUserIds); + Map userPortraitMap = labelService.getUserPortraitMap(userPortraitList); + List resultList = ShopPointBaseInfoVO.convertList(listByDevelopmentManager, userNameMap, userPortraitMap, cityMap, recommendShopNumMap); + PageInfo resultPage = new PageInfo(listByDevelopmentManager); + resultPage.setList(resultList); + return resultPage; + } + /** * 获取单个加盟商信息 * @param lineId @@ -553,6 +573,20 @@ public class PointServiceImpl implements PointService { return PointRecommendPageVO.convertVO(recommendPointList, pointList, userNameMap, regionNameMap, canSubmitRentContractShopIds); } + @Override + public List getShopRecommendPointList(Long shopId) { + List recommendPointList = pointRecommendDAO.getShopRecommendPointList(shopId); + List pointIds = recommendPointList.stream().map(PointRecommendDO::getPointId).distinct().collect(Collectors.toList()); + List pointList = pointInfoDAO.getPointListByIds(pointIds); + List regionIds = pointList.stream().map(PointInfoDO::getRegionId).distinct().collect(Collectors.toList()); + List developmentManagers = pointList.stream().map(PointInfoDO::getDevelopmentManager).distinct().collect(Collectors.toList()); + List shopIds = pointList.stream().map(PointInfoDO::getShopId).distinct().collect(Collectors.toList()); + List canSubmitRentContractShopIds = shopStageInfoDAO.getCanSubmitRentContractShopIds(shopIds); + Map userNameMap = enterpriseUserDAO.getUserNameMap(developmentManagers); + Map regionNameMap = regionService.getBelongWarRegionNameMap(regionIds); + return PointRecommendPageVO.convertVO(recommendPointList, pointList, userNameMap, regionNameMap, canSubmitRentContractShopIds); + } + @Override public PageInfo getRecommendPointList(RecommendPointPageRequest request) { List resultList = new ArrayList(); @@ -583,7 +617,7 @@ public class PointServiceImpl implements PointService { String pointNames = invalidList.stream().map(PointInfoDO::getPointName).collect(Collectors.joining(",")); throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE, pointNames + ",已失效"); } - List recommendPointList = pointRecommendDAO.getRecommendPointList(request.getLineId()); + List recommendPointList = pointRecommendDAO.getShopRecommendPointList(request.getShopId()); if(CollectionUtils.isNotEmpty(recommendPointList)){ List recommendList = recommendPointList.stream().filter(o -> PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1.getCode().equals(o.getStatus()) || PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_2.getCode().equals(o.getStatus()) || @@ -619,14 +653,14 @@ public class PointServiceImpl implements PointService { List recommendList = recommendPointList.stream().filter(o -> PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_2.getCode().equals(o.getStatus()) || PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_3.getCode().equals(o.getStatus()) || PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_4.getCode().equals(o.getStatus())) - .filter(o->request.getLineIds().contains(o.getLineId())).collect(Collectors.toList()); + .filter(o->request.getShopIds().contains(o.getLineId())).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(recommendList)){ throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE, "推送失败,铺位已被选"); } - List lineIds = recommendPointList.stream().filter(o -> PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1.getCode().equals(o.getStatus())).filter(o->request.getLineIds().contains(o.getLineId())).map(PointRecommendDO::getLineId).collect(Collectors.toList()); - if(CollectionUtils.isNotEmpty(lineIds)){ - lineIds.retainAll(request.getLineIds()); - if(CollectionUtils.isNotEmpty(lineIds)){ + List shopIds = recommendPointList.stream().filter(o -> PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1.getCode().equals(o.getStatus())).filter(o->request.getShopIds().contains(o.getLineId())).map(PointRecommendDO::getLineId).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(shopIds)){ + shopIds.retainAll(request.getShopIds()); + if(CollectionUtils.isNotEmpty(shopIds)){ throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE, "请勿重复推送"); } } @@ -638,25 +672,19 @@ public class PointServiceImpl implements PointService { @Override @Transactional(rollbackFor = Exception.class) public Integer turnLine(TurnLineRequest request) { - LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); - Long lineId = request.getLineId(); - //更改线索中的拓展经理 - LineInfoDO updateLineInfo = new LineInfoDO(); - updateLineInfo.setId(lineId); - updateLineInfo.setDevelopmentManager(request.getDevelopmentManager()); - lineInfoDAO.updateLineInfo(updateLineInfo); - //更新已被选择的铺位的拓展经理 - pointInfoDAO.updateSelectedDevelopmentManager(lineId, request.getDevelopmentManager()); - String wantShopName = hyOpenAreaInfoDAO.selectNameMapById(lineInfo.getWantShopAreaId()); + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); + Long shopId = request.getShopId(); + //更改门店中的拓展经理 + ShopInfoDO shopInfoDO = new ShopInfoDO(); + shopInfoDO.setId(shopId); + shopInfoDO.setDevelopmentManager(request.getDevelopmentManager()); + shopInfoDAO.updateShopInfo(shopInfoDO); + + //更新已被选择的铺位的拓展经理 + pointInfoDAO.updateSelectedDevelopmentManager(shopId, request.getDevelopmentManager()); - Map messageMap = new HashMap<>(); - messageMap.put("lineId", String.valueOf(lineId)); - messageMap.put("partnerUsername", lineInfo.getUsername()); - messageMap.put("partnerMobile", lineInfo.getMobile()); - messageMap.put("wantShopName", wantShopName); - commonService.sendMessage(Arrays.asList(request.getDevelopmentManager()), MessageEnum.MESSAGE_14, messageMap); //删除未选择的推荐铺位 - return pointRecommendDAO.turnLineUpdateRecommendStatus(lineId, request.getDevelopmentManager()); + return pointRecommendDAO.turnLineUpdateRecommendStatus(shopId, request.getDevelopmentManager()); } @Override @@ -697,7 +725,7 @@ public class PointServiceImpl implements PointService { if(Objects.nonNull(pointPage) && CollectionUtils.isNotEmpty(pointPage.getResult())){ List regionIds = pointPage.getResult().stream().map(MiniPointPageDTO::getRegionId).distinct().collect(Collectors.toList()); Map regionNameMap = regionService.getBelongWarRegionNameMap(regionIds); - resultList = MiniPointPageVO.convertVO(pointPage, regionNameMap, request.getLineId()); + resultList = MiniPointPageVO.convertVO(pointPage, regionNameMap); } PageInfo resultPage = new PageInfo(pointPage); resultPage.setList(resultList); @@ -758,11 +786,10 @@ public class PointServiceImpl implements PointService { updateStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20); Map templateParam = new HashMap<>(); templateParam.put("pointName", pointInfo.getAddress()); - LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); } updateStatusList.add(selectStatus); shopStageInfoDAO.batchUpdateShopStageStatus(shopId, updateStatusList); - return pointRecommendDAO.updateStatusByPointIdAndLineId(pointId, lineId); + return pointRecommendDAO.updateStatusByPointIdAndLineId(pointId, shopId); } catch (ServiceException e) { throw e; } finally { @@ -772,7 +799,7 @@ public class PointServiceImpl implements PointService { @Override @Transactional(rollbackFor = Exception.class) public Integer lineRejectPoint(RejectPointRequest request){ - return pointRecommendDAO.rejectPoint(request.getLineId(), request.getPointId(), request.getReason()); + return pointRecommendDAO.rejectPoint(request.getShopId(), request.getPointId(), request.getReason()); } @@ -808,6 +835,7 @@ public class PointServiceImpl implements PointService { shopInfoDAO.updateShopInfo(shopInfo); PointRecommendDO pointRecommendDO = new PointRecommendDO(); pointRecommendDO.setLineId(lineId); + pointRecommendDO.setShopId(request.getShopId()); pointRecommendDO.setDevelopmentManager(lineInfo.getDevelopmentManager()); pointRecommendDO.setPointId(pointId); pointRecommendDO.setStatus(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_2.getCode()); @@ -1002,6 +1030,67 @@ public class PointServiceImpl implements PointService { return resultPage; } + @Override + @Transactional + public Boolean linePointToShopPoint(Long lineId) { + //查询所有的推荐 如果传入的lineId 则查询该线索的所有推荐 + List allRecommendPointList = pointRecommendDAO.getAllRecommendPointList(lineId); + if (CollectionUtils.isEmpty(allRecommendPointList)){ + return Boolean.TRUE; + } + List recommendList = new ArrayList<>(); + List updateList = new ArrayList<>(); + allRecommendPointList.forEach(recommend -> { + //如果是待选择 + if(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1.getCode().equals(recommend.getStatus())|| + PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_5.getCode().equals(recommend.getStatus())|| + PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_6.getCode().equals(recommend.getStatus())){ + //将单条加盟商数据 分配到各个门店商 + Long tempLineId = recommend.getLineId(); + List shopList = shopInfoDAO.getShopList(tempLineId); + for (ShopInfoDO shopInfoDO : shopList) { + PointRecommendDO tempPointRecommendDO = new PointRecommendDO(); + BeanUtil.copyProperties(recommend,tempPointRecommendDO); + tempPointRecommendDO.setShopId(shopInfoDO.getId()); + recommendList.add(tempPointRecommendDO); + } + } + + //已选 已被他人选择 + if(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_2.getCode().equals(recommend.getStatus())){ + //查询该加盟商选择的这个店 + ShopInfoDO shopInfoByPointId = shopInfoDAO.getShopInfoByPointId(recommend.getLineId(), recommend.getPointId()); + recommend.setShopId(shopInfoByPointId.getId()); + updateList.add(recommend); + } + if(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_3.getCode().equals(recommend.getStatus())){ + List recommendPointListByPointId = pointRecommendDAO.getRecommendPointListByPointId(recommend.getPointId()); + for (PointRecommendDO pointRecommendDO: recommendPointListByPointId) { + //表示当前门店已选址 + if (pointRecommendDO.getLineId().equals(recommend.getLineId())){ + continue; + } + List shopList = shopInfoDAO.getShopList(pointRecommendDO.getLineId()); + for (ShopInfoDO shopInfoDO : shopList) { + PointRecommendDO tempPointRecommendDO = new PointRecommendDO(); + BeanUtil.copyProperties(recommend,tempPointRecommendDO); + tempPointRecommendDO.setShopId(shopInfoDO.getId()); + recommendList.add(tempPointRecommendDO); + } + } + } + }); + if (CollectionUtils.isNotEmpty(updateList)){ + pointRecommendDAO.batchUpdateShopId(updateList); + } + if (CollectionUtils.isNotEmpty(recommendList)){ + log.info("linePointToShopPoint recommendList:{}", JSONObject.toJSONString(recommendList)); + pointRecommendDAO.addRecommendPoint(recommendList); + } + + return Boolean.TRUE; + } + public List dealAuditNode(AuditSettingVO auditSetting, Long regionId, String developmentManager) { List roleIds = new ArrayList<>(); //审核人 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java index 2f106dfb2..bea191f90 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java @@ -286,16 +286,28 @@ public class PreparationServiceImpl implements PreparationService { public void updateShopStatus(Long shopId) { ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); if (shopInfo.getShopStage().equals(ShopStatusEnum.ING.getCode())){ - Integer all = shopStageInfoDAO.allNumber(shopId, CommonConstants.ZERO); - Integer finish = shopStageInfoDAO.allNumber(shopId, CommonConstants.ONE); - if (all.equals(finish)){ - ShopInfoDO shopInfoDO = new ShopInfoDO(); - shopInfoDO.setId(shopId); - shopInfoDO.setShopStage(ShopStatusEnum.DONE.getCode()); - shopInfoDAO.updateShopInfo(shopInfoDO); - } + Map map= getShopStatus(Arrays.asList(shopId)); + Integer shopStatus = map.get(shopId); + ShopInfoDO shopInfoDO = new ShopInfoDO(); + shopInfoDO.setId(shopId); + shopInfoDO.setShopStage(shopStatus); + shopInfoDAO.updateShopInfo(shopInfoDO); } } + @Override + public Map getShopStatus(List shopIds) { + List scheduleList = shopStageInfoDAO.getScheduleList(shopIds); + Map map = new HashMap<>(); + scheduleList.forEach(x->{ + if (x.getTotalColumn().equals(x.getCompletionColumn())){ + map.put(x.getShopId(),ShopStatusEnum.DONE.getCode()); + }else { + map.put(x.getShopId(),ShopStatusEnum.ING.getCode()); + } + }); + return map; + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index b14a1a758..6b4168dd7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -5,9 +5,11 @@ import com.cool.store.dao.*; import com.cool.store.dto.Preparation.PreparationDTO; import com.cool.store.dto.Preparation.ScheduleDTO; import com.cool.store.dto.RegionNode; +import com.cool.store.dto.openPreparation.PlanLineDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; import com.cool.store.enums.point.*; +import com.cool.store.enums.point.ShopStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.RegionMapper; import com.cool.store.request.*; @@ -24,12 +26,14 @@ import com.cool.store.vo.shop.ShopStageInfoVO; import com.cool.store.vo.shop.StageShopCountVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDate; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -43,6 +47,7 @@ import static com.cool.store.enums.ErrorCodeEnum.UPDATE_INVESTMENT_MANAGER_FAIL; * @date 2024-04-11 10:26 */ @Service +@Slf4j public class ShopServiceImpl implements ShopService { @Resource private SysRoleService sysRoleService; @@ -74,6 +79,8 @@ public class ShopServiceImpl implements ShopService { private TransferLogService transferLogService; @Resource private RegionService regionService; + @Resource + PreparationService preparationService; @Override @@ -118,7 +125,7 @@ public class ShopServiceImpl implements ShopService { public List getShopList(Long lineId, String userId) { List authRegions = new ArrayList<>(); if (StringUtils.isNotBlank(userId) && !sysRoleService.checkIsAdmin(userId)) { - for (String region : userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(userId)) { + for (String region : userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(userId)){ authRegions.add(Long.valueOf(region)); } } @@ -201,8 +208,6 @@ public class ShopServiceImpl implements ShopService { addShop.setPartnerId(lineInfo.getPartnerId()); addShop.setShopName(shopName); addShop.setSupervisorUserId(lineInfo.getInvestmentManager()); - addShop.setInvestmentManager(lineInfo.getInvestmentManager()); - addShop.setDevelopmentManager(lineInfo.getInvestmentManager()); addShopList.add(addShop); } shopInfoDAO.batchAddShop(addShopList); @@ -238,14 +243,9 @@ public class ShopServiceImpl implements ShopService { request.setInvestmentManagerUserId(userId); } LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); - if (lineInfo.getWorkflowSubStageStatus() < WorkflowSubStageStatusEnum.PAY_DEPOSIT_45.getCode()) { - throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE); - } - List shopList = shopInfoDAO.getShopList(lineInfo.getId()); - if (!CollectionUtils.isEmpty(shopList)) { - lineInfo.setWantShopNum(lineInfo.getWantShopNum() + 1); - lineInfoDAO.updateLineInfo(lineInfo); - } + Integer wantShopNum = lineInfo.getWantShopNum() + 1; + lineInfo.setWantShopNum(wantShopNum); + lineInfoDAO.updateLineInfo(lineInfo); ShopInfoDO shopInfoDO = request.toDO(request, lineInfo.getPartnerId()); shopInfoDO.setCreateUserId(userId); Long shopId = shopInfoDAO.addShopInfo(shopInfoDO); @@ -313,6 +313,22 @@ public class ShopServiceImpl implements ShopService { return shopInfoDAO.updateShopInfo(shopInfo); } + @Override + public Boolean shopClose(Long shopId) { + log.info("shopClose shopId:{}", shopId); + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + if (Objects.nonNull(shopInfo)){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + //只有跟进中才能结束跟进 + if (ShopStatusEnum.ING.getCode()!=shopInfo.getShopStatus()){ + throw new ServiceException(ErrorCodeEnum.SHOP_STATUS_NOT_SUPPORT_HANDLER, ShopStatusEnum.getDesc(shopInfo.getShopStatus())); + } + shopInfo.setShopStatus(ShopStatusEnum.ABANDON.getCode()); + shopInfoDAO.updateShopInfo(shopInfo); + return Boolean.TRUE; + } + @Override public PageInfo getBranchShopList(BranchShopRequest request, String userId) { if (!sysRoleService.checkIsAdmin(userId)) { @@ -371,4 +387,47 @@ public class ShopServiceImpl implements ShopService { return new PageInfo<>(responses); } + + + /** + * 数据处理 + * @param shopId + * @return + */ + @Override + public Boolean dataHandle(Long shopId){ + log.info("------dataHandle start-----"); + boolean hasNext = true; + int pageNum = 1; + int pageSize = 50; + while (hasNext) { + PageHelper.startPage(pageNum, pageSize); + List shopInfoDOS = shopInfoDAO.selectAllDataOrByShopId(shopId); + if (CollectionUtils.isEmpty(shopInfoDOS)) { + log.info("------dataHandle end------"); + return Boolean.TRUE; + } + List lineIds = shopInfoDOS.stream().map(ShopInfoDO::getLineId).collect(Collectors.toList()); + List lines = lineInfoDAO.getByLineIds(lineIds); + //转为map + Map lineMap = lines.stream().collect(Collectors.toMap(LineInfoDO::getId, line -> line)); + List shopIds = shopInfoDOS.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); + Map shopStatus = preparationService.getShopStatus(shopIds); + for (ShopInfoDO shopInfoDO : shopInfoDOS) { + LineInfoDO lineInfoDO = lineMap.get(shopInfoDO.getLineId()); + shopInfoDO.setDevelopmentManager(lineInfoDO.getDevelopmentManager()); + shopInfoDO.setShopStatus(shopStatus.get(shopInfoDO.getId())); + shopInfoDO.setJoinMode(lineInfoDO.getJoinMode()); + shopInfoDO.setFranchiseBrand(lineInfoDO.getFranchiseBrand()); + shopInfoDO.setInvestmentManager(lineInfoDO.getInvestmentManager()); + shopInfoDO.setWantShopAreaId(lineInfoDO.getWantShopAreaId()); + } + shopInfoDAO.batchUpdate(shopInfoDOS); + hasNext = shopInfoDOS.size() >= pageSize; + pageNum++; + } + return Boolean.TRUE; + } + + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java index 88d0a7aaf..8cb980598 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java @@ -39,29 +39,6 @@ public class DeskController { return ResponseResult.success(deskService.intendPendingList(pageNumber,pageSize,userInfo.getUserId())); } - @ApiOperation("待处理-邀约面谈") - @GetMapping("/interviewPendingList") - public ResponseResult> interviewPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, - @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { - LoginUserInfo userInfo = CurrentUserHolder.getUser(); - return ResponseResult.success(deskService.interviewPendingList(pageNumber,pageSize,userInfo.getUserId())); - } - - @ApiOperation("待处理-一审") - @GetMapping("/firstInterviewPendingList") - public ResponseResult> firstInterviewPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, - @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { - LoginUserInfo userInfo = CurrentUserHolder.getUser(); - return ResponseResult.success(deskService.firstInterviewPendingList(pageNumber,pageSize,userInfo)); - } - - @ApiOperation("待处理-二审") - @GetMapping("/secondInterviewPendingList") - public ResponseResult> secondInterviewPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, - @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { - LoginUserInfo userInfo = CurrentUserHolder.getUser(); - return ResponseResult.success(deskService.secondInterviewPendingList(pageNumber,pageSize,userInfo)); - } @ApiOperation("待处理-缴纳意向金") @@ -80,13 +57,6 @@ public class DeskController { return ResponseResult.success(deskService.signingPendingList(pageNumber,pageSize,userInfo)); } - @ApiOperation("待处理-实训体验") - @GetMapping("/storeExperiencePendingList") - public ResponseResult> storeExperiencePendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, - @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { - LoginUserInfo userInfo = CurrentUserHolder.getUser(); - return ResponseResult.success(deskService.storeExperiencePendingList(pageNumber,pageSize,userInfo)); - } @ApiOperation("待处理-数据") @@ -105,13 +75,6 @@ public class DeskController { return ResponseResult.success(deskService.getInvestmentCount(userInfo)); } - @ApiOperation("待处理-系统建店") - @GetMapping("/systemBuildStorePendingList") - public ResponseResult> systemBuildStorePendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, - @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { - LoginUserInfo userInfo = CurrentUserHolder.getUser(); - return ResponseResult.success(deskService.systemBuildStorePendingList(pageNumber,pageSize,userInfo)); - } @ApiOperation("待处理-支付加盟费保证金") @GetMapping("/payFranchiseFeesPendingList") public ResponseResult> payFranchiseFeesPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, @@ -141,13 +104,6 @@ public class DeskController { LoginUserInfo userInfo = CurrentUserHolder.getUser(); return ResponseResult.success(deskService.openingAndOperationPlanPendingList(pageNumber,pageSize,userInfo)); } - @ApiOperation("待处理-首批订货清单") - @GetMapping("/firstOrderListPendingList") - public ResponseResult> firstOrderListPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, - @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { - LoginUserInfo userInfo = CurrentUserHolder.getUser(); - return ResponseResult.success(deskService.firstOrderListPendingList(pageNumber,pageSize,userInfo)); - } @ApiOperation("待处理-培训登记") @GetMapping("/trainListPendingList") diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java index 172006084..aa9f09eef 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java @@ -123,4 +123,11 @@ public class PCShopController { String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(shopService.getBranchShopList(request, userId)); } + + + @ApiOperation("门店结束跟进") + @GetMapping("/shopClose") + public ResponseResult shopClose(@RequestParam("shopId")Long shopId) { + return ResponseResult.success(shopService.shopClose(shopId)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PointController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PointController.java index eef6d56d1..6a99eb3a2 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PointController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PointController.java @@ -2,11 +2,13 @@ package com.cool.store.controller.webb; import com.alibaba.fastjson.JSONObject; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.dto.point.ShopPointDTO; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.PointService; import com.cool.store.vo.LinePointBaseInfoVO; import com.cool.store.vo.point.*; +import com.cool.store.vo.shop.ShopPointBaseInfoVO; import com.cool.store.vo.shop.ShopStageVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; @@ -126,6 +128,14 @@ public class PointController { return ResponseResult.success(pointService.getLinePage(request)); } + @ApiOperation("查询我负责的门店列表-门店的选址经理是我") + @PostMapping("/getShopPage") + public ResponseResult> getShopPage(@RequestBody PointLinePageRequest request) { + request.setDevelopmentManager(CurrentUserHolder.getUserId()); + return ResponseResult.success(pointService.getShopPage(request)); + } + + @ApiOperation("获取单个加盟商选址数据") @GetMapping("/getLineInfo") public ResponseResult getLineInfo(@RequestParam("lineId") Long lineId) { @@ -158,12 +168,20 @@ public class PointController { return ResponseResult.success(pointService.getPointAllAuditRecord(pointId)); } - @ApiOperation("获取加盟商的推荐铺位列表") + @ApiOperation("获取加盟商的推荐铺位列表-V2.4废弃") @GetMapping("/getLineRecommendPointList") + @Deprecated public ResponseResult> getLineRecommendPointList(@RequestParam("lineId")Long lineId) { return ResponseResult.success(pointService.getLineRecommendPointList(lineId)); } + @ApiOperation("获取门店的推荐铺位列表-V2.4新增") + @GetMapping("/getShopRecommendPointList") + public ResponseResult> getShopRecommendPointList(@RequestParam("shopId")Long shopId) { + return ResponseResult.success(pointService.getShopRecommendPointList(shopId)); + } + + @ApiOperation("选址人员获取可推荐铺位列表") @PostMapping("/getRecommendPointList") public ResponseResult> getRecommendPointList(@RequestBody @Validated RecommendPointPageRequest request) { @@ -171,21 +189,21 @@ public class PointController { return ResponseResult.success(pointService.getRecommendPointList(request)); } - @ApiOperation("加盟商详情推送铺位") + @ApiOperation("加盟商详情推送铺位->v2.4 门店详情推荐铺位") @PostMapping("/lineRecommendPoint") public ResponseResult lineRecommendPoint(@RequestBody @Validated LineRecommendPointRequest request) { request.setDevelopmentManager(CurrentUserHolder.getUserId()); return ResponseResult.success(pointService.lineRecommendPoint(request)); } - @ApiOperation("铺位详情推送加盟商") + @ApiOperation("铺位详情推送加盟商->v2.4 铺位详情推送门店") @PostMapping("/pointRecommendLine") public ResponseResult pointRecommendLine(@RequestBody @Validated PointRecommendLineRequest request) { request.setDevelopmentManager(CurrentUserHolder.getUserId()); return ResponseResult.success(pointService.pointRecommendLine(request)); } - @ApiOperation("选址人员转让加盟商") + @ApiOperation("选址人员转让加盟商->v2.4 选址人员转让门店选址经理") @PostMapping("/turnLine") public ResponseResult turnLine(@RequestBody @Validated TurnLineRequest request) { return ResponseResult.success(pointService.turnLine(request)); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java index e2d8d5744..3c790d8ce 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java @@ -59,8 +59,6 @@ public class MiniShopController { @ApiOperation("获取推荐给我的铺位") @PostMapping("/getLineRecommendPointPage") public ResponseResult> getLineRecommendPointPage(@RequestBody MiniPointPageRequest request) { - Long lineId = PartnerUserHolder.getUser().getLineId(); - request.setLineId(lineId); return ResponseResult.success(pointService.getLineRecommendPointPage(request)); } @@ -82,8 +80,6 @@ public class MiniShopController { @ApiOperation("拒绝铺位") @PostMapping("/rejectPoint") public ResponseResult lineRejectPoint(@RequestBody @Validated RejectPointRequest request) { - Long lineId = PartnerUserHolder.getUser().getLineId(); - request.setLineId(lineId); return ResponseResult.success(pointService.lineRejectPoint(request)); } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java index b466edc93..f91003828 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java @@ -21,6 +21,7 @@ import com.cool.store.response.ResponseResult; import com.cool.store.response.xfsgFirstOderListResponse; import com.cool.store.service.AliyunService; import com.cool.store.service.CoolStoreStartFlowService; +import com.cool.store.service.PointService; import com.cool.store.service.RegionService; import com.cool.store.utils.poi.ExcelUtil; import com.cool.store.utils.poi.StringUtils; @@ -259,6 +260,13 @@ public class TestController { } + @Resource + PointService pointService; + @GetMapping("/linePointToShopPoint") + public ResponseResult linePointToShopPoint(@RequestParam("shopId")Long shopId){ + return ResponseResult.success(pointService.linePointToShopPoint(shopId)); + } + }