feat(foundations):增加查询区域上架服务类型的功能
This commit is contained in:
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -13,4 +15,8 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
* @since 2023-07-03
|
||||
*/
|
||||
public interface ServeTypeMapper extends BaseMapper<ServeType> {
|
||||
}
|
||||
/**
|
||||
* 根据区域id查询简略列表
|
||||
*/
|
||||
List<ServeAggregationTypeSimpleResDTO> getServeTypeListByRegionId(Long regionId);
|
||||
}
|
||||
@@ -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<ServeType> {
|
||||
* @return 服务类型列表
|
||||
*/
|
||||
List<ServeTypeSimpleResDTO> queryServeTypeListByActiveStatus(Integer activeStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据区域id查询简略列表
|
||||
*/
|
||||
List<ServeAggregationTypeSimpleResDTO> getServeTypeList(Long regionId);
|
||||
}
|
||||
@@ -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<ServeTypeMapper, ServeType
|
||||
private IServeItemService serveItemService;
|
||||
@Resource
|
||||
private IServeSyncService serveSyncService;
|
||||
@Resource
|
||||
private RegionMapper regionMapper;
|
||||
|
||||
/**
|
||||
* 服务类型新增
|
||||
@@ -192,4 +203,26 @@ public class ServeTypeServiceImpl extends ServiceImpl<ServeTypeMapper, ServeType
|
||||
List<ServeType> 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<ServeAggregationTypeSimpleResDTO> getServeTypeList(Long regionId) {
|
||||
Region region = regionMapper.selectById(regionId);
|
||||
if (ObjectUtils.isEmpty(region)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<ServeAggregationTypeSimpleResDTO> serveTypeList = baseMapper.getServeTypeListByRegionId(regionId);
|
||||
if (CollUtils.isEmpty(serveTypeList)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return serveTypeList;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.foundations.mapper.ServeTypeMapper">
|
||||
|
||||
</mapper>
|
||||
<select id="getServeTypeListByRegionId"
|
||||
resultType="com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO">
|
||||
SELECT distinct serve_type_id,
|
||||
type.name serveTypeName,
|
||||
type.img serveTypeImg,
|
||||
type.sort_num serveTypeSortNum
|
||||
FROM serve
|
||||
JOIN serve_item item ON serve.serve_item_id = item.id
|
||||
JOIN serve_type type ON item.serve_type_id = type.id
|
||||
WHERE serve.region_id = #{regionId}
|
||||
AND serve.sale_status = 2 # 保证上架服务
|
||||
ORDER BY type.sort_num
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user