EmailMailboxLinkServiceImpl.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.fjhx.service.impl;
  2. import cn.hutool.core.lang.Assert;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  8. import com.fjhx.entity.EmailMailboxLink;
  9. import com.fjhx.entity.EmailMessage;
  10. import com.fjhx.mapper.EmailMailboxLinkMapper;
  11. import com.fjhx.service.IEmailMailboxLinkService;
  12. import com.fjhx.vo.GetMailboxMassageListVo;
  13. import org.springframework.stereotype.Service;
  14. import java.util.Date;
  15. /**
  16. * <p>
  17. * 邮箱文件夹 服务实现类
  18. * </p>
  19. *
  20. * @author zlj
  21. * @since 2023-01-13
  22. */
  23. @Service
  24. public class EmailMailboxLinkServiceImpl extends ServiceImpl<EmailMailboxLinkMapper, EmailMailboxLink> implements IEmailMailboxLinkService {
  25. @Override
  26. public Page<EmailMessage> getMassageList(GetMailboxMassageListVo vo) {
  27. Long mailboxId = vo.getMailboxId();
  28. Assert.notNull(mailboxId, "文件夹id不能为空");
  29. String fromName = vo.getFromName();
  30. String fromAddress = vo.getFromAddress();
  31. String subject = vo.getSubject();
  32. Integer sortType = ObjectUtil.defaultIfNull(vo.getSortType(), 1);
  33. String sortName = sortType == 1 ? "em.from_date" : "eml.create_time";
  34. Date beginTime = vo.getBeginTime();
  35. Date endTime = vo.getEndTime();
  36. QueryWrapper<Object> query = Wrappers.query()
  37. .eq("eml.mailbox_id", mailboxId)
  38. .like(ObjectUtil.isNotEmpty(fromName), "em.from_name", fromName)
  39. .like(ObjectUtil.isNotEmpty(fromAddress), "em.from_address", fromAddress)
  40. .like(ObjectUtil.isNotEmpty(subject), "em.subject", subject)
  41. .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), sortName, beginTime, endTime)
  42. .orderByDesc(sortName);
  43. return baseMapper.getMassageList(vo.getPage(), query);
  44. }
  45. @Override
  46. public void bindMassage(EmailMailboxLink emailMailboxLink) {
  47. Long mailboxId = emailMailboxLink.getMailboxId();
  48. Assert.notNull(mailboxId, "邮箱id不能为空");
  49. String messageId = emailMailboxLink.getMessageId();
  50. Assert.notNull(messageId, "邮件id不能为空");
  51. EmailMailboxLink one = getOne(q ->
  52. q.eq(EmailMailboxLink::getMailboxId, mailboxId).eq(EmailMailboxLink::getMessageId, messageId));
  53. Assert.isNull(one, "邮件已存在");
  54. save(emailMailboxLink);
  55. }
  56. @Override
  57. public void unbindMassage(EmailMailboxLink emailMailboxLink) {
  58. Long mailboxId = emailMailboxLink.getMailboxId();
  59. Assert.notNull(mailboxId, "邮箱id不能为空");
  60. String messageId = emailMailboxLink.getMessageId();
  61. Assert.notNull(messageId, "邮件id不能为空");
  62. remove(q -> q.eq(EmailMailboxLink::getMailboxId, mailboxId).eq(EmailMailboxLink::getMessageId, messageId));
  63. }
  64. }