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 0b6be181a..847bfd58c 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 @@ -495,6 +495,9 @@ public enum ErrorCodeEnum { CLOSE_UP_CLOSED_AUDIT_NOT_PASS(1840008, "歇业申请未通过", null), CLOSE_UP_EXIST_OPEN_APPLY(1840009, "该歇业申请单已存在开业申请", null), CLOSE_UP_APPROVED(1840010, "该申请单已审批", null), + CLOSE_UP_PLATFORM_STATUS_UPDATE_ERROR(1840011, "平台状态更新失败:{0}", null), + CLOSE_UP_PLATFORM_DATE_NOT_EXIST(1840012, "平台数据不存在", null), + CLOSE_UP_PLATFORM_STATUS_MODIFYING(1840013, "平台状态正在修改中", null), BONUS_EXIST_OVERLAP_RULE(1850000, "门店该有效期范围内存在相同类型的启用规则", null), BONUS_RULE_NOT_EXIST(1850001, "不存在该奖金发放规则", null), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/closeup/CloseUpPlatformDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/closeup/CloseUpPlatformDAO.java index 43273ae43..3db2434ba 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/closeup/CloseUpPlatformDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/closeup/CloseUpPlatformDAO.java @@ -44,7 +44,7 @@ public class CloseUpPlatformDAO { return list; } - public List getList(Long applyId, Integer status, Integer type, Boolean hasTaskId) { + public List getList(Long applyId, Integer status, Integer type, Boolean hasTaskId, Boolean needQueryTask) { Example example = new Example(CloseUpPlatformDO.class); Example.Criteria criteria = example.createCriteria() .andEqualTo("applyId", applyId); @@ -57,13 +57,16 @@ public class CloseUpPlatformDAO { if (Boolean.TRUE.equals(hasTaskId)) { criteria.andIsNotNull("taskId").andNotEqualTo("taskId", ""); } + if (Boolean.TRUE.equals(needQueryTask)) { + criteria.andNotEqualTo("taskStatus", 0); + } return closeUpPlatformMapper.selectByExample(example); } /** * 更新状态 */ - public void updateStatusByIds(List ids, Integer status) { + public void updateStatusByIds(List ids, Integer status, Integer taskStatus) { if (CollectionUtils.isEmpty(ids)) { return; } @@ -71,6 +74,9 @@ public class CloseUpPlatformDAO { example.createCriteria() .andIn("id", ids); CloseUpPlatformDO update = CloseUpPlatformDO.builder().status(status).build(); + if (Objects.nonNull(taskStatus)) { + update.setTaskStatus(taskStatus); + } closeUpPlatformMapper.updateByExampleSelective(update, example); } @@ -81,6 +87,13 @@ public class CloseUpPlatformDAO { closeUpPlatformMapper.updateStatusAndTaskId(list); } + public void updateStatusAndTaskIdExcludeTaskStatus(List list) { + if (CollectionUtils.isEmpty(list)) { + return; + } + closeUpPlatformMapper.updateStatusAndTaskIdExcludeTaskStatus(list); + } + /** * 根据申请单id删除 */ @@ -94,4 +107,8 @@ public class CloseUpPlatformDAO { public List selectTodoApplyIds(Integer applyType, String storeKeyword) { return closeUpPlatformMapper.selectTodoApplyIds(applyType, storeKeyword); } + + public CloseUpPlatformDO getById(Long id) { + return closeUpPlatformMapper.selectByPrimaryKey(id); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/closeup/CloseUpPlatformMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/closeup/CloseUpPlatformMapper.java index c46184ed7..4e98be62b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/closeup/CloseUpPlatformMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/closeup/CloseUpPlatformMapper.java @@ -16,4 +16,6 @@ public interface CloseUpPlatformMapper extends Mapper { List selectTodoApplyIds(@Param("applyType") Integer applyType, @Param("storeKeyword") String storeKeyword); void updateStatusAndTaskId(@Param("list") List list); + + void updateStatusAndTaskIdExcludeTaskStatus(@Param("list") List list); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/closeup/CloseUpPlatformMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/closeup/CloseUpPlatformMapper.xml index 90c84e259..603dc51fa 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/closeup/CloseUpPlatformMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/closeup/CloseUpPlatformMapper.xml @@ -54,10 +54,33 @@ WHEN #{item.id} THEN #{item.taskId} + END, + task_status = CASE id + + WHEN #{item.id} THEN #{item.taskStatus} + END WHERE id IN #{item.id} + + + UPDATE zxjp_close_up_platform + SET status = CASE id + + WHEN #{item.id} THEN #{item.status} + + END, + task_id = CASE id + + WHEN #{item.id} THEN #{item.taskId} + + END + WHERE id IN + + #{item.id} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/closeup/CloseUpPlatformDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/closeup/CloseUpPlatformDO.java index 416d59e3c..f032ce097 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/closeup/CloseUpPlatformDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/closeup/CloseUpPlatformDO.java @@ -81,4 +81,10 @@ public class CloseUpPlatformDO { */ @Column(name = "task_id") private String taskId; + + /** + * 任务查询状态,0无需处理 1改成待处理 2改成已处理 + */ + @Column(name = "task_status") + private Integer taskStatus; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/closeup/CloseUpPlatformStatusVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/closeup/CloseUpPlatformStatusVO.java new file mode 100644 index 000000000..55aa1f2e2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/closeup/CloseUpPlatformStatusVO.java @@ -0,0 +1,22 @@ +package com.cool.store.vo.closeup; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + *

+ * 歇业平台关闭开启状态VO + *

+ * + * @author wangff + * @since 2026/5/15 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CloseUpPlatformStatusVO { + @ApiModelProperty("修改状态,1修改中 2成功") + private Integer status; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/CloseUpService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/CloseUpService.java index ca42dc64d..2b58bcf8f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/CloseUpService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/CloseUpService.java @@ -5,6 +5,7 @@ import com.cool.store.request.closeup.*; import com.cool.store.response.AuditInfoResponse; import com.cool.store.vo.closeup.CloseUpApplyFormSimpleVO; import com.cool.store.vo.closeup.CloseUpApplyFormVO; +import com.cool.store.vo.closeup.CloseUpPlatformStatusVO; import com.cool.store.vo.closeup.CloseUpPlatformVO; import com.github.pagehelper.PageInfo; @@ -84,7 +85,7 @@ public interface CloseUpService { /** * 平台关闭开启处理 */ - Boolean handlePlatform(CloseUpPlatformHandleRequest request); + CloseUpPlatformStatusVO handlePlatform(CloseUpPlatformHandleRequest request); /** * 根据任务id查询平台状态 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java index 335b51491..db3f4de0d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/closeup/impl/CloseUpServiceImpl.java @@ -28,13 +28,13 @@ import com.cool.store.request.closeup.*; import com.cool.store.response.AuditInfoResponse; import com.cool.store.service.UserAuthMappingService; import com.cool.store.service.closeup.CloseUpService; -import com.cool.store.service.closeup.PlatformAutoStrategy; import com.cool.store.service.closeup.PlatformHttpClientRest; import com.cool.store.service.sms.AliyunSmsService; import com.cool.store.utils.BeanUtil; import com.cool.store.vo.PartnerUserInfoVO; import com.cool.store.vo.closeup.CloseUpApplyFormSimpleVO; import com.cool.store.vo.closeup.CloseUpApplyFormVO; +import com.cool.store.vo.closeup.CloseUpPlatformStatusVO; import com.cool.store.vo.closeup.CloseUpPlatformVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -402,7 +402,7 @@ public class CloseUpServiceImpl implements CloseUpService { @Override public List getPlatformListByApplyId(Long applyId) { - List list = platformDAO.getList(applyId, null, null, null); + List list = platformDAO.getList(applyId, null, null, null, null); return BeanUtil.toList(list, CloseUpPlatformVO.class); } @@ -494,37 +494,37 @@ public class CloseUpServiceImpl implements CloseUpService { * 自动开启关闭各平台 */ public void autoPlatform(String storeId, Integer applyType, List list) { - try { - StoreDO storeDO = storeDao.getByStoreId(storeId); - if (Objects.isNull(storeDO)) { - return; - } - int platformCode = 0; - List unClosePlatformList = list.stream() - .filter(platformDO -> platformDO.getStatus().equals(0) - && platformDO.getType().equals(1) - && !(new Date()).before(platformDO.getTaskStartDate())) - .collect(Collectors.toList()); - if (CollectionUtils.isEmpty(unClosePlatformList)) { - log.info("未处理的自动关闭平台为空"); - return; - } + StoreDO storeDO = storeDao.getByStoreId(storeId); + if (Objects.isNull(storeDO)) { + return; + } + int platformCode = 0; + List unClosePlatformList = list.stream() + .filter(platformDO -> platformDO.getStatus().equals(0) + && platformDO.getType().equals(1) + && !(new Date()).before(platformDO.getTaskStartDate())) + .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(unClosePlatformList)) { + log.info("未处理的自动关闭平台为空"); + return; + } - List updatePlatformList = new ArrayList<>(); - // 歇业平台 - for (CloseUpPlatformDO v : unClosePlatformList) { - Integer ongoingPlatformCode = CloseUpPlatformEnum.getPlatformCodeByCode(v.getCode()); - if (Objects.nonNull(ongoingPlatformCode)) { - platformCode = platformCode | ongoingPlatformCode; - } else { - CloseUpPlatformDO updatePlatform = CloseUpPlatformDO.builder().id(v.getId()).status(1).build(); - updatePlatformList.add(updatePlatform); - } - } - if (platformCode == 0) { - log.info("未处理的自动关闭平台为空platformCode=0"); - return; + List updatePlatformList = new ArrayList<>(); + // 歇业平台 + for (CloseUpPlatformDO v : unClosePlatformList) { + Integer ongoingPlatformCode = CloseUpPlatformEnum.getPlatformCodeByCode(v.getCode()); + if (Objects.nonNull(ongoingPlatformCode)) { + platformCode = platformCode | ongoingPlatformCode; + } else { + CloseUpPlatformDO updatePlatform = CloseUpPlatformDO.builder().id(v.getId()).status(1).build(); + updatePlatformList.add(updatePlatform); } + } + if (platformCode == 0) { + log.info("未处理的自动关闭平台为空platformCode=0"); + return; + } + try { PlatformStatusDTO platformStatusDTO = platformHttpClientRest.platformCloseUp(storeDO.getStoreNum(), String.valueOf(platformCode), applyType); if (Objects.nonNull(platformStatusDTO) && CollectionUtils.isNotEmpty(platformStatusDTO.getPlatformResults())) { Map map = CollStreamUtil.toMap(platformStatusDTO.getPlatformResults(), PlatformStatusDTO.PlatformUpdateResult::getPlatformCode, v -> v); @@ -546,10 +546,10 @@ public class CloseUpServiceImpl implements CloseUpService { } } } - platformDAO.updateStatusAndTaskId(updatePlatformList); } catch (Exception e) { log.info("平台自动歇业/营业失败", e); } + platformDAO.updateStatusAndTaskIdExcludeTaskStatus(updatePlatformList); } /** @@ -564,9 +564,49 @@ public class CloseUpServiceImpl implements CloseUpService { } @Override - public Boolean handlePlatform(CloseUpPlatformHandleRequest request) { - platformDAO.updateStatusByIds(Collections.singletonList(request.getId()), request.getStatus()); - return true; + public CloseUpPlatformStatusVO handlePlatform(CloseUpPlatformHandleRequest request) { + CloseUpPlatformDO platformDO = platformDAO.getById(request.getId()); + if (Objects.isNull(platformDO)) { + throw new ServiceException(ErrorCodeEnum.CLOSE_UP_PLATFORM_DATE_NOT_EXIST); + } + if (!platformDO.getTaskStatus().equals(0)) { + throw new ServiceException(ErrorCodeEnum.CLOSE_UP_PLATFORM_STATUS_MODIFYING); + } + CloseUpApplyFormDO formDO = applyFormDAO.getById(platformDO.getApplyId()); + if (Objects.isNull(formDO)) { + throw new ServiceException(ErrorCodeEnum.CLOSE_UP_FORM_NOT_EXIST); + } + StoreDO storeDO = storeDao.getEffectiveByStoreId(formDO.getStoreId()); + if (Objects.isNull(storeDO)) { + throw new ServiceException(ErrorCodeEnum.STORE_NOT_FIND); + } + Integer platformCode = CloseUpPlatformEnum.getPlatformCodeByCode(platformDO.getCode()); + if (platformDO.getType().equals(1) && Objects.nonNull(platformCode)) { + PlatformStatusDTO platformStatusDTO = platformHttpClientRest.platformCloseUp(storeDO.getStoreNum(), String.valueOf(platformCode), request.getStatus() ^ 1); + if (Objects.nonNull(platformStatusDTO)) { + if (CollectionUtils.isNotEmpty(platformStatusDTO.getPlatformResults())) { + PlatformStatusDTO.PlatformUpdateResult result = platformStatusDTO.getPlatformResults().get(0); + if (Boolean.TRUE.equals(result.getSuccess())) { + boolean isDy = result.getPlatformCode().equals("8"); + CloseUpPlatformDO updatePlatform = CloseUpPlatformDO.builder() + .id(platformDO.getId()) + .status(isDy ? platformDO.getStatus() : request.getStatus()) + .taskId(isDy ? result.getTaskId() : null) + .taskStatus(isDy ? request.getStatus() + 1 : 0) + .build(); + platformDAO.updateStatusAndTaskId(Collections.singletonList(updatePlatform)); + return new CloseUpPlatformStatusVO(isDy ? 1 : 2); + } else { + throw new ServiceException(ErrorCodeEnum.CLOSE_UP_PLATFORM_STATUS_UPDATE_ERROR, result.getMessage()); + } + } + } + throw new ServiceException(ErrorCodeEnum.CLOSE_UP_PLATFORM_STATUS_UPDATE_ERROR, "系统异常"); + } else { + // 手动关闭直接修改状态 + platformDAO.updateStatusByIds(Collections.singletonList(request.getId()), request.getStatus(), 0); + return new CloseUpPlatformStatusVO(2); + } } @Override @@ -591,7 +631,7 @@ public class CloseUpServiceImpl implements CloseUpService { } PlatformAsyncStatusDTO result = platformHttpClientRest.queryPlatformStatusByTaskId(storeDO.getStoreNum(), String.valueOf(platformCode), Long.valueOf(platformDO.getTaskId())); if (Objects.nonNull(result) && result.getStatus().equals("50")) { - platformDAO.updateStatusByIds(Collections.singletonList(platformDO.getId()), 1); + platformDAO.updateStatusByIds(Collections.singletonList(platformDO.getId()), platformDO.getTaskStatus() - 1, 0); } } @@ -667,7 +707,7 @@ public class CloseUpServiceImpl implements CloseUpService { } if (autoPlatform) { // 自动开关平台 - List platformList = platformDAO.getList(formDO.getId(), 0, 1, null); + List platformList = platformDAO.getList(formDO.getId(), 0, 1, null, null); autoPlatform(storeId, applyType, platformList); } if (StringUtils.isNotBlank(storeDO.getTelephone())) { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseUpController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseUpController.java index 252d65e05..e7913aea0 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseUpController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseUpController.java @@ -9,6 +9,7 @@ import com.cool.store.response.ResponseResult; import com.cool.store.service.closeup.CloseUpService; import com.cool.store.vo.closeup.CloseUpApplyFormSimpleVO; import com.cool.store.vo.closeup.CloseUpApplyFormVO; +import com.cool.store.vo.closeup.CloseUpPlatformStatusVO; import com.cool.store.vo.closeup.CloseUpPlatformVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; @@ -85,7 +86,7 @@ public class CloseUpController { @ApiOperation("平台关闭开启处理") @PostMapping("/handlePlatform") -public ResponseResult handlePlatform(@RequestBody @Validated CloseUpPlatformHandleRequest request) { + public ResponseResult handlePlatform(@RequestBody @Validated CloseUpPlatformHandleRequest request) { return ResponseResult.success(closeUpService.handlePlatform(request)); } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java index c7c52943f..e53d146d4 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java @@ -181,6 +181,11 @@ public class PCTestController { return ResponseResult.success(true); } + @PostMapping("/storeStatusAndPlatformUpdate") + public void storeStatusAndPlatformUpdate(Long applyId) { + closeUpService.storeStatusAndPlatformUpdate(applyId); + } + @PostMapping("/closeUpAutoOpen") public void closeUpAutoOpen(Long applyId) { closeUpService.closeUpAutoOpen(applyId); @@ -194,7 +199,7 @@ public class PCTestController { @PostMapping("/autoPlatform") public void autoPlatform(Long applyId) { CloseUpApplyFormDO formDO = closeUpApplyFormDAO.getById(applyId); - List platformList = closeUpPlatformDAO.getList(applyId, 0, 1, null); + List platformList = closeUpPlatformDAO.getList(applyId, 0, 1, null, null); closeUpService.autoPlatform(formDO.getStoreId(), formDO.getType(), platformList); } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java b/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java index 134767e67..a5f11cac5 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java @@ -806,7 +806,7 @@ public class XxlJobHandler { int pageSize = CommonConstants.BATCH_SIZE; while (hasNext) { PageHelper.startPage(pageNum, pageSize); - List list = closeUpPlatformDAO.getList(null, 0, null, true); + List list = closeUpPlatformDAO.getList(null, null, null, true, true); hasNext = list.size() >= pageSize; if (CollectionUtils.isEmpty(list)) { break;