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; import org.springframework.beans.factory.annotation.Autowired; 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 { @Autowired 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); } } }