# 微信订阅消息开关使用说明 ## 一、配置项说明 ### 配置键:`wechat.subscribe.message.enabled` | 属性 | 值 | |------|-----| | 配置名称 | 微信订阅消息开关 | | 配置键 | wechat.subscribe.message.enabled | | 配置类型 | N (普通参数) | | 默认值 | true | | 可选值 | true / false | ### 配置说明 - **true**: 启用微信订阅消息推送(默认) - **false**: 禁用微信订阅消息推送 ## 二、SQL脚本 执行以下SQL脚本添加配置: ```sql INSERT INTO sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES ('微信订阅消息开关', 'wechat.subscribe.message.enabled', 'true', 'N', 'admin', NOW(), 'admin', NOW(), '控制是否启用微信订阅消息推送功能。true=启用,false=禁用。关闭后系统将不再发送任何订阅消息。'); ``` ## 三、功能说明 ### 1. 开关控制范围 该开关控制以下场景的订阅消息发送: - ✅ 新任务创建时通知执行人 - ✅ 任务更新时通知相关人员 - ✅ 旧系统同步任务时的通知 - ✅ 手动触发的任务通知 - ✅ 所有通过 `IWechatTaskNotifyService` 发送的消息 ### 2. 开关关闭后的表现 当开关设置为 `false` 时: - 系统将跳过所有订阅消息发送 - 日志记录:`订阅消息发送已关闭,跳过发送,taskId=xxx` - 不影响其他业务逻辑 - 返回值为 0(发送成功数量为0) ### 3. 异常处理 - 如果配置读取失败,默认为 **启用** 状态 - 确保系统正常运行,避免因配置异常导致功能中断 ## 四、使用场景 ### 1. 测试环境 在测试环境中关闭消息推送,避免测试数据触发真实消息: ```sql UPDATE sys_config SET config_value = 'false' WHERE config_key = 'wechat.subscribe.message.enabled'; ``` ### 2. 生产维护 在系统维护期间临时关闭消息推送: ```sql -- 关闭消息推送 UPDATE sys_config SET config_value = 'false' WHERE config_key = 'wechat.subscribe.message.enabled'; -- 维护完成后恢复 UPDATE sys_config SET config_value = 'true' WHERE config_key = 'wechat.subscribe.message.enabled'; ``` ### 3. 故障排查 当微信接口异常时,临时关闭消息推送,避免大量错误日志: ```sql UPDATE sys_config SET config_value = 'false' WHERE config_key = 'wechat.subscribe.message.enabled'; ``` ## 五、管理界面操作 ### 通过后台管理界面修改 1. 登录系统管理后台 2. 进入 **系统管理 > 参数设置** 3. 搜索 **微信订阅消息开关** 4. 修改参数值为 `true` 或 `false` 5. 保存后 **立即生效**,无需重启服务 ## 六、技术实现 ### 代码位置 - **配置SQL**: `/sql/wechat_subscribe_message_config.sql` - **服务实现**: `/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WechatTaskNotifyServiceImpl.java` ### 核心代码 ```java /** * 检查是否启用订阅消息发送 */ private boolean isSubscribeMessageEnabled() { try { String enabled = configService.selectConfigByKey("wechat.subscribe.message.enabled"); return "true".equalsIgnoreCase(enabled); } catch (Exception e) { log.warn("获取订阅消息开关配置失败,默认启用", e); return true; // 默认启用 } } ``` ## 七、注意事项 1. ⚠️ 修改配置后立即生效,无需重启服务 2. ⚠️ 关闭开关会影响所有订阅消息发送 3. ⚠️ 默认值为 `true`(启用),确保正常业务不受影响 4. ⚠️ 建议在生产环境保持开启状态 5. ⚠️ 测试环境建议关闭,避免误发消息给真实用户 ## 八、验证方法 ### 1. 验证配置已添加 ```sql SELECT * FROM sys_config WHERE config_key = 'wechat.subscribe.message.enabled'; ``` ### 2. 验证开关生效 **关闭开关:** ```sql UPDATE sys_config SET config_value = 'false' WHERE config_key = 'wechat.subscribe.message.enabled'; ``` **创建测试任务:** - 观察日志是否输出:`订阅消息发送已关闭,跳过发送` - 确认没有实际发送微信消息 **恢复开关:** ```sql UPDATE sys_config SET config_value = 'true' WHERE config_key = 'wechat.subscribe.message.enabled'; ``` ## 九、相关配置 该功能配合以下配置使用: - `weixin.access_token.{appId}` - 微信AccessToken缓存 - `weixin.access_token_expires.{appId}` - AccessToken过期时间 - `wechat.task.notify.template.id` - 任务通知模板ID (application.yml) - `wechat.task.detail.page` - 任务详情页路径 (application.yml)