From 1e9a265ecc03fe735642557fe46a003479f4e23a Mon Sep 17 00:00:00 2001 From: JIAN Date: Sun, 25 Aug 2024 16:38:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(foundations):=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=8C=BA=E5=9F=9F=E4=B8=8A=E6=9E=B6=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../foundations/mapper/ServeTypeMapper.java | 12 +++++-- .../service/IServeTypeService.java | 8 ++++- .../service/impl/ServeTypeServiceImpl.java | 35 ++++++++++++++++++- .../main/resources/mapper/ServeTypeMapper.xml | 16 +++++++-- 4 files changed, 64 insertions(+), 7 deletions(-) diff --git a/jzo2o-foundations/src/main/java/com/jzo2o/foundations/mapper/ServeTypeMapper.java b/jzo2o-foundations/src/main/java/com/jzo2o/foundations/mapper/ServeTypeMapper.java index e380dab..5f95d95 100644 --- a/jzo2o-foundations/src/main/java/com/jzo2o/foundations/mapper/ServeTypeMapper.java +++ b/jzo2o-foundations/src/main/java/com/jzo2o/foundations/mapper/ServeTypeMapper.java @@ -1,8 +1,10 @@ package com.jzo2o.foundations.mapper; -import com.jzo2o.foundations.model.domain.ServeType; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; +import com.jzo2o.foundations.model.domain.ServeType; +import com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO; + +import java.util.List; /** *

@@ -13,4 +15,8 @@ import org.apache.ibatis.annotations.Mapper; * @since 2023-07-03 */ public interface ServeTypeMapper extends BaseMapper { -} + /** + * 根据区域id查询简略列表 + */ + List getServeTypeListByRegionId(Long regionId); +} \ No newline at end of file diff --git a/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/IServeTypeService.java b/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/IServeTypeService.java index 8e132b0..3e950dd 100644 --- a/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/IServeTypeService.java +++ b/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/IServeTypeService.java @@ -6,6 +6,7 @@ import com.jzo2o.common.model.PageResult; import com.jzo2o.foundations.model.domain.ServeType; import com.jzo2o.foundations.model.dto.request.ServeTypePageQueryReqDTO; import com.jzo2o.foundations.model.dto.request.ServeTypeUpsertReqDTO; +import com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO; import com.jzo2o.foundations.model.dto.response.ServeTypeResDTO; import java.util.List; @@ -67,4 +68,9 @@ public interface IServeTypeService extends IService { * @return 服务类型列表 */ List queryServeTypeListByActiveStatus(Integer activeStatus); -} + + /** + * 根据区域id查询简略列表 + */ + List getServeTypeList(Long regionId); +} \ No newline at end of file diff --git a/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/impl/ServeTypeServiceImpl.java b/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/impl/ServeTypeServiceImpl.java index e3949e2..35a785d 100644 --- a/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/impl/ServeTypeServiceImpl.java +++ b/jzo2o-foundations/src/main/java/com/jzo2o/foundations/service/impl/ServeTypeServiceImpl.java @@ -12,21 +12,30 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jzo2o.api.foundations.dto.response.ServeTypeSimpleResDTO; import com.jzo2o.common.expcetions.ForbiddenOperationException; import com.jzo2o.common.model.PageResult; +import com.jzo2o.common.utils.CollUtils; +import com.jzo2o.common.utils.ObjectUtils; +import com.jzo2o.foundations.constants.RedisConstants; import com.jzo2o.foundations.enums.FoundationStatusEnum; +import com.jzo2o.foundations.mapper.RegionMapper; import com.jzo2o.foundations.mapper.ServeTypeMapper; +import com.jzo2o.foundations.model.domain.Region; import com.jzo2o.foundations.model.domain.ServeType; import com.jzo2o.foundations.model.dto.request.ServeSyncUpdateReqDTO; import com.jzo2o.foundations.model.dto.request.ServeTypePageQueryReqDTO; import com.jzo2o.foundations.model.dto.request.ServeTypeUpsertReqDTO; +import com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO; import com.jzo2o.foundations.model.dto.response.ServeTypeResDTO; import com.jzo2o.foundations.service.IServeItemService; import com.jzo2o.foundations.service.IServeSyncService; import com.jzo2o.foundations.service.IServeTypeService; import com.jzo2o.mysql.utils.PageUtils; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; /** @@ -41,6 +50,8 @@ public class ServeTypeServiceImpl extends ServiceImpl serveTypeList = baseMapper.selectList(queryWrapper); return BeanUtil.copyToList(serveTypeList, ServeTypeSimpleResDTO.class); } -} + + @Override + @Caching(cacheable = { + @Cacheable(value = RedisConstants.CacheName.SERVE_TYPE, key = "#regionId", + cacheManager = RedisConstants.CacheManager.THIRTY_MINUTES, + unless = "#result.size() != 0"), // 防止缓存穿透 + @Cacheable(value = RedisConstants.CacheName.SERVE_TYPE, key = "#regionId", + cacheManager = RedisConstants.CacheManager.FOREVER, + unless = "#result.size() == 0")}) + public List getServeTypeList(Long regionId) { + Region region = regionMapper.selectById(regionId); + if (ObjectUtils.isEmpty(region)) { + return Collections.emptyList(); + } + + List serveTypeList = baseMapper.getServeTypeListByRegionId(regionId); + if (CollUtils.isEmpty(serveTypeList)) { + return Collections.emptyList(); + } + + return serveTypeList; + } +} \ No newline at end of file diff --git a/jzo2o-foundations/src/main/resources/mapper/ServeTypeMapper.xml b/jzo2o-foundations/src/main/resources/mapper/ServeTypeMapper.xml index c208034..47937e7 100644 --- a/jzo2o-foundations/src/main/resources/mapper/ServeTypeMapper.xml +++ b/jzo2o-foundations/src/main/resources/mapper/ServeTypeMapper.xml @@ -1,5 +1,17 @@ - - + + \ No newline at end of file