From 3f38c940e14bf43ae20b8882ac8293125eb36740 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Mon, 22 Apr 2024 17:07:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BE=85=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/dao/PointTodoInfoDAO.java | 14 ++++ .../java/com/cool/store/dao/ShopInfoDAO.java | 12 ++++ .../com/cool/store/dao/ShopRentInfoDAO.java | 9 +++ .../com/cool/store/dao/ShopStageInfoDAO.java | 9 +++ .../store/mapper/PointTodoInfoMapper.java | 8 +++ .../com/cool/store/mapper/ShopInfoMapper.java | 7 ++ .../cool/store/mapper/ShopRentInfoMapper.java | 10 +++ .../store/mapper/ShopStageInfoMapper.java | 9 +++ .../resources/mapper/PointTodoInfoMapper.xml | 11 +++ .../main/resources/mapper/ShopInfoMapper.xml | 10 +++ .../resources/mapper/ShopRentInfoMapper.xml | 12 ++++ .../resources/mapper/ShopStageInfoMapper.xml | 13 ++++ .../cool/store/request/AddShopRequest.java | 7 +- .../com/cool/store/vo/point/PointToDoVO.java | 56 ++++++++++++++++ .../cool/store/vo/shop/RentInfoToDoVO.java | 67 +++++++++++++++++++ .../com/cool/store/service/PointService.java | 20 ++++++ .../com/cool/store/service/ShopService.java | 4 ++ .../store/service/impl/PointServiceImpl.java | 65 ++++++++++++++++-- .../store/service/impl/ShopServiceImpl.java | 2 + .../store/controller/webb/ToDoController.java | 44 ++++++++++++ 20 files changed, 383 insertions(+), 6 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/point/PointToDoVO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/shop/RentInfoToDoVO.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ToDoController.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointTodoInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointTodoInfoDAO.java index f72151e85..1c7e08ce2 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointTodoInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PointTodoInfoDAO.java @@ -1,5 +1,6 @@ package com.cool.store.dao; +import com.cool.store.entity.PointAuditRecordDO; import com.cool.store.entity.PointInfoDO; import com.cool.store.entity.PointTodoInfoDO; import com.cool.store.enums.NodeNoEnum; @@ -7,13 +8,18 @@ import com.cool.store.mapper.PointTodoInfoMapper; import com.cool.store.request.PointTodoPageRequest; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Date; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; @Repository public class PointTodoInfoDAO { @@ -58,4 +64,12 @@ public class PointTodoInfoDAO { } return pointTodoInfoMapper.getCurNodeNoByPoint(pointId); } + + public Map getPointSubmitTimeMap(List pointIds){ + if(CollectionUtils.isEmpty(pointIds)){ + return Maps.newHashMap(); + } + List auditList = pointTodoInfoMapper.getPointSubmitAuditTime(pointIds); + return auditList.stream().collect(Collectors.toMap(k->k.getPointId(), v->v.getFinishTaskTime(), (oldDate, newDate) -> oldDate.compareTo(newDate) > 0 ? oldDate : newDate)); + } } \ No newline at end of file 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 628534831..e03feb592 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 @@ -116,4 +116,16 @@ public class ShopInfoDAO { } return shopInfoMapper.unbindPoint(shopId); } + + /** + * 批量获取店铺信息 + * @param shopIds + * @return + */ + public List getShopListByIds(List shopIds){ + if(CollectionUtils.isNotEmpty(shopIds)){ + return new ArrayList<>(); + } + return shopInfoMapper.getShopListByIds(shopIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopRentInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopRentInfoDAO.java index fbc7e5300..6d2d4041c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopRentInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopRentInfoDAO.java @@ -4,9 +4,11 @@ import com.cool.store.constants.CommonConstants; import com.cool.store.entity.ShopRentInfoDO; import com.cool.store.mapper.ShopRentInfoMapper; import com.cool.store.vo.point.ShopRentInfoVO; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.List; import java.util.Objects; /** @@ -46,4 +48,11 @@ public class ShopRentInfoDAO { } return shopRentInfoMapper.deleteRentContractByShopId(shopId); } + + public List getRentContractByShopIds(List shopIds) { + if(CollectionUtils.isEmpty(shopIds)){ + return null; + } + return shopRentInfoMapper.getRentContractByShopIds(shopIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java index 55d7ffc6a..41fabf7c0 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java @@ -6,6 +6,9 @@ import com.cool.store.enums.point.ShopStageEnum; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.mapper.ShopStageInfoMapper; +import com.cool.store.vo.shop.RentInfoToDoVO; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; @@ -123,4 +126,10 @@ public class ShopStageInfoDAO { return shopStageInfoMapper.updateShopStageAndAuditInfo(shopId, shopStageInfo.getShopSubStageEnum().getShopSubStage(), shopStageInfo.getShopSubStageStatus(), isTerminated, remark, auditId); } + public Page getRentContractToDoPage(String userId, Integer pageNum, Integer pageSize){ + PageHelper.startPage(pageNum, pageSize); + ShopSubStageStatusEnum shopSubStageStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21; + return shopStageInfoMapper.getRentContractToDoPage(userId, shopSubStageStatus.getShopSubStageEnum().getShopSubStage(), shopSubStageStatus.getShopSubStageStatus()); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointTodoInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointTodoInfoMapper.java index aad4da78c..a8aa03c2d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointTodoInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PointTodoInfoMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.entity.PointAuditRecordDO; import com.cool.store.entity.PointInfoDO; import com.cool.store.entity.PointTodoInfoDO; import com.cool.store.request.PointTodoPageRequest; @@ -63,4 +64,11 @@ public interface PointTodoInfoMapper extends Mapper { * @return */ Integer getCurNodeNoByPoint(@Param("pointId") Long pointId); + + /** + * 获取提交时间 + * @param pointIds + * @return + */ + List getPointSubmitAuditTime(@Param("pointIds") List pointIds); } \ 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 91c7cf9f7..13818ec28 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 @@ -53,4 +53,11 @@ public interface ShopInfoMapper extends Mapper { * @return */ Integer unbindPoint(@Param("shopId") Long shopId); + + /** + * 批量获取铺位 + * @param shopIds + * @return + */ + List getShopListByIds(@Param("shopIds")List shopIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopRentInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopRentInfoMapper.java index 6bead4930..08b9b31ea 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopRentInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopRentInfoMapper.java @@ -4,6 +4,8 @@ import com.cool.store.entity.ShopRentInfoDO; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface ShopRentInfoMapper extends Mapper { /** @@ -19,4 +21,12 @@ public interface ShopRentInfoMapper extends Mapper { * @return */ Integer deleteRentContractByShopId(@Param("shopId") Long shopId); + + /** + * 批量获取租赁合同 + * @param shopIds + * @return + */ + List getRentContractByShopIds(@Param("shopIds") List shopIds); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java index 39aba44fc..1072cdf1e 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopStageInfoMapper.java @@ -1,6 +1,8 @@ package com.cool.store.mapper; import com.cool.store.entity.ShopStageInfoDO; +import com.cool.store.vo.shop.RentInfoToDoVO; +import com.github.pagehelper.Page; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; @@ -63,4 +65,11 @@ public interface ShopStageInfoMapper extends Mapper { * @return */ Integer updateShopStageToNotStarted(@Param("shopId") Long shopId, @Param("shopSubStage") Integer shopSubStage); + + /** + * 获取租赁合同待办列表 + * @param userId + * @return + */ + Page getRentContractToDoPage(@Param("userId") String userId, @Param("shopSubStage")Integer shopSubStage, @Param("shopSubStageStatus") Integer shopSubStageStatus); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/PointTodoInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PointTodoInfoMapper.xml index 7a4b69114..c798bc0bd 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PointTodoInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PointTodoInfoMapper.xml @@ -100,4 +100,15 @@ select node_no from xfsg_point_todo_info where point_id = #{pointId} and status = 0 and deleted = 0 limit 1 + + \ 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 908d901ff..c728241b2 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -64,4 +64,14 @@ update xfsg_shop_info set point_id = null where id = #{shopId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopRentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopRentInfoMapper.xml index 3f3a48156..887ad74ea 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopRentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopRentInfoMapper.xml @@ -44,4 +44,16 @@ where shop_id = #{shopId} + + \ 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 9267cd2bd..8eef2f713 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopStageInfoMapper.xml @@ -87,5 +87,18 @@ where shop_id = #{shopId} and shop_sub_stage = #{shopSubStage} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopRequest.java index 314ca6089..b490fbb11 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddShopRequest.java @@ -3,8 +3,9 @@ package com.cool.store.request; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; /** * @author zhangchenbiao @@ -19,4 +20,8 @@ public class AddShopRequest { @ApiModelProperty("线索id") private Long lineId; + @NotEmpty + @ApiModelProperty("店铺名称") + private List shopNameList; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/point/PointToDoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/point/PointToDoVO.java new file mode 100644 index 000000000..eaa230e48 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/point/PointToDoVO.java @@ -0,0 +1,56 @@ +package com.cool.store.vo.point; + +import com.cool.store.entity.PointInfoDO; +import com.cool.store.enums.point.PointStatusEnum; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author zhangchenbiao + * @FileName: PointToDoVO + * @Description: + * @date 2024-04-22 14:56 + */ +@Data +public class PointToDoVO { + + @ApiModelProperty("铺位id") + private Long pointId; + + @ApiModelProperty("铺位名称") + private String pointName; + + @ApiModelProperty("详细地址") + private String address; + + @ApiModelProperty("所属大区") + private String regionNodeName; + + @ApiModelProperty("提交时间") + private Date submitTime; + + public static List convertVO(List pointList, Map regionNameMap, Map submitTimeMap) { + if(CollectionUtils.isEmpty(pointList)){ + return Lists.newArrayList(); + } + List resultList = new ArrayList<>(); + for (PointInfoDO pointInfo : pointList) { + PointToDoVO pointPageVO = new PointToDoVO(); + pointPageVO.setPointId(pointInfo.getId()); + pointPageVO.setPointName(pointInfo.getPointName()); + pointPageVO.setRegionNodeName(regionNameMap.get(pointInfo.getRegionId())); + pointPageVO.setAddress(pointInfo.getAddress()); + pointPageVO.setSubmitTime(submitTimeMap.get(pointInfo.getId())); + resultList.add(pointPageVO); + } + return resultList; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/shop/RentInfoToDoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/shop/RentInfoToDoVO.java new file mode 100644 index 000000000..ba76e7975 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/shop/RentInfoToDoVO.java @@ -0,0 +1,67 @@ +package com.cool.store.vo.shop; + +import com.cool.store.entity.PointInfoDO; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.*; + +/** + * @author zhangchenbiao + * @FileName: PointToDoVO + * @Description: + * @date 2024-04-22 14:56 + */ +@Data +public class RentInfoToDoVO { + + @ApiModelProperty("线索id") + private Long lineId; + + @ApiModelProperty("加盟商名称") + private String lineUsername; + + @ApiModelProperty("电话号码") + private String lineMobile; + + @ApiModelProperty("铺位id") + private Long pointId; + + @ApiModelProperty("店铺id") + private Long shopId; + + @ApiModelProperty("店铺名称") + private String pointName; + + @ApiModelProperty("详细地址") + private String address; + + @ApiModelProperty("所属大区") + private String regionNodeName; + + @ApiModelProperty("提交时间") + private Date submitTime; + + public static List convert(List list, Map shopPointMap, Map pointMap, Map regionNameMap, Map rentContractSubmitTimeMap){ + if(CollectionUtils.isEmpty(list)){ + return Lists.newArrayList(); + } + List resultList = new ArrayList<>(); + for (RentInfoToDoVO rent : list) { + Long pointId = shopPointMap.get(rent.getShopId()); + rent.setPointId(pointId); + PointInfoDO pointInfo = pointMap.get(pointId); + if(Objects.nonNull(pointInfo)){ + rent.setPointName(pointInfo.getPointName()); + rent.setAddress(pointInfo.getAddress()); + } + rent.setRegionNodeName(regionNameMap.get(pointInfo.getRegionId())); + rent.setSubmitTime(rentContractSubmitTimeMap.get(rent.getShopId())); + resultList.add(rent); + } + return resultList; + } + +} 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 8759bcf13..e9a6aa977 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 @@ -3,6 +3,7 @@ package com.cool.store.service; 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.github.pagehelper.PageInfo; import java.util.List; @@ -256,4 +257,23 @@ public interface PointService { * @return */ Integer updateRentContract(UpdateRentContractRequest request); + + /** + * 获取选址审批待办 + * @param userId + * @param pageNumber + * @param pageSize + * @return + */ + PageInfo getSelectPointToDoPage(String userId, Integer pageNumber, Integer pageSize); + + + /** + * 获取租赁合同审批 + * @param userId + * @param pageNumber + * @param pageSize + * @return + */ + PageInfo getRentContractToDoPage(String userId, Integer pageNumber, Integer pageSize); } 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 85d82cbcd..befea3e92 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 @@ -4,8 +4,10 @@ import com.cool.store.entity.LineInfoDO; import com.cool.store.request.AddShopRequest; import com.cool.store.request.DeleteShopRequest; import com.cool.store.vo.shop.MiniShopPageVO; +import com.cool.store.vo.shop.RentInfoToDoVO; import com.cool.store.vo.shop.ShopStageInfoVO; import com.cool.store.vo.shop.StageShopCountVO; +import com.github.pagehelper.PageInfo; import lombok.Data; import java.util.List; @@ -60,4 +62,6 @@ public interface ShopService { * @return */ Long addShop(AddShopRequest request); + + } 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 0d852be13..bcf9b2429 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 @@ -16,6 +16,7 @@ import com.cool.store.utils.poi.StringUtils; 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.github.pagehelper.Page; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; @@ -32,6 +33,7 @@ import java.text.MessageFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -545,11 +547,12 @@ public class PointServiceImpl implements PointService { 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()) || - PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_4.getCode().equals(o.getStatus())).collect(Collectors.toList()); + PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_4.getCode().equals(o.getStatus())) + .filter(o->request.getPointIds().contains(o.getPointId())).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(recommendList)){ throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE, "铺位已推送,请勿重复推送"); } - List selectedList = recommendPointList.stream().filter(o -> PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_3.getCode().equals(o.getStatus())).collect(Collectors.toList()); + List selectedList = recommendPointList.stream().filter(o -> PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_3.getCode().equals(o.getStatus())).filter(o->request.getPointIds().contains(o.getPointId())).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(selectedList)){ throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE, "铺位已选,请勿重复推送"); } @@ -575,11 +578,12 @@ public class PointServiceImpl implements PointService { if(CollectionUtils.isNotEmpty(recommendPointList)){ 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())).collect(Collectors.toList()); + PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_4.getCode().equals(o.getStatus())) + .filter(o->request.getLineIds().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())).map(PointRecommendDO::getLineId).collect(Collectors.toList()); + 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)){ @@ -787,10 +791,18 @@ public class PointServiceImpl implements PointService { PointInfoDO pointInfo = pointInfoDAO.getPointInfoById(pointId); shopId = pointInfo.getShopId(); } + //是否存在租赁合同 + ShopRentInfoDO rentContract = shopRentInfoDAO.getRentContractByShopId(shopId); ShopRentInfoDO shopRentInfo = AddRentContractRequest.convertDO(request); shopRentInfo.setShopId(shopId); shopRentInfo.setPointId(pointId); - shopRentInfoDAO.addShopRentInfo(shopRentInfo); + if(Objects.isNull(rentContract)){ + shopRentInfoDAO.addShopRentInfo(shopRentInfo); + }else{ + shopRentInfo.setId(rentContract.getId()); + shopRentInfoDAO.updateRentContract(shopRentInfo); + } + return shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21); } @@ -856,6 +868,49 @@ public class PointServiceImpl implements PointService { return shopRentInfoDAO.updateRentContract(shopRentInfo); } + @Override + public PageInfo getSelectPointToDoPage(String userId, Integer pageNumber, Integer pageSize) { + PointTodoPageRequest request = new PointTodoPageRequest(); + request.setDevelopmentManager(userId); + request.setPageNum(pageNumber); + request.setPageSize(pageSize); + Page pointPage = pointTodoInfoDAO.getUserTodoList(request); + List resultList = new ArrayList<>(); + if(Objects.nonNull(pointPage) && CollectionUtils.isNotEmpty(pointPage.getResult())){ + List regionIds = pointPage.stream().map(PointInfoDO::getRegionId).distinct().collect(Collectors.toList()); + List pointIds = pointPage.stream().map(PointInfoDO::getId).collect(Collectors.toList()); + //获取提交时间 + Map submitTimeMap = pointTodoInfoDAO.getPointSubmitTimeMap(pointIds); + Map regionNameMap = regionService.getBelongWarRegionNameMap(regionIds); + resultList = PointToDoVO.convertVO(pointPage.getResult(), regionNameMap, submitTimeMap); + } + PageInfo resultPage = new PageInfo(pointPage); + resultPage.setList(resultList); + return resultPage; + } + + @Override + public PageInfo getRentContractToDoPage(String userId, Integer pageNumber, Integer pageSize) { + Page todoPage = shopStageInfoDAO.getRentContractToDoPage(userId, pageNumber, pageSize); + List resultList = null; + if(Objects.nonNull(todoPage) && CollectionUtils.isNotEmpty(todoPage.getResult())){ + List shopIds = todoPage.getResult().stream().map(RentInfoToDoVO::getShopId).collect(Collectors.toList()); + List shopList = shopInfoDAO.getShopListByIds(shopIds); + Map shopPointMap = shopList.stream().collect(Collectors.toMap(k->k.getId(), v->v.getPointId())); + List regionIds = shopList.stream().map(ShopInfoDO::getRegionId).distinct().collect(Collectors.toList()); + List pointIds = shopList.stream().map(ShopInfoDO::getPointId).collect(Collectors.toList()); + List pointList = pointInfoDAO.getPointListByIds(pointIds); + Map pointMap = ListUtils.emptyIfNull(pointList).stream().collect(Collectors.toMap(k->k.getId(), Function.identity())); + Map regionNameMap = regionService.getBelongWarRegionNameMap(regionIds); + List rentContractList = shopRentInfoDAO.getRentContractByShopIds(shopIds); + Map rentContractSubmitTimeMap = ListUtils.emptyIfNull(rentContractList).stream().collect(Collectors.toMap(k->k.getShopId(), v->v.getCreateTime())); + resultList = RentInfoToDoVO.convert(todoPage, shopPointMap, pointMap, regionNameMap, rentContractSubmitTimeMap); + } + PageInfo resultPage = new PageInfo(todoPage); + resultPage.setList(resultList); + return resultPage; + } + public List dealAuditNode(AuditSettingVO auditSetting, Long regionId, String operateUserId, String developmentManager) { List roleIds = new ArrayList<>(); //审核人 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 088e233fd..f0b069a81 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 @@ -11,8 +11,10 @@ import com.cool.store.request.DeleteShopRequest; import com.cool.store.service.ShopService; import com.cool.store.utils.NumberConverter; import com.cool.store.vo.shop.MiniShopPageVO; +import com.cool.store.vo.shop.RentInfoToDoVO; import com.cool.store.vo.shop.ShopStageInfoVO; import com.cool.store.vo.shop.StageShopCountVO; +import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ToDoController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ToDoController.java new file mode 100644 index 000000000..ee44d7316 --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ToDoController.java @@ -0,0 +1,44 @@ +package com.cool.store.controller.webb; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.PointService; +import com.cool.store.vo.point.PointToDoVO; +import com.cool.store.vo.shop.RentInfoToDoVO; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author zhangchenbiao + * @FileName: ToDoController + * @Description: + * @date 2024-04-22 14:29 + */ +@Api(tags = "待办") +@RestController +@RequestMapping("/todo") +public class ToDoController { + + @Resource + private PointService pointService; + + @ApiOperation("获取铺位选址待办") + @GetMapping("/getSelectPointToDoPage") + public ResponseResult> getSelectPointToDoPage(@RequestParam(value = "pageNumber",defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){ + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(pointService.getSelectPointToDoPage(userId, pageNumber, pageSize)); + } + + @ApiOperation("上传租赁合同待办") + @PostMapping("/getRentContractToDoPage") + public ResponseResult> getRentContractToDoPage(@RequestParam(value = "pageNumber",defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){ + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(pointService.getRentContractToDoPage(userId, pageNumber, pageSize)); + } +}