feat:事项配置

This commit is contained in:
苏竹红
2025-07-24 17:28:42 +08:00
parent 4ba6266f5c
commit b10f129271
29 changed files with 2462 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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<MatterTypeEnum> matterTypeEnums) {
this.code = code;
this.message = message;
this.matterTypeEnums = matterTypeEnums;
}
private Integer code;
private String message;
private List<MatterTypeEnum> 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<MatterTypeEnum> getMatterTypeEnums() {
return matterTypeEnums;
}
public void setMatterTypeEnums(List<MatterTypeEnum> matterTypeEnums) {
this.matterTypeEnums = matterTypeEnums;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<Long> ids, String userId){
if (CollectionUtils.isEmpty(ids)){
return 0;
}
return matterConfigMapper.updateDeleteStatus(ids,userId);
}
public List<MatterConfigDO> ListByCondition(MatterConfigQueryRequest request){
return matterConfigMapper.ListByCondition(request);
}
}

View File

@@ -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<MatterConfigDO> {
/**
* 强制修改
* @param matterConfigDO
* @return
*/
int updateForce(@Param("matterConfigDO") MatterConfigDO matterConfigDO);
/**
* 批量修改删除状态
*/
int updateDeleteStatus(@Param("ids") List<Long> ids, @Param("userId") String userId);
/**
* 条件查询
* @param request
* @return
*/
List<MatterConfigDO> ListByCondition(@Param("request") MatterConfigQueryRequest request);
}

View File

@@ -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<MessageTemplateDO> {
}

View File

@@ -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<StoreMessageDO> {
}

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.MatterConfigMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.MatterConfigDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="module_code" jdbcType="TINYINT" property="moduleCode" />
<result column="matter_type" jdbcType="TINYINT" property="matterType" />
<result column="system_source" jdbcType="VARCHAR" property="systemSource" />
<result column="jump_type" jdbcType="BIT" property="jumpType" />
<result column="jump_url" jdbcType="VARCHAR" property="jumpUrl" />
<result column="status" jdbcType="BIT" property="status" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_user_id" jdbcType="VARCHAR" property="createUserId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="default_handle_person_info" jdbcType="LONGVARCHAR" property="defaultHandlePersonInfo" />
<result column="default_store_info" jdbcType="LONGVARCHAR" property="defaultStoreInfo" />
</resultMap>
<update id="updateForce" parameterType="com.cool.store.entity.MatterConfigDO">
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>
<update id="updateDeleteStatus" parameterType="map">
UPDATE zxjp_matter_config
SET
deleted = 1,
update_time = now(),
update_user_id = #{userId,jdbcType=VARCHAR}
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id,jdbcType=BIGINT}
</foreach>
</update>
<select id="ListByCondition" resultMap="BaseResultMap">
SELECT
*
FROM zxjp_matter_config
WHERE deleted = 0
<if test="request.moduleCode != null">
AND module_code = #{request.moduleCode,jdbcType=TINYINT}
</if>
<if test="request.matterType != null">
AND matter_type = #{request.matterType,jdbcType=TINYINT}
</if>
<if test="request.systemSource != null and request.systemSource != ''">
AND system_source = #{request.systemSource,jdbcType=VARCHAR}
</if>
<if test="request.status != null">
AND status = #{request.status,jdbcType=BIT}
</if>
ORDER BY create_time DESC
</select>
</mapper>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.MessageTemplateMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.MessageTemplateDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="message_code" jdbcType="VARCHAR" property="messageCode" />
<result column="module_code" jdbcType="TINYINT" property="moduleCode" />
<result column="matter_type" jdbcType="TINYINT" property="matterType" />
<result column="message_title" jdbcType="VARCHAR" property="messageTitle" />
<result column="system_source" jdbcType="VARCHAR" property="systemSource" />
<result column="process_type" jdbcType="TINYINT" property="processType" />
<result column="remind_type" jdbcType="TINYINT" property="remindType" />
<result column="remind_start_time" jdbcType="TIMESTAMP" property="remindStartTime" />
<result column="remind_end_time" jdbcType="TIMESTAMP" property="remindEndTime" />
<result column="deadline" jdbcType="TIMESTAMP" property="deadline" />
<result column="today_task" jdbcType="BIT" property="todayTask" />
<result column="message_image" jdbcType="VARCHAR" property="messageImage" />
<result column="publish_status" jdbcType="BIT" property="publishStatus" />
<result column="publish_time" jdbcType="TIMESTAMP" property="publishTime" />
<result column="publisher_user_id" jdbcType="BIGINT" property="publisherUserId" />
<result column="create_user_id" jdbcType="BIGINT" property="createUserId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="updater_user_id" jdbcType="BIGINT" property="updaterUserId" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="BIT" property="deleted" />
<result column="message_content" jdbcType="LONGVARCHAR" property="messageContent" />
<result column="handle_person_info" jdbcType="LONGVARCHAR" property="handlePersonInfo" />
<result column="store_info" jdbcType="LONGVARCHAR" property="storeInfo" />
</resultMap>
</mapper>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cool.store.mapper.StoreMessageMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.StoreMessageDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="store_id" jdbcType="VARCHAR" property="storeId" />
<result column="store_code" jdbcType="VARCHAR" property="storeCode" />
<result column="store_name" jdbcType="VARCHAR" property="storeName" />
<result column="message_template_id" jdbcType="BIGINT" property="messageTemplateId" />
<result column="read_status" jdbcType="BIT" property="readStatus" />
<result column="read_time" jdbcType="TIMESTAMP" property="readTime" />
<result column="process_status" jdbcType="TINYINT" property="processStatus" />
<result column="process_time" jdbcType="TIMESTAMP" property="processTime" />
<result column="actual_operator_id" jdbcType="BIGINT" property="actualOperatorId" />
<result column="actual_operator_name" jdbcType="VARCHAR" property="actualOperatorName" />
<result column="revoke_status" jdbcType="BIT" property="revokeStatus" />
<result column="revoke_time" jdbcType="TIMESTAMP" property="revokeTime" />
<result column="revoke_operator_id" jdbcType="BIGINT" property="revokeOperatorId" />
<result column="revoke_operator_name" jdbcType="VARCHAR" property="revokeOperatorName" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="operator_list" jdbcType="LONGVARCHAR" property="operatorList" />
</resultMap>
</mapper>

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<CommonDTO> storeInfoList;
@ApiModelProperty( "默认处理人信息 type[person position userGroup organization]")
List<CommonDTO> userInfoList;
}

