审计记录

sk-module-system/src/main/java/com/skua/modules/system/service/SmsService.java 4.7 KB
1 2 3 4 5 6 7 8
package com.skua.modules.system.service;

import com.skua.core.context.BaseContextHandler;
import com.skua.core.util.push.IPushService;
import com.skua.core.util.push.MessageEntity;
import com.skua.core.util.push.PushMessageFactory;
import com.skua.modules.system.entity.SysUser;
import org.apache.commons.lang3.StringUtils;
9
import org.springframework.beans.factory.annotation.Autowired;
10 11 12 13 14 15 16 17 18 19 20
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @auther kangwei
 * @create 2025-02-24-10:38
 */
@Service
public class SmsService {
21
    @Autowired
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
    private ISysUserService userService;

    public void pushMsgNoProcessByRoleId(String messageTitle ,String messageBody  ,String roleId,String forwardTag){
        if(StringUtils.isNotEmpty(roleId)){
            List<SysUser> sysUserList = userService.queryUserByRoleId(roleId);
            pushMessage(sysUserList,messageTitle , messageBody  , forwardTag);
        }
    }

    /***
     * 信息推送:包含手机,web推送
     * @param messageTitle
     * @param messageBody
     * @param userIds
     * @param forwardTag
     */
    public void pushMsgNoProcess(String messageTitle ,String messageBody  ,String userIds,String forwardTag){
        if(StringUtils.isNotEmpty(userIds)){
            List<SysUser> sysUserList = userService.getUserByUserIds(userIds);
            pushMessage(sysUserList,messageTitle , messageBody , forwardTag);
        }
    }
    private void pushMessage(List<SysUser> sysUserList,String messageTitle ,String messageBody  ,String forwardTag){
        List<String> userCidList = sysUserList.stream().map(SysUser::getCid).filter(v -> StringUtils.isNotBlank(v)).collect(Collectors.toList());
        List<String> userIdList = sysUserList.stream().map(SysUser::getId).collect(Collectors.toList());

        MessageEntity messageEntity = new MessageEntity();
        messageEntity.setMessageTitle(messageTitle);
        messageEntity.setMessageBody(messageBody);
        messageEntity.setReceiveUser(userIdList);
        messageEntity.setReceiveUserCid(userCidList);//移动端推送
        messageEntity.setSendUser(BaseContextHandler.getUserName());
        messageEntity.setForwardTag(forwardTag);//消息提醒类型 保持唯一

        IPushService appPushService = PushMessageFactory.getPushService("MOB");
        IPushService webPushService = PushMessageFactory.getPushService("WEB");
        appPushService.pushMessage(messageEntity);
        webPushService.pushMessage(messageEntity);
    }

    /***
     *  手机推送
     * @param messageTitle
     * @param messageBody
     * @param userIds
     * @param forwardTag
     */
    public void appPushMsgNoProcess(String messageTitle ,String messageBody  ,String userIds,String forwardTag){
        if(StringUtils.isNotEmpty(userIds)){
            List<SysUser> sysUserList = userService.getUserByUserIds(userIds);
            List<String> userCidList = sysUserList.stream().map(SysUser::getCid).filter(v -> StringUtils.isNotBlank(v)).collect(Collectors.toList());

            MessageEntity messageEntity = new MessageEntity();
            messageEntity.setMessageTitle(messageTitle);
            messageEntity.setMessageBody(messageBody);
            messageEntity.setReceiveUserCid(userCidList);//移动端推送
            messageEntity.setSendUser(BaseContextHandler.getUserName());
            messageEntity.setForwardTag(forwardTag);//消息提醒类型 保持唯一

            IPushService appPushService = PushMessageFactory.getPushService("MOB");
            appPushService.pushMessage(messageEntity);
        }
    }

    /***
     *  web推送
     * @param messageTitle
     * @param messageBody
     * @param userIds
     * @param forwardTag
     */
    public void webPushMsgNoProcess(String messageTitle ,String messageBody  ,String userIds,String forwardTag){
        if(StringUtils.isNotEmpty(userIds)){
            List<SysUser> sysUserList = userService.getUserByUserIds(userIds);
            List<String> userCidList = sysUserList.stream().map(SysUser::getCid).filter(v -> StringUtils.isNotBlank(v)).collect(Collectors.toList());
            List<String> userIdList = sysUserList.stream().map(SysUser::getId).collect(Collectors.toList());

            MessageEntity messageEntity = new MessageEntity();
            messageEntity.setMessageTitle(messageTitle);
            messageEntity.setMessageBody(messageBody);
            messageEntity.setReceiveUser(userIdList);
            messageEntity.setSendUser(BaseContextHandler.getUserName());
            messageEntity.setForwardTag(forwardTag);//消息提醒类型 保持唯一

            IPushService webPushService = PushMessageFactory.getPushService("WEB");
            webPushService.pushMessage(messageEntity);
        }
    }
}