Merge branch 'master' into cc_20250723_Decoration

# Conflicts:
#	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
This commit is contained in:
shuo.wang
2025-08-07 18:03:44 +08:00
65 changed files with 3480 additions and 14 deletions

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,76 @@
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;
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<MessageTemplateDO> getByIds(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)){
return new ArrayList<>();
}
return messageTemplateMapper.selectByIds(ids);
}
public int updateDeleteStatusBatch(List<Long> ids,String userId) {
return messageTemplateMapper.updateDeleteStatusBatch(ids,userId);
}
public List<NoticeDTO> getMessageTemplateList(MessageTemplateQueryRequest request) {
return messageTemplateMapper.getMessageTemplateList(request);
}
public int batchUpdateStoreInfoAndUserInfo(List<Long> ids,
String storeInfo,
String userInfo,
String userId) {
if (CollectionUtils.isEmpty(ids)){
return 0;
}
return messageTemplateMapper.batchUpdateStoreInfoAndUserInfo(ids,storeInfo,userInfo,userId);
}
public int batchUpdatePublishStatus(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)){
return 0;
}
return messageTemplateMapper.batchUpdatePublishStatus(ids);
}
}

View File

@@ -0,0 +1,90 @@
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;
/**
* @Author suzhuhong
* @Date 2025/7/25 15:04
* @Version 1.0
*/
@Repository
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<StoreMessageDO> list){
if (CollectionUtils.isEmpty(list)){
return 0;
}
return storeMessageMapper.insertBatch(list);
}
public List<MessageTemplateCountDTO> getMessageTemplateCountList(List<Long> templateIds){
if (CollUtil.isEmpty(templateIds)){
return new ArrayList<>();
}
return storeMessageMapper.getMessageTemplateCountList(templateIds);
}
public List<StoreMessageDO> getStoreMessageList(StoreMessageRequest request){
return storeMessageMapper.getStoreMessageList(request);
}
public Integer batchRevoke(List<Long> 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,String userId, Integer moduleCode){
if (storeId == null|| userId == null){
return 0;
}
return storeMessageMapper.queryStoreModuleCount(storeId,userId,moduleCode);
}
public List<StoreMessageVO> 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);
}
}

View File

@@ -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<String> getUserIdsByGroupIdList(@Param("groupIdList") List<String> groupIdList);
}

View File

@@ -99,4 +99,6 @@ public interface EnterpriseUserMapper {
* @return
*/
List<EnterpriseUserDO> searchUserByUserIdsAndKeyword( @Param("userIdList") List<String> userIdList, @Param("keyword") String keyword);
List<String> getUserIdsByRegionIdList( @Param("regionIdList") List<String> regionIdList);
}

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,30 @@
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;
import java.util.List;
public interface MessageTemplateMapper extends Mapper<MessageTemplateDO> {
List<MessageTemplateDO> selectByIds(@Param("ids") List<Long> ids);
int updateDeleteStatusBatch(@Param("ids") List<Long> ids, @Param("userId") String userId);
List<NoticeDTO> getMessageTemplateList(@Param("request") MessageTemplateQueryRequest request);
int batchUpdateStoreInfoAndUserInfo(@Param("ids") List<Long> ids,
@Param("storeInfo") String storeInfo,
@Param("userInfo") String userInfo,
@Param("userId") String userId);
int batchUpdatePublishStatus(@Param("ids") List<Long> ids);
}

View File

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

View File

@@ -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<StoreGroupMappingDO> getStoreGroupMappingByGroupIDs( @Param("groupIds")List<String> groupIds);
}

View File

@@ -45,4 +45,6 @@ public interface StoreMapper {
List<StoreDO> getStoreNumByStoreCodes(@Param("storeCodeIds") List<String> storeCodeIds);
List<StoreAreaDTO> listStoreByRegionPathList(@Param("regionPathList") List<String> regionPathList);
}

View File

@@ -0,0 +1,38 @@
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;
import java.util.List;
public interface StoreMessageMapper extends Mapper<StoreMessageDO> {
int insertBatch(@Param("list") List<StoreMessageDO> list);
List<MessageTemplateCountDTO> getMessageTemplateCountList(@Param("templateIds") List<Long> templateIds);
List<StoreMessageDO> getStoreMessageList(@Param("request") StoreMessageRequest request);
int batchRevoke(@Param("ids") List<Long> 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("userId") String userId,
@Param("moduleCode") Integer moduleCode);
List<StoreMessageVO> 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);
}

View File

