implement notify
This commit is contained in:
@@ -51,3 +51,24 @@ cors:
|
||||
# 允许访问的客户端域名,如:http://web.xxx.com,* 表示不做任何限制(不做任何限制时 allow-credentials 无效)
|
||||
allow-origin:
|
||||
- "http://localhost:8080"
|
||||
|
||||
# 通知消息队列
|
||||
notify:
|
||||
queue:
|
||||
mail:
|
||||
enable: false
|
||||
cron: "*/10 * * * * *"
|
||||
default-from:
|
||||
sms:
|
||||
enable: false
|
||||
cron: "*/10 * * * * *"
|
||||
app-id:
|
||||
sign:
|
||||
secret-id:
|
||||
secret-key:
|
||||
wechat:
|
||||
enable: false
|
||||
cron: "*/10 * * * * *"
|
||||
http:
|
||||
enable: false
|
||||
cron: "*/10 * * * * *"
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
ALTER TABLE `notify_detail`
|
||||
ADD COLUMN `read_at` BIGINT(20) COMMENT '已读时间' AFTER `status`,
|
||||
ADD INDEX `idx_site_user_read`(`msg_type` ASC, `send_to` ASC, `read_at` ASC, `created_at` ASC) USING BTREE;
|
||||
|
||||
CREATE TABLE `sms_queue` (
|
||||
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`notify_detail_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属通知详情 ID',
|
||||
`template_id` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '模板 ID',
|
||||
`data` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
|
||||
`args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '参数',
|
||||
`send_to` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送去向',
|
||||
`send_at` BIGINT(20) COMMENT '发送时间',
|
||||
`retry` INT(11) COMMENT '重试计数',
|
||||
`timeout_at` BIGINT(20) COMMENT '超时时间',
|
||||
`created_at` BIGINT(20) COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `idx_notify_detail_id`(`notify_detail_id` ASC) USING BTREE,
|
||||
INDEX `idx_send_at`(`send_at` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信推送队列' ROW_FORMAT = Dynamic;
|
||||
|
||||
CREATE TABLE `mail_queue` (
|
||||
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`notify_detail_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属通知详情 ID',
|
||||
`subject` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题',
|
||||
`data` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
|
||||
`args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '参数',
|
||||
`attachments` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '附件',
|
||||
`send_from` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送来源',
|
||||
`send_to` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送去向',
|
||||
`send_at` BIGINT(20) COMMENT '发送时间',
|
||||
`retry` INT(11) COMMENT '重试计数',
|
||||
`timeout_at` BIGINT(20) COMMENT '超时时间',
|
||||
`created_at` BIGINT(20) COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `idx_notify_detail_id`(`notify_detail_id` ASC) USING BTREE,
|
||||
INDEX `idx_send_at`(`send_at` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT = '邮件推送队列' ROW_FORMAT = Dynamic;
|
||||
|
||||
CREATE TABLE `http_queue` (
|
||||
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`notify_detail_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属通知详情 ID',
|
||||
`data` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
|
||||
`method` VARCHAR(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '请求方法',
|
||||
`args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '参数',
|
||||
`send_to` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送去向',
|
||||
`send_at` BIGINT(20) COMMENT '发送时间',
|
||||
`retry` INT(11) COMMENT '重试计数',
|
||||
`timeout_at` BIGINT(20) COMMENT '超时时间',
|
||||
`created_at` BIGINT(20) COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `idx_notify_detail_id`(`notify_detail_id` ASC) USING BTREE,
|
||||
INDEX `idx_send_at`(`send_at` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT = 'HTTP 推送队列' ROW_FORMAT = Dynamic;
|
||||
|
||||
CREATE TABLE `wechat_queue` (
|
||||
`id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`notify_detail_id` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属通知详情 ID',
|
||||
`app_id` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '微信 AppId',
|
||||
`app_secret` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '微信 AppSecret',
|
||||
`template_id` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '模板 ID',
|
||||
`subject` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题',
|
||||
`data` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容',
|
||||
`args` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '参数',
|
||||
`send_to` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '发送去向',
|
||||
`send_at` BIGINT(20) COMMENT '发送时间',
|
||||
`retry` INT(11) COMMENT '重试计数',
|
||||
`timeout_at` BIGINT(20) COMMENT '超时时间',
|
||||
`created_at` BIGINT(20) COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `idx_notify_detail_id`(`notify_detail_id` ASC) USING BTREE,
|
||||
INDEX `idx_send_at`(`send_at` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT = '微信消息推送队列' ROW_FORMAT = Dynamic;
|
||||
@@ -18,6 +18,43 @@
|
||||
</if>
|
||||
AND `deleted_at` IS NULL
|
||||
</select>
|
||||
<sql id="ownerKeywordWhere">
|
||||
`t`.`owner_type` = #{ownerType}
|
||||
<if test="ownerId != null and ownerId != ''">
|
||||
AND `t`.`owner_id` = #{ownerId}
|
||||
</if>
|
||||
<if test="keyword != null and keyword.trim() != ''">
|
||||
AND (
|
||||
`m`.`zh_cn` LIKE CONCAT('%', #{keyword}, '%')
|
||||
OR `m`.`zh_tw` LIKE CONCAT('%', #{keyword}, '%')
|
||||
OR `m`.`en_us` LIKE CONCAT('%', #{keyword}, '%')
|
||||
OR `m`.`ru_ru` LIKE CONCAT('%', #{keyword}, '%')
|
||||
OR `m`.`ja_jp` LIKE CONCAT('%', #{keyword}, '%')
|
||||
OR `m`.`de_de` LIKE CONCAT('%', #{keyword}, '%')
|
||||
OR `m`.`ko_kr` LIKE CONCAT('%', #{keyword}, '%')
|
||||
)
|
||||
</if>
|
||||
AND `t`.`deleted_at` IS NULL
|
||||
AND `m`.`deleted_at` IS NULL
|
||||
</sql>
|
||||
<select id="countByOwnerAndKeyword" resultType="long">
|
||||
SELECT COUNT(1)
|
||||
FROM `tag` `t`
|
||||
INNER JOIN `multilingual` `m`
|
||||
ON `m`.`id` = `t`.`name_lang_id`
|
||||
WHERE
|
||||
<include refid="ownerKeywordWhere" />
|
||||
</select>
|
||||
<select id="selectByOwnerAndKeyword" resultType="com.imyeyu.api.modules.common.entity.Tag">
|
||||
SELECT `t`.*
|
||||
FROM `tag` `t`
|
||||
INNER JOIN `multilingual` `m`
|
||||
ON `m`.`id` = `t`.`name_lang_id`
|
||||
WHERE
|
||||
<include refid="ownerKeywordWhere" />
|
||||
ORDER BY COALESCE(`t`.`updated_at`, `t`.`created_at`) DESC
|
||||
LIMIT #{offset}, #{limit}
|
||||
</select>
|
||||
<select id="selectByOwnerAndZhCN" resultType="com.imyeyu.api.modules.common.entity.Tag">
|
||||
SELECT
|
||||
`t`.*
|
||||
|
||||
Reference in New Issue
Block a user