package com.ycl.service.message.factory; import com.ycl.common.constant.ChannelCode; import com.ycl.common.util.CommonUtils; 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(); List messages = new ArrayList<>(); if (CommonUtils.isEmpty(messageParam.getId())) { String messageNumber = UtilNumber.getNumber("MC", 6); BeanUtils.copyProperties(messageParam, message); //父Id为0 message.setParentId(0L); //生成消息编码 message.setMessageNumber(messageNumber); //生成默认参数 //发送时间 if (message.getSendTime() == null) { message.setSendTime(new Date()); } if (ChannelCode.SMS.equals(messageParam.getChannelCode())) { message.setIsScan(1); } else { message.setIsScan(0); } message.setIsView(0); message.setVersion(0); message.setCreateTime(new Date()); message.setUpdateTime(new Date()); message.setCreateUser(messageParam.getCreateUser()); message.setUpdateUser(messageParam.getCreateUser()); messageMapper.insert(message); } else { message.setId(messageParam.getId()); BeanUtils.copyProperties(messageParam, message); message.setUpdateTime(new Date()); message.setUpdateUser(messageParam.getCreateUser()); messageMapper.updateById(message); } //发布消息 if (message.getStatus() == 1) { String[] ids = messageParam.getTargetTo().split(","); for (String id : ids) { Message messageAdd = new Message(); BeanUtils.copyProperties(message, messageAdd); //子类id设置为空 messageAdd.setId(null); //设置父类Id messageAdd.setParentId(message.getId()); //设置接收者 messageAdd.setTargetTo(id); messages.add(messageAdd); } //批量新增 iMessageService.saveBatch(messages); } return message; } }