Commit 30eeccad by zhangxingmin

更新redis缓存中的字典列表

parent a5f39c15
......@@ -3,7 +3,9 @@ package com.yd.user.api.controller;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -45,4 +47,13 @@ public class ApiSysDictController implements ApiSysDictFeignClient {
return apiSysDictService.getByDictTypeList(request);
}
/**
* 更新redis缓存中的字典列表
* @return
*/
@Override
public Result<ApiUpdateRedisDictListResponse> updateRedisDictList(ApiUpdateRedisDictListRequest request) {
return apiSysDictService.updateRedisDictList(request);
}
}
package com.yd.user.api.service;
import com.yd.common.result.Result;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
......@@ -11,4 +13,6 @@ public interface ApiSysDictService {
Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType);
Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request);
Result<ApiUpdateRedisDictListResponse> updateRedisDictList(ApiUpdateRedisDictListRequest request);
}
package com.yd.user.api.service.impl;
import com.yd.common.constant.RedisConstants;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RedisUtil;
import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import com.yd.user.service.dto.SysDictItemDto;
......@@ -20,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
......@@ -31,6 +36,9 @@ public class ApiSysDictServiceImpl implements ApiSysDictService {
@Autowired
private ISysDictItemService iSysDictItemService;
@Autowired
private RedisUtil redisUtil;
/**
* 根据字典类型获取字典数据项列表
* @param dictType
......@@ -111,4 +119,21 @@ public class ApiSysDictServiceImpl implements ApiSysDictService {
return Result.success(typeListResponseList);
}
/**
* 更新redis缓存中的字典列表
* @param request
* @return
*/
@Override
public Result<ApiUpdateRedisDictListResponse> updateRedisDictList(ApiUpdateRedisDictListRequest request) {
List<GetDictItemListByDictTypeResponse> responseList = iSysDictService.queryListByTypeList(request.getTypeList());
if (!CollectionUtils.isEmpty(responseList)) {
//设置redis缓存
redisUtil.setCacheObject(RedisConstants.DICT_LIST,responseList);
}
return Result.success();
}
}
......@@ -2,7 +2,9 @@ package com.yd.user.feign.client.sysdict;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.sysdict.ApiSysDictFeignFallbackFactory;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import org.springframework.cloud.openfeign.FeignClient;
......@@ -35,4 +37,11 @@ public interface ApiSysDictFeignClient {
@PostMapping("/type/list")
Result<List<GetDictTypeListResponse>> getByDictTypeList(@Validated @RequestBody GetDictTypeListRequest request);
/**
* 更新redis缓存中的字典列表
* @return
*/
@PostMapping("/update/redis/dict/list")
Result<ApiUpdateRedisDictListResponse> updateRedisDictList(@Validated @RequestBody ApiUpdateRedisDictListRequest request);
}
......@@ -2,7 +2,9 @@ package com.yd.user.feign.fallback.sysdict;
import com.yd.common.result.Result;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.request.sysdict.GetDictTypeListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import lombok.extern.slf4j.Slf4j;
......@@ -28,6 +30,11 @@ public class ApiSysDictFeignFallbackFactory implements FallbackFactory<ApiSysDic
public Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request) {
return null;
}
@Override
public Result<ApiUpdateRedisDictListResponse> updateRedisDictList(ApiUpdateRedisDictListRequest request) {
return null;
}
};
}
}
package com.yd.user.feign.request.sysdict;
import lombok.Data;
import java.util.List;
@Data
public class ApiUpdateRedisDictListRequest {
/**
* 字典类型集合(需要更新到redis的字典类型集合,空就是更新全部数据。)
*/
private List<String> typeList;
}
package com.yd.user.feign.response.sysdict;
import lombok.Data;
@Data
public class ApiUpdateRedisDictListResponse {
}
package com.yd.user.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.service.model.SysDict;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
......@@ -13,4 +19,6 @@ import com.yd.user.service.model.SysDict;
*/
public interface SysDictMapper extends BaseMapper<SysDict> {
List<GetDictItemListByDictTypeResponse> queryListByTypeList(@Param("typeList") List<String> typeList);
}
package com.yd.user.service.service;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.service.model.SysDict;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.user.service.model.SysMenu;
import java.util.List;
/**
......@@ -19,4 +18,6 @@ public interface ISysDictService extends IService<SysDict> {
SysDict queryOneByType(String dictType);
List<SysDict> queryList(List<String> dictTypeList);
List<GetDictItemListByDictTypeResponse> queryListByTypeList(List<String> typeList);
}
package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.user.feign.request.sysdict.ApiUpdateRedisDictListRequest;
import com.yd.user.feign.response.sysdict.ApiUpdateRedisDictListResponse;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.service.model.SysDict;
import com.yd.user.service.dao.SysDictMapper;
import com.yd.user.service.model.SysDictItem;
......@@ -48,4 +51,9 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
);
return list;
}
@Override
public List<GetDictItemListByDictTypeResponse> queryListByTypeList(List<String> typeList) {
return baseMapper.queryListByTypeList(typeList);
}
}
......@@ -2,4 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.user.service.dao.SysDictMapper">
<select id="queryListByTypeList" resultType="com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse">
select sdi.*,sd.dict_type
from sys_dict_item sdi
left join sys_dict sd on sdi.dict_biz_id = sd.dict_biz_id and sd.is_deleted = 0
<where>
<if test="typeList.size > 0 and typeList != null">
and sd.dict_type in
<foreach collection="typeList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
and sdi.is_deleted = 0
</where>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment