From 91568a5b54c49f4f828ee9441016177b18a4a837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B2=90?= Date: Tue, 25 Jun 2024 17:19:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E9=85=8D=E7=BD=AE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysMailConfigServiceImpl.java | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 maku-boot-system/src/main/java/net/maku/system/service/impl/SysMailConfigServiceImpl.java diff --git a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysMailConfigServiceImpl.java b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysMailConfigServiceImpl.java new file mode 100644 index 0000000..ae2ea7e --- /dev/null +++ b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysMailConfigServiceImpl.java @@ -0,0 +1,91 @@ +package net.maku.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import net.maku.email.config.EmailConfig; +import net.maku.framework.common.constant.Constant; +import net.maku.framework.common.utils.PageResult; +import net.maku.framework.mybatis.service.impl.BaseServiceImpl; +import net.maku.system.cache.EmailConfigCache; +import net.maku.system.convert.SysMailConfigConvert; +import net.maku.system.dao.SysMailConfigDao; +import net.maku.system.entity.SysMailConfigEntity; +import net.maku.system.query.SysMailConfigQuery; +import net.maku.system.service.SysMailConfigService; +import net.maku.system.vo.SysMailConfigVO; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 邮件配置 + * + * @author 阿沐 babamu@126.com + */ +@Service +@AllArgsConstructor +public class SysMailConfigServiceImpl extends BaseServiceImpl implements SysMailConfigService { + private final EmailConfigCache emailConfigCache; + + @Override + public PageResult page(SysMailConfigQuery query) { + IPage page = baseMapper.selectPage(getPage(query), getWrapper(query)); + + return new PageResult<>(SysMailConfigConvert.INSTANCE.convertList(page.getRecords()), page.getTotal()); + } + + @Override + public List list(Integer platform) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(platform != null, SysMailConfigEntity::getPlatform, platform); + + List list = baseMapper.selectList(wrapper); + return SysMailConfigConvert.INSTANCE.convertList(list); + } + + @Override + public List listByEnable() { + // 从缓存读取 + List cacheList = emailConfigCache.list(); + + // 如果缓存没有,则从DB读取,然后保存到缓存里 + if (cacheList == null) { + List list = this.list(new LambdaQueryWrapper().in(SysMailConfigEntity::getStatus, Constant.ENABLE)); + + cacheList = SysMailConfigConvert.INSTANCE.convertList2(list); + emailConfigCache.save(cacheList); + } + + return cacheList; + } + + private LambdaQueryWrapper getWrapper(SysMailConfigQuery query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(query.getPlatform() != null, SysMailConfigEntity::getPlatform, query.getPlatform()); + return wrapper; + } + + @Override + public void save(SysMailConfigVO vo) { + SysMailConfigEntity entity = SysMailConfigConvert.INSTANCE.convert(vo); + + baseMapper.insert(entity); + } + + @Override + public void update(SysMailConfigVO vo) { + SysMailConfigEntity entity = SysMailConfigConvert.INSTANCE.convert(vo); + + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(List idList) { + removeByIds(idList); + } + +} \ No newline at end of file