@@ -203,4 +203,15 @@
</if>
</where>
</select>
<select id="getUserIdsByRegionIdList" resultType="string">
select
user_id
from enterprise_user_${enterpriseId} where user_id != 'a100000001' and active=1
<if test="regionIdList != null and regionIdList.size >0 ">
<foreach collection="regionIdList" item="regionId" separator=" or " open="and (" close=" )">
user_region_ids like concat('%/', #{regionId}, '/%')
</foreach>
</if>
</select>
</mapper>

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,130 @@
<?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>
<select id="selectByIds" resultMap="BaseResultMap">
SELECT
*
FROM zxjp_message_template
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id,jdbcType=BIGINT}
</foreach>
AND deleted = 0
ORDER BY create_time DESC
</select>
<update id="updateDeleteStatusBatch" >
UPDATE zxjp_message_template
SET
deleted = 1,
update_time = NOW(), updater_user_id = #{userId,jdbcType=VARCHAR}
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id,jdbcType=BIGINT}
</foreach>
</update>
<select id="getMessageTemplateList" resultType="com.cool.store.dto.notice.NoticeDTO" >
SELECT
id as id,
message_code as messageCode,
module_code as moduleCode,
matter_type as matterType,
message_title as messageTitle,
system_source as systemSource,
process_type as processType,
remind_type as remindType,
remind_start_time as remindStartTime,
remind_end_time as remindEndTime,
deadline as deadline,
today_task as todayTask,
message_image as messageImage,
publish_status as publishStatus,
publish_time as publishTime,
publisher_user_id as publishUserId,
create_user_id as createUserId,
create_time as createTime
FROM zxjp_message_template
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.messageTitle != null and request.messageTitle != ''">
AND message_title LIKE CONCAT('%', #{request.messageTitle,jdbcType=VARCHAR}, '%')
</if>
<if test="request.todayTask != null">
AND today_task = #{request.todayTask,jdbcType=BIT}
</if>
<if test="request.systemSource != null and request.systemSource != ''">
AND system_source = #{request.systemSource,jdbcType=VARCHAR}
</if>
<if test="request.publishStatus != null">
AND publish_status = #{request.publishStatus,jdbcType=BIT}
</if>
<if test="request.publishUserId != null">
AND publisher_user_id = #{request.publishUserId,jdbcType=BIT}
</if>
ORDER BY create_time DESC
</select>
<update id="batchUpdateStoreInfoAndUserInfo">
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
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id,jdbcType=BIGINT}
</foreach>
</update>
<update id="batchUpdatePublishStatus">
UPDATE zxjp_message_template
SET
publish_status = 2
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id,jdbcType=BIGINT}
</foreach>
</update>
</mapper>

View File

@@ -0,0 +1,19 @@
<?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.StoreGroupMappingMapper">
<select id="getStoreGroupMappingByGroupIDs"
resultType="com.cool.store.entity.StoreGroupMappingDO">
select
group_id as groupId,
store_id as storeId
from store_group_mapping_${enterpriseId}
<where>
<foreach collection="groupIds" open=" group_id in (" close=")" separator="," item="groupId">
#{groupId}
</foreach>
</where>
group by group_id,store_id
</select>
</mapper>

View File

