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 7228f5e82..daa073f85 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 @@ -299,7 +299,9 @@ public enum ErrorCodeEnum { STORE_MESSAGE_REVOKE(1610003,"当前门店消息已撤销,请务重复操作",null), STORE_MESSAGE_HANDLED(1610004,"当前门店消息已处理,无法撤销!",null), MATTER_STORE_OR_USER_IS_NULL(1610005,"当前事项门店或者人员为空,发布失败,请确认!",null), - CONFIG_NOT_EXIST(1610006,"配置不存在或被禁用,请确认!",null); + CONFIG_NOT_EXIST(1610006,"配置不存在或被禁用,请确认!",null), + MESSAGE_NOT_EXIST(1610007,"消息模板不存在或已被删除",null), + MESSAGE_NOT_HANDLED(1610008,"当前消息无需处理,请确认消息处理类型!",null), ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/MessageTemplateDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/MessageTemplateDAO.java index 904343a6d..e19a60678 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/MessageTemplateDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/MessageTemplateDAO.java @@ -71,6 +71,13 @@ public class MessageTemplateDAO { return messageTemplateMapper.batchUpdatePublishStatus(ids); } + public MessageTemplateDO getByKeyword(String keyword) { + if (keyword == null){ + return null; + } + return messageTemplateMapper.getByKeyword(keyword); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreMessageDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreMessageDAO.java index 888cec788..6162e7f78 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreMessageDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreMessageDAO.java @@ -87,4 +87,11 @@ public class StoreMessageDAO { public MessageDetailVO getMessageDetail(Long id){ return storeMessageMapper.getMessageDetail(id); } + + public Integer batchUpdateHandle(Long id, List storeCodeList){ + if (id==null||CollectionUtils.isEmpty(storeCodeList)){ + return 0; + } + return storeMessageMapper.batchUpdateHandle(id,storeCodeList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MessageTemplateMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MessageTemplateMapper.java index d038d22cf..c416bec72 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MessageTemplateMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MessageTemplateMapper.java @@ -3,6 +3,7 @@ package com.cool.store.mapper; import com.cool.store.dto.notice.CommonDTO; import com.cool.store.dto.notice.NoticeDTO; import com.cool.store.entity.MessageTemplateDO; +import com.cool.store.entity.StoreMessageDO; import com.cool.store.request.notice.MessageTemplateQueryRequest; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; @@ -25,6 +26,11 @@ public interface MessageTemplateMapper extends Mapper { int batchUpdatePublishStatus(@Param("ids") List ids); - + /** + * 根据关键词查询 + * @param keyword + * @return + */ + MessageTemplateDO getByKeyword(@Param("keyword") String keyword); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMessageMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMessageMapper.java index 54a01ecf9..96e983250 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMessageMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMessageMapper.java @@ -35,4 +35,11 @@ public interface StoreMessageMapper extends Mapper { MessageDetailVO getMessageDetail(Long id); + /** + * 批量更新处理 + * @param id + * @param storeCodeList + */ + int batchUpdateHandle(@Param("id") Long id, @Param("storeCodeList") List storeCodeList); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml index d550593d8..ca6737295 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml @@ -127,4 +127,14 @@ + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index 7e61ec631..05b594ebf 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -216,6 +216,24 @@ a.id = #{id} + + UPDATE zxjp_store_message + SET + process_status = 1, + process_time = NOW(), + read_status = 1, + read_time = NOW(), + update_time = NOW() + + + AND message_template_id = #{id} + + and store_code IN + + #{item} + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/MessageTemplateDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/MessageTemplateDO.java index 11f241c79..578191ad3 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/MessageTemplateDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/MessageTemplateDO.java @@ -156,5 +156,8 @@ public class MessageTemplateDO { @Column(name = "jump_url") private String jumpUrl; + @Column(name = "handle_keyword") + private String handleKeyword; + } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdHandleMessageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdHandleMessageRequest.java new file mode 100644 index 000000000..1ce35b465 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdHandleMessageRequest.java @@ -0,0 +1,26 @@ +package com.cool.store.request.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/8/29 11:10 + * @Version 1.0 + */ +@Data +public class ThirdHandleMessageRequest { + + @ApiModelProperty("发起任务时 传的handleKeyword") + @NotBlank(message = "handleKeyword不能为空") + private String handleKeyword; + + @ApiModelProperty("门店编码列表") + @NotNull(message = "门店编码列表不能为空") + private List shopCodeList; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdMatterRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdMatterRequest.java index 9b2838208..49e08d99e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdMatterRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdMatterRequest.java @@ -60,4 +60,7 @@ public class ThirdMatterRequest { private String jumpUrl; + @ApiModelProperty("处理关键字 针对processType需要处理的字段 需要传递该关键字识别 注意 每个批次门店任务keyword不能重复") + private String handleKeyword; + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/MessageTemplateService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/MessageTemplateService.java index b0935f149..567103c82 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/MessageTemplateService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/MessageTemplateService.java @@ -102,4 +102,5 @@ public interface MessageTemplateService { Boolean handleMessage(Long id, PartnerUserInfoVO userInfoVO); + ApiResponse thirdHandleMessage(ThirdHandleMessageRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MatterConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MatterConfigServiceImpl.java index 4875e39fe..ba7ccab95 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MatterConfigServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MatterConfigServiceImpl.java @@ -36,8 +36,12 @@ public class MatterConfigServiceImpl implements MatterConfigService { MatterConfigDO matterConfigDO = new MatterConfigDO(); BeanUtils.copyProperties(request, matterConfigDO); matterConfigDO.setCreateUserId(currentUser.getUserId()); - matterConfigDO.setDefaultStoreInfo(JSONObject.toJSONString(request.getStoreInfoList())); - matterConfigDO.setDefaultHandlePersonInfo(JSONObject.toJSONString(request.getUserInfoList())); + if (CollectionUtils.isNotEmpty(request.getStoreInfoList())){ + matterConfigDO.setDefaultStoreInfo(JSONObject.toJSONString(request.getStoreInfoList())); + } + if (CollectionUtils.isNotEmpty(request.getUserInfoList())){ + matterConfigDO.setDefaultHandlePersonInfo(JSONObject.toJSONString(request.getUserInfoList())); + } return matterConfigDAO.insert(matterConfigDO); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MessageTemplateServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MessageTemplateServiceImpl.java index 166ab7901..6fdad9655 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MessageTemplateServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MessageTemplateServiceImpl.java @@ -186,6 +186,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { @Override + @Transactional(rollbackFor = Exception.class) public ApiResponse thirdMatterHandle(ThirdMatterRequest thirdMatterRequest) { log.info("thirdMatterHandle request:{}", JSONObject.toJSONString(thirdMatterRequest)); //第三方事项处理 @@ -212,6 +213,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { messageTemplateDO.setPublishStatus(PublishStatusEnum.UNPUBLISHED.getCode()); messageTemplateDO.setJumpType(matterConfig.getJumpType()); messageTemplateDO.setJumpUrl(matterConfig.getJumpUrl()); + messageTemplateDO.setHandleKeyword(thirdMatterRequest.getHandleKeyword()); if (MatterTypeEnum.LOGISTICS.getCode().equals(matterConfig.getMatterType())){ SceneEnum scene = SceneEnum.getByCode(thirdMatterRequest.getSceneCode()); @@ -449,6 +451,20 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { return Boolean.TRUE; } + @Override + public ApiResponse thirdHandleMessage(ThirdHandleMessageRequest request) { + log.info("thirdHandleMessage request:{}", JSONObject.toJSONString(request)); + MessageTemplateDO message = messageTemplateDAO.getByKeyword(request.getHandleKeyword()); + if (message==null){ + return ApiResponse.error(ErrorCodeEnum.MESSAGE_NOT_EXIST); + } + if (!ProcessTypeEnum.HANDLE.equals(message.getProcessType())){ + return ApiResponse.error(ErrorCodeEnum.MESSAGE_NOT_HANDLED); + } + storeMessageDAO.batchUpdateHandle(message.getId(), request.getShopCodeList()); + return ApiResponse.success(Boolean.TRUE); + } + public Map> getAuthUser(List personInfo, List storeIds){ if (CollectionUtils.isEmpty(personInfo)){ diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java index 4682056cc..743c60ddb 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java @@ -1,11 +1,13 @@ package com.cool.store.controller.webb; import com.alibaba.fastjson.JSONObject; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.dto.*; import com.cool.store.dto.store.StoreUserPositionDTO; import com.cool.store.request.OpenApiStoreRequest; import com.cool.store.request.StoreCodeDTO; import com.cool.store.request.*; +import com.cool.store.request.notice.ThirdHandleMessageRequest; import com.cool.store.request.notice.ThirdMatterRequest; import com.cool.store.request.xgj.FranchiseFeeCallBackRequest; import com.cool.store.request.xgj.ReceiptCallBackRequest; @@ -162,4 +164,9 @@ public class OpenApiController { } + @ApiOperation("确认已处理") + @GetMapping("/handleMessage") + public ApiResponse handleMessage(@RequestBody @Validated ThirdHandleMessageRequest request) { + return messageTemplateService.thirdHandleMessage(request); + } }