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.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;
}
@Override
public Message sendMessage(MessageParam messageParam) {
Message message = new Message();
List messages = new ArrayList<>();
String[] ids = messageParam.getTargetTo().split(",");
String messageNumber = UtilNumber.getNumber("MC", 6);
for (String id : ids) {
Message messageAdd = new Message();
BeanUtils.copyProperties(messageParam, messageAdd);
//设置接收者
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);
}
BeanUtils.copyProperties(messageParam, message);
//批量新增
iMessageService.saveBatch(messages);
return message;
}
}