diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java index 408c6869d..a99ce4c3b 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java @@ -63,6 +63,17 @@ public enum ShopSubStageEnum { this.planCompleteDays = planCompleteDays; } + public static Integer getTotalStageIsLocationAndPreparation() { + int total=0; + for (ShopSubStageEnum shopStageEnum : ShopSubStageEnum.values()) { + if (shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_1.getShopStage()) + ||shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_2.getShopStage())) { + total++; + } + } + return total; + } + public static List getShopStageEnum(Integer shopStage) { List resultList = new ArrayList<>(); for (ShopSubStageEnum shopStageEnum : ShopSubStageEnum.values()) { 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 8f9f228c2..a0286a629 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 @@ -128,6 +128,13 @@ public class ShopStageInfoDAO { return shopStageInfoMapper.getAllCompletionCount(shopId); } + public Integer getCompletionCount(Long shopId) { + if (Objects.isNull(shopId)) { + return 0; + } + return shopStageInfoMapper.getCompletionCount(shopId); + } + /** * @Auther: wangshuo * @Date: 2024/5/3 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 2f867c5dd..770a99a4a 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 @@ -46,6 +46,9 @@ public interface ShopStageInfoMapper extends Mapper { */ Integer getAllCompletionCount(@Param("shopId") Long shopId); + + Integer getCompletionCount(@Param("shopId") Long shopId); + /** * 跟新店铺阶段信息 * @param shopId diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml index f4a72ffc4..9ca17eca3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml @@ -480,7 +480,7 @@ left join xfsg_open_area_info b on a.want_shop_area_id = b.id - where a.deleted = 0 and a.line_status = 1 and a.join_status in (1,2) + where a.deleted = 0 and a.line_status = 1 and a.join_status in (1,2) and c.deleted = 0 and (a.investment_manager = #{userId} or c.investment_manager = #{userId} ) diff --git a/coolstore-partner-dao/src/main/resources/mapper/OpeningOperationPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/OpeningOperationPlanMapper.xml index 02f951f92..0ef252f8b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/OpeningOperationPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/OpeningOperationPlanMapper.xml @@ -51,7 +51,7 @@ op.result_type AS resultType,si.supervisor_user_id as supervisorUserId from xfsg_opening_operation_plan op join xfsg_shop_info si on si.id = op.shop_id - where 1=1 + where si.deleted = 0 AND si.shop_name like concat('%', #{request.shopName}, '%') diff --git a/coolstore-partner-dao/src/main/resources/mapper/OperationLogMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/OperationLogMapper.xml index 9da42e0f6..00ac149a3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/OperationLogMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/OperationLogMapper.xml @@ -79,15 +79,17 @@ @@ -256,10 +257,9 @@ select * from xfsg_shop_stage_info a - - left join xfsg_shop_info si on a.shop_id = si.id - + left join xfsg_shop_info si on a.shop_id = si.id + si.deleted = 0 and a.shop_id in @@ -409,4 +409,12 @@ + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/DeleteShopRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/DeleteShopRequest.java index 007194f62..a0ddc3cdf 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/DeleteShopRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/DeleteShopRequest.java @@ -3,6 +3,8 @@ package com.cool.store.request; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; + /** * @author zhangchenbiao * @FileName: DeleteShopRequest @@ -13,6 +15,8 @@ import lombok.Data; public class DeleteShopRequest { @ApiModelProperty("店铺id") + @NotNull private Long shopId; + private String userId; } 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 f3a24f492..913bea7f9 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 @@ -96,7 +96,7 @@ public interface ShopService { * @return */ Boolean shopClose(Long shopId); - + Boolean updateShopStatue(Long shopId); /** * 分店列表 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 d43f5d238..3f0c8c02a 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 @@ -254,6 +254,10 @@ public class PointServiceImpl implements PointService { log.error("铺位基本信息不存在"); throw new ServiceException(ErrorCodeEnum.POINT_NOT_EXIST); } + if (!pointInfo.getPointStatus().equals(PointStatusEnum.POINT_STATUS_2.getCode()) + && !pointInfo.getPointStatus().equals(PointStatusEnum.POINT_STATUS_1.getCode())) { + throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); + } PointDetailInfoDO pointDetailInfo = pointDetailInfoDAO.getPointDetailInfoByPointId(pointId); if (Objects.isNull(pointDetailInfo)) { log.error("铺位详细信息不存在"); 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 7adf4092d..2c2e52ddd 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 @@ -175,6 +175,10 @@ public class ShopServiceImpl implements ShopService { @Override public List getShopStageInfo(Long shopId, Integer shopStage) { + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + if (Objects.isNull(shopInfo)) { + throw new ServiceException(ErrorCodeEnum.SHOP_ID_NOT_EXIST); + } if (Objects.nonNull(shopStage)) { ShopStageEnum shopStageEnum = ShopStageEnum.getShopStageEnum(shopStage); if (Objects.isNull(shopStageEnum)) { @@ -193,26 +197,39 @@ public class ShopServiceImpl implements ShopService { } @Override + @Transactional(rollbackFor = Exception.class) public Integer deleteShop(DeleteShopRequest request) { ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); - if (Objects.nonNull(shopInfo)) { - //进入选址不允许删除操作 - throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); + if (shopInfo == null) { + throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); } -// ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopInfo.getId(), ShopSubStageEnum.SHOP_STAGE_3); -// if(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopSubStageInfo.getShopSubStageStatus())){ +// if (Objects.nonNull(shopInfo)) { +// //进入选址不允许删除操作 // throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); // } - if (Objects.nonNull(shopInfo.getPointId())) { - PointInfoDO pointInfo = pointInfoDAO.getPointInfoById(shopInfo.getPointId()); - if (Objects.nonNull(pointInfo) && SelectStatusEnum.SELECT_STATUS_1.getCode().equals(pointInfo.getSelectStatus())) { - pointInfoDAO.recyclePoint(pointInfo.getId()); - } - pointRecommendDAO.updateRecommendStatus(shopInfo.getPointId(), PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1, Arrays.asList(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_5)); +// ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopInfo.getId(), ShopSubStageEnum.SHOP_STAGE_3); +// if(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopSubStageInfo.getShopSubStageStatus())){ +// throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); +// } +// if (Objects.nonNull(shopInfo.getPointId())) { +// PointInfoDO pointInfo = pointInfoDAO.getPointInfoById(shopInfo.getPointId()); +// if (Objects.nonNull(pointInfo) && SelectStatusEnum.SELECT_STATUS_1.getCode().equals(pointInfo.getSelectStatus())) { +// pointInfoDAO.recyclePoint(pointInfo.getId()); +// } +// pointRecommendDAO.updateRecommendStatus(shopInfo.getPointId(), PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_1, Arrays.asList(PointRecommendStatusEnum.POINT_RECOMMEND_STATUS_5)); +// } + LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(shopInfo.getLineId()); + if (lineInfoDO.getWantShopNum() > 1) { + lineInfoDO.setWantShopNum(lineInfoDO.getWantShopNum() - 1); } + lineInfoDO.setUpdateTime(new Date()); + lineInfoDO.setUpdateUserId(request.getUserId()); + lineInfoDAO.updateLineInfo(lineInfoDO); ShopInfoDO updateShop = new ShopInfoDO(); updateShop.setId(request.getShopId()); updateShop.setDeleted(true); + updateShop.setUpdateTime(new Date()); + updateShop.setUpdateUserId(request.getUserId()); return shopInfoDAO.updateShopInfo(updateShop); } @@ -411,6 +428,22 @@ public class ShopServiceImpl implements ShopService { return Boolean.TRUE; } + @Override + public Boolean updateShopStatue(Long shopId) { + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + if (Objects.isNull(shopInfo)) { + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + Integer completionCount = shopStageInfoDAO.getCompletionCount(shopId); + if (completionCount.equals(ShopSubStageEnum.getTotalStageIsLocationAndPreparation())) { + shopInfo.setShopStatus(ShopStatusEnum.DONE.getCode()); + } else { + shopInfo.setShopStatus(ShopStatusEnum.ING.getCode()); + } + shopInfoDAO.updateShopInfo(shopInfo); + return Boolean.TRUE; + } + @Override public PageInfo getBranchShopList(BranchShopRequest request, String userId) { if (request.getFlag().equals(CommonConstants.TWO)) { 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 1332e6d7d..883c89668 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 @@ -59,6 +59,7 @@ public class PCShopController { @ApiOperation("删除店铺") @PostMapping("/deleteShop") public ResponseResult deleteShop(@RequestBody @Validated DeleteShopRequest request) { + request.setUserId(CurrentUserHolder.getUserId()); return ResponseResult.success(shopService.deleteShop(request)); } @@ -117,12 +118,15 @@ public class PCShopController { return ResponseResult.success(transferLogService.getTransferLogPage(pageNum, pageSize, lineId, lineShopType)); } - - - @ApiOperation("门店结束跟进") @GetMapping("/shopClose") public ResponseResult shopClose(@RequestParam("shopId")Long shopId) { return ResponseResult.success(shopService.shopClose(shopId)); } + + @ApiOperation("门店恢复状态") + @GetMapping("/updateShopStatue") + public ResponseResult updateShopStatue(@RequestParam("shopId")Long shopId) { + return ResponseResult.success(shopService.updateShopStatue(shopId)); + } }