package com.qianwen.smartman.modules.notify.manager; import cn.hutool.json.JSONUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.core.notify.provider.internal.message.IInternalMessageServer; import com.qianwen.core.notify.provider.internal.message.ParsedInternalMessageTemplate; import com.qianwen.core.tool.jackson.JsonUtil; import com.qianwen.core.tool.utils.Func; import com.qianwen.core.tool.utils.SpringUtil; import com.qianwen.core.websocket.distribute.MessageDO; import com.qianwen.core.websocket.distribute.RedisMessageDistributor; import com.qianwen.smartman.modules.notify.entity.NotifySystem; import com.qianwen.smartman.modules.notify.service.INotifySystemService; import com.qianwen.smartman.modules.notify.websocket.InternalMessageResponseJsonWebSocketMessage; import org.springframework.stereotype.Component; @Component /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/notify/manager/DefaultInternalMessageServer.class */ class DefaultInternalMessageServer implements IInternalMessageServer { private static final Logger log = LoggerFactory.getLogger(DefaultInternalMessageServer.class); private final INotifySystemService notifySystemService; public DefaultInternalMessageServer(final INotifySystemService notifySystemService) { this.notifySystemService = notifySystemService; } public void submitInternalMessage(ParsedInternalMessageTemplate template, List sendTo) { if (Func.isNotEmpty(sendTo)) { List notifySystems = new ArrayList<>(sendTo.size()); Date now = new Date(); sendTo.forEach(item -> { NotifySystem notifySystem = new NotifySystem(); notifySystem.setNotifyType(1); notifySystem.setNotifyTime(now); notifySystem.setMessage(template.getContent()); notifySystem.setAttachments(JsonUtil.toJson(template.getAttachments())); notifySystem.setBusinessName(template.getSubject()); notifySystem.setNotifyUser(item); notifySystem.setStatus(0); notifySystems.add(notifySystem); }); this.notifySystemService.saveBatch(notifySystems); notifySystems.forEach(o -> { RedisMessageDistributor messageDistributor = (RedisMessageDistributor) SpringUtil.getBean(RedisMessageDistributor.class); InternalMessageResponseJsonWebSocketMessage internalMessageResponseJsonWebSocketMessage = new InternalMessageResponseJsonWebSocketMessage(); internalMessageResponseJsonWebSocketMessage.setHaveUnread(true); internalMessageResponseJsonWebSocketMessage.setNotifySystemId(String.valueOf(o.getId())); internalMessageResponseJsonWebSocketMessage.setNotifyType(1); MessageDO messageDO = new MessageDO(); messageDO.setNeedBroadcast(Boolean.FALSE); messageDO.setMessageText(JSONUtil.toJsonStr(internalMessageResponseJsonWebSocketMessage)); messageDO.setSessionKeys(Arrays.asList(o.getNotifyUser())); messageDistributor.distribute(messageDO); }); } } }