| | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.WechatUtils; |
| | | import com.ruoyi.system.domain.SysTask; |
| | | import com.ruoyi.system.domain.SysTaskEmergency; |
| | | import com.ruoyi.system.domain.SysConfig; |
| | | import com.ruoyi.system.mapper.SysConfigMapper; |
| | | import com.ruoyi.system.mapper.SysTaskEmergencyMapper; |
| | | import com.ruoyi.system.mapper.SysTaskMapper; |
| | | import com.ruoyi.system.domain.SysTask; |
| | | import com.ruoyi.system.domain.SysTaskEmergency; |
| | | import com.ruoyi.system.mapper.SysUserMapper; |
| | | import com.ruoyi.system.service.IWechatTaskNotifyService; |
| | | import com.ruoyi.system.service.IWechatAccessTokenService; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Autowired |
| | | private WechatConfig wechatConfig; |
| | | |
| | | @Autowired |
| | | private IWechatAccessTokenService wechatAccessTokenService; |
| | | |
| | | @Autowired |
| | | private ISysConfigService configService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 检查是否启用订阅消息发送 |
| | | * |
| | | * @return true=启用,false=禁用 |
| | | */ |
| | | private boolean isSubscribeMessageEnabled() { |
| | | try { |
| | | String enabled = configService.selectConfigByKey("wechat.subscribe.message.enabled"); |
| | | return "true".equalsIgnoreCase(enabled); |
| | | } catch (Exception e) { |
| | | log.warn("获取订阅消息开关配置失败,默认启用", e); |
| | | return true; // 默认启用 |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 发送任务通知消息给指定用户列表 |
| | | * |
| | |
| | | */ |
| | | @Override |
| | | public int sendTaskNotifyMessage(Long taskId, List<Long> userIds, Long excludeUserId) { |
| | | // 检查订阅消息开关 |
| | | if (!isSubscribeMessageEnabled()) { |
| | | log.info("订阅消息发送已关闭,跳过发送,taskId={}", taskId); |
| | | return 0; |
| | | } |
| | | if (taskId == null || userIds == null || userIds.isEmpty()) { |
| | | log.warn("发送微信任务通知参数不完整,taskId={}, userIds={}", taskId, userIds); |
| | | return 0; |
| | |
| | | // 查询急救信息 |
| | | SysTaskEmergency emergency = sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId); |
| | | |
| | | // 获取微信AccessToken |
| | | String accessToken = WechatUtils.getAccessToken(wechatConfig.getAppId(), wechatConfig.getAppSecret()); |
| | | // 获取微信AccessToken(走应用级缓存) |
| | | String accessToken = wechatAccessTokenService.getAppAccessToken(); |
| | | if (StringUtils.isEmpty(accessToken)) { |
| | | log.error("获取微信AccessToken失败,无法发送任务通知"); |
| | | return 0; |