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 d59f1e384..cfc810c3a 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 @@ -298,6 +298,10 @@ public enum ErrorCodeEnum { MESSAGE_TEMPLATE_NOT_SUPPORT_DELETED(1610002,"只有未发布的消息能删除,请确认!",null), STORE_MESSAGE_REVOKE(1610003,"当前门店消息已撤销,请务重复操作",null), STORE_MESSAGE_HANDLED(1610004,"当前门店消息已处理,无法撤销!",null), + MATTER_STORE_OR_USER_IS_NULL(1610005,"当前事项门店或者人员为空,发布失败,请确认!",null), + CONFIG_NOT_EXIST(1610006,"配置不存在或被禁用,请确认!",null), + MESSAGE_NOT_EXIST(1610007,"消息模板不存在或已被删除",null), + MESSAGE_NOT_HANDLED(1610008,"当前消息无需处理,请确认消息处理类型!",null), NOT_FLAGSHIP_STORE(16100005,"非直营店,无法跳过缴费阶段!",null), diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/MatterTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/MatterTypeEnum.java index 9d94dde40..bcc9697d8 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/MatterTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/MatterTypeEnum.java @@ -10,6 +10,10 @@ public enum MatterTypeEnum { QUESTION(0,"门店违规工单"), LICENSE(1,"证照过期提醒"), NOTICE(2,"通知消息"), + LOGISTICS(3,"物流"), + SERVICE_PACKAGE(4,"服务包"), + RESTOCK(5,"补货"), + INVENTORY(6,"盘点"), ; MatterTypeEnum(Integer code, String message) { diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ModuleCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ModuleCodeEnum.java index 22b696bcf..3bfa89f8a 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ModuleCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ModuleCodeEnum.java @@ -10,10 +10,13 @@ import java.util.List; */ public enum ModuleCodeEnum { - STORE_WORK(0,"店务", Arrays.asList(MatterTypeEnum.QUESTION,MatterTypeEnum.LICENSE,MatterTypeEnum.NOTICE)), - PRODUCT_UPDATE(1,"营销政策/产品上新",Arrays.asList(MatterTypeEnum.NOTICE)), - INVENTORY_MODULE(2,"库存模块",Arrays.asList(MatterTypeEnum.NOTICE)), + STORE_WORK(0,"店务日清/培训", Arrays.asList(MatterTypeEnum.QUESTION,MatterTypeEnum.LICENSE)), + PRODUCT_UPDATE(1,"营销政策/产品上新",Arrays.asList(MatterTypeEnum.SERVICE_PACKAGE)), + INVENTORY_MODULE(2,"原料订货与库存管理",Arrays.asList(MatterTypeEnum.RESTOCK,MatterTypeEnum.INVENTORY,MatterTypeEnum.LOGISTICS)), DISH(3,"菜品",Arrays.asList(MatterTypeEnum.NOTICE)), + FRANCHISE(4,"加盟",Arrays.asList(MatterTypeEnum.NOTICE)), + //其他(投诉与客户服务、临时通知) + OTHER(5,"其他",Arrays.asList(MatterTypeEnum.NOTICE)), ; ModuleCodeEnum(Integer code, String message,List matterTypeEnums) { diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RemindTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RemindTypeEnum.java index 86edff063..435e7078a 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RemindTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RemindTypeEnum.java @@ -7,8 +7,8 @@ package com.cool.store.enums.notice; */ public enum RemindTypeEnum { - CONTINUOUS_REMINDER(0,"持续提醒"), - STAGE_REMINDER(1,"阶段提醒"), + CONTINUOUS_REMINDER(1,"持续提醒"), + STAGE_REMINDER(2,"阶段提醒"), ; RemindTypeEnum(Integer code, String message) { diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SceneEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SceneEnum.java new file mode 100644 index 000000000..d5fc87540 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SceneEnum.java @@ -0,0 +1,85 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/8/26 15:43 + * @Version 1.0 + */ +public enum SceneEnum { + + SUBMIT_ORDER(0, "提交订单", "https://oss-cool.coolstore.cn/eid/214ac5a3a517472a87268e02a2e6410a/2508/j_l6em.jpg", MatterTypeEnum.LOGISTICS), + ASSIGNED_PICKING(5, "已分配拣货", "https://oss-cool.coolstore.cn/eid/214ac5a3a517472a87268e02a2e6410a/2508/YLjBkv.jpg", MatterTypeEnum.LOGISTICS), + PICKING_COMPLETED(10, "拣货完成", "https://oss-cool.coolstore.cn/eid/214ac5a3a517472a87268e02a2e6410a/2508/gG9Y-h.jpg", MatterTypeEnum.LOGISTICS), + SHIPPED(15, "已出库", "https://oss-cool.coolstore.cn/eid/214ac5a3a517472a87268e02a2e6410a/2508/Ehz8_n.jpg", MatterTypeEnum.LOGISTICS), + DELIVERY_IN_PROGRESS(20, "配送中", "https://oss-cool.coolstore.cn/eid/214ac5a3a517472a87268e02a2e6410a/2508/I6bAmA.jpg", MatterTypeEnum.LOGISTICS), + ORDER_SIGNING_AND_ACCEPTANCE(25, "订单签收", "https://oss-cool.coolstore.cn/eid/214ac5a3a517472a87268e02a2e6410a/2508/0z7jkU.jpg", MatterTypeEnum.LOGISTICS), + + SERVICE_PACKAGE(30, "服务包", "", MatterTypeEnum.LOGISTICS), + RESTOCK(35, "补货", "", MatterTypeEnum.LOGISTICS), + INVENTORY(40, "盘点", "", MatterTypeEnum.LOGISTICS), + + ; + + private Integer sceneCode; + + private String sceneName; + + private String scenePicture; + + private MatterTypeEnum matterTypeEnum; + + + public Integer getSceneCode() { + return sceneCode; + } + + public void setSceneCode(Integer sceneCode) { + this.sceneCode = sceneCode; + } + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getScenePicture() { + return scenePicture; + } + + public void setScenePicture(String scenePicture) { + this.scenePicture = scenePicture; + } + + public MatterTypeEnum getMatterTypeEnum() { + return matterTypeEnum; + } + + public void setMatterTypeEnum(MatterTypeEnum matterTypeEnum) { + this.matterTypeEnum = matterTypeEnum; + } + + SceneEnum(Integer sceneCode, String sceneName, String scenePicture, MatterTypeEnum matterTypeEnum) { + this.sceneCode = sceneCode; + this.sceneName = sceneName; + this.scenePicture = scenePicture; + this.matterTypeEnum = matterTypeEnum; + } + + /** + * 通过code获取枚举 + * @param code + * @return + */ + public static SceneEnum getByCode(Integer code) { + for (SceneEnum value : values()) { + if (value.sceneCode.equals(code)) { + return value; + } + } + return null; + } + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java index 6180a4163..0507da90c 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java @@ -35,6 +35,7 @@ public class CoolDateUtils { public static final String DATE_FORMAT_SEC_6 = "yyyy.MM.dd"; public static final String DATE_FORMAT_SEC_7 = "yyyy/MM/dd HH:mm"; public static final String DATE_FORMAT_SEC_8 = "yyyyMMdd"; + public static final String DATE_FORMAT_SEC_9 = "yyyyMMddHHmmssSSS"; private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); @@ -70,7 +71,7 @@ public class CoolDateUtils { } public static void main(String[] args) { - // 创建一个Date对象 + //创建一个Date对象 Date date = new Date(); // 将Date对象转换为LocalDate对象 @@ -146,6 +147,13 @@ public class CoolDateUtils { return LocalDate.now().format(DATE_FORMATTER); } + public static final String getTodayMillis(){ + DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT_SEC_9); + return LocalDateTime.now().format(DATE_FORMATTER); + } + + + /** * 获取当前日期字符串 (yyyy-MM-dd) */ diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 6a25575c2..8cde88a4d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -56,6 +56,13 @@ public class EnterpriseUserDAO { return enterpriseUserMapper.getUserInfoByUserIds(userIdList); } + public List getUserInfoByUserMobileList(List mobileList) { + if (CollectionUtils.isEmpty(mobileList)) { + return Lists.newArrayList(); + } + return enterpriseUserMapper.getUserInfoByUserMobileList(mobileList); + } + public List searchUserByRegionIdsAndKeyword(List regionIds, String keyword, List leaderRegionIds) { if (CollectionUtils.isEmpty(regionIds)) { return Lists.newArrayList(); 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/StoreDao.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java index 086cd178b..2111657f4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java @@ -72,8 +72,8 @@ public class StoreDao { } - public List list() { - return storeMapper.list(); + public List list(Integer isIot) { + return storeMapper.list(isIot); } public List getStoreNumByStoreCodes(List storeCodeIds) { 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/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index 84f81fe74..8ccd2bb57 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -32,6 +32,8 @@ public interface EnterpriseUserMapper { */ List getUserInfoByUserIds( @Param("userIdList") List userIdList); + List getUserInfoByUserMobileList( @Param("mobileList") List mobileList); + /** * 根据关键字搜索部门下的用户 * @param regionIds 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/StoreMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java index 16b33d5ab..b4401bdf4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java @@ -39,7 +39,7 @@ public interface StoreMapper { * 分页查询门店数据 * @return */ - List list(); + List list(@Param("isIot") Integer isIot); List getStoreAreaList( @Param("storeIds") List storeIds); 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/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 20fffcf0a..26e3a697a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -82,6 +82,21 @@ + + + SELECT + * + FROM zxjp_message_template + WHERE deleted = 0 + + AND handle_keyword = #{keyword,jdbcType=VARCHAR} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml index fdfa9c396..0f38c7254 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml @@ -44,6 +44,11 @@ + + + + + select * - from store_${enterpriseId} where is_delete = 'effective' order by id asc + from store_${enterpriseId} + where is_delete = 'effective' + + AND is_iot = #{isIot} + + order by id asc + + 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/dto/StoreDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java index 0c88ae388..c986b230a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java @@ -43,4 +43,13 @@ public class StoreDTO { private String longitude; private String latitude; + + @ApiModelProperty("订货人") + private String addresseeName; + @ApiModelProperty("手机号") + private String addresseeMobile; + @ApiModelProperty("收件省市区") + private String addresseeArea; + @ApiModelProperty("订货地址") + private String addresseeAddress; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreNameDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreNameDTO.java new file mode 100644 index 000000000..daf196280 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreNameDTO.java @@ -0,0 +1,25 @@ +package com.cool.store.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + *

+ * 门店名称DTO + *

+ * + * @author wangff + * @since 2025/9/16 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class StoreNameDTO { + @ApiModelProperty("门店名称") + private String storeName; + + @ApiModelProperty("门店编码") + private String storeNum; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/NoticeDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/NoticeDTO.java index 76f35729e..acfc00cbb 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/NoticeDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/NoticeDTO.java @@ -75,4 +75,12 @@ public class NoticeDTO { @ApiModelProperty("发布人时间") private Date publishTime; + private String handlePersonInfo; + + private String storeInfo; + + private Integer jumpType; + + private String jumpUrl; + } 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 fc0f7b28b..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 @@ -151,5 +151,13 @@ public class MessageTemplateDO { @Column(name = "store_info") private String storeInfo; + @Column(name = "jump_type") + private Integer jumpType; + @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/entity/StoreDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreDO.java index 83572294e..eaa972e41 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreDO.java @@ -238,5 +238,28 @@ public class StoreDO { private String miniProgramOrderStoreName; + /** + * 是否接入物联网 + */ + private Integer isIot; + /** + * 收件人 + */ + private String addresseeName; + + /** + * 手机号 + */ + private String addresseeMobile; + + /** + * 收件省市区 + */ + private String addresseeArea; + + /** + * 收件详细地址 + */ + private String addresseeAddress; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java index acb8dda8a..b48500de2 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java @@ -219,6 +219,8 @@ public class ZxjpApiRequest { private Long shopId; + @ApiModelProperty("合同编号") + private String contractCode; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigAddRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigAddRequest.java index 788ff839a..74c2d05b8 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigAddRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigAddRequest.java @@ -28,13 +28,13 @@ public class MatterConfigAddRequest { private String systemSource; @ApiModelProperty( "1:H5 2:小程序") - private Boolean jumpType; + private Integer jumpType; @ApiModelProperty( "跳转链接") private String jumpUrl; @ApiModelProperty( "状态(0:禁用 1:启用)") - private Boolean status; + private Integer status; @ApiModelProperty( "备注") private String remark; 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 new file mode 100644 index 000000000..49e08d99e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/ThirdMatterRequest.java @@ -0,0 +1,66 @@ +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.Date; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/8/26 16:10 + * @Version 1.0 + */ +@Data +public class ThirdMatterRequest { + + @ApiModelProperty("0-提交订单 5-已分配拣货 10-拣货完成 15-已出库 20-配送中 25-订单签收 30-服务包发布 35-补货 40-盘点通知 ") + @NotNull(message = "场景不能为空") + private Integer sceneCode; + + @ApiModelProperty("事项配置ID CRM配置好部分信息 找CRM提供") + @NotNull(message = "事项配置ID不能为空") + private Long matterConfigId; + + @ApiModelProperty("事项标题") + @NotBlank(message = "事项标题不能为空") + private String matterTitle; + + @ApiModelProperty("处理类型(1:仅阅读 2:需要处理)") + @NotNull(message = "处理类型不能为空") + private Integer processType; + + @ApiModelProperty("提醒类型(1:持续提醒 2:阶段提醒)") + @NotNull(message = "提醒类型不能为空") + private Integer remindType; + + @ApiModelProperty("阶段提醒时 需要设置时间范围 开始时间") + private Date remindStartTime; + + @ApiModelProperty("阶段提醒时 需要设置时间范围 结束时间") + private Date remindEndTime; + + @ApiModelProperty("截止时间") + private Date deadline; + + @ApiModelProperty("今日必办标识 0非必办 1必办") + @NotNull(message = "今日必办标识不能为空") + private Integer todayTask; + + @ApiModelProperty("消息图片URL 物流crm自动匹配 无需传递") + private String messageImage; + + @ApiModelProperty("门店范围 如果不传 默认取matterConfigId对应的门店范围 如果都没有 任务处于待发布状态") + List shopCodeList; + + @ApiModelProperty("手机号列表 如果不传 默认取matterConfigId配置的人员信息 如果都没有 任务处于待发布状态") + List mobileList; + + private String jumpUrl; + + @ApiModelProperty("处理关键字 针对processType需要处理的字段 需要传递该关键字识别 注意 每个批次门店任务keyword不能重复") + private String handleKeyword; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageDetailVO.java index 78fa5049a..c16e4d401 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageDetailVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageDetailVO.java @@ -39,5 +39,7 @@ public class MessageDetailVO { private Integer processStatus; private Integer processType; + @ApiModelProperty("第三方id") + private String handleKeyword; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageTemplateDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageTemplateDetailVO.java index 793fda56d..348edb15d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageTemplateDetailVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageTemplateDetailVO.java @@ -51,6 +51,8 @@ public class MessageTemplateDetailVO { private Integer totalNum; @ApiModelProperty("系统来源") private String systemSource; + @ApiModelProperty("第三方id") + private String handleKeyword; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageVO.java index 4d614441c..4ab7d262e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageVO.java @@ -13,9 +13,11 @@ import java.util.Date; @Data public class StoreMessageVO { private Long id; - @ApiModelProperty("模版COde") + @ApiModelProperty("模版Code") private Integer moduleCode; + private Integer matterType; + @ApiModelProperty("模版ID") private Long templateId; @ApiModelProperty("已读状态") @@ -33,4 +35,10 @@ public class StoreMessageVO { @ApiModelProperty("今日必办") private Integer todayTask; + private Integer jumpType; + + private String jumpUrl; + + private String resource; + } 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 dd9424a70..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 @@ -3,6 +3,7 @@ package com.cool.store.service; import com.cool.store.context.LoginUserInfo; import com.cool.store.dto.notice.NoticeDTO; import com.cool.store.request.notice.*; +import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.vo.PartnerUserInfoVO; import com.cool.store.vo.notice.*; import com.github.pagehelper.PageInfo; @@ -51,11 +52,17 @@ public interface MessageTemplateService { /** * batch 批量发布 * @param request - * @param user + * @param userId * @return */ - Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user); + Boolean batchPublishMessageTemplate(BatchPublishRequest request, String userId); + /** + * thirdMatterHandle 第三方接口处理 + * @param thirdMatterRequest + * @return + */ + ApiResponse thirdMatterHandle(ThirdMatterRequest thirdMatterRequest); /** * 获取列表 @@ -95,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/StoreService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java index d916b61a7..3397041b1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/StoreService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.dto.StoreDTO; +import com.cool.store.dto.StoreNameDTO; import com.cool.store.dto.store.AuthStoreUserDTO; import com.cool.store.dto.store.StoreUserPositionDTO; import com.cool.store.response.MiniShopsResponse; @@ -24,6 +25,11 @@ public interface StoreService { */ PageInfo getStoreExtendFieldInfo(Integer pageSize,Integer pageNum); + /** + * 分页查询接入物联网的门店 + */ + PageInfo getIotStoreList(Integer pageNum, Integer pageSize); + PageInfo getStoreListByMobile(String mobile,Integer pageNum,Integer pageSize,String storeName,String storeNum); List getStoreUser(List storeCodeList); 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..ad78098c1 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 @@ -5,6 +5,8 @@ import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.MatterConfigDAO; import com.cool.store.dto.notice.CommonDTO; import com.cool.store.entity.MatterConfigDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.request.notice.MatterConfigAddRequest; import com.cool.store.request.notice.MatterConfigQueryRequest; import com.cool.store.service.MatterConfigService; @@ -36,19 +38,30 @@ 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); } @Override public int editMatterConfig(MatterConfigAddRequest request, LoginUserInfo currentUser) { + if (request.getId() == null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } MatterConfigDO matterConfigDO = new MatterConfigDO(); BeanUtils.copyProperties(request, matterConfigDO); matterConfigDO.setUpdateUserId(currentUser.getUserId()); matterConfigDO.setUpdateTime(new Date()); - 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.updateForce(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 e321196a6..cd6227e88 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 @@ -4,10 +4,7 @@ import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.context.LoginUserInfo; import com.cool.store.context.PartnerUserHolder; -import com.cool.store.dao.EnterpriseUserDAO; -import com.cool.store.dao.MessageTemplateDAO; -import com.cool.store.dao.RegionDao; -import com.cool.store.dao.StoreMessageDAO; +import com.cool.store.dao.*; import com.cool.store.dto.notice.CommonDTO; import com.cool.store.dto.notice.MessageTemplateCountDTO; import com.cool.store.dto.notice.NoticeDTO; @@ -20,6 +17,7 @@ import com.cool.store.exception.ServiceException; import com.cool.store.mapper.StoreGroupMappingMapper; import com.cool.store.mapper.StoreMapper; import com.cool.store.request.notice.*; +import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.service.MessageTemplateService; import com.cool.store.service.StoreService; import com.cool.store.utils.CoolDateUtils; @@ -65,6 +63,8 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { StoreMessageDAO storeMessageDAO; @Resource EnterpriseUserDAO enterpriseUserDAO; + @Resource + MatterConfigDAO matterConfigDAO; @@ -82,8 +82,8 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { public String getMessageTemplateCode() { //当前日期 - String today = CoolDateUtils.getToday(); - return "16" + today + String.format("%04d", ThreadLocalRandom.current().nextInt(10000)); + String today = CoolDateUtils.getTodayMillis(); + return "16" + today + String.format("%04d", ThreadLocalRandom.current().nextInt(100)); } @Override @@ -135,7 +135,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { @Override - public Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user) { + public Boolean batchPublishMessageTemplate(BatchPublishRequest request, String userId) { if (CollectionUtils.isEmpty(request.getIds())||CollectionUtils.isEmpty(request.getStoreInfoList())||CollectionUtils.isEmpty(request.getUserInfoList())){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } @@ -180,11 +180,107 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { messageTemplateDAO.batchUpdateStoreInfoAndUserInfo(updateIds, JSONObject.toJSONString(request.getStoreInfoList()), JSONObject.toJSONString(request.getUserInfoList()), - user.getUserId()); + userId); return Boolean.TRUE; } + @Override + @Transactional(rollbackFor = Exception.class) + public ApiResponse thirdMatterHandle(ThirdMatterRequest thirdMatterRequest) { + log.info("thirdMatterHandle request:{}", JSONObject.toJSONString(thirdMatterRequest)); + //第三方事项处理 + MatterConfigDO matterConfig = matterConfigDAO.getById(thirdMatterRequest.getMatterConfigId()); + if (matterConfig==null||matterConfig.getStatus()==0){ + return ApiResponse.error(ErrorCodeEnum.CONFIG_NOT_EXIST); + } + //封装事项模版 + MessageTemplateDO messageTemplateDO = new MessageTemplateDO(); + messageTemplateDO.setMessageCode(getMessageTemplateCode()); + messageTemplateDO.setModuleCode(matterConfig.getModuleCode()); + messageTemplateDO.setMatterType(matterConfig.getMatterType()); + messageTemplateDO.setMessageTitle(thirdMatterRequest.getMatterTitle()); + messageTemplateDO.setSystemSource(matterConfig.getSystemSource()); + messageTemplateDO.setProcessType(thirdMatterRequest.getProcessType()); + messageTemplateDO.setRemindType(thirdMatterRequest.getRemindType()); + if (RemindTypeEnum.STAGE_REMINDER.getCode().equals(thirdMatterRequest.getRemindType())){ + messageTemplateDO.setRemindStartTime(thirdMatterRequest.getRemindStartTime()); + messageTemplateDO.setRemindEndTime(thirdMatterRequest.getRemindEndTime()); + } + messageTemplateDO.setDeadline(thirdMatterRequest.getDeadline()); + messageTemplateDO.setTodayTask(thirdMatterRequest.getTodayTask()); + messageTemplateDO.setMessageImage(thirdMatterRequest.getMessageImage()); + 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()); + messageTemplateDO.setMessageImage(scene.getScenePicture()); + //物流直接使用传过来的地址 + messageTemplateDO.setJumpUrl(thirdMatterRequest.getJumpUrl()); + } + //如果是盘点 截止日期去当天 + if (MatterTypeEnum.INVENTORY.getCode().equals(matterConfig.getMatterType())){ + messageTemplateDO.setDeadline(new Date()); + } + String storeInfo = matterConfig.getDefaultStoreInfo(); + String userInfo = matterConfig.getDefaultHandlePersonInfo(); + //门店 + if (CollectionUtils.isNotEmpty(thirdMatterRequest.getShopCodeList())){ + log.info("shopCodeList:{}",JSONObject.toJSONString(thirdMatterRequest.getShopCodeList())); + List storeNumByStoreCodes = storeMapper.getStoreNumByStoreCodes(thirdMatterRequest.getShopCodeList()); + if (CollectionUtils.isNotEmpty(storeNumByStoreCodes)){ + //组装成门店信息 + List storeList = new ArrayList<>(); + storeNumByStoreCodes.forEach(x -> { + CommonDTO store = new CommonDTO("store", x.getStoreId(), x.getStoreName()); + storeList.add(store); + }); + storeInfo = JSONObject.toJSONString(storeList); + } + } + //人员 + List userInfoByUserMobileList = enterpriseUserDAO.getUserInfoByUserMobileList(thirdMatterRequest.getMobileList()); + if (CollectionUtils.isNotEmpty(userInfoByUserMobileList)){ + //组装人员信息 + List userList = new ArrayList<>(); + userInfoByUserMobileList.forEach(x -> { + CommonDTO user = new CommonDTO("person", x.getUserId(), x.getName()); + userList.add(user); + }); + userInfo = JSONObject.toJSONString(userList); + } + Boolean publishFlag = Boolean.TRUE; + //校验是否发布 + if (StringUtils.isEmpty(userInfo)|| StringUtils.isEmpty(storeInfo)){ + publishFlag = Boolean.FALSE; + } + messageTemplateDO.setCreateUserId("system"); + if (!publishFlag){ + //如果不发布 保存门店人员信息 + messageTemplateDO.setStoreInfo(storeInfo); + messageTemplateDO.setHandlePersonInfo(userInfo); + } + messageTemplateDAO.insert(messageTemplateDO); + //调用发布 + if (publishFlag){ + //开始计算人员门店 + BatchPublishRequest batchPublishRequest = new BatchPublishRequest(); + batchPublishRequest.setIds(Arrays.asList(messageTemplateDO.getId())); + batchPublishRequest.setStoreInfoList(JSONObject.parseArray(storeInfo, CommonDTO.class)); + batchPublishRequest.setUserInfoList(JSONObject.parseArray(userInfo, CommonDTO.class)); + try { + batchPublishMessageTemplate(batchPublishRequest,""); + } catch (ServiceException e) { + return new ApiResponse(e.getErrorCode(), e.getErrorMessage(), null); + } + return ApiResponse.success(Boolean.TRUE); + } + return ApiResponse.success(Boolean.TRUE); + } + @Override public PageInfo getMessageTemplateList(MessageTemplateQueryRequest request) { @@ -312,7 +408,9 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { MessageDetailVO messageDetailVO = storeMessageDAO.getMessageDetail(id); if (messageDetailVO!=null&&messageDetailVO.getPublishUserId()!=null){ EnterpriseUserDO userInfoById = enterpriseUserDAO.getUserInfoById(messageDetailVO.getPublishUserId()); - messageDetailVO.setPublishUserName(userInfoById.getName()); + if (userInfoById != null){ + messageDetailVO.setPublishUserName(userInfoById.getName()); + } } return messageDetailVO; } @@ -358,6 +456,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.getCode().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-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java index 30d9d5bf0..a63e844f2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java @@ -1,9 +1,11 @@ package com.cool.store.service.impl; import cn.hutool.core.collection.CollStreamUtil; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dto.StoreNameDTO; import com.cool.store.dao.store.StoreMasterSignerInfoDAO; import com.cool.store.dto.store.AuthStoreUserDTO; import com.cool.store.dao.EnterpriseUserDAO; @@ -82,7 +84,7 @@ public class StoreServiceImpl implements StoreService { throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE,"单次最多获取200条门店数据"); } PageHelper.startPage(pageNum,pageSize); - List list = storeDao.list(); + List list = storeDao.list(null); PageInfo info = new PageInfo<>(list); if (CollectionUtils.isEmpty(list)){ return info; @@ -92,6 +94,22 @@ public class StoreServiceImpl implements StoreService { return info; } + @Override + public PageInfo getIotStoreList(Integer pageNum, Integer pageSize) { + if (pageSize > 200) { + throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE, "单次最多获取200条门店数据"); + } + PageHelper.startPage(pageNum, pageSize); + List list = storeDao.list(1); + PageInfo info = new PageInfo<>(list); + if (CollectionUtils.isEmpty(list)){ + return info; + } + List result = list.stream().map(v -> new StoreNameDTO(v.getStoreName(), v.getStoreNum())).collect(Collectors.toList()); + info.setList(result); + return info; + } + @Override public PageInfo getStoreListByMobile(String mobile,Integer pageNum,Integer pageSize,String storeName,String storeNum) { //根据手机号查询 标品userId @@ -362,22 +380,13 @@ public class StoreServiceImpl implements StoreService { public static List processStores(List stores) { // 处理每个门店 return stores.stream().map(store -> { - StoreDTO dto = new StoreDTO(); - dto.setStoreName(store.getStoreName()); + StoreDTO dto = BeanUtil.toBean(store, StoreDTO.class); dto.setStoreCode(store.getStoreNum()); - dto.setStoreAddress(store.getStoreAddress()); dto.setStoreAvatar(store.getAvatar()); - dto.setTelephone(store.getTelephone()); - dto.setMonthlyRent(store.getMonthlyRent()); - dto.setMonthlyPersonnelSalary(store.getMonthlyPersonnelSalary()); - dto.setMonthlyOtherExpenses(store.getMonthlyOtherExpenses()); - dto.setUnifiedManagement(store.getUnifiedManagement()); dto.setStoreType(StoreTypeEnum.getMessage(store.getStoreType())); dto.setJoinMode(JoinModeEnum.getByCode(store.getJoinModel())); dto.setBrand(FranchiseBrandEnum.getDescByCode(store.getJoinBrand())); dto.setOrderMiniProgramName(store.getMiniProgramOrderStoreName()); - dto.setLongitude(store.getLongitude()); - dto.setLatitude(store.getLatitude()); return dto; }).collect(Collectors.toList()); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java index d870d8eb1..e6c61a1a1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java @@ -119,6 +119,7 @@ public class SyncDataServiceImpl implements SyncDataService { } request.setPartnershipSignatory(partnershipSignatory); request.setBusinessModel(signFranchiseDO.getBusinessModel()); + request.setContractCode(signFranchiseDO.getContractCode()); } request.setPartnerMobile(lineInfoDO.getMobile()); request.setShopCode(shopInfo.getShopCode()); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MessageTemplateController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MessageTemplateController.java index a431ab605..b9952bc74 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MessageTemplateController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MessageTemplateController.java @@ -59,7 +59,7 @@ public class MessageTemplateController { @PostMapping("/batchPublish") @ApiOperation("批量发布") public ResponseResult batchPublishMessageTemplate(@RequestBody BatchPublishRequest request) { - return ResponseResult.success(messageTemplateService.batchPublishMessageTemplate(request, CurrentUserHolder.getUser())); + return ResponseResult.success(messageTemplateService.batchPublishMessageTemplate(request, CurrentUserHolder.getUser().getUserId())); } @PostMapping("/getMessageTemplateList") 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 3156a3ce7..5f67fa4e6 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,14 @@ 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; import com.cool.store.response.ResponseResult; @@ -44,6 +47,8 @@ public class OpenApiController { ShopAccountService shopAccountService; @Resource StoreService storeService; + @Resource + MessageTemplateService messageTemplateService; @PostMapping("/statusRefresh") public ApiResponse statusRefresh(@RequestBody StatusRefreshDTO statusRefreshDTO){ @@ -63,6 +68,13 @@ public class OpenApiController { public ApiResponse> getStoreList(@RequestBody @Validated OpenApiStoreRequest dto) { return ApiResponse.success(storeService.getStoreExtendFieldInfo(dto.getPageSize(),dto.getPageNum())); } + + @ApiOperation("获取接入物联网门店信息") + @PostMapping("/getIoTStoreList") + public ApiResponse> getIotStoreList(@RequestBody @Validated OpenApiStoreRequest dto) { + return ApiResponse.success(storeService.getIotStoreList(dto.getPageNum(), dto.getPageSize())); + } + @ApiOperation("新管家回调 刷新收款单状态") @PostMapping("/changeReceiptStatus") public ApiResponse changeReceiptStatus(@RequestBody @Validated ReceiptCallBackRequest request){ @@ -151,4 +163,17 @@ public class OpenApiController { return ApiResponse.success(decorationDesignInfoService.decorationAcceptance(request)); } + @ApiOperation("事项处理") + @PostMapping("/matterHandle") + public ApiResponse thirdMatterHandle(@RequestBody @Validated ThirdMatterRequest request) { + log.info("thirdMatterHandle request:{}", JSONObject.toJSONString(request)); + return messageTemplateService.thirdMatterHandle(request); + } + + + @ApiOperation("确认已处理") + @PostMapping("/handleMessage") + public ApiResponse handleMessage(@RequestBody @Validated ThirdHandleMessageRequest request) { + return messageTemplateService.thirdHandleMessage(request); + } }