package com.ycl.service.message.factory; import com.ycl.common.constant.ChannelCode; import com.ycl.common.util.UtilNumber; import com.ycl.dto.message.MessageParam; import com.ycl.entity.message.Message; import com.ycl.mapper.message.MessageMapper; import com.ycl.service.message.IMessageService; import com.ycl.service.message.Sender; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 内站发送器 *

* * @author mg * @since 2022-10-09 */ @Component public class InnerSender implements Sender { private static IMessageService iMessageService; @Autowired public void setIMessageService(IMessageService iMessageService) { InnerSender.iMessageService = iMessageService; } private static MessageMapper messageMapper; @Autowired public void setMessageMapper(MessageMapper messageMapper) { InnerSender.messageMapper = messageMapper; } @Override public Message sendMessage(MessageParam messageParam) { Message message = new Message(); String messageNumber = UtilNumber.getNumber("MC", 6); List messages = new ArrayList<>(); BeanUtils.copyProperties(messageParam, message); //父Id为0 message.setParentId(0L); //生成消息编码 message.setMessageNumber(messageNumber); //生成默认参数 //发送时间 if (message.getSendTime() == null) { message.setSendTime(new Date()); } message.setIsView(0); message.setVersion(0); message.setIsScan(1); message.setCreateTime(new Date()); message.setUpdateTime(new Date()); message.setCreateUser(messageParam.getCreateUser()); message.setUpdateUser(messageParam.getCreateUser()); messageMapper.insert(message); String[] ids = messageParam.getTargetTo().split(","); for (String id : ids) { Message messageAdd = new Message(); BeanUtils.copyProperties(messageParam, messageAdd); //设置父类Id messageAdd.setParentId(message.getId()); //设置接收者 messageAdd.setTargetTo(id); //生成8位随机数消息编码 messageAdd.setMessageNumber(messageNumber); //发送时间 if (messageAdd.getSendTime() == null) { messageAdd.setSendTime(new Date()); } if (ChannelCode.MAIL.equals(messageParam.getChannelCode())) { messageAdd.setIsScan(1); } else { messageAdd.setIsScan(0); } //生成默认参数 messageAdd.setCreateTime(new Date()); messageAdd.setUpdateTime(new Date()); messageAdd.setCreateUser(messageParam.getCreateUser()); messageAdd.setUpdateUser(messageParam.getCreateUser()); messageAdd.setIsView(0); messageAdd.setVersion(0); messages.add(messageAdd); } //批量新增 iMessageService.saveBatch(messages); return message; } }