| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.common.constant.ChannelCode; |
| | | import com.ycl.common.util.CommonUtils; |
| | | import com.ycl.dto.message.MessageParam; |
| | | import com.ycl.entity.message.Message; |
| | | import com.ycl.entity.user.UmsAdmin; |
| | | import com.ycl.exception.ApiException; |
| | | import com.ycl.mapper.message.MessageMapper; |
| | | import com.ycl.mapper.user.UmsAdminMapper; |
| | | import com.ycl.service.message.IMessageService; |
| | | import com.ycl.service.message.Provider; |
| | | import com.ycl.service.message.Sender; |
| | |
| | | import com.ycl.service.message.factory.MailFactory; |
| | | import com.ycl.service.message.factory.SmsFactory; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | @Service |
| | | public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements IMessageService { |
| | | |
| | | |
| | | @Resource |
| | | private UmsAdminMapper umsAdminMapper; |
| | | |
| | | @Override |
| | | public Message sendMessage(MessageParam messageParam) { |
| | |
| | | //邮件发送 |
| | | case ChannelCode.SMS: |
| | | provider = new MailFactory(); |
| | | //id换成邮箱号 |
| | | //String targetToMail = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode()); |
| | | //messageParam.setTargetTo(targetToMail); |
| | | break; |
| | | //短信发送 |
| | | //短信发送 |
| | | case ChannelCode.MAIL: |
| | | provider = new SmsFactory(); |
| | | //id换成手机号 |
| | | //String targetToPhone = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode()); |
| | | //messageParam.setTargetTo(targetToPhone); |
| | | break; |
| | | default: |
| | | throw new ApiException("未匹配到该类型"); |
| | |
| | | public IPage<Message> list(MessageParam messageParam) { |
| | | Page<Message> page = new Page<>(messageParam.getCurrent(), messageParam.getPageSize()); |
| | | LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>(); |
| | | if (messageParam.getMessageType() != null) { |
| | | queryWrapper.eq(Message::getMessageType, messageParam.getMessageType()); |
| | | queryWrapper.eq(Message::getParentId, 0); |
| | | if (!CommonUtils.isEmpty(messageParam.getHead())) { |
| | | queryWrapper.eq(Message::getHead, messageParam.getHead()); |
| | | } |
| | | if (messageParam.getStatus() != null) { |
| | | if (!CommonUtils.isEmpty(messageParam.getChannelCode())) { |
| | | queryWrapper.eq(Message::getChannelCode, messageParam.getChannelCode()); |
| | | } |
| | | if (!CommonUtils.isEmpty(messageParam.getStatus())) { |
| | | queryWrapper.eq(Message::getStatus, messageParam.getStatus()); |
| | | } |
| | | queryWrapper.orderByDesc(Message::getCreateTime); |
| | | Page<Message> result = baseMapper.selectPage(page, queryWrapper); |
| | | List<Message> messages = result.getRecords(); |
| | | if (!CommonUtils.isEmpty(messages)) { |
| | | List<Long> ids = messages.stream().map(e -> Long.parseLong(e.getTargetFrom().trim())).collect(Collectors.toList()); |
| | | LambdaQueryWrapper<UmsAdmin> queryUSers = new LambdaQueryWrapper<>(); |
| | | queryUSers.in(UmsAdmin::getId, ids); |
| | | List<UmsAdmin> users = umsAdminMapper.selectList(queryUSers); |
| | | if (!CommonUtils.isEmpty(users)) { |
| | | for (UmsAdmin user : users) { |
| | | for (Message message : messages) { |
| | | if (message.getTargetFrom().equals(user.getId()+"")) { |
| | | message.setTargetFrom(user.getUsername()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Boolean deleteMessages(List<Long> ids) { |
| | | LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.in(Message::getId, ids).or().in(Message::getParentId,ids); |
| | | List<Message> messages = baseMapper.selectList(queryWrapper); |
| | | if (CommonUtils.isNotEmpty(messages)) { |
| | | List<Long> deleteIds = messages.stream().map(Message::getId).collect(Collectors.toList()); |
| | | baseMapper.deleteBatchIds(deleteIds); |
| | | } |
| | | return true; |
| | | } |
| | | } |