From b10f129271106846110ec48ae03e51514055111b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 24 Jul 2025 17:28:42 +0800 Subject: [PATCH 01/33] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8B=E9=A1=B9=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/enums/notice/MatterTypeEnum.java | 43 ++ .../store/enums/notice/ModuleCodeEnum.java | 54 ++ .../store/enums/notice/ProcessStatusEnum.java | 40 ++ .../store/enums/notice/ProcessTypeEnum.java | 40 ++ .../store/enums/notice/PublishStatusEnum.java | 42 ++ .../store/enums/notice/ReadStatusEnum.java | 39 ++ .../store/enums/notice/RemindTypeEnum.java | 40 ++ .../store/enums/notice/RevokeStatusEnum.java | 39 ++ .../store/enums/notice/SystemSourceEnum.java | 38 ++ .../com/cool/store/dao/MatterConfigDAO.java | 54 ++ .../cool/store/mapper/MatterConfigMapper.java | 33 + .../store/mapper/MessageTemplateMapper.java | 7 + .../cool/store/mapper/StoreMessageMapper.java | 7 + .../resources/mapper/MatterConfigMapper.xml | 78 +++ .../mapper/MessageTemplateMapper.xml | 33 + .../resources/mapper/StoreMessageMapper.xml | 27 + .../com/cool/store/dto/notice/CommonDTO.java | 25 + .../com/cool/store/entity/MatterConfigDO.java | 365 +++++++++++ .../cool/store/entity/MessageTemplateDO.java | 582 ++++++++++++++++++ .../com/cool/store/entity/StoreMessageDO.java | 440 +++++++++++++ .../notice/MatterConfigAddRequest.java | 49 ++ .../notice/MatterConfigDeletedRequest.java | 18 + .../notice/MatterConfigQueryRequest.java | 22 + .../vo/notice/MatterAndMatterDetailVO.java | 44 ++ .../store/vo/notice/ModuleAndMatterVO.java | 59 ++ .../store/service/MatterConfigService.java | 57 ++ .../service/impl/MatterConfigServiceImpl.java | 83 +++ .../controller/webb/CommonEnumController.java | 39 ++ .../webb/MatterConfigController.java | 65 ++ 29 files changed, 2462 insertions(+) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/MatterTypeEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ModuleCodeEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessStatusEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessTypeEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/PublishStatusEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ReadStatusEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RemindTypeEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RevokeStatusEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SystemSourceEnum.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/MatterConfigDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/MatterConfigMapper.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/MessageTemplateMapper.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMessageMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/MatterConfigMapper.xml create mode 100644 coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml create mode 100644 coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/notice/CommonDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/MatterConfigDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/MessageTemplateDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigAddRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigQueryRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MatterAndMatterDetailVO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/notice/ModuleAndMatterVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/MatterConfigService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/MatterConfigServiceImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CommonEnumController.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java 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 new file mode 100644 index 000000000..9d94dde40 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/MatterTypeEnum.java @@ -0,0 +1,43 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 14:03 + * @Version 1.0 + */ +public enum MatterTypeEnum { + + QUESTION(0,"门店违规工单"), + LICENSE(1,"证照过期提醒"), + NOTICE(2,"通知消息"), + ; + + MatterTypeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = 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 new file mode 100644 index 000000000..44313676d --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ModuleCodeEnum.java @@ -0,0 +1,54 @@ +package com.cool.store.enums.notice; + +import java.util.Arrays; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 13:59 + * @Version 1.0 + */ +public enum ModuleCodeEnum { + + STORE_WORK(0,"店务", Arrays.asList(MatterTypeEnum.QUESTION,MatterTypeEnum.LICENSE)), + PRODUCT_UPDATE(1,"营销政策/产品上新",Arrays.asList(MatterTypeEnum.NOTICE)), + INVENTORY_MODULE(2,"库存模块",Arrays.asList()), + DISH(3,"菜品",Arrays.asList()), + ; + + ModuleCodeEnum(Integer code, String message,List matterTypeEnums) { + this.code = code; + this.message = message; + this.matterTypeEnums = matterTypeEnums; + } + + private Integer code; + + private String message; + + private List matterTypeEnums; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public List getMatterTypeEnums() { + return matterTypeEnums; + } + + public void setMatterTypeEnums(List matterTypeEnums) { + this.matterTypeEnums = matterTypeEnums; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessStatusEnum.java new file mode 100644 index 000000000..e33277017 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessStatusEnum.java @@ -0,0 +1,40 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 13:50 + * @Version 1.0 + */ +public enum ProcessStatusEnum { + + UNTREATED(0,"未处理"), + PROCESSED(1,"已处理"), + ; + + ProcessStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessTypeEnum.java new file mode 100644 index 000000000..abea956f6 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ProcessTypeEnum.java @@ -0,0 +1,40 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 13:54 + * @Version 1.0 + */ +public enum ProcessTypeEnum { + + READ(0,"仅阅读"), + HANDLE(1,"需处理"), + ; + + ProcessTypeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/PublishStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/PublishStatusEnum.java new file mode 100644 index 000000000..a80c447c6 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/PublishStatusEnum.java @@ -0,0 +1,42 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 13:52 + * @Version 1.0 + */ +public enum PublishStatusEnum { + + UNPUBLISHED(0,"未发布"), + PUBLISHED(1,"已发布"), + REVOKED(2,"已撤销"), + ; + + PublishStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ReadStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ReadStatusEnum.java new file mode 100644 index 000000000..d2de9afbd --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/ReadStatusEnum.java @@ -0,0 +1,39 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 11:29 + * @Version 1.0 + */ +public enum ReadStatusEnum { + + UNREAD(0,"未读"), + READ(1,"已读"), + ; + + + ReadStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} 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 new file mode 100644 index 000000000..86edff063 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RemindTypeEnum.java @@ -0,0 +1,40 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 13:57 + * @Version 1.0 + */ +public enum RemindTypeEnum { + + CONTINUOUS_REMINDER(0,"持续提醒"), + STAGE_REMINDER(1,"阶段提醒"), + ; + + RemindTypeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RevokeStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RevokeStatusEnum.java new file mode 100644 index 000000000..dacb4f011 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/RevokeStatusEnum.java @@ -0,0 +1,39 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 11:33 + * @Version 1.0 + */ +public enum RevokeStatusEnum { + + NOT_REVOKE(0,"未撤销"), + REVOKE(1,"已撤销"), + ; + + RevokeStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SystemSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SystemSourceEnum.java new file mode 100644 index 000000000..a3bacbf7a --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/SystemSourceEnum.java @@ -0,0 +1,38 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/24 14:41 + * @Version 1.0 + */ +public enum SystemSourceEnum { + + QUESTION(0,"CRM"), + ; + + SystemSourceEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/MatterConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/MatterConfigDAO.java new file mode 100644 index 000000000..be2112491 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/MatterConfigDAO.java @@ -0,0 +1,54 @@ +package com.cool.store.dao; + +import com.cool.store.entity.MatterConfigDO; +import com.cool.store.mapper.MatterConfigMapper; +import com.cool.store.request.notice.MatterConfigQueryRequest; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 14:22 + * @Version 1.0 + */ +@Slf4j +@Repository +public class MatterConfigDAO { + + @Resource + MatterConfigMapper matterConfigMapper; + + public int insert(MatterConfigDO matterConfigDO){ + return matterConfigMapper.insertSelective(matterConfigDO); + } + + public int update(MatterConfigDO matterConfigDO){ + return matterConfigMapper.updateByPrimaryKeySelective(matterConfigDO); + } + + public MatterConfigDO getById(Long id){ + return matterConfigMapper.selectByPrimaryKey(id); + } + + public int updateForce(MatterConfigDO matterConfigDO){ + return matterConfigMapper.updateForce(matterConfigDO); + } + + public int batchDelete(List ids, String userId){ + if (CollectionUtils.isEmpty(ids)){ + return 0; + } + return matterConfigMapper.updateDeleteStatus(ids,userId); + } + + public List ListByCondition(MatterConfigQueryRequest request){ + return matterConfigMapper.ListByCondition(request); + } + + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MatterConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MatterConfigMapper.java new file mode 100644 index 000000000..7f41993f9 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MatterConfigMapper.java @@ -0,0 +1,33 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.MatterConfigDO; +import com.cool.store.request.notice.MatterConfigQueryRequest; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +import java.util.List; + +public interface MatterConfigMapper extends Mapper { + + + /** + * 强制修改 + * @param matterConfigDO + * @return + */ + int updateForce(@Param("matterConfigDO") MatterConfigDO matterConfigDO); + + /** + * 批量修改删除状态 + */ + int updateDeleteStatus(@Param("ids") List ids, @Param("userId") String userId); + + + /** + * 条件查询 + * @param request + * @return + */ + List ListByCondition(@Param("request") MatterConfigQueryRequest request); + +} \ No newline at end of file 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 new file mode 100644 index 000000000..52501eae2 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/MessageTemplateMapper.java @@ -0,0 +1,7 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.MessageTemplateDO; +import tk.mybatis.mapper.common.Mapper; + +public interface MessageTemplateMapper extends Mapper { +} \ 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 new file mode 100644 index 000000000..519eef64e --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMessageMapper.java @@ -0,0 +1,7 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.StoreMessageDO; +import tk.mybatis.mapper.common.Mapper; + +public interface StoreMessageMapper extends Mapper { +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/MatterConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/MatterConfigMapper.xml new file mode 100644 index 000000000..997727da5 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/MatterConfigMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + UPDATE zxjp_matter_config + SET + module_code = #{matterConfigDO.moduleCode,jdbcType=TINYINT}, + matter_type = #{matterConfigDO.matterType,jdbcType=TINYINT}, + system_source = #{matterConfigDO.systemSource,jdbcType=VARCHAR}, + jump_type = #{matterConfigDO.jumpType,jdbcType=BIT}, + jump_url = #{matterConfigDO.jumpUrl,jdbcType=VARCHAR}, + status = #{matterConfigDO.status,jdbcType=BIT}, + remark = #{matterConfigDO.remark,jdbcType=VARCHAR}, + update_time = now(), + update_user_id = #{matterConfigDO.updateUserId,jdbcType=VARCHAR}, + default_handle_person_info = #{matterConfigDO.defaultHandlePersonInfo,jdbcType=LONGVARCHAR}, + default_store_info = #{matterConfigDO.defaultStoreInfo,jdbcType=LONGVARCHAR} + WHERE id = #{matterConfigDO.id,jdbcType=BIGINT} + + + + + UPDATE zxjp_matter_config + SET + deleted = 1, + update_time = now(), + update_user_id = #{userId,jdbcType=VARCHAR} + WHERE id IN + + #{id,jdbcType=BIGINT} + + + + + + + + + \ 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 new file mode 100644 index 000000000..a7e725cad --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 000000000..504196071 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/CommonDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/CommonDTO.java new file mode 100644 index 000000000..180fe33de --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/CommonDTO.java @@ -0,0 +1,25 @@ +package com.cool.store.dto.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author suzhuhong + * @Date 2025/7/24 15:27 + * @Version 1.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CommonDTO { + + @ApiModelProperty("类型") + private String type; + @ApiModelProperty("ID值") + private String value; + @ApiModelProperty("名称") + private String name; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/MatterConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/MatterConfigDO.java new file mode 100644 index 000000000..a5239081f --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/MatterConfigDO.java @@ -0,0 +1,365 @@ +package com.cool.store.entity; + +import java.util.Date; +import javax.persistence.*; + +@Table(name = "zxjp_matter_config") +public class MatterConfigDO { + /** + * 主键ID + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * 模块编码 + */ + @Column(name = "module_code") + private Integer moduleCode; + + /** + * 事项类型 + */ + @Column(name = "matter_type") + private Integer matterType; + + /** + * 系统来源 + */ + @Column(name = "system_source") + private String systemSource; + + /** + * 跳转方式(1:H5 2:小程序 ) + */ + @Column(name = "jump_type") + private Boolean jumpType; + + /** + * 跳转链接 + */ + @Column(name = "jump_url") + private String jumpUrl; + + /** + * 状态(0:禁用 1:启用) + */ + private Boolean status; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 创建人 + */ + @Column(name = "create_user_id") + private String createUserId; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + /** + * 更新人 + */ + @Column(name = "update_user_id") + private String updateUserId; + + /** + * 删除标记(0:未删除 1:已删除) + */ + private Boolean deleted; + + /** + * 默认处理人信息 [{type:person,value:}{type:position,value:}] + */ + @Column(name = "default_handle_person_info") + private String defaultHandlePersonInfo; + + /** + * 默认门店范围 [{type:store,value:}{type:region,value:}] + */ + @Column(name = "default_store_info") + private String defaultStoreInfo; + + /** + * 获取主键ID + * + * @return id - 主键ID + */ + public Long getId() { + return id; + } + + /** + * 设置主键ID + * + * @param id 主键ID + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 获取模块编码 + * + * @return module_code - 模块编码 + */ + public Integer getModuleCode() { + return moduleCode; + } + + /** + * 设置模块编码 + * + * @param moduleCode 模块编码 + */ + public void setModuleCode(Integer moduleCode) { + this.moduleCode = moduleCode; + } + + /** + * 获取事项类型 + * + * @return matter_type - 事项类型 + */ + public Integer getMatterType() { + return matterType; + } + + /** + * 设置事项类型 + * + * @param matterType 事项类型 + */ + public void setMatterType(Integer matterType) { + this.matterType = matterType; + } + + /** + * 获取系统来源 + * + * @return system_source - 系统来源 + */ + public String getSystemSource() { + return systemSource; + } + + /** + * 设置系统来源 + * + * @param systemSource 系统来源 + */ + public void setSystemSource(String systemSource) { + this.systemSource = systemSource; + } + + /** + * 获取跳转方式(1:H5 2:小程序 ) + * + * @return jump_type - 跳转方式(1:H5 2:小程序 ) + */ + public Boolean getJumpType() { + return jumpType; + } + + /** + * 设置跳转方式(1:H5 2:小程序 ) + * + * @param jumpType 跳转方式(1:H5 2:小程序 ) + */ + public void setJumpType(Boolean jumpType) { + this.jumpType = jumpType; + } + + /** + * 获取跳转链接 + * + * @return jump_url - 跳转链接 + */ + public String getJumpUrl() { + return jumpUrl; + } + + /** + * 设置跳转链接 + * + * @param jumpUrl 跳转链接 + */ + public void setJumpUrl(String jumpUrl) { + this.jumpUrl = jumpUrl; + } + + /** + * 获取状态(0:禁用 1:启用) + * + * @return status - 状态(0:禁用 1:启用) + */ + public Boolean getStatus() { + return status; + } + + /** + * 设置状态(0:禁用 1:启用) + * + * @param status 状态(0:禁用 1:启用) + */ + public void setStatus(Boolean status) { + this.status = status; + } + + /** + * 获取备注 + * + * @return remark - 备注 + */ + public String getRemark() { + return remark; + } + + /** + * 设置备注 + * + * @param remark 备注 + */ + public void setRemark(String remark) { + this.remark = remark; + } + + /** + * 获取创建时间 + * + * @return create_time - 创建时间 + */ + public Date getCreateTime() { + return createTime; + } + + /** + * 设置创建时间 + * + * @param createTime 创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 获取创建人 + * + * @return create_user_id - 创建人 + */ + public String getCreateUserId() { + return createUserId; + } + + /** + * 设置创建人 + * + * @param createUserId 创建人 + */ + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + /** + * 获取更新时间 + * + * @return update_time - 更新时间 + */ + public Date getUpdateTime() { + return updateTime; + } + + /** + * 设置更新时间 + * + * @param updateTime 更新时间 + */ + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + /** + * 获取更新人 + * + * @return update_user_id - 更新人 + */ + public String getUpdateUserId() { + return updateUserId; + } + + /** + * 设置更新人 + * + * @param updateUserId 更新人 + */ + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + /** + * 获取删除标记(0:未删除 1:已删除) + * + * @return deleted - 删除标记(0:未删除 1:已删除) + */ + public Boolean getDeleted() { + return deleted; + } + + /** + * 设置删除标记(0:未删除 1:已删除) + * + * @param deleted 删除标记(0:未删除 1:已删除) + */ + public void setDeleted(Boolean deleted) { + this.deleted = deleted; + } + + /** + * 获取默认处理人信息 [{type:person,value:}{type:position,value:}] + * + * @return default_handle_person_info - 默认处理人信息 [{type:person,value:}{type:position,value:}] + */ + public String getDefaultHandlePersonInfo() { + return defaultHandlePersonInfo; + } + + /** + * 设置默认处理人信息 [{type:person,value:}{type:position,value:}] + * + * @param defaultHandlePersonInfo 默认处理人信息 [{type:person,value:}{type:position,value:}] + */ + public void setDefaultHandlePersonInfo(String defaultHandlePersonInfo) { + this.defaultHandlePersonInfo = defaultHandlePersonInfo; + } + + /** + * 获取默认门店范围 [{type:store,value:}{type:region,value:}] + * + * @return default_store_info - 默认门店范围 [{type:store,value:}{type:region,value:}] + */ + public String getDefaultStoreInfo() { + return defaultStoreInfo; + } + + /** + * 设置默认门店范围 [{type:store,value:}{type:region,value:}] + * + * @param defaultStoreInfo 默认门店范围 [{type:store,value:}{type:region,value:}] + */ + public void setDefaultStoreInfo(String defaultStoreInfo) { + this.defaultStoreInfo = defaultStoreInfo; + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..91cf7c1d1 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/MessageTemplateDO.java @@ -0,0 +1,582 @@ +package com.cool.store.entity; + +import java.util.Date; +import javax.persistence.*; + +@Table(name = "zxjp_message_template") +public class MessageTemplateDO { + /** + * 主键ID + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * 消息编码(唯一标识) + */ + @Column(name = "message_code") + private String messageCode; + + /** + * 模块编码 + */ + @Column(name = "module_code") + private Integer moduleCode; + + /** + * 事项类型 + */ + @Column(name = "matter_type") + private Integer matterType; + + /** + * 消息标题 + */ + @Column(name = "message_title") + private String messageTitle; + + /** + * 系统来源 + */ + @Column(name = "system_source") + private String systemSource; + + /** + * 处理类型(1:仅阅读 2:需要处理) + */ + @Column(name = "process_type") + private Integer processType; + + /** + * 提醒类型(1:持续提醒 2:阶段提醒 ) + */ + @Column(name = "remind_type") + private Integer remindType; + + /** + * 提醒时间段 开始时间 + */ + @Column(name = "remind_start_time") + private Date remindStartTime; + + /** + * 提醒时间段 结束时间 + */ + @Column(name = "remind_end_time") + private Date remindEndTime; + + /** + * 截止日期 + */ + private Date deadline; + + /** + * 今日必办标识(0:否 1:是) + */ + @Column(name = "today_task") + private Boolean todayTask; + + /** + * 消息图片URL + */ + @Column(name = "message_image") + private String messageImage; + + /** + * 发布状态(0:未发布 1:已发布 2:已撤销) + */ + @Column(name = "publish_status") + private Boolean publishStatus; + + /** + * 发布时间 + */ + @Column(name = "publish_time") + private Date publishTime; + + /** + * 发布人ID + */ + @Column(name = "publisher_user_id") + private Long publisherUserId; + + /** + * 创建人ID + */ + @Column(name = "create_user_id") + private Long createUserId; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 更新人ID + */ + @Column(name = "updater_user_id") + private Long updaterUserId; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + /** + * 删除标记(0:未删除 1:已删除) + */ + private Boolean deleted; + + /** + * 消息详情(富文本内容) + */ + @Column(name = "message_content") + private String messageContent; + + /** + * 处理人信息 [{type:person,value:}{type:position,value:}] + */ + @Column(name = "handle_person_info") + private String handlePersonInfo; + + /** + * 门店范围 [{type:store,value:}{type:region,value:}] + */ + @Column(name = "store_info") + private String storeInfo; + + /** + * 获取主键ID + * + * @return id - 主键ID + */ + public Long getId() { + return id; + } + + /** + * 设置主键ID + * + * @param id 主键ID + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 获取消息编码(唯一标识) + * + * @return message_code - 消息编码(唯一标识) + */ + public String getMessageCode() { + return messageCode; + } + + /** + * 设置消息编码(唯一标识) + * + * @param messageCode 消息编码(唯一标识) + */ + public void setMessageCode(String messageCode) { + this.messageCode = messageCode; + } + + /** + * 获取模块编码 + * + * @return module_code - 模块编码 + */ + public Integer getModuleCode() { + return moduleCode; + } + + /** + * 设置模块编码 + * + * @param moduleCode 模块编码 + */ + public void setModuleCode(Integer moduleCode) { + this.moduleCode = moduleCode; + } + + /** + * 获取事项类型 + * + * @return matter_type - 事项类型 + */ + public Integer getMatterType() { + return matterType; + } + + /** + * 设置事项类型 + * + * @param matterType 事项类型 + */ + public void setMatterType(Integer matterType) { + this.matterType = matterType; + } + + /** + * 获取消息标题 + * + * @return message_title - 消息标题 + */ + public String getMessageTitle() { + return messageTitle; + } + + /** + * 设置消息标题 + * + * @param messageTitle 消息标题 + */ + public void setMessageTitle(String messageTitle) { + this.messageTitle = messageTitle; + } + + /** + * 获取系统来源 + * + * @return system_source - 系统来源 + */ + public String getSystemSource() { + return systemSource; + } + + /** + * 设置系统来源 + * + * @param systemSource 系统来源 + */ + public void setSystemSource(String systemSource) { + this.systemSource = systemSource; + } + + /** + * 获取处理类型(1:仅阅读 2:需要处理) + * + * @return process_type - 处理类型(1:仅阅读 2:需要处理) + */ + public Integer getProcessType() { + return processType; + } + + /** + * 设置处理类型(1:仅阅读 2:需要处理) + * + * @param processType 处理类型(1:仅阅读 2:需要处理) + */ + public void setProcessType(Integer processType) { + this.processType = processType; + } + + /** + * 获取提醒类型(1:持续提醒 2:阶段提醒 ) + * + * @return remind_type - 提醒类型(1:持续提醒 2:阶段提醒 ) + */ + public Integer getRemindType() { + return remindType; + } + + /** + * 设置提醒类型(1:持续提醒 2:阶段提醒 ) + * + * @param remindType 提醒类型(1:持续提醒 2:阶段提醒 ) + */ + public void setRemindType(Integer remindType) { + this.remindType = remindType; + } + + /** + * 获取提醒时间段 开始时间 + * + * @return remind_start_time - 提醒时间段 开始时间 + */ + public Date getRemindStartTime() { + return remindStartTime; + } + + /** + * 设置提醒时间段 开始时间 + * + * @param remindStartTime 提醒时间段 开始时间 + */ + public void setRemindStartTime(Date remindStartTime) { + this.remindStartTime = remindStartTime; + } + + /** + * 获取提醒时间段 结束时间 + * + * @return remind_end_time - 提醒时间段 结束时间 + */ + public Date getRemindEndTime() { + return remindEndTime; + } + + /** + * 设置提醒时间段 结束时间 + * + * @param remindEndTime 提醒时间段 结束时间 + */ + public void setRemindEndTime(Date remindEndTime) { + this.remindEndTime = remindEndTime; + } + + /** + * 获取截止日期 + * + * @return deadline - 截止日期 + */ + public Date getDeadline() { + return deadline; + } + + /** + * 设置截止日期 + * + * @param deadline 截止日期 + */ + public void setDeadline(Date deadline) { + this.deadline = deadline; + } + + /** + * 获取今日必办标识(0:否 1:是) + * + * @return today_task - 今日必办标识(0:否 1:是) + */ + public Boolean getTodayTask() { + return todayTask; + } + + /** + * 设置今日必办标识(0:否 1:是) + * + * @param todayTask 今日必办标识(0:否 1:是) + */ + public void setTodayTask(Boolean todayTask) { + this.todayTask = todayTask; + } + + /** + * 获取消息图片URL + * + * @return message_image - 消息图片URL + */ + public String getMessageImage() { + return messageImage; + } + + /** + * 设置消息图片URL + * + * @param messageImage 消息图片URL + */ + public void setMessageImage(String messageImage) { + this.messageImage = messageImage; + } + + /** + * 获取发布状态(0:未发布 1:已发布 2:已撤销) + * + * @return publish_status - 发布状态(0:未发布 1:已发布 2:已撤销) + */ + public Boolean getPublishStatus() { + return publishStatus; + } + + /** + * 设置发布状态(0:未发布 1:已发布 2:已撤销) + * + * @param publishStatus 发布状态(0:未发布 1:已发布 2:已撤销) + */ + public void setPublishStatus(Boolean publishStatus) { + this.publishStatus = publishStatus; + } + + /** + * 获取发布时间 + * + * @return publish_time - 发布时间 + */ + public Date getPublishTime() { + return publishTime; + } + + /** + * 设置发布时间 + * + * @param publishTime 发布时间 + */ + public void setPublishTime(Date publishTime) { + this.publishTime = publishTime; + } + + /** + * 获取发布人ID + * + * @return publisher_user_id - 发布人ID + */ + public Long getPublisherUserId() { + return publisherUserId; + } + + /** + * 设置发布人ID + * + * @param publisherUserId 发布人ID + */ + public void setPublisherUserId(Long publisherUserId) { + this.publisherUserId = publisherUserId; + } + + /** + * 获取创建人ID + * + * @return create_user_id - 创建人ID + */ + public Long getCreateUserId() { + return createUserId; + } + + /** + * 设置创建人ID + * + * @param createUserId 创建人ID + */ + public void setCreateUserId(Long createUserId) { + this.createUserId = createUserId; + } + + /** + * 获取创建时间 + * + * @return create_time - 创建时间 + */ + public Date getCreateTime() { + return createTime; + } + + /** + * 设置创建时间 + * + * @param createTime 创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 获取更新人ID + * + * @return updater_user_id - 更新人ID + */ + public Long getUpdaterUserId() { + return updaterUserId; + } + + /** + * 设置更新人ID + * + * @param updaterUserId 更新人ID + */ + public void setUpdaterUserId(Long updaterUserId) { + this.updaterUserId = updaterUserId; + } + + /** + * 获取更新时间 + * + * @return update_time - 更新时间 + */ + public Date getUpdateTime() { + return updateTime; + } + + /** + * 设置更新时间 + * + * @param updateTime 更新时间 + */ + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + /** + * 获取删除标记(0:未删除 1:已删除) + * + * @return deleted - 删除标记(0:未删除 1:已删除) + */ + public Boolean getDeleted() { + return deleted; + } + + /** + * 设置删除标记(0:未删除 1:已删除) + * + * @param deleted 删除标记(0:未删除 1:已删除) + */ + public void setDeleted(Boolean deleted) { + this.deleted = deleted; + } + + /** + * 获取消息详情(富文本内容) + * + * @return message_content - 消息详情(富文本内容) + */ + public String getMessageContent() { + return messageContent; + } + + /** + * 设置消息详情(富文本内容) + * + * @param messageContent 消息详情(富文本内容) + */ + public void setMessageContent(String messageContent) { + this.messageContent = messageContent; + } + + /** + * 获取处理人信息 [{type:person,value:}{type:position,value:}] + * + * @return handle_person_info - 处理人信息 [{type:person,value:}{type:position,value:}] + */ + public String getHandlePersonInfo() { + return handlePersonInfo; + } + + /** + * 设置处理人信息 [{type:person,value:}{type:position,value:}] + * + * @param handlePersonInfo 处理人信息 [{type:person,value:}{type:position,value:}] + */ + public void setHandlePersonInfo(String handlePersonInfo) { + this.handlePersonInfo = handlePersonInfo; + } + + /** + * 获取门店范围 [{type:store,value:}{type:region,value:}] + * + * @return store_info - 门店范围 [{type:store,value:}{type:region,value:}] + */ + public String getStoreInfo() { + return storeInfo; + } + + /** + * 设置门店范围 [{type:store,value:}{type:region,value:}] + * + * @param storeInfo 门店范围 [{type:store,value:}{type:region,value:}] + */ + public void setStoreInfo(String storeInfo) { + this.storeInfo = storeInfo; + } +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java new file mode 100644 index 000000000..852fbedbf --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java @@ -0,0 +1,440 @@ +package com.cool.store.entity; + +import java.util.Date; +import javax.persistence.*; + +@Table(name = "zxjp_store_message") +public class StoreMessageDO { + /** + * 主键ID + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * 门店编码 + */ + @Column(name = "store_id") + private String storeId; + + /** + * 门店编码 + */ + @Column(name = "store_code") + private String storeCode; + + /** + * 门店名称 + */ + @Column(name = "store_name") + private String storeName; + + /** + * 关联的消息模板ID + */ + @Column(name = "message_template_id") + private Long messageTemplateId; + + /** + * 阅读状态(0:未读 1:已读) + */ + @Column(name = "read_status") + private Boolean readStatus; + + /** + * 阅读时间 + */ + @Column(name = "read_time") + private Date readTime; + + /** + * 处理状态(0:未处理 1:处理中) + */ + @Column(name = "process_status") + private Integer processStatus; + + /** + * 处理时间 + */ + @Column(name = "process_time") + private Date processTime; + + /** + * 实际操作人ID + */ + @Column(name = "actual_operator_id") + private Long actualOperatorId; + + /** + * 实际操作人姓名 + */ + @Column(name = "actual_operator_name") + private String actualOperatorName; + + /** + * 撤销状态(0:未撤销 1:已撤销) + */ + @Column(name = "revoke_status") + private Boolean revokeStatus; + + /** + * 撤销时间 + */ + @Column(name = "revoke_time") + private Date revokeTime; + + /** + * 撤销操作人ID + */ + @Column(name = "revoke_operator_id") + private Long revokeOperatorId; + + /** + * 撤销操作人姓名 + */ + @Column(name = "revoke_operator_name") + private String revokeOperatorName; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + /** + * 操作人列表 逗号隔开 + */ + @Column(name = "operator_list") + private String operatorList; + + /** + * 获取主键ID + * + * @return id - 主键ID + */ + public Long getId() { + return id; + } + + /** + * 设置主键ID + * + * @param id 主键ID + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 获取门店编码 + * + * @return store_id - 门店编码 + */ + public String getStoreId() { + return storeId; + } + + /** + * 设置门店编码 + * + * @param storeId 门店编码 + */ + public void setStoreId(String storeId) { + this.storeId = storeId; + } + + /** + * 获取门店编码 + * + * @return store_code - 门店编码 + */ + public String getStoreCode() { + return storeCode; + } + + /** + * 设置门店编码 + * + * @param storeCode 门店编码 + */ + public void setStoreCode(String storeCode) { + this.storeCode = storeCode; + } + + /** + * 获取门店名称 + * + * @return store_name - 门店名称 + */ + public String getStoreName() { + return storeName; + } + + /** + * 设置门店名称 + * + * @param storeName 门店名称 + */ + public void setStoreName(String storeName) { + this.storeName = storeName; + } + + /** + * 获取关联的消息模板ID + * + * @return message_template_id - 关联的消息模板ID + */ + public Long getMessageTemplateId() { + return messageTemplateId; + } + + /** + * 设置关联的消息模板ID + * + * @param messageTemplateId 关联的消息模板ID + */ + public void setMessageTemplateId(Long messageTemplateId) { + this.messageTemplateId = messageTemplateId; + } + + /** + * 获取阅读状态(0:未读 1:已读) + * + * @return read_status - 阅读状态(0:未读 1:已读) + */ + public Boolean getReadStatus() { + return readStatus; + } + + /** + * 设置阅读状态(0:未读 1:已读) + * + * @param readStatus 阅读状态(0:未读 1:已读) + */ + public void setReadStatus(Boolean readStatus) { + this.readStatus = readStatus; + } + + /** + * 获取阅读时间 + * + * @return read_time - 阅读时间 + */ + public Date getReadTime() { + return readTime; + } + + /** + * 设置阅读时间 + * + * @param readTime 阅读时间 + */ + public void setReadTime(Date readTime) { + this.readTime = readTime; + } + + /** + * 获取处理状态(0:未处理 1:处理中) + * + * @return process_status - 处理状态(0:未处理 1:处理中) + */ + public Integer getProcessStatus() { + return processStatus; + } + + /** + * 设置处理状态(0:未处理 1:处理中) + * + * @param processStatus 处理状态(0:未处理 1:处理中) + */ + public void setProcessStatus(Integer processStatus) { + this.processStatus = processStatus; + } + + /** + * 获取处理时间 + * + * @return process_time - 处理时间 + */ + public Date getProcessTime() { + return processTime; + } + + /** + * 设置处理时间 + * + * @param processTime 处理时间 + */ + public void setProcessTime(Date processTime) { + this.processTime = processTime; + } + + /** + * 获取实际操作人ID + * + * @return actual_operator_id - 实际操作人ID + */ + public Long getActualOperatorId() { + return actualOperatorId; + } + + /** + * 设置实际操作人ID + * + * @param actualOperatorId 实际操作人ID + */ + public void setActualOperatorId(Long actualOperatorId) { + this.actualOperatorId = actualOperatorId; + } + + /** + * 获取实际操作人姓名 + * + * @return actual_operator_name - 实际操作人姓名 + */ + public String getActualOperatorName() { + return actualOperatorName; + } + + /** + * 设置实际操作人姓名 + * + * @param actualOperatorName 实际操作人姓名 + */ + public void setActualOperatorName(String actualOperatorName) { + this.actualOperatorName = actualOperatorName; + } + + /** + * 获取撤销状态(0:未撤销 1:已撤销) + * + * @return revoke_status - 撤销状态(0:未撤销 1:已撤销) + */ + public Boolean getRevokeStatus() { + return revokeStatus; + } + + /** + * 设置撤销状态(0:未撤销 1:已撤销) + * + * @param revokeStatus 撤销状态(0:未撤销 1:已撤销) + */ + public void setRevokeStatus(Boolean revokeStatus) { + this.revokeStatus = revokeStatus; + } + + /** + * 获取撤销时间 + * + * @return revoke_time - 撤销时间 + */ + public Date getRevokeTime() { + return revokeTime; + } + + /** + * 设置撤销时间 + * + * @param revokeTime 撤销时间 + */ + public void setRevokeTime(Date revokeTime) { + this.revokeTime = revokeTime; + } + + /** + * 获取撤销操作人ID + * + * @return revoke_operator_id - 撤销操作人ID + */ + public Long getRevokeOperatorId() { + return revokeOperatorId; + } + + /** + * 设置撤销操作人ID + * + * @param revokeOperatorId 撤销操作人ID + */ + public void setRevokeOperatorId(Long revokeOperatorId) { + this.revokeOperatorId = revokeOperatorId; + } + + /** + * 获取撤销操作人姓名 + * + * @return revoke_operator_name - 撤销操作人姓名 + */ + public String getRevokeOperatorName() { + return revokeOperatorName; + } + + /** + * 设置撤销操作人姓名 + * + * @param revokeOperatorName 撤销操作人姓名 + */ + public void setRevokeOperatorName(String revokeOperatorName) { + this.revokeOperatorName = revokeOperatorName; + } + + /** + * 获取创建时间 + * + * @return create_time - 创建时间 + */ + public Date getCreateTime() { + return createTime; + } + + /** + * 设置创建时间 + * + * @param createTime 创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 获取更新时间 + * + * @return update_time - 更新时间 + */ + public Date getUpdateTime() { + return updateTime; + } + + /** + * 设置更新时间 + * + * @param updateTime 更新时间 + */ + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + /** + * 获取操作人列表 逗号隔开 + * + * @return operator_list - 操作人列表 逗号隔开 + */ + public String getOperatorList() { + return operatorList; + } + + /** + * 设置操作人列表 逗号隔开 + * + * @param operatorList 操作人列表 逗号隔开 + */ + public void setOperatorList(String operatorList) { + this.operatorList = operatorList; + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..788ff839a --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigAddRequest.java @@ -0,0 +1,49 @@ +package com.cool.store.request.notice; + +import com.aliyun.teautil.Common; +import com.cool.store.dto.notice.CommonDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 15:23 + * @Version 1.0 + */ +@Data +public class MatterConfigAddRequest { + + @ApiModelProperty( "Id 新增忽略") + private Long id; + + @ApiModelProperty( "模块CODE") + private Integer moduleCode; + + @ApiModelProperty( "事项类型") + private Integer matterType; + + @ApiModelProperty( "系统来源") + private String systemSource; + + @ApiModelProperty( "1:H5 2:小程序") + private Boolean jumpType; + + @ApiModelProperty( "跳转链接") + private String jumpUrl; + + @ApiModelProperty( "状态(0:禁用 1:启用)") + private Boolean status; + + @ApiModelProperty( "备注") + private String remark; + + @ApiModelProperty( "默认门店范围 type[region store group]") + List storeInfoList; + + @ApiModelProperty( "默认处理人信息 type[person position userGroup organization]") + List userInfoList; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java new file mode 100644 index 000000000..a8ede4262 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java @@ -0,0 +1,18 @@ +package com.cool.store.request.notice; + +import lombok.Data; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 16:47 + * @Version 1.0 + */ +@Data +public class MatterConfigDeletedRequest { + + private List ids; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigQueryRequest.java new file mode 100644 index 000000000..751e6b7e3 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigQueryRequest.java @@ -0,0 +1,22 @@ +package com.cool.store.request.notice; + +import com.cool.store.common.PageBasicInfo; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/7/24 14:36 + * @Version 1.0 + */ +@Data +public class MatterConfigQueryRequest extends PageBasicInfo { + + private Integer moduleCode; + + private Integer matterType; + + private String systemSource; + + private Integer status; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MatterAndMatterDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MatterAndMatterDetailVO.java new file mode 100644 index 000000000..fdf5e8cfd --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MatterAndMatterDetailVO.java @@ -0,0 +1,44 @@ +package com.cool.store.vo.notice; + +import com.cool.store.dto.notice.CommonDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 16:50 + * @Version 1.0 + */ +@Data +public class MatterAndMatterDetailVO { + + @ApiModelProperty( "模块CODE") + private Integer moduleCode; + + @ApiModelProperty( "事项类型") + private Integer matterType; + + @ApiModelProperty( "系统来源") + private String systemSource; + + @ApiModelProperty( "1:H5 2:小程序") + private Boolean jumpType; + + @ApiModelProperty( "跳转链接") + private String jumpUrl; + + @ApiModelProperty( "状态(0:禁用 1:启用)") + private Boolean status; + + @ApiModelProperty( "备注") + private String remark; + + @ApiModelProperty( "默认门店范围 type[region store group]") + List storeInfoList; + + @ApiModelProperty( "默认处理人信息 type[person position userGroup organization]") + List userInfoList; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/ModuleAndMatterVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/ModuleAndMatterVO.java new file mode 100644 index 000000000..d924c1492 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/ModuleAndMatterVO.java @@ -0,0 +1,59 @@ +package com.cool.store.vo.notice; + +import com.cool.store.enums.notice.MatterTypeEnum; +import com.cool.store.enums.notice.ModuleCodeEnum; +import lombok.Data; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author suzhuhong + * @Date 2025/7/24 16:26 + * @Version 1.0 + */ +@Data +public class ModuleAndMatterVO { + + private Integer moduleCode; + + private String moduleName; + + private List matterTypeList; + + public ModuleAndMatterVO(Integer moduleCode, String moduleName, List matterTypeList) { + this.moduleCode = moduleCode; + this.moduleName = moduleName; + this.matterTypeList = matterTypeList; + } + + @Data + static class MatterTypeVO{ + private Integer matterTypeCode; + private String matterTypeName; + public MatterTypeVO(Integer matterTypeCode, String matterTypeName) { + this.matterTypeCode = matterTypeCode; + this.matterTypeName = matterTypeName; + } + } + + public static List getModuleAndMatterList() { + return Arrays.stream(ModuleCodeEnum.values()) + .map(module -> new ModuleAndMatterVO( + module.getCode(), + module.getMessage(), + convertMatterTypes(module.getMatterTypeEnums()) + )) + .collect(Collectors.toList()); + } + + private static List convertMatterTypes(List matterTypeEnums) { + return matterTypeEnums.stream() + .map(matterType -> new MatterTypeVO( + matterType.getCode(), + matterType.getMessage() + )) + .collect(Collectors.toList()); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/MatterConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/MatterConfigService.java new file mode 100644 index 000000000..9072e7e0c --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/MatterConfigService.java @@ -0,0 +1,57 @@ +package com.cool.store.service; + + +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.MatterConfigDAO; +import com.cool.store.entity.MatterConfigDO; +import com.cool.store.request.notice.MatterConfigAddRequest; +import com.cool.store.request.notice.MatterConfigQueryRequest; +import com.cool.store.userholder.CurrentUser; +import com.cool.store.vo.notice.MatterAndMatterDetailVO; +import com.github.pagehelper.PageInfo; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 15:21 + * @Version 1.0 + */ +public interface MatterConfigService { + + + /** + * 新增配置 + * @param request + * @param currentUser + * @return + */ + int addMatterConfig(MatterConfigAddRequest request, LoginUserInfo currentUser); + + /** + * 编辑 + * @param request + * @param currentUser + * @return + */ + int editMatterConfig(MatterConfigAddRequest request, LoginUserInfo currentUser); + + /** + * 删除配置 + * @param ids + * @param currentUser + * @return + */ + Boolean deleteMatterConfig(List ids, LoginUserInfo currentUser); + + + /** + * 查询配置 + * @param request + * @return + */ + PageInfo listByCondition(MatterConfigQueryRequest 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 new file mode 100644 index 000000000..4875e39fe --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MatterConfigServiceImpl.java @@ -0,0 +1,83 @@ +package com.cool.store.service.impl; + +import com.alibaba.fastjson.JSONObject; +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.request.notice.MatterConfigAddRequest; +import com.cool.store.request.notice.MatterConfigQueryRequest; +import com.cool.store.service.MatterConfigService; +import com.cool.store.vo.notice.MatterAndMatterDetailVO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 16:41 + * @Version 1.0 + */ +@Service +public class MatterConfigServiceImpl implements MatterConfigService { + + @Resource + MatterConfigDAO matterConfigDAO; + + @Override + public int addMatterConfig(MatterConfigAddRequest request, LoginUserInfo currentUser) { + MatterConfigDO matterConfigDO = new MatterConfigDO(); + BeanUtils.copyProperties(request, matterConfigDO); + matterConfigDO.setCreateUserId(currentUser.getUserId()); + matterConfigDO.setDefaultStoreInfo(JSONObject.toJSONString(request.getStoreInfoList())); + matterConfigDO.setDefaultHandlePersonInfo(JSONObject.toJSONString(request.getUserInfoList())); + return matterConfigDAO.insert(matterConfigDO); + } + + @Override + public int editMatterConfig(MatterConfigAddRequest request, LoginUserInfo currentUser) { + 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())); + return matterConfigDAO.updateForce(matterConfigDO); + } + + @Override + public Boolean deleteMatterConfig(List ids, LoginUserInfo currentUser) { + matterConfigDAO.batchDelete(ids,currentUser.getUserId()); + return Boolean.TRUE; + } + + @Override + public PageInfo listByCondition(MatterConfigQueryRequest request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List matterConfigDOS = matterConfigDAO.ListByCondition(request); + + if (CollectionUtils.isEmpty(matterConfigDOS)){ + return new PageInfo<>(); + } + PageInfo result = new PageInfo<>(matterConfigDOS); + List list = new ArrayList<>(); + matterConfigDOS.forEach(x->{ + MatterAndMatterDetailVO matterAndMatterDetailVO = new MatterAndMatterDetailVO(); + BeanUtils.copyProperties(x,matterAndMatterDetailVO); + matterAndMatterDetailVO.setStoreInfoList(JSONObject.parseArray(x.getDefaultStoreInfo(), CommonDTO.class)); + matterAndMatterDetailVO.setUserInfoList(JSONObject.parseArray(x.getDefaultHandlePersonInfo(),CommonDTO.class)); + list.add(matterAndMatterDetailVO); + }); + result.setList(list); + return result; + } + + +} diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CommonEnumController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CommonEnumController.java new file mode 100644 index 000000000..48416a59a --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CommonEnumController.java @@ -0,0 +1,39 @@ +package com.cool.store.controller.webb; + +import com.cool.store.response.ResponseResult; +import com.cool.store.vo.notice.ModuleAndMatterVO; +import com.cool.store.vo.shop.ShopStageVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/24 16:19 + * @Version 1.0 + */ +@RestController +@RequestMapping("/pc/udc") +@Api(tags = "PC枚举值") +@Slf4j +public class CommonEnumController { + + + @ApiOperation("获取模块与消息类型") + @GetMapping("/getModuleAndMatter") + public ResponseResult> getShopSubStageStatusEnum() { + return ResponseResult.success(ModuleAndMatterVO.getModuleAndMatterList()); + } + + + + + + + +} diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java new file mode 100644 index 000000000..a66c43e0e --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java @@ -0,0 +1,65 @@ +package com.cool.store.controller.webb; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.notice.MatterConfigAddRequest; +import com.cool.store.request.notice.MatterConfigDeletedRequest; +import com.cool.store.request.notice.MatterConfigQueryRequest; +import com.cool.store.service.MatterConfigService; +import com.cool.store.userholder.CurrentUser; +import com.cool.store.vo.notice.MatterAndMatterDetailVO; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2025/7/24 16:40 + * @Version 1.0 + */ +@RestController +@RequestMapping("/pc/matter/config") +@Api(tags = "PC事项配置") +@Slf4j +public class MatterConfigController { + + @Resource + MatterConfigService matterConfigService; + + @PostMapping("/add") + @ApiOperation("新增事项配置") + public int addMatterConfig(@RequestBody MatterConfigAddRequest request) { + return matterConfigService.addMatterConfig(request, CurrentUserHolder.getUser()); + } + + @PostMapping("/edit") + @ApiOperation("编辑事项配置") + public int editMatterConfig(@RequestBody MatterConfigAddRequest request) { + return matterConfigService.editMatterConfig(request, CurrentUserHolder.getUser()); + } + + + @PostMapping("/deleteMatterConfig") + @ApiOperation("批量删除事项配置") + public Boolean addMatterConfig(@RequestBody MatterConfigDeletedRequest request) { + return matterConfigService.deleteMatterConfig(request.getIds(), CurrentUserHolder.getUser()); + } + + @PostMapping("/list") + @ApiOperation("事项配置列表") + public PageInfo listByCondition(@RequestBody MatterConfigQueryRequest request) { + return matterConfigService.listByCondition(request); + } + + + + + +} From ba90fca7fe408ae7d61d516e412495431c9ccd73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 25 Jul 2025 17:12:06 +0800 Subject: [PATCH 02/33] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 4 + .../store/enums/notice/ModuleCodeEnum.java | 6 +- .../com/cool/store/enums/notice/TypeEnum.java | 44 ++ .../cool/store/dao/MessageTemplateDAO.java | 54 +++ .../com/cool/store/dao/StoreMessageDAO.java | 30 ++ .../EnterpriseUserGroupMappingMapper.java | 18 + .../store/mapper/EnterpriseUserMapper.java | 2 + .../store/mapper/MessageTemplateMapper.java | 8 + .../store/mapper/ShopAccountMapper.java.1 | 7 - .../store/mapper/StoreGroupMappingMapper.java | 19 + .../com/cool/store/mapper/StoreMapper.java | 2 + .../cool/store/mapper/StoreMessageMapper.java | 6 + .../resources/mapper/EnterpriseUserMapper.xml | 11 + .../mapper/MessageTemplateMapper.xml | 27 ++ .../mapper/StoreGroupMappingMapper.xml | 19 + .../src/main/resources/mapper/StoreMapper.xml | 17 + .../resources/mapper/StoreMessageMapper.xml | 29 ++ .../mapper/enterpriseUserGroupMapper.xml | 16 + .../com/cool/store/dto/notice/NoticeDTO.java | 27 ++ .../cool/store/dto/store/StoreAreaDTO.java | 1 + .../cool/store/entity/MessageTemplateDO.java | 441 +----------------- .../store/entity/StoreGroupMappingDO.java | 62 +++ .../com/cool/store/entity/StoreMessageDO.java | 331 +------------ ...dRequest.java => BatchDeletedRequest.java} | 2 +- .../request/notice/BatchPublishRequest.java | 25 + .../notice/MessageTemplateAddRequest.java | 42 ++ .../vo/notice/MessageTemplateDetailVO.java | 45 ++ .../store/service/MessageTemplateService.java | 62 +++ .../com/cool/store/service/StoreService.java | 9 + .../impl/MessageTemplateServiceImpl.java | 230 +++++++++ .../store/service/impl/StoreServiceImpl.java | 59 ++- .../webb/MatterConfigController.java | 22 +- .../webb/MessageTemplateController.java | 66 +++ 33 files changed, 957 insertions(+), 786 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/notice/TypeEnum.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/MessageTemplateDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreMessageDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserGroupMappingMapper.java delete mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreGroupMappingMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/StoreGroupMappingMapper.xml create mode 100644 coolstore-partner-dao/src/main/resources/mapper/enterpriseUserGroupMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/notice/NoticeDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/StoreGroupMappingDO.java rename coolstore-partner-model/src/main/java/com/cool/store/request/notice/{MatterConfigDeletedRequest.java => BatchDeletedRequest.java} (82%) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchPublishRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageTemplateDetailVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/MessageTemplateService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/MessageTemplateServiceImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MessageTemplateController.java 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 ae9839744..db2bae201 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 @@ -287,6 +287,10 @@ public enum ErrorCodeEnum { PRODUCTS_DISCARDED(1511034,"产品已报销,无法操作",null), PRODUCTS_SALES_COMPLETED(1511034,"含有销售完成的产品,无法批量报销",null), STORE_IS_EXIST(1511035,"该门店已存在",null), + + + MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT(1610001,"当前消息已发布,不支持编辑!",null), + MESSAGE_TEMPLATE_NOT_SUPPORT_DELETED(1610002,"只有未发布的消息能删除,请确认!",null), ; 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 44313676d..22b696bcf 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,10 @@ import java.util.List; */ public enum ModuleCodeEnum { - STORE_WORK(0,"店务", Arrays.asList(MatterTypeEnum.QUESTION,MatterTypeEnum.LICENSE)), + STORE_WORK(0,"店务", Arrays.asList(MatterTypeEnum.QUESTION,MatterTypeEnum.LICENSE,MatterTypeEnum.NOTICE)), PRODUCT_UPDATE(1,"营销政策/产品上新",Arrays.asList(MatterTypeEnum.NOTICE)), - INVENTORY_MODULE(2,"库存模块",Arrays.asList()), - DISH(3,"菜品",Arrays.asList()), + INVENTORY_MODULE(2,"库存模块",Arrays.asList(MatterTypeEnum.NOTICE)), + DISH(3,"菜品",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/TypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/TypeEnum.java new file mode 100644 index 000000000..a83ca9df5 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/notice/TypeEnum.java @@ -0,0 +1,44 @@ +package com.cool.store.enums.notice; + +/** + * @Author suzhuhong + * @Date 2025/7/25 10:05 + * @Version 1.0 + */ +public enum TypeEnum { + + + PERSON("人员","person", "按人员"), + POSITION("人员","position", "按职位"), + USER_GROUP("人员","userGroup", "按人员分组"), + ORGANIZATION("人员","organization", "按组织架构"), + REGION("门店","region", "按区域架构"), + STORE("门店","store", "按门店架构"), + GROUP("门店","group", "按门店分钟"), + + ; + private String group; + + private String type; + + private String message; + + + TypeEnum(String group, String type, String message) { + this.group = group; + this.type = type; + this.message = message; + } + + public String getGroup() { + return group; + } + + public String getType() { + return type; + } + + public String getMessage() { + return message; + } +} 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 new file mode 100644 index 000000000..99e069a47 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/MessageTemplateDAO.java @@ -0,0 +1,54 @@ +package com.cool.store.dao; + +import com.cool.store.entity.MessageTemplateDO; +import com.cool.store.mapper.MessageTemplateMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 9:40 + * @Version 1.0 + */ +@Slf4j +@Repository +public class MessageTemplateDAO { + + @Resource + private MessageTemplateMapper messageTemplateMapper; + + + public int insert(MessageTemplateDO messageTemplateDO) { + return messageTemplateMapper.insertSelective(messageTemplateDO); + } + + public int update(MessageTemplateDO messageTemplateDO) { + return messageTemplateMapper.updateByPrimaryKeySelective(messageTemplateDO); + } + + public MessageTemplateDO getById(Long id) { + return messageTemplateMapper.selectByPrimaryKey(id); + } + + public List getByIds(List ids) { + if (CollectionUtils.isEmpty(ids)){ + return new ArrayList<>(); + } + return messageTemplateMapper.selectByIds(ids); + } + + public int updateDeleteStatusBatch(List ids,String userId) { + return messageTemplateMapper.updateDeleteStatusBatch(ids,userId); + } + + + + + + +} 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 new file mode 100644 index 000000000..82609b645 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreMessageDAO.java @@ -0,0 +1,30 @@ +package com.cool.store.dao; + +import com.cool.store.entity.StoreMessageDO; +import com.cool.store.mapper.StoreMessageMapper; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 15:04 + * @Version 1.0 + */ +public class StoreMessageDAO { + + @Resource + StoreMessageMapper storeMessageMapper; + /** + * 批量新增 + * @param list + * @return + */ + public int batchInsert(List list){ + return storeMessageMapper.insertBatch(list); + } + + + + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserGroupMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserGroupMappingMapper.java new file mode 100644 index 000000000..fa65cc62c --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserGroupMappingMapper.java @@ -0,0 +1,18 @@ +package com.cool.store.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 11:03 + * @Version 1.0 + */ +@Mapper +public interface EnterpriseUserGroupMappingMapper { + + List getUserIdsByGroupIdList(@Param("groupIdList") List groupIdList); + +} 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 7ae2a3d59..882a9f452 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 @@ -99,4 +99,6 @@ public interface EnterpriseUserMapper { * @return */ List searchUserByUserIdsAndKeyword( @Param("userIdList") List userIdList, @Param("keyword") String keyword); + + List getUserIdsByRegionIdList( @Param("regionIdList") List regionIdList); } \ No newline at end of file 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 52501eae2..53ea5e429 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 @@ -1,7 +1,15 @@ package com.cool.store.mapper; import com.cool.store.entity.MessageTemplateDO; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface MessageTemplateMapper extends Mapper { + + List selectByIds(@Param("ids") List ids); + + int updateDeleteStatusBatch(@Param("ids") List ids, @Param("userId") String userId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 deleted file mode 100644 index 1bbdba602..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 +++ /dev/null @@ -1,7 +0,0 @@ -package com.cool.store.mapper; - -import com.cool.store.entity.ShopAccountDO; -import tk.mybatis.mapper.common.Mapper; - -public interface ShopAccountMapper extends Mapper { -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreGroupMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreGroupMappingMapper.java new file mode 100644 index 000000000..ba980ccf9 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreGroupMappingMapper.java @@ -0,0 +1,19 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.StoreGroupMappingDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 10:21 + * @Version 1.0 + */ +@Mapper +public interface StoreGroupMappingMapper { + + List getStoreGroupMappingByGroupIDs( @Param("groupIds")List groupIds); + +} 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 35b8fe785..16b33d5ab 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 @@ -45,4 +45,6 @@ public interface StoreMapper { List getStoreNumByStoreCodes(@Param("storeCodeIds") List storeCodeIds); + List listStoreByRegionPathList(@Param("regionPathList") List regionPathList); + } 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 519eef64e..9770a4155 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 @@ -1,7 +1,13 @@ package com.cool.store.mapper; import com.cool.store.entity.StoreMessageDO; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface StoreMessageMapper extends Mapper { + + int insertBatch(@Param("list") List list); + } \ 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 27d7afd1a..33c3daa89 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -203,4 +203,15 @@ + + \ 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 a7e725cad..e45d1df58 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml @@ -30,4 +30,31 @@ + + + + + + UPDATE zxjp_message_template + SET + deleted = #{deleted,jdbcType=BIT}, + update_time = NOW(), + update_user_id = #{userId,jdbcType=VARCHAR} + WHERE id IN + + #{id,jdbcType=BIGINT} + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreGroupMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreGroupMappingMapper.xml new file mode 100644 index 000000000..03145cebc --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreGroupMappingMapper.xml @@ -0,0 +1,19 @@ + + + + + + + \ 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 3cc819371..c01282e13 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml @@ -126,6 +126,7 @@ + + diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index 504196071..accc0867a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -24,4 +24,33 @@ + + + INSERT INTO store_message ( + store_id, + store_code, + store_name, + message_template_id, + read_status, + read_time, + process_status, + process_time, + operator_list + ) + VALUES + + ( + #{item.storeId,jdbcType=VARCHAR}, + #{item.storeCode,jdbcType=VARCHAR}, + #{item.storeName,jdbcType=VARCHAR}, + #{item.messageTemplateId,jdbcType=BIGINT}, + #{item.readStatus,jdbcType=BIT}, + #{item.readTime,jdbcType=TIMESTAMP}, + #{item.processStatus,jdbcType=TINYINT}, + #{item.processTime,jdbcType=TIMESTAMP}, + #{item.operatorList,jdbcType=LONGVARCHAR} + ) + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/enterpriseUserGroupMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/enterpriseUserGroupMapper.xml new file mode 100644 index 000000000..2be7a2841 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/enterpriseUserGroupMapper.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file 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 new file mode 100644 index 000000000..4fe52a1ed --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/NoticeDTO.java @@ -0,0 +1,27 @@ +package com.cool.store.dto.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/7/25 16:49 + * @Version 1.0 + */ +@Data +public class NoticeDTO { + + @ApiModelProperty("消息编码") + private String messageCode; + @ApiModelProperty("模块") + private Integer moduleCode; + @ApiModelProperty("事项类型") + private Integer matterType; + @ApiModelProperty("消息标题") + private String messageTitle; + + + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAreaDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAreaDTO.java index 4cfe69b92..5b124b388 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAreaDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/store/StoreAreaDTO.java @@ -12,6 +12,7 @@ import java.util.List; */ @Data public class StoreAreaDTO { + private String storeCode; private String storeId; private String storeName; /** 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 91cf7c1d1..8cfc360a6 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 @@ -1,9 +1,12 @@ package com.cool.store.entity; +import lombok.Data; + import java.util.Date; import javax.persistence.*; @Table(name = "zxjp_message_template") +@Data public class MessageTemplateDO { /** * 主键ID @@ -87,7 +90,7 @@ public class MessageTemplateDO { * 发布状态(0:未发布 1:已发布 2:已撤销) */ @Column(name = "publish_status") - private Boolean publishStatus; + private Integer publishStatus; /** * 发布时间 @@ -99,13 +102,13 @@ public class MessageTemplateDO { * 发布人ID */ @Column(name = "publisher_user_id") - private Long publisherUserId; + private String publisherUserId; /** * 创建人ID */ @Column(name = "create_user_id") - private Long createUserId; + private String createUserId; /** * 创建时间 @@ -117,7 +120,7 @@ public class MessageTemplateDO { * 更新人ID */ @Column(name = "updater_user_id") - private Long updaterUserId; + private String updaterUserId; /** * 更新时间 @@ -148,435 +151,5 @@ public class MessageTemplateDO { @Column(name = "store_info") private String storeInfo; - /** - * 获取主键ID - * - * @return id - 主键ID - */ - public Long getId() { - return id; - } - /** - * 设置主键ID - * - * @param id 主键ID - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取消息编码(唯一标识) - * - * @return message_code - 消息编码(唯一标识) - */ - public String getMessageCode() { - return messageCode; - } - - /** - * 设置消息编码(唯一标识) - * - * @param messageCode 消息编码(唯一标识) - */ - public void setMessageCode(String messageCode) { - this.messageCode = messageCode; - } - - /** - * 获取模块编码 - * - * @return module_code - 模块编码 - */ - public Integer getModuleCode() { - return moduleCode; - } - - /** - * 设置模块编码 - * - * @param moduleCode 模块编码 - */ - public void setModuleCode(Integer moduleCode) { - this.moduleCode = moduleCode; - } - - /** - * 获取事项类型 - * - * @return matter_type - 事项类型 - */ - public Integer getMatterType() { - return matterType; - } - - /** - * 设置事项类型 - * - * @param matterType 事项类型 - */ - public void setMatterType(Integer matterType) { - this.matterType = matterType; - } - - /** - * 获取消息标题 - * - * @return message_title - 消息标题 - */ - public String getMessageTitle() { - return messageTitle; - } - - /** - * 设置消息标题 - * - * @param messageTitle 消息标题 - */ - public void setMessageTitle(String messageTitle) { - this.messageTitle = messageTitle; - } - - /** - * 获取系统来源 - * - * @return system_source - 系统来源 - */ - public String getSystemSource() { - return systemSource; - } - - /** - * 设置系统来源 - * - * @param systemSource 系统来源 - */ - public void setSystemSource(String systemSource) { - this.systemSource = systemSource; - } - - /** - * 获取处理类型(1:仅阅读 2:需要处理) - * - * @return process_type - 处理类型(1:仅阅读 2:需要处理) - */ - public Integer getProcessType() { - return processType; - } - - /** - * 设置处理类型(1:仅阅读 2:需要处理) - * - * @param processType 处理类型(1:仅阅读 2:需要处理) - */ - public void setProcessType(Integer processType) { - this.processType = processType; - } - - /** - * 获取提醒类型(1:持续提醒 2:阶段提醒 ) - * - * @return remind_type - 提醒类型(1:持续提醒 2:阶段提醒 ) - */ - public Integer getRemindType() { - return remindType; - } - - /** - * 设置提醒类型(1:持续提醒 2:阶段提醒 ) - * - * @param remindType 提醒类型(1:持续提醒 2:阶段提醒 ) - */ - public void setRemindType(Integer remindType) { - this.remindType = remindType; - } - - /** - * 获取提醒时间段 开始时间 - * - * @return remind_start_time - 提醒时间段 开始时间 - */ - public Date getRemindStartTime() { - return remindStartTime; - } - - /** - * 设置提醒时间段 开始时间 - * - * @param remindStartTime 提醒时间段 开始时间 - */ - public void setRemindStartTime(Date remindStartTime) { - this.remindStartTime = remindStartTime; - } - - /** - * 获取提醒时间段 结束时间 - * - * @return remind_end_time - 提醒时间段 结束时间 - */ - public Date getRemindEndTime() { - return remindEndTime; - } - - /** - * 设置提醒时间段 结束时间 - * - * @param remindEndTime 提醒时间段 结束时间 - */ - public void setRemindEndTime(Date remindEndTime) { - this.remindEndTime = remindEndTime; - } - - /** - * 获取截止日期 - * - * @return deadline - 截止日期 - */ - public Date getDeadline() { - return deadline; - } - - /** - * 设置截止日期 - * - * @param deadline 截止日期 - */ - public void setDeadline(Date deadline) { - this.deadline = deadline; - } - - /** - * 获取今日必办标识(0:否 1:是) - * - * @return today_task - 今日必办标识(0:否 1:是) - */ - public Boolean getTodayTask() { - return todayTask; - } - - /** - * 设置今日必办标识(0:否 1:是) - * - * @param todayTask 今日必办标识(0:否 1:是) - */ - public void setTodayTask(Boolean todayTask) { - this.todayTask = todayTask; - } - - /** - * 获取消息图片URL - * - * @return message_image - 消息图片URL - */ - public String getMessageImage() { - return messageImage; - } - - /** - * 设置消息图片URL - * - * @param messageImage 消息图片URL - */ - public void setMessageImage(String messageImage) { - this.messageImage = messageImage; - } - - /** - * 获取发布状态(0:未发布 1:已发布 2:已撤销) - * - * @return publish_status - 发布状态(0:未发布 1:已发布 2:已撤销) - */ - public Boolean getPublishStatus() { - return publishStatus; - } - - /** - * 设置发布状态(0:未发布 1:已发布 2:已撤销) - * - * @param publishStatus 发布状态(0:未发布 1:已发布 2:已撤销) - */ - public void setPublishStatus(Boolean publishStatus) { - this.publishStatus = publishStatus; - } - - /** - * 获取发布时间 - * - * @return publish_time - 发布时间 - */ - public Date getPublishTime() { - return publishTime; - } - - /** - * 设置发布时间 - * - * @param publishTime 发布时间 - */ - public void setPublishTime(Date publishTime) { - this.publishTime = publishTime; - } - - /** - * 获取发布人ID - * - * @return publisher_user_id - 发布人ID - */ - public Long getPublisherUserId() { - return publisherUserId; - } - - /** - * 设置发布人ID - * - * @param publisherUserId 发布人ID - */ - public void setPublisherUserId(Long publisherUserId) { - this.publisherUserId = publisherUserId; - } - - /** - * 获取创建人ID - * - * @return create_user_id - 创建人ID - */ - public Long getCreateUserId() { - return createUserId; - } - - /** - * 设置创建人ID - * - * @param createUserId 创建人ID - */ - public void setCreateUserId(Long createUserId) { - this.createUserId = createUserId; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新人ID - * - * @return updater_user_id - 更新人ID - */ - public Long getUpdaterUserId() { - return updaterUserId; - } - - /** - * 设置更新人ID - * - * @param updaterUserId 更新人ID - */ - public void setUpdaterUserId(Long updaterUserId) { - this.updaterUserId = updaterUserId; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - /** - * 获取删除标记(0:未删除 1:已删除) - * - * @return deleted - 删除标记(0:未删除 1:已删除) - */ - public Boolean getDeleted() { - return deleted; - } - - /** - * 设置删除标记(0:未删除 1:已删除) - * - * @param deleted 删除标记(0:未删除 1:已删除) - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } - - /** - * 获取消息详情(富文本内容) - * - * @return message_content - 消息详情(富文本内容) - */ - public String getMessageContent() { - return messageContent; - } - - /** - * 设置消息详情(富文本内容) - * - * @param messageContent 消息详情(富文本内容) - */ - public void setMessageContent(String messageContent) { - this.messageContent = messageContent; - } - - /** - * 获取处理人信息 [{type:person,value:}{type:position,value:}] - * - * @return handle_person_info - 处理人信息 [{type:person,value:}{type:position,value:}] - */ - public String getHandlePersonInfo() { - return handlePersonInfo; - } - - /** - * 设置处理人信息 [{type:person,value:}{type:position,value:}] - * - * @param handlePersonInfo 处理人信息 [{type:person,value:}{type:position,value:}] - */ - public void setHandlePersonInfo(String handlePersonInfo) { - this.handlePersonInfo = handlePersonInfo; - } - - /** - * 获取门店范围 [{type:store,value:}{type:region,value:}] - * - * @return store_info - 门店范围 [{type:store,value:}{type:region,value:}] - */ - public String getStoreInfo() { - return storeInfo; - } - - /** - * 设置门店范围 [{type:store,value:}{type:region,value:}] - * - * @param storeInfo 门店范围 [{type:store,value:}{type:region,value:}] - */ - public void setStoreInfo(String storeInfo) { - this.storeInfo = storeInfo; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreGroupMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreGroupMappingDO.java new file mode 100644 index 000000000..f1612bb0c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreGroupMappingDO.java @@ -0,0 +1,62 @@ +package com.cool.store.entity; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + * @Author suzhuhong + * @Date 2025/7/25 10:23 + * @Version 1.0 + */ +@Data +@Accessors(chain = true) +@AllArgsConstructor +@NoArgsConstructor +public class StoreGroupMappingDO { + /** + * 自增id + */ + private Long id; + + /** + * 门店id + */ + @JsonProperty("store_id") + private String storeId; + + /** + * 组别id + */ + @JsonProperty("group_id") + private String groupId; + + /** + * 创建时间 + */ + private Long createTime; + + /** + * 创建人 + */ + private String createUser; + + /** + * 修改时间 + */ + private Long updateTime; + + /** + * 修改人 + */ + private String updateUser; + + public StoreGroupMappingDO(String storeId, String groupId, Long createTime, String createUser) { + this.storeId = storeId; + this.groupId = groupId; + this.createTime = createTime; + this.createUser = createUser; + } +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java index 852fbedbf..99faf5ac9 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java @@ -1,9 +1,12 @@ package com.cool.store.entity; +import lombok.Data; + import java.util.Date; import javax.persistence.*; @Table(name = "zxjp_store_message") +@Data public class StoreMessageDO { /** * 主键ID @@ -40,7 +43,7 @@ public class StoreMessageDO { * 阅读状态(0:未读 1:已读) */ @Column(name = "read_status") - private Boolean readStatus; + private Integer readStatus; /** * 阅读时间 @@ -64,7 +67,7 @@ public class StoreMessageDO { * 实际操作人ID */ @Column(name = "actual_operator_id") - private Long actualOperatorId; + private String actualOperatorId; /** * 实际操作人姓名 @@ -88,7 +91,7 @@ public class StoreMessageDO { * 撤销操作人ID */ @Column(name = "revoke_operator_id") - private Long revokeOperatorId; + private String revokeOperatorId; /** * 撤销操作人姓名 @@ -114,327 +117,5 @@ public class StoreMessageDO { @Column(name = "operator_list") private String operatorList; - /** - * 获取主键ID - * - * @return id - 主键ID - */ - public Long getId() { - return id; - } - /** - * 设置主键ID - * - * @param id 主键ID - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取门店编码 - * - * @return store_id - 门店编码 - */ - public String getStoreId() { - return storeId; - } - - /** - * 设置门店编码 - * - * @param storeId 门店编码 - */ - public void setStoreId(String storeId) { - this.storeId = storeId; - } - - /** - * 获取门店编码 - * - * @return store_code - 门店编码 - */ - public String getStoreCode() { - return storeCode; - } - - /** - * 设置门店编码 - * - * @param storeCode 门店编码 - */ - public void setStoreCode(String storeCode) { - this.storeCode = storeCode; - } - - /** - * 获取门店名称 - * - * @return store_name - 门店名称 - */ - public String getStoreName() { - return storeName; - } - - /** - * 设置门店名称 - * - * @param storeName 门店名称 - */ - public void setStoreName(String storeName) { - this.storeName = storeName; - } - - /** - * 获取关联的消息模板ID - * - * @return message_template_id - 关联的消息模板ID - */ - public Long getMessageTemplateId() { - return messageTemplateId; - } - - /** - * 设置关联的消息模板ID - * - * @param messageTemplateId 关联的消息模板ID - */ - public void setMessageTemplateId(Long messageTemplateId) { - this.messageTemplateId = messageTemplateId; - } - - /** - * 获取阅读状态(0:未读 1:已读) - * - * @return read_status - 阅读状态(0:未读 1:已读) - */ - public Boolean getReadStatus() { - return readStatus; - } - - /** - * 设置阅读状态(0:未读 1:已读) - * - * @param readStatus 阅读状态(0:未读 1:已读) - */ - public void setReadStatus(Boolean readStatus) { - this.readStatus = readStatus; - } - - /** - * 获取阅读时间 - * - * @return read_time - 阅读时间 - */ - public Date getReadTime() { - return readTime; - } - - /** - * 设置阅读时间 - * - * @param readTime 阅读时间 - */ - public void setReadTime(Date readTime) { - this.readTime = readTime; - } - - /** - * 获取处理状态(0:未处理 1:处理中) - * - * @return process_status - 处理状态(0:未处理 1:处理中) - */ - public Integer getProcessStatus() { - return processStatus; - } - - /** - * 设置处理状态(0:未处理 1:处理中) - * - * @param processStatus 处理状态(0:未处理 1:处理中) - */ - public void setProcessStatus(Integer processStatus) { - this.processStatus = processStatus; - } - - /** - * 获取处理时间 - * - * @return process_time - 处理时间 - */ - public Date getProcessTime() { - return processTime; - } - - /** - * 设置处理时间 - * - * @param processTime 处理时间 - */ - public void setProcessTime(Date processTime) { - this.processTime = processTime; - } - - /** - * 获取实际操作人ID - * - * @return actual_operator_id - 实际操作人ID - */ - public Long getActualOperatorId() { - return actualOperatorId; - } - - /** - * 设置实际操作人ID - * - * @param actualOperatorId 实际操作人ID - */ - public void setActualOperatorId(Long actualOperatorId) { - this.actualOperatorId = actualOperatorId; - } - - /** - * 获取实际操作人姓名 - * - * @return actual_operator_name - 实际操作人姓名 - */ - public String getActualOperatorName() { - return actualOperatorName; - } - - /** - * 设置实际操作人姓名 - * - * @param actualOperatorName 实际操作人姓名 - */ - public void setActualOperatorName(String actualOperatorName) { - this.actualOperatorName = actualOperatorName; - } - - /** - * 获取撤销状态(0:未撤销 1:已撤销) - * - * @return revoke_status - 撤销状态(0:未撤销 1:已撤销) - */ - public Boolean getRevokeStatus() { - return revokeStatus; - } - - /** - * 设置撤销状态(0:未撤销 1:已撤销) - * - * @param revokeStatus 撤销状态(0:未撤销 1:已撤销) - */ - public void setRevokeStatus(Boolean revokeStatus) { - this.revokeStatus = revokeStatus; - } - - /** - * 获取撤销时间 - * - * @return revoke_time - 撤销时间 - */ - public Date getRevokeTime() { - return revokeTime; - } - - /** - * 设置撤销时间 - * - * @param revokeTime 撤销时间 - */ - public void setRevokeTime(Date revokeTime) { - this.revokeTime = revokeTime; - } - - /** - * 获取撤销操作人ID - * - * @return revoke_operator_id - 撤销操作人ID - */ - public Long getRevokeOperatorId() { - return revokeOperatorId; - } - - /** - * 设置撤销操作人ID - * - * @param revokeOperatorId 撤销操作人ID - */ - public void setRevokeOperatorId(Long revokeOperatorId) { - this.revokeOperatorId = revokeOperatorId; - } - - /** - * 获取撤销操作人姓名 - * - * @return revoke_operator_name - 撤销操作人姓名 - */ - public String getRevokeOperatorName() { - return revokeOperatorName; - } - - /** - * 设置撤销操作人姓名 - * - * @param revokeOperatorName 撤销操作人姓名 - */ - public void setRevokeOperatorName(String revokeOperatorName) { - this.revokeOperatorName = revokeOperatorName; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - /** - * 获取操作人列表 逗号隔开 - * - * @return operator_list - 操作人列表 逗号隔开 - */ - public String getOperatorList() { - return operatorList; - } - - /** - * 设置操作人列表 逗号隔开 - * - * @param operatorList 操作人列表 逗号隔开 - */ - public void setOperatorList(String operatorList) { - this.operatorList = operatorList; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchDeletedRequest.java similarity index 82% rename from coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java rename to coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchDeletedRequest.java index a8ede4262..a9ee2bab0 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MatterConfigDeletedRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchDeletedRequest.java @@ -10,7 +10,7 @@ import java.util.List; * @Version 1.0 */ @Data -public class MatterConfigDeletedRequest { +public class BatchDeletedRequest { private List ids; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchPublishRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchPublishRequest.java new file mode 100644 index 000000000..2d824e021 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchPublishRequest.java @@ -0,0 +1,25 @@ +package com.cool.store.request.notice; + +import com.cool.store.dto.notice.CommonDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 13:47 + * @Version 1.0 + */ +@Data +public class BatchPublishRequest { + + private List ids; + + @ApiModelProperty( "默认门店范围 type[region store group]") + List storeInfoList; + + @ApiModelProperty( "默认处理人信息 type[person position userGroup organization]") + List userInfoList; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java new file mode 100644 index 000000000..29ef7850e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java @@ -0,0 +1,42 @@ +package com.cool.store.request.notice; + +import com.cool.store.dto.notice.CommonDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 11:10 + * @Version 1.0 + */ +@Data +public class MessageTemplateAddRequest { + + private Long id; + + @ApiModelProperty("模块") + private Integer moduleCode; + @ApiModelProperty("事项类型") + private Integer remindType; + @ApiModelProperty("提醒时间段 开始时间 阶段提醒时传") + private Date remindStartTime; + @ApiModelProperty("提醒时间段 结束时间 阶段提醒时传") + private Date remindEndTime; + @ApiModelProperty("截止时间") + private Date deadline; + @ApiModelProperty("处理类型(1:仅阅读 2:需要处理)") + private Integer processType; + @ApiModelProperty("今日必办标识 0非必办 1必办") + private Integer todayTask; + @ApiModelProperty("消息标题") + private String messageTitle; + @ApiModelProperty("消息图片URL") + private String messageImage; + @ApiModelProperty("消息详情(富文本内容)") + private String messageContent; + +} 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 new file mode 100644 index 000000000..19b675b21 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageTemplateDetailVO.java @@ -0,0 +1,45 @@ +package com.cool.store.vo.notice; + +import com.cool.store.dto.notice.CommonDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 13:23 + * @Version 1.0 + */ +@Data +public class MessageTemplateDetailVO { + + private Long id; + + @ApiModelProperty("模块") + private Integer moduleCode; + @ApiModelProperty("事项类型") + private Integer remindType; + @ApiModelProperty("提醒时间段 开始时间 阶段提醒时传") + private Date remindStartTime; + @ApiModelProperty("提醒时间段 结束时间 阶段提醒时传") + private Date remindEndTime; + @ApiModelProperty("截止时间") + private Date deadline; + @ApiModelProperty("处理类型(1:仅阅读 2:需要处理)") + private Integer processType; + @ApiModelProperty("今日必办标识 0非必办 1必办") + private Integer todayTask; + @ApiModelProperty("消息标题") + private String messageTitle; + @ApiModelProperty("消息图片URL") + private String messageImage; + @ApiModelProperty("消息详情(富文本内容)") + private String messageContent; + @ApiModelProperty( "默认门店范围 type[region store group]") + List storeInfoList; + @ApiModelProperty( "默认处理人信息 type[person position userGroup organization]") + List userInfoList; + +} 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 new file mode 100644 index 000000000..9c5e175d4 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/MessageTemplateService.java @@ -0,0 +1,62 @@ +package com.cool.store.service; + +import com.cool.store.context.LoginUserInfo; +import com.cool.store.request.notice.BatchDeletedRequest; +import com.cool.store.request.notice.BatchPublishRequest; +import com.cool.store.request.notice.MessageTemplateAddRequest; +import com.cool.store.vo.notice.MessageTemplateDetailVO; + +/** + * @Author suzhuhong + * @Date 2025/7/25 9:58 + * @Version 1.0 + */ +public interface MessageTemplateService { + + + /** + * 新增消息模版 + * @param request + * @param user + * @return + */ + Boolean addMessageTemplate(MessageTemplateAddRequest request , LoginUserInfo user); + + /** + * 编辑消息模版 + * @param request + * @param user + * @return + */ + Boolean editMessageTemplate(MessageTemplateAddRequest request , LoginUserInfo user); + + + /** + * 获取详情 + * @param id + * @return + */ + MessageTemplateDetailVO getMessageTemplateDetail(Long id); + + /** + * 批量删除 未发布可以删除 + * @param request + * @return + */ + Boolean batchDeleteMessageTemplate(BatchDeletedRequest request, LoginUserInfo user); + + /** + * batch 批量发布 + * @param request + * @param user + * @return + */ + Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user); + + + + + + + +} 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 01f5b00c4..d916b61a7 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.store.AuthStoreUserDTO; import com.cool.store.dto.store.StoreUserPositionDTO; import com.cool.store.response.MiniShopsResponse; import com.github.pagehelper.PageInfo; @@ -27,4 +28,12 @@ public interface StoreService { List getStoreUser(List storeCodeList); + List authStoreUser(List storeIdList, String positionType); + + List getStorePositionUserList(List storeIds, + List positionIds, + List nodePersonList, + List groupIdList, + List regionIdList); + } 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 new file mode 100644 index 000000000..1c2106db8 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/MessageTemplateServiceImpl.java @@ -0,0 +1,230 @@ +package com.cool.store.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.MessageTemplateDAO; +import com.cool.store.dao.RegionDao; +import com.cool.store.dao.StoreMessageDAO; +import com.cool.store.dto.notice.CommonDTO; +import com.cool.store.dto.store.AuthStoreUserDTO; +import com.cool.store.dto.store.StoreAreaDTO; +import com.cool.store.entity.MessageTemplateDO; +import com.cool.store.entity.RegionDO; +import com.cool.store.entity.StoreGroupMappingDO; +import com.cool.store.entity.StoreMessageDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.notice.ProcessStatusEnum; +import com.cool.store.enums.notice.PublishStatusEnum; +import com.cool.store.enums.notice.ReadStatusEnum; +import com.cool.store.enums.notice.TypeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.mapper.StoreGroupMappingMapper; +import com.cool.store.mapper.StoreMapper; +import com.cool.store.request.notice.BatchDeletedRequest; +import com.cool.store.request.notice.BatchPublishRequest; +import com.cool.store.request.notice.MessageTemplateAddRequest; +import com.cool.store.service.MessageTemplateService; +import com.cool.store.service.StoreService; +import com.cool.store.vo.notice.MessageTemplateDetailVO; +import com.google.gson.JsonObject; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author suzhuhong + * @Date 2025/7/25 9:59 + * @Version 1.0 + */ +@Service +@Slf4j +public class MessageTemplateServiceImpl implements MessageTemplateService { + + + @Resource + MessageTemplateDAO messageTemplateDAO; + @Resource + StoreMapper storeMapper; + @Resource + RegionDao RegionDao; + @Resource + StoreGroupMappingMapper storeGroupMappingMapper; + @Resource + StoreService storeService; + @Resource + StoreMessageDAO storeMessageDAO; + + + + @Override + public Boolean addMessageTemplate(MessageTemplateAddRequest request, LoginUserInfo user) { + MessageTemplateDO messageTemplateDO = new MessageTemplateDO(); + BeanUtils.copyProperties(request, messageTemplateDO); + messageTemplateDO.setCreateUserId(user.getUserId()); + messageTemplateDAO.insert(messageTemplateDO); + return Boolean.TRUE; + } + + @Override + public Boolean editMessageTemplate(MessageTemplateAddRequest request, LoginUserInfo user) { + if (request.getId()==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + MessageTemplateDO messageTemplateDO = messageTemplateDAO.getById(request.getId()); + //只有待发布状态能编辑 + if (messageTemplateDO.getPublishStatus()!=0){ + throw new ServiceException(ErrorCodeEnum.MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT); + } + BeanUtils.copyProperties(request, messageTemplateDO); + messageTemplateDO.setUpdaterUserId(user.getUserId()); + messageTemplateDAO.update(messageTemplateDO); + return Boolean.TRUE; + } + + @Override + public MessageTemplateDetailVO getMessageTemplateDetail(Long id) { + MessageTemplateDetailVO messageTemplateDetailVO = new MessageTemplateDetailVO(); + MessageTemplateDO messageTemplateDO = messageTemplateDAO.getById(id); + if(messageTemplateDO==null){ + return messageTemplateDetailVO; + } + BeanUtils.copyProperties(messageTemplateDO, messageTemplateDetailVO); + messageTemplateDetailVO.setUserInfoList(JSONObject.parseArray(messageTemplateDO.getHandlePersonInfo(), CommonDTO.class)); + messageTemplateDetailVO.setStoreInfoList(JSONObject.parseArray(messageTemplateDO.getStoreInfo(), CommonDTO.class)); + return messageTemplateDetailVO; + } + + @Override + public Boolean batchDeleteMessageTemplate(BatchDeletedRequest request, LoginUserInfo user) { + List list = messageTemplateDAO.getByIds(request.getIds()); + //校验是否都是未发布状态 + if (list.stream().anyMatch(x -> x.getPublishStatus()!= PublishStatusEnum.UNPUBLISHED.getCode())){ + throw new ServiceException(ErrorCodeEnum.MESSAGE_TEMPLATE_NOT_SUPPORT_DELETED); + } + messageTemplateDAO.updateDeleteStatusBatch(request.getIds(),user.getUserId()); + return Boolean.TRUE; + } + + + + @Override + public Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user) { + if (CollectionUtils.isEmpty(request.getIds())||CollectionUtils.isEmpty(request.getStoreInfoList())||CollectionUtils.isEmpty(request.getUserInfoList())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + List storeAreaDTOS = getStoreRange(request.getStoreInfoList()); + List storeIds = storeAreaDTOS.stream().map(StoreAreaDTO::getStoreId).collect(Collectors.toList()); + + Map> authUser = getAuthUser(request.getUserInfoList(), storeIds); + + List list = messageTemplateDAO.getByIds(request.getIds()); + //过滤 只保留未发布的 + list = list.stream().filter(x -> PublishStatusEnum.UNPUBLISHED.getCode().equals(x.getPublishStatus())).collect(Collectors.toList()); + + list.stream().forEach(x -> { + List result = new ArrayList<>(); + storeAreaDTOS.forEach(y->{ + if (CollectionUtils.isEmpty(authUser.get(y.getStoreId()))){ + log.info("当前门店没有人员 门店名称:{}",y.getStoreName()); + return; + } + StoreMessageDO storeMessageDO = new StoreMessageDO(); + storeMessageDO.setStoreId(y.getStoreId()); + storeMessageDO.setStoreCode(y.getStoreCode()); + storeMessageDO.setMessageTemplateId(x.getId()); + storeMessageDO.setReadStatus(ReadStatusEnum.UNREAD.getCode()); + storeMessageDO.setReadTime(new Date()); + storeMessageDO.setProcessStatus(ProcessStatusEnum.UNTREATED.getCode()); + storeMessageDO.setProcessTime(new Date()); + String userIdStr = authUser.get(y.getStoreId()).stream().collect(Collectors.joining(",")); + storeMessageDO.setOperatorList(userIdStr); + result.add(storeMessageDO); + }); + storeMessageDAO.batchInsert(result); + }); + return Boolean.TRUE; + } + + + + + + public Map> getAuthUser(List personInfo, List storeIds){ + if (CollectionUtils.isEmpty(personInfo)){ + return new HashMap<>(); + } + List personIds = personInfo.stream().filter(x -> TypeEnum.PERSON.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + List positionIds = personInfo.stream().filter(x -> TypeEnum.POSITION.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + List groupIdList = personInfo.stream().filter(x -> TypeEnum.USER_GROUP.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + List regionIdList = personInfo.stream().filter(x -> TypeEnum.ORGANIZATION.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + //权限 + List authStoreUserList = storeService.getStorePositionUserList(storeIds, positionIds, personIds, groupIdList, regionIdList); + Map> storeUserMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(authStoreUserList)) { + storeUserMap = authStoreUserList.stream().collect(Collectors.toMap(AuthStoreUserDTO::getStoreId, + AuthStoreUserDTO::getUserIdList, (a, b) -> a)); + } + return storeUserMap; + } + + /** + * 获取门店范围 + * @param commonDTOS + * @return + */ + private List getStoreRange( List commonDTOS){ + List regionIds = commonDTOS.stream().filter(x -> TypeEnum.REGION.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + + List regionDOsByRegionIds = new ArrayList<>(); + Set storeIdSet = new HashSet<>(); + if (CollectionUtils.isNotEmpty(regionIds)){ + regionDOsByRegionIds = RegionDao.getRegionByRegionIds(regionIds); + //区域全路径地址集合 ["/1/37139128281/","/1/37139128283/"] + List regionFullRegionPathList = regionDOsByRegionIds.stream().map(RegionDO::getFullRegionPath).collect(Collectors.toList()); + //根据regionFullRegionPathList查询区域下所有的门店(包括子区域门店) + List storeAreaDTOS = storeMapper.listStoreByRegionPathList(regionFullRegionPathList); + storeIdSet = storeAreaDTOS.stream().map(StoreAreaDTO::getStoreId).collect(Collectors.toSet()); + } + List storeIdList = commonDTOS.stream().filter(x -> TypeEnum.STORE.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(storeIdList)){ + //将寻找的门店添加到set中 + storeIdSet.addAll(storeIdList); + } + List groupList = commonDTOS.stream().filter(x -> TypeEnum.GROUP.equals(x.getType())) + .map(CommonDTO::getValue).collect(Collectors.toList()); + //分组 + if (CollectionUtils.isNotEmpty(groupList)) { + List groupStoreList = storeGroupMappingMapper.getStoreGroupMappingByGroupIDs(groupList); + if (CollectionUtils.isNotEmpty(groupStoreList)) { + Set groupStoreSet = groupStoreList.stream().map(StoreGroupMappingDO::getStoreId).collect(Collectors.toSet()); + if(CollectionUtils.isNotEmpty(groupStoreSet)){ + //将寻找的门店添加到set中 + storeIdSet.addAll(groupStoreSet); + } + } + } + if(CollectionUtils.isEmpty(storeIdSet)){ + return new ArrayList<>(); + } + List storeDTOList = storeMapper.getStoreAreaList(new ArrayList<>(storeIdSet)); + if(CollectionUtils.isNotEmpty(storeDTOList)){ + storeDTOList = storeDTOList.stream().filter(o -> "open".equals(o.getStoreStatus())).collect(Collectors.toList()); + } + return storeDTOList; + } + + + +} 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 3d0e4a904..7ef642edd 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 @@ -2,6 +2,7 @@ package com.cool.store.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.cool.store.dto.store.AuthStoreUserDTO; import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.EnterpriseUserRoleDao; @@ -17,10 +18,7 @@ import com.cool.store.entity.SysRoleDO; import com.cool.store.entity.UserAuthMappingDO; import com.cool.store.enums.*; import com.cool.store.exception.ServiceException; -import com.cool.store.mapper.RegionMapper; -import com.cool.store.mapper.StoreMapper; -import com.cool.store.mapper.SysRoleMapper; -import com.cool.store.mapper.UserAuthMappingMapper; +import com.cool.store.mapper.*; import com.cool.store.response.MiniShopsResponse; import com.cool.store.service.StoreService; import com.cool.store.service.UserAuthMappingService; @@ -68,6 +66,10 @@ public class StoreServiceImpl implements StoreService { StoreMapper storeMapper; @Resource UserAuthMappingMapper userAuthMappingMapper; + @Resource + EnterpriseUserMapper enterpriseUserMapper; + @Resource + EnterpriseUserGroupMappingMapper enterpriseUserGroupMappingMapper; @Override public PageInfo getStoreExtendFieldInfo(Integer pageSize, Integer pageNum) { @@ -169,7 +171,54 @@ public class StoreServiceImpl implements StoreService { return result; } - private List authStoreUser(List storeIdList, String positionType) { + + + @Override + public List getStorePositionUserList( List storeIds, + List positionIds, + List nodePersonList, + List groupIdList, + List regionIdList) { + log.info("StoreServiceImpl getStorePositionUserList param storeIds:{},positionIds:{},nodePersonList:{},groupIdList:{},regionIdList:{}", + JSONObject.toJSONString(storeIds), + JSONObject.toJSONString(positionIds), JSONObject.toJSONString(nodePersonList), + JSONObject.toJSONString(groupIdList), JSONObject.toJSONString(regionIdList)); + List authStoreUsers = this.authStoreUser(storeIds, null); + if (CollUtil.isEmpty(authStoreUsers)) { + return new ArrayList<>(); + } + List allUserIds = Lists.newArrayList(); + if (CollectionUtils.isNotEmpty(positionIds)) { + List userIds = sysRoleMapper.getPositionUserIds(positionIds); + allUserIds.addAll(userIds); + } + if (CollectionUtils.isNotEmpty(groupIdList)) { + List groupUserIdList = enterpriseUserGroupMappingMapper.getUserIdsByGroupIdList(groupIdList); + if (CollectionUtils.isNotEmpty(groupUserIdList)) { + allUserIds.addAll(groupUserIdList); + } + } + if (CollectionUtils.isNotEmpty(regionIdList)) { + List regionUserIdList = enterpriseUserMapper.getUserIdsByRegionIdList(regionIdList); + if (CollectionUtils.isNotEmpty(regionUserIdList)) { + allUserIds.addAll(regionUserIdList); + } + } + if (CollectionUtils.isNotEmpty(nodePersonList)) { + allUserIds.addAll(nodePersonList); + } + List finalAllUserIds = allUserIds; + authStoreUsers.forEach(f -> f.getUserIdList().retainAll(finalAllUserIds)); + if (CollectionUtils.isNotEmpty(authStoreUsers)) { + authStoreUsers = authStoreUsers.stream().distinct().collect(Collectors.toList()); + } + return authStoreUsers; + } + + + + @Override + public List authStoreUser(List storeIdList, String positionType) { List result = new ArrayList<>(); if (CollectionUtils.isEmpty(storeIdList)) { return result; diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java index a66c43e0e..6dd7342dd 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MatterConfigController.java @@ -1,15 +1,15 @@ package com.cool.store.controller.webb; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.notice.BatchDeletedRequest; import com.cool.store.request.notice.MatterConfigAddRequest; -import com.cool.store.request.notice.MatterConfigDeletedRequest; import com.cool.store.request.notice.MatterConfigQueryRequest; +import com.cool.store.response.ResponseResult; import com.cool.store.service.MatterConfigService; -import com.cool.store.userholder.CurrentUser; +import com.cool.store.vo.LineInfoVO; import com.cool.store.vo.notice.MatterAndMatterDetailVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; @@ -35,27 +35,27 @@ public class MatterConfigController { @PostMapping("/add") @ApiOperation("新增事项配置") - public int addMatterConfig(@RequestBody MatterConfigAddRequest request) { - return matterConfigService.addMatterConfig(request, CurrentUserHolder.getUser()); + public ResponseResult addMatterConfig(@RequestBody MatterConfigAddRequest request) { + return ResponseResult.success(matterConfigService.addMatterConfig(request, CurrentUserHolder.getUser())); } @PostMapping("/edit") @ApiOperation("编辑事项配置") - public int editMatterConfig(@RequestBody MatterConfigAddRequest request) { - return matterConfigService.editMatterConfig(request, CurrentUserHolder.getUser()); + public ResponseResult editMatterConfig(@RequestBody MatterConfigAddRequest request) { + return ResponseResult.success(matterConfigService.editMatterConfig(request, CurrentUserHolder.getUser())); } @PostMapping("/deleteMatterConfig") @ApiOperation("批量删除事项配置") - public Boolean addMatterConfig(@RequestBody MatterConfigDeletedRequest request) { - return matterConfigService.deleteMatterConfig(request.getIds(), CurrentUserHolder.getUser()); + public ResponseResult addMatterConfig(@RequestBody BatchDeletedRequest request) { + return ResponseResult.success(matterConfigService.deleteMatterConfig(request.getIds(), CurrentUserHolder.getUser())); } @PostMapping("/list") @ApiOperation("事项配置列表") - public PageInfo listByCondition(@RequestBody MatterConfigQueryRequest request) { - return matterConfigService.listByCondition(request); + public ResponseResult> listByCondition(@RequestBody MatterConfigQueryRequest request) { + return ResponseResult.success(matterConfigService.listByCondition(request)); } 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 new file mode 100644 index 000000000..ffed39ac0 --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/MessageTemplateController.java @@ -0,0 +1,66 @@ +package com.cool.store.controller.webb; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.notice.BatchDeletedRequest; +import com.cool.store.request.notice.BatchPublishRequest; +import com.cool.store.request.notice.MatterConfigAddRequest; +import com.cool.store.request.notice.MessageTemplateAddRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.MessageTemplateService; +import com.cool.store.vo.notice.MessageTemplateDetailVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/25 15:08 + * @Version 1.0 + */ +@RestController +@RequestMapping("/pc/notice") +@Api(tags = "PC事项/通知管理") +@Slf4j +public class MessageTemplateController { + + + @Resource + MessageTemplateService messageTemplateService; + + + @PostMapping("/add") + @ApiOperation("新增消息通知") + public ResponseResult messageTemplateService(@RequestBody MessageTemplateAddRequest request) { + return ResponseResult.success(messageTemplateService.addMessageTemplate(request, CurrentUserHolder.getUser())); + } + + @PostMapping("/edit") + @ApiOperation("编辑消息通知") + public ResponseResult editMessageTemplate(@RequestBody MessageTemplateAddRequest request) { + return ResponseResult.success(messageTemplateService.editMessageTemplate(request, CurrentUserHolder.getUser())); + } + + @ApiOperation("通知详情") + @GetMapping("/getMessageTemplateDetail") + public ResponseResult getMessageTemplateDetail(@RequestParam("id")Long id) { + return ResponseResult.success(messageTemplateService.getMessageTemplateDetail(id)); + } + + @PostMapping("/batchDelete") + @ApiOperation("批量删除") + public ResponseResult editMessageTemplate(@RequestBody BatchDeletedRequest request) { + return ResponseResult.success(messageTemplateService.batchDeleteMessageTemplate(request, CurrentUserHolder.getUser())); + } + + @PostMapping("/batchPublish") + @ApiOperation("批量发布") + public ResponseResult editMessageTemplate(@RequestBody BatchPublishRequest request) { + return ResponseResult.success(messageTemplateService.batchPublishMessageTemplate(request, CurrentUserHolder.getUser())); + } + + +} From 5035a7e05432b919a2ad9a39097ace36a86a2f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 25 Jul 2025 17:24:56 +0800 Subject: [PATCH 03/33] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/dao/StoreMessageDAO.java | 2 ++ 1 file changed, 2 insertions(+) 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 82609b645..95955adb4 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 @@ -2,6 +2,7 @@ package com.cool.store.dao; import com.cool.store.entity.StoreMessageDO; import com.cool.store.mapper.StoreMessageMapper; +import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.util.List; @@ -11,6 +12,7 @@ import java.util.List; * @Date 2025/7/25 15:04 * @Version 1.0 */ +@Repository public class StoreMessageDAO { @Resource From 00f883192a797c7716ef9e600a81468c92f261ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Sun, 27 Jul 2025 22:20:33 +0800 Subject: [PATCH 04/33] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 2 + .../cool/store/dao/MessageTemplateDAO.java | 22 ++ .../com/cool/store/dao/StoreMessageDAO.java | 55 +++++ .../store/mapper/MessageTemplateMapper.java | 15 ++ .../cool/store/mapper/StoreMessageMapper.java | 23 ++ .../mapper/MessageTemplateMapper.xml | 71 ++++++ .../resources/mapper/StoreMessageMapper.xml | 167 +++++++++++++- .../dto/notice/MessageTemplateCountDTO.java | 26 +++ .../com/cool/store/dto/notice/NoticeDTO.java | 51 +++++ .../request/notice/BatchRevokeRequest.java | 19 ++ .../notice/MessageTemplateAddRequest.java | 2 +- .../notice/MessageTemplateQueryRequest.java | 32 +++ .../notice/StoreMessageListRequest.java | 18 ++ .../notice/StoreMessagePendingRequest.java | 32 +++ .../request/notice/StoreMessageRequest.java | 27 +++ .../cool/store/vo/notice/MessageDetailVO.java | 33 +++ .../vo/notice/MessageTemplateDetailVO.java | 7 + .../store/vo/notice/StoreMessageDetailVO.java | 102 +++++++++ .../cool/store/vo/notice/StoreMessageVO.java | 34 +++ .../store/service/MessageTemplateService.java | 42 +++- .../impl/MessageTemplateServiceImpl.java | 206 ++++++++++++++++-- .../webb/MessageTemplateController.java | 34 ++- .../webc/MiniMessageTemplateController.java | 59 +++++ 23 files changed, 1040 insertions(+), 39 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/notice/MessageTemplateCountDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchRevokeRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateQueryRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageListRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessagePendingRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageDetailVO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageVO.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java 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 db2bae201..6b07b24a8 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 @@ -291,6 +291,8 @@ public enum ErrorCodeEnum { MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT(1610001,"当前消息已发布,不支持编辑!",null), MESSAGE_TEMPLATE_NOT_SUPPORT_DELETED(1610002,"只有未发布的消息能删除,请确认!",null), + STORE_MESSAGE_REVOKE(1610003,"当前门店消息已撤销,请务重复操作",null), + STORE_MESSAGE_HANDLED(1610004,"当前门店消息已处理,无法撤销!",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 99e069a47..904343a6d 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 @@ -1,7 +1,9 @@ package com.cool.store.dao; +import com.cool.store.dto.notice.NoticeDTO; import com.cool.store.entity.MessageTemplateDO; import com.cool.store.mapper.MessageTemplateMapper; +import com.cool.store.request.notice.MessageTemplateQueryRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; @@ -47,7 +49,27 @@ public class MessageTemplateDAO { } + public List getMessageTemplateList(MessageTemplateQueryRequest request) { + return messageTemplateMapper.getMessageTemplateList(request); + } + public int batchUpdateStoreInfoAndUserInfo(List ids, + String storeInfo, + String userInfo, + String userId) { + if (CollectionUtils.isEmpty(ids)){ + return 0; + } + return messageTemplateMapper.batchUpdateStoreInfoAndUserInfo(ids,storeInfo,userInfo,userId); + } + + + public int batchUpdatePublishStatus(List ids) { + if (CollectionUtils.isEmpty(ids)){ + return 0; + } + return messageTemplateMapper.batchUpdatePublishStatus(ids); + } 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 95955adb4..7f3e25032 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 @@ -1,10 +1,18 @@ package com.cool.store.dao; +import cn.hutool.core.collection.CollUtil; +import com.cool.store.dto.notice.MessageTemplateCountDTO; import com.cool.store.entity.StoreMessageDO; import com.cool.store.mapper.StoreMessageMapper; +import com.cool.store.request.notice.StoreMessageRequest; +import com.cool.store.vo.notice.MessageDetailVO; +import com.cool.store.vo.notice.StoreMessageVO; +import io.swagger.models.auth.In; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -17,16 +25,63 @@ public class StoreMessageDAO { @Resource StoreMessageMapper storeMessageMapper; + + + + public StoreMessageDO getById(Long id){ + return storeMessageMapper.selectByPrimaryKey(id); + } + + public int update(StoreMessageDO storeMessageDO){ + return storeMessageMapper.updateByPrimaryKey(storeMessageDO); + } + /** * 批量新增 * @param list * @return */ public int batchInsert(List list){ + if (CollectionUtils.isEmpty(list)){ + return 0; + } return storeMessageMapper.insertBatch(list); } + public List getMessageTemplateCountList(List templateIds){ + if (CollUtil.isEmpty(templateIds)){ + return new ArrayList<>(); + } + return storeMessageMapper.getMessageTemplateCountList(templateIds); + } + public List getStoreMessageList(StoreMessageRequest request){ + return storeMessageMapper.getStoreMessageList(request); + } + public Integer batchRevoke(List ids, String userId, String userName){ + if (CollectionUtils.isEmpty(ids)){ + return 0; + } + return storeMessageMapper.batchRevoke(ids,userId,userName); + } + public Integer revokeById(Long id, String userId, String userName){ + if (id == null){ + return 0; + } + return storeMessageMapper.revokeById(id,userId,userName); + } + + public Integer queryStoreModuleCount(String storeId, Integer moduleCode){ + return storeMessageMapper.queryStoreModuleCount(storeId,moduleCode); + } + + public List getStoreMessageListByCondition(String storeId, Integer moduleCode, Integer todayTask, Integer pendingFlag, String userId){ + return storeMessageMapper.getStoreMessageListByCondition(storeId,moduleCode,todayTask,pendingFlag,userId); + } + + public MessageDetailVO getMessageDetail(Long id){ + return storeMessageMapper.getMessageDetail(id); + } } 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 53ea5e429..d038d22cf 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 @@ -1,6 +1,9 @@ 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.request.notice.MessageTemplateQueryRequest; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; @@ -12,4 +15,16 @@ public interface MessageTemplateMapper extends Mapper { int updateDeleteStatusBatch(@Param("ids") List ids, @Param("userId") String userId); + List getMessageTemplateList(@Param("request") MessageTemplateQueryRequest request); + + int batchUpdateStoreInfoAndUserInfo(@Param("ids") List ids, + @Param("storeInfo") String storeInfo, + @Param("userInfo") String userInfo, + @Param("userId") String userId); + + int batchUpdatePublishStatus(@Param("ids") List ids); + + + + } \ 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 9770a4155..475ad3519 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 @@ -1,6 +1,10 @@ package com.cool.store.mapper; +import com.cool.store.dto.notice.MessageTemplateCountDTO; import com.cool.store.entity.StoreMessageDO; +import com.cool.store.request.notice.StoreMessageRequest; +import com.cool.store.vo.notice.MessageDetailVO; +import com.cool.store.vo.notice.StoreMessageVO; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; @@ -10,4 +14,23 @@ public interface StoreMessageMapper extends Mapper { int insertBatch(@Param("list") List list); + + List getMessageTemplateCountList(@Param("templateIds") List templateIds); + + List getStoreMessageList(@Param("request") StoreMessageRequest request); + + int batchRevoke(@Param("ids") List ids, @Param("userId") String userId, @Param("userName") String userName); + + int revokeById(@Param("id") Long id, @Param("userId") String userId, @Param("userName") String userName); + + Integer queryStoreModuleCount(@Param("storeId") String storeId, @Param("moduleCode") Integer moduleCode); + + List getStoreMessageListByCondition(@Param("storeId") String storeId, + @Param("moduleCode") Integer moduleCode, + @Param("todayTask") Integer todayTask, + @Param("pendingFlag") Integer pendingFlag, + @Param("userId") String userId); + + MessageDetailVO getMessageDetail(Long id); + } \ 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 e45d1df58..48003501c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/MessageTemplateMapper.xml @@ -57,4 +57,75 @@ + + + + UPDATE zxjp_message_template + SET + store_info = #{storeInfo,jdbcType=LONGVARCHAR}, + handle_person_info = #{userInfo,jdbcType=LONGVARCHAR}, + update_time = NOW(), + publish_status = 1, + publish_time = NOW(), + publisher_user_id = #{userId} + WHERE id IN + + #{id,jdbcType=BIGINT} + + + + + UPDATE zxjp_message_template + SET + publish_status = 2 + WHERE id IN + + #{id,jdbcType=BIGINT} + + + \ 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 accc0867a..610b153a8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -26,7 +26,7 @@ - INSERT INTO store_message ( + INSERT INTO zxjp_store_message ( store_id, store_code, store_name, @@ -40,17 +40,164 @@ VALUES ( - #{item.storeId,jdbcType=VARCHAR}, - #{item.storeCode,jdbcType=VARCHAR}, - #{item.storeName,jdbcType=VARCHAR}, - #{item.messageTemplateId,jdbcType=BIGINT}, - #{item.readStatus,jdbcType=BIT}, - #{item.readTime,jdbcType=TIMESTAMP}, - #{item.processStatus,jdbcType=TINYINT}, - #{item.processTime,jdbcType=TIMESTAMP}, - #{item.operatorList,jdbcType=LONGVARCHAR} + #{item.storeId}, + #{item.storeCode}, + #{item.storeName}, + #{item.messageTemplateId}, + #{item.readStatus}, + #{item.readTime}, + #{item.processStatus}, + #{item.processTime}, + #{item.operatorList} ) + + + + + + UPDATE zxjp_store_message + SET + revoke_status = 1, + revoke_time = NOW(), + revoke_operator_id = #{userId,jdbcType=BIGINT}, + revoke_operator_name = #{userName,jdbcType=VARCHAR}, + update_time = NOW() + + message_template_id IN + + #{item} + + AND process_status = 0 + AND revoke_status = 0 + + + + + UPDATE zxjp_store_message + SET + revoke_status = 1, + revoke_time = NOW(), + revoke_operator_id = #{userId,jdbcType=BIGINT}, + revoke_operator_name = #{userName,jdbcType=VARCHAR}, + update_time = NOW() + WHERE + id = #{id,jdbcType=BIGINT} + AND process_status = 0 + AND revoke_status = 0 + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/MessageTemplateCountDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/MessageTemplateCountDTO.java new file mode 100644 index 000000000..83923515c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/notice/MessageTemplateCountDTO.java @@ -0,0 +1,26 @@ +package com.cool.store.dto.notice; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/7/26 19:47 + * @Version 1.0 + */ +@Data +public class MessageTemplateCountDTO { + + /** + * 模版ID + */ + private Long templateId; + /** + * 总门店数据 + */ + private Integer totalStoreCount; + /** + * 已处理门店数据 + */ + private Integer processedStoreCount; + +} 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 4fe52a1ed..a542abd61 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 @@ -3,6 +3,9 @@ package com.cool.store.dto.notice; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.persistence.Column; +import java.util.Date; + /** * @Author suzhuhong * @Date 2025/7/25 16:49 @@ -11,17 +14,65 @@ import lombok.Data; @Data public class NoticeDTO { + private Long id ; + @ApiModelProperty("消息编码") private String messageCode; + @ApiModelProperty("模块") private Integer moduleCode; + @ApiModelProperty("事项类型") private Integer matterType; + @ApiModelProperty("消息标题") private String messageTitle; + @ApiModelProperty("系统来源") + private String systemSource; + @ApiModelProperty("处理类型") + private Integer processType; + @ApiModelProperty("提醒") + private Integer remindType; + @ApiModelProperty("提醒时间段 开始时间") + private Date remindStartTime; + + @ApiModelProperty("提醒时间段 结束时间") + private Date remindEndTime; + + @ApiModelProperty("截止日期") + private Date deadline; + + @ApiModelProperty("截止日期") + private Boolean todayTask; + + @ApiModelProperty("发布状态") + private Integer publishStatus; + + @ApiModelProperty("处理完数据") + private Integer handleNum; + @ApiModelProperty("总数") + private Integer totalNum; + + @ApiModelProperty("创建人") + private String createUserId; + + @ApiModelProperty("创建名称") + private String createUserName; + + @ApiModelProperty("总数") + private Date createTime; + + @ApiModelProperty("发布人id") + private String publishUserId; + + @ApiModelProperty("发布人名称") + private String publishUserName; + + @ApiModelProperty("发布人时间") + private Date publishTime; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchRevokeRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchRevokeRequest.java new file mode 100644 index 000000000..925d7d738 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/BatchRevokeRequest.java @@ -0,0 +1,19 @@ +package com.cool.store.request.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/27 20:07 + * @Version 1.0 + */ +@Data +public class BatchRevokeRequest { + + @ApiModelProperty("批量撤销的消息ID列表") + private List ids; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java index 29ef7850e..a9617c9ac 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateAddRequest.java @@ -20,7 +20,7 @@ public class MessageTemplateAddRequest { @ApiModelProperty("模块") private Integer moduleCode; - @ApiModelProperty("事项类型") + @ApiModelProperty("提醒类型") private Integer remindType; @ApiModelProperty("提醒时间段 开始时间 阶段提醒时传") private Date remindStartTime; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateQueryRequest.java new file mode 100644 index 000000000..5d5de1d7c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/MessageTemplateQueryRequest.java @@ -0,0 +1,32 @@ +package com.cool.store.request.notice; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/7/26 19:09 + * @Version 1.0 + */ +@Data +public class MessageTemplateQueryRequest extends PageBasicInfo { + + + @ApiModelProperty("模块") + private Integer moduleCode; + @ApiModelProperty("事项类型") + private Integer matterType; + @ApiModelProperty("事项标题") + private String messageTitle; + @ApiModelProperty("今日必办") + private Integer todayTask; + @ApiModelProperty("系统来源") + private String systemSource; + @ApiModelProperty("发布用户ID") + private String publishUserId; + @ApiModelProperty("发布状态") + private Integer publishStatus; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageListRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageListRequest.java new file mode 100644 index 000000000..bde709af2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageListRequest.java @@ -0,0 +1,18 @@ +package com.cool.store.request.notice; + +import com.cool.store.common.PageBasicInfo; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/7/27 21:21 + * @Version 1.0 + */ +@Data +public class StoreMessageListRequest extends PageBasicInfo { + + private String storeId; + + private Integer moduleCode; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessagePendingRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessagePendingRequest.java new file mode 100644 index 000000000..825f74169 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessagePendingRequest.java @@ -0,0 +1,32 @@ +package com.cool.store.request.notice; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * @Author suzhuhong + * @Date 2025/7/27 21:23 + * @Version 1.0 + */ +@Data +public class StoreMessagePendingRequest extends PageBasicInfo { + + private String storeId; + + @ApiModelProperty("待办列表时 不需要传") + private Integer moduleCode; + + @ApiModelProperty("手机号") + @NotEmpty + private String mobile; + + @ApiModelProperty("是否今日必办") + private Integer todayTask; + + @ApiModelProperty("待办标识") + private Integer pendingFlag; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageRequest.java new file mode 100644 index 000000000..b935d0df2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/notice/StoreMessageRequest.java @@ -0,0 +1,27 @@ +package com.cool.store.request.notice; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/7/26 20:13 + * @Version 1.0 + */ +@Data +public class StoreMessageRequest extends PageBasicInfo { + + @ApiModelProperty("模板ID") + private Long templateId; + + @ApiModelProperty("阅读状态 0未读 1-已读") + private Integer readStatus; + + @ApiModelProperty("处理状态 0未处理 1-已处理") + private Integer processStatus; + + @ApiModelProperty("关键字查询") + private String keyword; + +} 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 new file mode 100644 index 000000000..5c94b1610 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/MessageDetailVO.java @@ -0,0 +1,33 @@ +package com.cool.store.vo.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2025/7/27 21:16 + * @Version 1.0 + */ +@Data +public class MessageDetailVO { + + private Long id; + + @ApiModelProperty("消息标题") + private String messageTitle; + + @ApiModelProperty("消息图片URL") + private String messageImage; + + @ApiModelProperty("消息详情") + private String messageContent; + + @ApiModelProperty("发布时间") + private Date createTime; + + @ApiModelProperty("发布人") + private String publishUserName; + +} 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 19b675b21..e953a0ccf 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 @@ -41,5 +41,12 @@ public class MessageTemplateDetailVO { List storeInfoList; @ApiModelProperty( "默认处理人信息 type[person position userGroup organization]") List userInfoList; + @ApiModelProperty("发布时间") + private Date publishTime; + @ApiModelProperty("处理完数据") + private Integer handleNum; + @ApiModelProperty("总数") + private Integer totalNum; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java new file mode 100644 index 000000000..6acc71119 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java @@ -0,0 +1,102 @@ +package com.cool.store.vo.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2025/7/26 20:21 + * @Version 1.0 + */ +@Data +public class StoreMessageDetailVO{ + + private Long id; + + /** + * 门店编码 + */ + @ApiModelProperty("门店编码") + private String storeCode; + + /** + * 门店名称 + */ + @ApiModelProperty("门店名称") + private String storeName; + + /** + * 关联的消息模板ID + */ + @ApiModelProperty("关联的消息模板ID") + private Long messageTemplateId; + + /** + * 阅读状态(0:未读 1:已读) + */ + @ApiModelProperty("阅读状态(0:未读 1:已读)") + private Integer readStatus; + + /** + * 阅读时间 + */ + @ApiModelProperty("阅读时间") + private Date readTime; + + /** + * 处理状态(0:未处理 1:处理中) + */ + @ApiModelProperty("处理状态(0:未处理 1:处理中)") + private Integer processStatus; + + /** + * 处理时间 + */ + @ApiModelProperty("处理时间") + private Date processTime; + + /** + * 实际操作人ID + */ + @ApiModelProperty("操作人ID") + private String actualOperatorId; + + /** + * 实际操作人姓名 + */ + @ApiModelProperty("操作人姓名") + private String actualOperatorName; + + /** + * 撤销状态(0:未撤销 1:已撤销) + */ + @ApiModelProperty("撤销状态(0:未撤销 1:已撤销)") + private Boolean revokeStatus; + + /** + * 撤销时间 + */ + @ApiModelProperty("撤销时间") + private Date revokeTime; + + /** + * 撤销操作人ID + */ + @ApiModelProperty("撤销操作人ID") + private String revokeOperatorId; + + /** + * 撤销操作人姓名 + */ + @ApiModelProperty("撤销操作人姓名") + private String revokeOperatorName; + + + + + + + +} 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 new file mode 100644 index 000000000..a2bb801db --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageVO.java @@ -0,0 +1,34 @@ +package com.cool.store.vo.notice; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2025/7/27 21:10 + * @Version 1.0 + */ +@Data +public class StoreMessageVO { + private Long id; + @ApiModelProperty("模版COde") + private Integer moduleCode; + + @ApiModelProperty("模版ID") + private Long templateId; + @ApiModelProperty("已读状态") + private Integer readStatus; + @ApiModelProperty("处理状态") + private Integer processStatus; + + @ApiModelProperty("消息标题") + private String messageTitle; + + @ApiModelProperty("消息图片URL") + private String messageImage; + @ApiModelProperty("发布时间") + private Date createTime; + +} 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 9c5e175d4..7018f5bbc 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 @@ -1,10 +1,13 @@ package com.cool.store.service; import com.cool.store.context.LoginUserInfo; -import com.cool.store.request.notice.BatchDeletedRequest; -import com.cool.store.request.notice.BatchPublishRequest; -import com.cool.store.request.notice.MessageTemplateAddRequest; -import com.cool.store.vo.notice.MessageTemplateDetailVO; +import com.cool.store.dto.notice.NoticeDTO; +import com.cool.store.request.notice.*; +import com.cool.store.vo.PartnerUserInfoVO; +import com.cool.store.vo.notice.*; +import com.github.pagehelper.PageInfo; + +import java.util.List; /** * @Author suzhuhong @@ -54,9 +57,40 @@ public interface MessageTemplateService { Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user); + /** + * 获取列表 + * @param request + * @return + */ + PageInfo getMessageTemplateList(MessageTemplateQueryRequest request); + PageInfo getStoreMessageListByTemplateId(StoreMessageRequest request); + /** + * 批量撤销 + * @param request + * @param user + * @return + */ + Boolean batchRevokeNotice(BatchRevokeRequest request, LoginUserInfo user); + + /** + * 撤销单个门店通知 + * @param id + * @param user + * @return + */ + Boolean revokeById(Long id, LoginUserInfo user); + + List getModuleList(String storeId); + + PageInfo getStorePendingList(StoreMessagePendingRequest request); + + MessageDetailVO getMessageDetail(Long id); + + Boolean readMessage(Long id, PartnerUserInfoVO userInfoVO); + } 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 1c2106db8..5c5f3eb06 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 @@ -1,40 +1,43 @@ package com.cool.store.service.impl; +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.dto.notice.CommonDTO; +import com.cool.store.dto.notice.MessageTemplateCountDTO; +import com.cool.store.dto.notice.NoticeDTO; import com.cool.store.dto.store.AuthStoreUserDTO; import com.cool.store.dto.store.StoreAreaDTO; -import com.cool.store.entity.MessageTemplateDO; -import com.cool.store.entity.RegionDO; -import com.cool.store.entity.StoreGroupMappingDO; -import com.cool.store.entity.StoreMessageDO; +import com.cool.store.entity.*; import com.cool.store.enums.ErrorCodeEnum; -import com.cool.store.enums.notice.ProcessStatusEnum; -import com.cool.store.enums.notice.PublishStatusEnum; -import com.cool.store.enums.notice.ReadStatusEnum; -import com.cool.store.enums.notice.TypeEnum; +import com.cool.store.enums.notice.*; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.StoreGroupMappingMapper; import com.cool.store.mapper.StoreMapper; -import com.cool.store.request.notice.BatchDeletedRequest; -import com.cool.store.request.notice.BatchPublishRequest; -import com.cool.store.request.notice.MessageTemplateAddRequest; +import com.cool.store.request.notice.*; import com.cool.store.service.MessageTemplateService; import com.cool.store.service.StoreService; -import com.cool.store.vo.notice.MessageTemplateDetailVO; +import com.cool.store.utils.CoolDateUtils; +import com.cool.store.vo.PartnerUserInfoVO; +import com.cool.store.vo.notice.*; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.google.gson.JsonObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; /** @@ -59,6 +62,8 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { StoreService storeService; @Resource StoreMessageDAO storeMessageDAO; + @Resource + EnterpriseUserDAO enterpriseUserDAO; @@ -66,11 +71,20 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { public Boolean addMessageTemplate(MessageTemplateAddRequest request, LoginUserInfo user) { MessageTemplateDO messageTemplateDO = new MessageTemplateDO(); BeanUtils.copyProperties(request, messageTemplateDO); + messageTemplateDO.setMessageCode(getMessageTemplateCode()); + messageTemplateDO.setMatterType(MatterTypeEnum.NOTICE.getCode()); messageTemplateDO.setCreateUserId(user.getUserId()); + messageTemplateDO.setSystemSource("CRM"); messageTemplateDAO.insert(messageTemplateDO); return Boolean.TRUE; } + public String getMessageTemplateCode() { + //当前日期 + String today = CoolDateUtils.getToday(); + return "16" + today + String.format("%04d", ThreadLocalRandom.current().nextInt(10000)); + } + @Override public Boolean editMessageTemplate(MessageTemplateAddRequest request, LoginUserInfo user) { if (request.getId()==null){ @@ -97,6 +111,12 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { BeanUtils.copyProperties(messageTemplateDO, messageTemplateDetailVO); messageTemplateDetailVO.setUserInfoList(JSONObject.parseArray(messageTemplateDO.getHandlePersonInfo(), CommonDTO.class)); messageTemplateDetailVO.setStoreInfoList(JSONObject.parseArray(messageTemplateDO.getStoreInfo(), CommonDTO.class)); + List messageTemplateCountList = storeMessageDAO.getMessageTemplateCountList(Arrays.asList(messageTemplateDO.getId())); + + if (CollectionUtils.isNotEmpty(messageTemplateCountList)){ + messageTemplateDetailVO.setTotalNum(messageTemplateCountList.get(0).getTotalStoreCount()); + messageTemplateDetailVO.setHandleNum(messageTemplateCountList.get(0).getProcessedStoreCount()); + } return messageTemplateDetailVO; } @@ -118,6 +138,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { if (CollectionUtils.isEmpty(request.getIds())||CollectionUtils.isEmpty(request.getStoreInfoList())||CollectionUtils.isEmpty(request.getUserInfoList())){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } + List storeAreaDTOS = getStoreRange(request.getStoreInfoList()); List storeIds = storeAreaDTOS.stream().map(StoreAreaDTO::getStoreId).collect(Collectors.toList()); @@ -127,6 +148,10 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { //过滤 只保留未发布的 list = list.stream().filter(x -> PublishStatusEnum.UNPUBLISHED.getCode().equals(x.getPublishStatus())).collect(Collectors.toList()); + if (CollUtil.isEmpty(list)){ + log.info("未找到待发布消息模板"); + } + list.stream().forEach(x -> { List result = new ArrayList<>(); storeAreaDTOS.forEach(y->{ @@ -136,6 +161,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { } StoreMessageDO storeMessageDO = new StoreMessageDO(); storeMessageDO.setStoreId(y.getStoreId()); + storeMessageDO.setStoreName(y.getStoreName()); storeMessageDO.setStoreCode(y.getStoreCode()); storeMessageDO.setMessageTemplateId(x.getId()); storeMessageDO.setReadStatus(ReadStatusEnum.UNREAD.getCode()); @@ -148,24 +174,166 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { }); storeMessageDAO.batchInsert(result); }); + + List updateIds = list.stream().map(MessageTemplateDO::getId).collect(Collectors.toList()); + messageTemplateDAO.batchUpdateStoreInfoAndUserInfo(updateIds, + JSONObject.toJSONString(request.getStoreInfoList()), + JSONObject.toJSONString(request.getUserInfoList()), + user.getUserId()); return Boolean.TRUE; } + @Override + public PageInfo getMessageTemplateList(MessageTemplateQueryRequest request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List list = messageTemplateDAO.getMessageTemplateList(request); + if (CollectionUtils.isEmpty(list)){ + return new PageInfo<>(list); + } + //将列表中的创建人id与发布人id 放到同一个list 去重 + Set userIdSet = new HashSet<>(); + list.forEach(notice -> { + if (notice.getCreateUserId() != null) { + userIdSet.add(String.valueOf(notice.getCreateUserId())); + } + if (notice.getPublishUserId() != null) { + userIdSet.add(String.valueOf(notice.getPublishUserId())); + } + }); + + List uniqueUserIds = new ArrayList<>(userIdSet); + List userInfoByUserIds = enterpriseUserDAO.getUserInfoByUserIds(uniqueUserIds); + Map userMap = userInfoByUserIds.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getName)); + + + List templateIds = list.stream().map(NoticeDTO::getId).collect(Collectors.toList()); + List messageTemplateCountList = storeMessageDAO.getMessageTemplateCountList(templateIds); + //根据模板id查询 转为map + Map messageTemplateCountMap = messageTemplateCountList.stream().collect(Collectors.toMap(MessageTemplateCountDTO::getTemplateId, x -> x)); + list.forEach(x -> { + x.setCreateUserName(userMap.get(x.getCreateUserId())); + x.setPublishUserName(userMap.get(x.getPublishUserId())); + MessageTemplateCountDTO count = messageTemplateCountMap.getOrDefault(x.getId(), new MessageTemplateCountDTO()); + x.setHandleNum(count.getProcessedStoreCount()); + x.setTotalNum(count.getTotalStoreCount()); + }); + return new PageInfo<>(list); + } + + @Override + public PageInfo getStoreMessageListByTemplateId(StoreMessageRequest request) { + PageHelper.startPage(request.getPageNum(),request.getPageSize()); + List list = storeMessageDAO.getStoreMessageList(request); + if (CollectionUtils.isEmpty(list)){ + return new PageInfo<>(); + } + StoreMessageDetailVO storeMessageDetailVO = new StoreMessageDetailVO(); + List result = new ArrayList<>(); + list.forEach(x->{ + BeanUtils.copyProperties(x,storeMessageDetailVO); + result.add(storeMessageDetailVO); + }); + PageInfo storeMessageDOPageInfo = new PageInfo<>(list); + storeMessageDOPageInfo.setList(result); + return storeMessageDOPageInfo; + } + + @Override + public Boolean batchRevokeNotice(BatchRevokeRequest request, LoginUserInfo user) { + log.info("batchRevokeNotice request:{}", JSONObject.toJSONString(request)); + List ids = request.getIds(); + if (ids == null || ids.size() == 0) { + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + //将消息置为撤销状态 + messageTemplateDAO.batchUpdatePublishStatus(ids); + //将门店未处理的消息置为撤销状态 已处理和撤销的保持不变 + storeMessageDAO.batchRevoke(ids, user.getUserId(), user.getName()); + return Boolean.TRUE; + } + + @Override + public Boolean revokeById(Long id, LoginUserInfo user) { + //查询门店消息 + StoreMessageDO storeMessage = storeMessageDAO.getById(id); + if (storeMessage == null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + if (RevokeStatusEnum.REVOKE.getCode().equals(storeMessage.getRevokeStatus())){ + throw new ServiceException(ErrorCodeEnum.STORE_MESSAGE_REVOKE); + } + if (ProcessStatusEnum.PROCESSED.getCode().equals(storeMessage.getProcessStatus())){ + throw new ServiceException(ErrorCodeEnum.STORE_MESSAGE_HANDLED); + } + storeMessageDAO.revokeById(id,user.getUserId(),user.getName()); + return Boolean.TRUE; + } + + @Override + public List getModuleList(String storeId) { + List moduleAndMatterList = ModuleAndMatterVO.getModuleAndMatterList(); + List list= new ArrayList<>(); + moduleAndMatterList.forEach(x->{ + Integer integer = storeMessageDAO.queryStoreModuleCount(storeId, x.getModuleCode()); + if (integer > 0){ + list.add(x); + } + }); + return list; + } + + @Override + public PageInfo getStorePendingList(StoreMessagePendingRequest request) { + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.selectByMobile(request.getMobile()); + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List storeMessageListByCondition = storeMessageDAO.getStoreMessageListByCondition(request.getStoreId(), request.getModuleCode(), + request.getTodayTask(), request.getPendingFlag(), enterpriseUserDO.getUserId()); + return new PageInfo<>(storeMessageListByCondition); + } + + @Override + public MessageDetailVO getMessageDetail(Long id) { + MessageDetailVO messageDetailVO = storeMessageDAO.getMessageDetail(id); + return messageDetailVO; + } + + @Override + public Boolean readMessage(Long id, PartnerUserInfoVO userInfoVO) { + StoreMessageDO message = storeMessageDAO.getById(id); + if (ProcessStatusEnum.PROCESSED.getCode().equals(message.getProcessStatus())){ + log.info("当前消息已读已处理:{}",JSONObject.toJSONString( message)); + return Boolean.TRUE; + } + message.setReadStatus(ProcessStatusEnum.PROCESSED.getCode()); + message.setReadTime(new Date()); + MessageTemplateDO template = messageTemplateDAO.getById(message.getMessageTemplateId()); + if (ProcessTypeEnum.READ.getCode().equals(template.getProcessType())){ + message.setProcessStatus(ProcessStatusEnum.PROCESSED.getCode()); + message.setProcessTime(new Date()); + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.selectByMobile(userInfoVO.getMobile()); + if (enterpriseUserDO != null){ + message.setActualOperatorId(enterpriseUserDO.getId()); + message.setActualOperatorName(enterpriseUserDO.getName()); + } + } + storeMessageDAO.update( message); + return Boolean.TRUE; + } public Map> getAuthUser(List personInfo, List storeIds){ if (CollectionUtils.isEmpty(personInfo)){ return new HashMap<>(); } - List personIds = personInfo.stream().filter(x -> TypeEnum.PERSON.equals(x.getType())) + List personIds = personInfo.stream().filter(x -> TypeEnum.PERSON.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); - List positionIds = personInfo.stream().filter(x -> TypeEnum.POSITION.equals(x.getType())) + List positionIds = personInfo.stream().filter(x -> TypeEnum.POSITION.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); - List groupIdList = personInfo.stream().filter(x -> TypeEnum.USER_GROUP.equals(x.getType())) + List groupIdList = personInfo.stream().filter(x -> TypeEnum.USER_GROUP.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); - List regionIdList = personInfo.stream().filter(x -> TypeEnum.ORGANIZATION.equals(x.getType())) + List regionIdList = personInfo.stream().filter(x -> TypeEnum.ORGANIZATION.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); //权限 List authStoreUserList = storeService.getStorePositionUserList(storeIds, positionIds, personIds, groupIdList, regionIdList); @@ -183,7 +351,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { * @return */ private List getStoreRange( List commonDTOS){ - List regionIds = commonDTOS.stream().filter(x -> TypeEnum.REGION.equals(x.getType())) + List regionIds = commonDTOS.stream().filter(x -> TypeEnum.REGION.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); List regionDOsByRegionIds = new ArrayList<>(); @@ -196,13 +364,13 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { List storeAreaDTOS = storeMapper.listStoreByRegionPathList(regionFullRegionPathList); storeIdSet = storeAreaDTOS.stream().map(StoreAreaDTO::getStoreId).collect(Collectors.toSet()); } - List storeIdList = commonDTOS.stream().filter(x -> TypeEnum.STORE.equals(x.getType())) + List storeIdList = commonDTOS.stream().filter(x -> TypeEnum.STORE.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(storeIdList)){ //将寻找的门店添加到set中 storeIdSet.addAll(storeIdList); } - List groupList = commonDTOS.stream().filter(x -> TypeEnum.GROUP.equals(x.getType())) + List groupList = commonDTOS.stream().filter(x -> TypeEnum.GROUP.getType().equals(x.getType())) .map(CommonDTO::getValue).collect(Collectors.toList()); //分组 if (CollectionUtils.isNotEmpty(groupList)) { 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 ffed39ac0..844707065 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 @@ -1,13 +1,13 @@ package com.cool.store.controller.webb; import com.cool.store.context.CurrentUserHolder; -import com.cool.store.request.notice.BatchDeletedRequest; -import com.cool.store.request.notice.BatchPublishRequest; -import com.cool.store.request.notice.MatterConfigAddRequest; -import com.cool.store.request.notice.MessageTemplateAddRequest; +import com.cool.store.dto.notice.NoticeDTO; +import com.cool.store.request.notice.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.MessageTemplateService; import com.cool.store.vo.notice.MessageTemplateDetailVO; +import com.cool.store.vo.notice.StoreMessageDetailVO; +import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -58,9 +58,33 @@ public class MessageTemplateController { @PostMapping("/batchPublish") @ApiOperation("批量发布") - public ResponseResult editMessageTemplate(@RequestBody BatchPublishRequest request) { + public ResponseResult batchPublishMessageTemplate(@RequestBody BatchPublishRequest request) { return ResponseResult.success(messageTemplateService.batchPublishMessageTemplate(request, CurrentUserHolder.getUser())); } + @PostMapping("/getMessageTemplateList") + @ApiOperation("通知管理列表/事项管理列表") + public ResponseResult> getMessageTemplateList(@RequestBody MessageTemplateQueryRequest request) { + return ResponseResult.success(messageTemplateService.getMessageTemplateList(request)); + } + + @PostMapping("/getStoreMessageListByTemplateId") + @ApiOperation("进度管理") + public ResponseResult> getStoreMessageListByTemplateId(@RequestBody StoreMessageRequest request) { + return ResponseResult.success(messageTemplateService.getStoreMessageListByTemplateId(request)); + } + + @PostMapping("/batchRevokeNotice") + @ApiOperation("进度管理") + public ResponseResult batchRevokeNotice(@RequestBody BatchRevokeRequest request) { + return ResponseResult.success(messageTemplateService.batchRevokeNotice(request,CurrentUserHolder.getUser())); + } + + @ApiOperation("撤销单个门店消息") + @GetMapping("/revokeById") + public ResponseResult revokeById(@RequestParam("id")Long id) { + return ResponseResult.success(messageTemplateService.revokeById(id,CurrentUserHolder.getUser())); + } + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java new file mode 100644 index 000000000..6139d371e --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java @@ -0,0 +1,59 @@ +package com.cool.store.controller.webc; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.PartnerUserHolder; +import com.cool.store.request.notice.StoreMessagePendingRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.MessageTemplateService; +import com.cool.store.vo.notice.MessageDetailVO; +import com.cool.store.vo.notice.ModuleAndMatterVO; +import com.cool.store.vo.notice.StoreMessageVO; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/7/27 21:04 + * @Version 1.0 + */ +@RestController +@RequestMapping("/mini/notice") +@Api(tags = "mini事项/通知管理") +@Slf4j +public class MiniMessageTemplateController { + + @Resource + private MessageTemplateService messageTemplateService; + + @ApiOperation("获取每个门店需要展示的模块") + @GetMapping("/getModuleListByStoreId") + public ResponseResult> getModuleListByStoreId(@RequestParam("id")String storeId) { + return ResponseResult.success(messageTemplateService.getModuleList(storeId)); + } + + @ApiOperation("获取消息详情") + @GetMapping("/getMessageDetail") + public ResponseResult getMessageDetail(@RequestParam("id")Long id) { + return ResponseResult.success(messageTemplateService.getMessageDetail(id)); + } + + @ApiOperation("待办列表/模块列表") + @GetMapping("/getStorePendingList") + public ResponseResult> getStorePendingList(@RequestBody StoreMessagePendingRequest request) { + return ResponseResult.success(messageTemplateService.getStorePendingList(request)); + } + + @ApiOperation("确认已读") + @GetMapping("/readMessage") + public ResponseResult readMessage(@RequestParam("id")Long id) { + return ResponseResult.success(messageTemplateService.readMessage(id, PartnerUserHolder.getUser())); + } + + +} From 7ba2b33fec49c40b6fb5a7ac92619a017710d068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Mon, 28 Jul 2025 10:36:37 +0800 Subject: [PATCH 05/33] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/StoreMessageMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index 610b153a8..14d725d0a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -120,7 +120,7 @@ update_time = NOW() message_template_id IN - + #{item} AND process_status = 0 From b67b1f4c2d9b2ee782cf9a8e3db68e8528a0a36e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Mon, 28 Jul 2025 10:36:57 +0800 Subject: [PATCH 06/33] =?UTF-8?q?feat=EF=BC=9A=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/service/impl/MessageTemplateServiceImpl.java | 2 ++ .../cool/store/controller/webb/MessageTemplateController.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) 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 5c5f3eb06..26d2b4bc9 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 @@ -34,6 +34,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -241,6 +242,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { } @Override + @Transactional(rollbackFor = Exception.class) public Boolean batchRevokeNotice(BatchRevokeRequest request, LoginUserInfo user) { log.info("batchRevokeNotice request:{}", JSONObject.toJSONString(request)); List ids = request.getIds(); 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 844707065..a431ab605 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 @@ -75,7 +75,7 @@ public class MessageTemplateController { } @PostMapping("/batchRevokeNotice") - @ApiOperation("进度管理") + @ApiOperation("批量撤销") public ResponseResult batchRevokeNotice(@RequestBody BatchRevokeRequest request) { return ResponseResult.success(messageTemplateService.batchRevokeNotice(request,CurrentUserHolder.getUser())); } From 40a8ed9460cee62d601f7bd6aced36a9ff92b289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Mon, 28 Jul 2025 11:19:37 +0800 Subject: [PATCH 07/33] =?UTF-8?q?feat=EF=BC=9Abug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/dao/StoreMessageDAO.java | 7 +++++-- .../cool/store/mapper/StoreMessageMapper.java | 4 +++- .../resources/mapper/StoreMessageMapper.xml | 20 ++++++++++++------- .../com/cool/store/entity/StoreMessageDO.java | 2 +- .../cool/store/vo/notice/MessageDetailVO.java | 2 ++ .../store/service/MessageTemplateService.java | 2 +- .../impl/MessageTemplateServiceImpl.java | 13 ++++++++++-- .../webc/MiniMessageTemplateController.java | 2 +- 8 files changed, 37 insertions(+), 15 deletions(-) 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 7f3e25032..888cec788 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 @@ -73,8 +73,11 @@ public class StoreMessageDAO { return storeMessageMapper.revokeById(id,userId,userName); } - public Integer queryStoreModuleCount(String storeId, Integer moduleCode){ - return storeMessageMapper.queryStoreModuleCount(storeId,moduleCode); + public Integer queryStoreModuleCount(String storeId,String userId, Integer moduleCode){ + if (storeId == null|| userId == null){ + return 0; + } + return storeMessageMapper.queryStoreModuleCount(storeId,userId,moduleCode); } public List getStoreMessageListByCondition(String storeId, Integer moduleCode, Integer todayTask, Integer pendingFlag, String userId){ 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 475ad3519..54a01ecf9 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 @@ -23,7 +23,9 @@ public interface StoreMessageMapper extends Mapper { int revokeById(@Param("id") Long id, @Param("userId") String userId, @Param("userName") String userName); - Integer queryStoreModuleCount(@Param("storeId") String storeId, @Param("moduleCode") Integer moduleCode); + Integer queryStoreModuleCount(@Param("storeId") String storeId, + @Param("userId") String userId, + @Param("moduleCode") Integer moduleCode); List getStoreMessageListByCondition(@Param("storeId") String storeId, @Param("moduleCode") Integer moduleCode, diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index 14d725d0a..e5ae6486f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -146,7 +146,8 @@ select count(1) from zxjp_store_message a left join zxjp_message_template b on a.message_template_id = b.id where a.store_id = #{storeId} - and b.module_id = #{moduleCode} + and b.module_code = #{moduleCode} + and a.operator_list like concat('%',#{userId},'%') limit 1 @@ -169,15 +170,19 @@ and a.store_id = #{storeId} - and b.module_id = #{moduleCode} + and b.module_code = #{moduleCode} and b.today_task = #{todayTask} - and a.process_status = #{pendingFlag} + and a.process_status = 0 and (b.remind_type = 1 or (b.remind_type = 2 and NOW() BETWEEN b.remind_start_time AND b.remind_end_time )) + + and a.operator_list like concat('%',#{userId},'%') + + and revoke_status = 0 @@ -186,13 +191,14 @@ diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java index 99faf5ac9..5a70e2823 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/StoreMessageDO.java @@ -79,7 +79,7 @@ public class StoreMessageDO { * 撤销状态(0:未撤销 1:已撤销) */ @Column(name = "revoke_status") - private Boolean revokeStatus; + private Integer revokeStatus; /** * 撤销时间 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 5c94b1610..d5e715e59 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 @@ -30,4 +30,6 @@ public class MessageDetailVO { @ApiModelProperty("发布人") private String publishUserName; + private String publishUserId; + } 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 7018f5bbc..190a7ea30 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 @@ -84,7 +84,7 @@ public interface MessageTemplateService { */ Boolean revokeById(Long id, LoginUserInfo user); - List getModuleList(String storeId); + List getModuleList(String storeId,PartnerUserInfoVO userInfoVO); PageInfo getStorePendingList(StoreMessagePendingRequest request); 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 26d2b4bc9..69b01007b 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 @@ -274,11 +274,16 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { } @Override - public List getModuleList(String storeId) { + public List getModuleList(String storeId,PartnerUserInfoVO userInfoVO) { List moduleAndMatterList = ModuleAndMatterVO.getModuleAndMatterList(); + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.selectByMobile("18375320931"); + if (enterpriseUserDO == null){ + enterpriseUserDO = new EnterpriseUserDO(); + } List list= new ArrayList<>(); + EnterpriseUserDO finalEnterpriseUserDO = enterpriseUserDO; moduleAndMatterList.forEach(x->{ - Integer integer = storeMessageDAO.queryStoreModuleCount(storeId, x.getModuleCode()); + Integer integer = storeMessageDAO.queryStoreModuleCount(storeId, finalEnterpriseUserDO.getUserId(), x.getModuleCode()); if (integer > 0){ list.add(x); } @@ -298,6 +303,10 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { @Override public MessageDetailVO getMessageDetail(Long id) { MessageDetailVO messageDetailVO = storeMessageDAO.getMessageDetail(id); + if (messageDetailVO!=null&&messageDetailVO.getPublishUserId()!=null){ + EnterpriseUserDO userInfoById = enterpriseUserDAO.getUserInfoById(messageDetailVO.getPublishUserId()); + messageDetailVO.setPublishUserName(userInfoById.getName()); + } return messageDetailVO; } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java index 6139d371e..b3ffcf5d3 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java @@ -34,7 +34,7 @@ public class MiniMessageTemplateController { @ApiOperation("获取每个门店需要展示的模块") @GetMapping("/getModuleListByStoreId") public ResponseResult> getModuleListByStoreId(@RequestParam("id")String storeId) { - return ResponseResult.success(messageTemplateService.getModuleList(storeId)); + return ResponseResult.success(messageTemplateService.getModuleList(storeId, PartnerUserHolder.getUser())); } @ApiOperation("获取消息详情") From 3b025517883e74e991198f6742403eb0801aa4b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Mon, 28 Jul 2025 14:53:16 +0800 Subject: [PATCH 08/33] =?UTF-8?q?feat=EF=BC=9A=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/StoreMessageMapper.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index e5ae6486f..b32903191 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -184,8 +184,7 @@ and revoke_status = 0 - - + order by b.today_task desc, a.create_time desc From 839d5421ad1bb6d3e869fb8a3c3b41ff9268cb0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 31 Jul 2025 10:53:55 +0800 Subject: [PATCH 25/33] =?UTF-8?q?feat=EF=BC=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/StoreMessageMapper.xml | 4 +++- .../cool/store/vo/notice/MessageDetailVO.java | 4 ++++ .../store/service/MessageTemplateService.java | 2 ++ .../impl/MessageTemplateServiceImpl.java | 18 ++++++++++++++++++ .../webc/MiniMessageTemplateController.java | 5 +++++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index a5e4d8fce..7022ac172 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -195,9 +195,11 @@ b.message_image, a.create_time, a.read_status as readStatus, + a.process_status as processStatus, b.deadline as deadline, b.publisher_user_id as publishUserId, - b.message_content as messageContent + b.message_content as messageContent, + b.process_type as processType, from zxjp_store_message a left join zxjp_message_template b on a.message_template_id = b.id 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 f075779ac..78fa5049a 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 @@ -36,4 +36,8 @@ public class MessageDetailVO { private Integer readStatus; + private Integer processStatus; + + private Integer processType; + } 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 190a7ea30..dd9424a70 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 @@ -92,5 +92,7 @@ public interface MessageTemplateService { Boolean readMessage(Long id, PartnerUserInfoVO userInfoVO); + Boolean handleMessage(Long id, PartnerUserInfoVO userInfoVO); + } 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 a96b8f61b..e321196a6 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 @@ -340,6 +340,24 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { return Boolean.TRUE; } + @Override + public Boolean handleMessage(Long id, PartnerUserInfoVO userInfoVO) { + log.info("handleMessage request:{},处理人:{}", JSONObject.toJSONString(id), userInfoVO.getUsername()); + StoreMessageDO message = storeMessageDAO.getById(id); + if (message==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + message.setProcessStatus(ProcessStatusEnum.PROCESSED.getCode()); + message.setProcessTime(new Date()); + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.selectByMobile(userInfoVO.getMobile()); + if (enterpriseUserDO != null){ + message.setActualOperatorId(enterpriseUserDO.getId()); + message.setActualOperatorName(enterpriseUserDO.getName()); + } + storeMessageDAO.update( message); + return 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/webc/MiniMessageTemplateController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java index 0260cb074..9d46ede11 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniMessageTemplateController.java @@ -55,5 +55,10 @@ public class MiniMessageTemplateController { return ResponseResult.success(messageTemplateService.readMessage(id, PartnerUserHolder.getUser())); } + @ApiOperation("确认已处理") + @GetMapping("/handleMessage") + public ResponseResult handleMessage(@RequestParam("id")Long id) { + return ResponseResult.success(messageTemplateService.handleMessage(id, PartnerUserHolder.getUser())); + } } From 365e87964c95fe27b6c74c997aaf99ca96b7d451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 31 Jul 2025 11:12:33 +0800 Subject: [PATCH 26/33] =?UTF-8?q?feat=EF=BC=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/StoreMessageMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index 7022ac172..0853e4cb9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -199,7 +199,7 @@ b.deadline as deadline, b.publisher_user_id as publishUserId, b.message_content as messageContent, - b.process_type as processType, + b.process_type as processType from zxjp_store_message a left join zxjp_message_template b on a.message_template_id = b.id From d3c10b8dafa722a31d8dfac9162b7c4eeb95834e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 31 Jul 2025 11:33:45 +0800 Subject: [PATCH 27/33] =?UTF-8?q?feat=EF=BC=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/vo/notice/StoreMessageDetailVO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java index 6acc71119..ed8cafb55 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/notice/StoreMessageDetailVO.java @@ -73,7 +73,7 @@ public class StoreMessageDetailVO{ * 撤销状态(0:未撤销 1:已撤销) */ @ApiModelProperty("撤销状态(0:未撤销 1:已撤销)") - private Boolean revokeStatus; + private Integer revokeStatus; /** * 撤销时间 From 918c980a12e48fe329363ae415711e9532da080c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 31 Jul 2025 14:51:32 +0800 Subject: [PATCH 28/33] =?UTF-8?q?feat=EF=BC=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/entity/MessageTemplateDO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8cfc360a6..fc0f7b28b 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 @@ -78,7 +78,7 @@ public class MessageTemplateDO { * 今日必办标识(0:否 1:是) */ @Column(name = "today_task") - private Boolean todayTask; + private Integer todayTask; /** * 消息图片URL From 565f84dbc625bb89e67882f8f26e91a2ad0bcbf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 31 Jul 2025 16:39:58 +0800 Subject: [PATCH 29/33] =?UTF-8?q?feat=EF=BC=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/StoreMessageMapper.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml index 0853e4cb9..d13d7bb65 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMessageMapper.xml @@ -185,7 +185,13 @@ and revoke_status = 0 - order by b.today_task desc, a.create_time desc + + order by b.today_task desc, a.create_time desc + + + a.create_time desc + + From 75309cd187a2fd010ffca42cd9a178d6d090810a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 31 Jul 2025 18:47:42 +0800 Subject: [PATCH 31/33] =?UTF-8?q?feat=EF=BC=9A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/vo/notice/MessageTemplateDetailVO.java | 4 ++++ 1 file changed, 4 insertions(+) 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 e953a0ccf..793fda56d 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 @@ -20,6 +20,8 @@ public class MessageTemplateDetailVO { @ApiModelProperty("模块") private Integer moduleCode; @ApiModelProperty("事项类型") + private Integer matterType; + @ApiModelProperty("提醒类型") private Integer remindType; @ApiModelProperty("提醒时间段 开始时间 阶段提醒时传") private Date remindStartTime; @@ -47,6 +49,8 @@ public class MessageTemplateDetailVO { private Integer handleNum; @ApiModelProperty("总数") private Integer totalNum; + @ApiModelProperty("系统来源") + private String systemSource; } From 247a7091695fa9aca1def0fb696bf6c6cc1f11ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 5 Aug 2025 11:56:46 +0800 Subject: [PATCH 32/33] =?UTF-8?q?feat=EF=BC=9A=E9=97=A8=E5=BA=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/dto/StoreDTO.java | 14 ++++++++++++++ .../cool/store/service/impl/StoreServiceImpl.java | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) 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 876ac8795..0c290f15b 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 @@ -3,6 +3,8 @@ package com.cool.store.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + /** * @Author suzhuhong * @Date 2025/5/13 10:56 @@ -33,5 +35,17 @@ public class StoreDTO { private String storeType; @ApiModelProperty("品牌") private String brand; + @ApiModelProperty("门店地址") + private String storeAddress; + @ApiModelProperty("门店联系方式") + private String telephone; + @ApiModelProperty("门头照") + private String storeAvatar; + @ApiModelProperty("月租金") + private BigDecimal monthlyRent; + @ApiModelProperty("月人员工资") + private BigDecimal monthlyPersonnelSalary; + @ApiModelProperty("月水电费") + private BigDecimal MonthlyExpenses; } 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 7ef642edd..32d445fad 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 @@ -353,7 +353,9 @@ public class StoreServiceImpl implements StoreService { StoreDTO dto = new StoreDTO(); dto.setStoreName(store.getStoreName()); dto.setStoreCode(store.getStoreNum()); - + dto.setStoreAddress(store.getStoreAddress()); + dto.setStoreAvatar(store.getAvatar()); + dto.setTelephone(store.getTelephone()); try { // 解析门店的扩展字段 Map extendFields = objectMapper.readValue( From 62e7aafd725d51b95d0628f19181ffcd30355873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 5 Aug 2025 12:00:12 +0800 Subject: [PATCH 33/33] =?UTF-8?q?feat=EF=BC=9A=E9=97=A8=E5=BA=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/dto/StoreDTO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0c290f15b..64e64ff6a 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 @@ -46,6 +46,6 @@ public class StoreDTO { @ApiModelProperty("月人员工资") private BigDecimal monthlyPersonnelSalary; @ApiModelProperty("月水电费") - private BigDecimal MonthlyExpenses; + private BigDecimal monthlyOtherExpenses; }