View File

@@ -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<Long> ids;
}

View File

@@ -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;
}

View File

@@ -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<CommonDTO> storeInfoList;
@ApiModelProperty( "默认处理人信息 type[person position userGroup organization]")
List<CommonDTO> userInfoList;
}

View File

@@ -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<MatterTypeVO> matterTypeList;
public ModuleAndMatterVO(Integer moduleCode, String moduleName, List<MatterTypeVO> 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<ModuleAndMatterVO> getModuleAndMatterList() {
return Arrays.stream(ModuleCodeEnum.values())
.map(module -> new ModuleAndMatterVO(
module.getCode(),
module.getMessage(),
convertMatterTypes(module.getMatterTypeEnums())
))
.collect(Collectors.toList());
}
private static List<MatterTypeVO> convertMatterTypes(List<MatterTypeEnum> matterTypeEnums) {
return matterTypeEnums.stream()
.map(matterType -> new MatterTypeVO(
matterType.getCode(),
matterType.getMessage()
))
.collect(Collectors.toList());
}
}

View File

@@ -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<Long> ids, LoginUserInfo currentUser);
/**
* 查询配置
* @param request
* @return
*/
PageInfo<MatterAndMatterDetailVO> listByCondition(MatterConfigQueryRequest request);
}

View File

@@ -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<Long> ids, LoginUserInfo currentUser) {
matterConfigDAO.batchDelete(ids,currentUser.getUserId());
return Boolean.TRUE;
}
@Override
public PageInfo<MatterAndMatterDetailVO> listByCondition(MatterConfigQueryRequest request) {
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<MatterConfigDO> matterConfigDOS = matterConfigDAO.ListByCondition(request);
if (CollectionUtils.isEmpty(matterConfigDOS)){
return new PageInfo<>();
}
PageInfo result = new PageInfo<>(matterConfigDOS);
List<MatterAndMatterDetailVO> 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;
}
}

View File

@@ -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<List<ModuleAndMatterVO>> getShopSubStageStatusEnum() {
return ResponseResult.success(ModuleAndMatterVO.getModuleAndMatterList());
}
}

View File

@@ -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<MatterAndMatterDetailVO> listByCondition(@RequestBody MatterConfigQueryRequest request) {
return matterConfigService.listByCondition(request);
}
}