From 7ba5b5f43aba5f0f8a4836b6eef29d34d62ee3a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B2=90?= Date: Tue, 25 Jun 2024 17:20:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=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/SysSmsConfigServiceImpl.java | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 maku-boot-system/src/main/java/net/maku/system/service/impl/SysSmsConfigServiceImpl.java diff --git a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysSmsConfigServiceImpl.java b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysSmsConfigServiceImpl.java new file mode 100644 index 0000000..93367b9 --- /dev/null +++ b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysSmsConfigServiceImpl.java @@ -0,0 +1,100 @@ +package net.maku.system.service.impl; + +import cn.hutool.core.util.StrUtil; +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.framework.common.constant.Constant; +import net.maku.framework.common.utils.PageResult; +import net.maku.framework.mybatis.service.impl.BaseServiceImpl; +import net.maku.sms.config.SmsConfig; +import net.maku.system.cache.SmsConfigCache; +import net.maku.system.convert.SysSmsConfigConvert; +import net.maku.system.dao.SysSmsConfigDao; +import net.maku.system.entity.SysSmsConfigEntity; +import net.maku.system.query.SysSmsConfigQuery; +import net.maku.system.service.SysSmsConfigService; +import net.maku.system.vo.SysSmsConfigVO; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 短信配置 + * + * @author 阿沐 babamu@126.com + * MAKU + */ +@Service +@AllArgsConstructor +public class SysSmsConfigServiceImpl extends BaseServiceImpl implements SysSmsConfigService { + private final SmsConfigCache smsConfigCache; + + @Override + public PageResult page(SysSmsConfigQuery query) { + IPage page = baseMapper.selectPage(getPage(query), getWrapper(query)); + + return new PageResult<>(SysSmsConfigConvert.INSTANCE.convertList(page.getRecords()), page.getTotal()); + } + + @Override + public List list(Integer platform) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(platform != null, SysSmsConfigEntity::getPlatform, platform); + + List list = baseMapper.selectList(wrapper); + return SysSmsConfigConvert.INSTANCE.convertList(list); + } + + private LambdaQueryWrapper getWrapper(SysSmsConfigQuery query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(query.getPlatform() != null, SysSmsConfigEntity::getPlatform, query.getPlatform()); + wrapper.like(StrUtil.isNotBlank(query.getGroupName()), SysSmsConfigEntity::getGroupName, query.getGroupName()); + return wrapper; + } + + @Override + public List listByEnable() { + // 从缓存读取 + List cacheList = smsConfigCache.list(); + + // 如果缓存没有,则从DB读取,然后保存到缓存里 + if (cacheList == null) { + List list = this.list(new LambdaQueryWrapper().in(SysSmsConfigEntity::getStatus, Constant.ENABLE)); + + cacheList = SysSmsConfigConvert.INSTANCE.convertList2(list); + smsConfigCache.save(cacheList); + } + + return cacheList; + } + + @Override + public void save(SysSmsConfigVO vo) { + SysSmsConfigEntity entity = SysSmsConfigConvert.INSTANCE.convert(vo); + + baseMapper.insert(entity); + + smsConfigCache.delete(); + } + + @Override + public void update(SysSmsConfigVO vo) { + SysSmsConfigEntity entity = SysSmsConfigConvert.INSTANCE.convert(vo); + + updateById(entity); + + smsConfigCache.delete(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(List idList) { + removeByIds(idList); + + smsConfigCache.delete(); + } + +} \ No newline at end of file