feat:事项

This commit is contained in:
苏竹红
2025-07-27 22:20:33 +08:00
parent 5035a7e054
commit 00f883192a
23 changed files with 1040 additions and 39 deletions

View File

@@ -26,7 +26,7 @@
</resultMap>
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO store_message (
INSERT INTO zxjp_store_message (
store_id,
store_code,
store_name,
@@ -40,17 +40,164 @@
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{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}
)
</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,jdbcType=BIGINT}
</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,jdbcType=VARCHAR},'%')
OR store_name LIKE CONCAT('%',#{request.keyword,jdbcType=VARCHAR},'%')
)
</if>
AND revoke_status = 0
</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,jdbcType=BIGINT},
revoke_operator_name = #{userName,jdbcType=VARCHAR},
update_time = NOW()
<where>
message_template_id IN
<foreach item="item" collection="templateIds" 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,jdbcType=BIGINT},
revoke_operator_name = #{userName,jdbcType=VARCHAR},
update_time = NOW()
WHERE
id = #{id,jdbcType=BIGINT}
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_id = #{moduleCode}
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
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_id = #{moduleCode}
</if>
<if test="todayTask != null">
and b.today_task = #{todayTask}
</if>
<if test="pendingFlag != null">
and a.process_status = #{pendingFlag}
and (b.remind_type = 1 or (b.remind_type = 2 and NOW() BETWEEN b.remind_start_time AND b.remind_end_time ))
</if>
</where>
</select>
<select id="getMessageDetail" resultType="com.cool.store.vo.notice.MessageDetailVO">
select
a.id,
a.message_title,
a.message_image,
a.create_time,
a.publish_user_name
from
zxjp_store_message a
left join zxjp_message_template b on a.template_id = b.id
where
a.id = #{id}
</select>
</mapper>