@@ -126,6 +126,7 @@
<select id="getStoreAreaList" resultType="com.cool.store.dto.store.StoreAreaDTO">
select
a.store_num as storeCode,
a.store_name as storeName,
a.store_id as storeId,
a.region_path as regionPath,
@@ -155,4 +156,20 @@
</if>
</select>
<select id="listStoreByRegionPathList" resultType="com.cool.store.dto.store.StoreAreaDTO">
select
store_name as storeName,
store_id as storeId,
region_path as regionPath,
region_id as regionId,
region_id as areaId
from store_${enterpriseId}
where is_delete = 'effective'
<if test="regionPathList != null and regionPathList.size >0 ">
<foreach collection="regionPathList" item="regionPath" separator=" or " open="and (" close=" )">
region_path like concat(#{regionPath}, '%')
</foreach>
</if>
</select>
</mapper>

View File

@@ -0,0 +1,219 @@
<?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" property="id" />
<result column="store_id" property="storeId" />
<result column="store_code" property="storeCode" />
<result column="store_name" property="storeName" />
<result column="message_template_id" property="messageTemplateId" />
<result column="read_status" jdbcType="BIT" property="readStatus" />
<result column="read_time" property="readTime" />
<result column="process_status" jdbcType="TINYINT" property="processStatus" />
<result column="process_time" property="processTime" />
<result column="actual_operator_id" property="actualOperatorId" />
<result column="actual_operator_name" property="actualOperatorName" />
<result column="revoke_status" jdbcType="BIT" property="revokeStatus" />
<result column="revoke_time" property="revokeTime" />
<result column="revoke_operator_id" property="revokeOperatorId" />
<result column="revoke_operator_name" property="revokeOperatorName" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="operator_list" property="operatorList" />
</resultMap>
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO zxjp_store_message (
store_id,
store_code,
store_name,
message_template_id,
read_status,
read_time,
process_status,
process_time,
operator_list
)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.storeId},
#{item.storeCode},
#{item.storeName},
#{item.messageTemplateId},
#{item.readStatus},
#{item.readTime},
#{item.processStatus},
#{item.processTime},
#{item.operatorList}
)
</foreach>
</insert>
<select id="getMessageTemplateCountList" resultType="com.cool.store.dto.notice.MessageTemplateCountDTO">
SELECT
message_template_id AS templateId,
COUNT(DISTINCT store_id) AS totalStoreCount,
SUM(CASE WHEN process_status = 1 THEN 1 ELSE 0 END) AS processedStoreCount
FROM
zxjp_store_message
<where>
message_template_id IN
<foreach item="item" collection="templateIds" index="index" separator="," close=")" open="(">
#{item}
</foreach>
</where>
GROUP BY
message_template_id
</select>
<select id="getStoreMessageList" resultMap="BaseResultMap">
SELECT
id,
store_id,
store_code,
store_name,
message_template_id,
read_status,
read_time,
process_status,
process_time,
actual_operator_id,
actual_operator_name,
revoke_status,
revoke_time,
revoke_operator_id,
revoke_operator_name,
create_time,
update_time
FROM zxjp_store_message
<where>
<if test="request.templateId != null">
AND message_template_id = #{request.templateId}
</if>
<if test="request.readStatus != null">
AND read_status = #{request.readStatus,jdbcType=BIT}
</if>
<if test="request.processStatus != null">
AND process_status = #{request.processStatus,jdbcType=TINYINT}
</if>
<if test="request.keyword != null">
AND ( store_code LIKE CONCAT('%',#{request.keyword},'%')
OR store_name LIKE CONCAT('%',#{request.keyword},'%')
)
</if>
</where>
ORDER BY create_time DESC
</select>
<update id="batchRevoke">
UPDATE zxjp_store_message
SET
revoke_status = 1,
revoke_time = NOW(),
revoke_operator_id = #{userId},
revoke_operator_name = #{userName},
update_time = NOW()
<where>
message_template_id IN
<foreach item="item" collection="ids" index="index" separator="," close=")" open="(">
#{item}
</foreach>
AND process_status = 0
AND revoke_status = 0
</where>
</update>
<update id="revokeById">
UPDATE zxjp_store_message
SET
revoke_status = 1,
revoke_time = NOW(),
revoke_operator_id = #{userId},
revoke_operator_name = #{userName},
update_time = NOW()
WHERE
id = #{id}
AND process_status = 0
AND revoke_status = 0
</update>
<select id="queryStoreModuleCount" resultType="java.lang.Integer">
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_code = #{moduleCode}
and a.operator_list like concat('%',#{userId},'%')
limit 1
</select>
<select id="getStoreMessageListByCondition" resultType="com.cool.store.vo.notice.StoreMessageVO">
select
a.id,
a.store_id as storeId,
a.store_code as storeCode,
a.message_template_id as templateId,
a.read_status as readStatus,
a.process_status as processStatus,
a.create_time as createTime,
b.module_code as moduleCode,
b.message_title as messageTitle,
b.message_image as messageImage,
b.today_task as todayTask
from zxjp_store_message a
left join zxjp_message_template b on a.message_template_id = b.id
<where>
<if test="storeId != null">
and a.store_id = #{storeId}
</if>
<if test="moduleCode != null">
and b.module_code = #{moduleCode}
</if>
<if test="todayTask != null">
and b.today_task = #{todayTask}
</if>
<if test="pendingFlag != null">
and a.process_status = 0
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 ))
</if>
<if test="userId != null">
and a.operator_list like concat('%',#{userId},'%')
</if>
and revoke_status = 0
</where>
<if test="pendingFlag != null">
order by b.today_task desc, a.create_time desc
</if>
<if test="pendingFlag == null">
order by a.create_time desc
</if>
</select>
<select id="getMessageDetail" resultType="com.cool.store.vo.notice.MessageDetailVO">
select
a.id,
b.message_title,
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.process_type as processType
from
zxjp_store_message a
left join zxjp_message_template b on a.message_template_id = b.id
where
a.id = #{id}
</select>
</mapper>

View File

@@ -0,0 +1,16 @@
<?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.EnterpriseUserGroupMappingMapper">
<select id="getUserIdsByGroupIdList" resultType="string">
select
user_id
from enterprise_user_group_mapping_${enterpriseId}
where group_id in (
<foreach collection="groupIdList" item="groupId" separator=",">
#{groupId}
</foreach>
)
</select>
</mapper>