Commit 30eeccad by zhangxingmin

更新redis缓存中的字典列表

parent a5f39c15
...@@ -3,7 +3,9 @@ package com.yd.user.api.controller; ...@@ -3,7 +3,9 @@ package com.yd.user.api.controller;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDictService; import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient; 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.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.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse; import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -45,4 +47,13 @@ public class ApiSysDictController implements ApiSysDictFeignClient { ...@@ -45,4 +47,13 @@ public class ApiSysDictController implements ApiSysDictFeignClient {
return apiSysDictService.getByDictTypeList(request); return apiSysDictService.getByDictTypeList(request);
} }
/**
* 更新redis缓存中的字典列表
* @return
*/
@Override
public Result<ApiUpdateRedisDictListResponse> updateRedisDictList(ApiUpdateRedisDictListRequest request) {
return apiSysDictService.updateRedisDictList(request);
}
} }
package com.yd.user.api.service; package com.yd.user.api.service;
import com.yd.common.result.Result; 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.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.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse; import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
...@@ -11,4 +13,6 @@ public interface ApiSysDictService { ...@@ -11,4 +13,6 @@ public interface ApiSysDictService {
Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType); Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType);
Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request); Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request);
Result<ApiUpdateRedisDictListResponse> updateRedisDictList(ApiUpdateRedisDictListRequest request);
} }
package com.yd.user.api.service.impl; package com.yd.user.api.service.impl;
import com.yd.common.constant.RedisConstants;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RedisUtil;
import com.yd.user.api.service.ApiSysDictService; 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.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.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse; import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import com.yd.user.service.dto.SysDictItemDto; import com.yd.user.service.dto.SysDictItemDto;
...@@ -20,6 +24,7 @@ import java.util.ArrayList; ...@@ -20,6 +24,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -31,6 +36,9 @@ public class ApiSysDictServiceImpl implements ApiSysDictService { ...@@ -31,6 +36,9 @@ public class ApiSysDictServiceImpl implements ApiSysDictService {
@Autowired @Autowired
private ISysDictItemService iSysDictItemService; private ISysDictItemService iSysDictItemService;
@Autowired
private RedisUtil redisUtil;
/** /**
* 根据字典类型获取字典数据项列表 * 根据字典类型获取字典数据项列表
* @param dictType * @param dictType
...@@ -111,4 +119,21 @@ public class ApiSysDictServiceImpl implements ApiSysDictService { ...@@ -111,4 +119,21 @@ public class ApiSysDictServiceImpl implements ApiSysDictService {
return Result.success(typeListResponseList); 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; ...@@ -2,7 +2,9 @@ package com.yd.user.feign.client.sysdict;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.fallback.sysdict.ApiSysDictFeignFallbackFactory; 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.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.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse; import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -35,4 +37,11 @@ public interface ApiSysDictFeignClient { ...@@ -35,4 +37,11 @@ public interface ApiSysDictFeignClient {
@PostMapping("/type/list") @PostMapping("/type/list")
Result<List<GetDictTypeListResponse>> getByDictTypeList(@Validated @RequestBody GetDictTypeListRequest request); 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; ...@@ -2,7 +2,9 @@ package com.yd.user.feign.fallback.sysdict;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient; 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.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.GetDictItemListByDictTypeResponse;
import com.yd.user.feign.response.sysdict.GetDictTypeListResponse; import com.yd.user.feign.response.sysdict.GetDictTypeListResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -28,6 +30,11 @@ public class ApiSysDictFeignFallbackFactory implements FallbackFactory<ApiSysDic ...@@ -28,6 +30,11 @@ public class ApiSysDictFeignFallbackFactory implements FallbackFactory<ApiSysDic
public Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request) { public Result<List<GetDictTypeListResponse>> getByDictTypeList(GetDictTypeListRequest request) {
return null; 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; package com.yd.user.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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 com.yd.user.service.model.SysDict;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +19,6 @@ import com.yd.user.service.model.SysDict; ...@@ -13,4 +19,6 @@ import com.yd.user.service.model.SysDict;
*/ */
public interface SysDictMapper extends BaseMapper<SysDict> { public interface SysDictMapper extends BaseMapper<SysDict> {
List<GetDictItemListByDictTypeResponse> queryListByTypeList(@Param("typeList") List<String> typeList);
} }
package com.yd.user.service.service; package com.yd.user.service.service;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.service.model.SysDict; import com.yd.user.service.model.SysDict;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.user.service.model.SysMenu;
import java.util.List; import java.util.List;
/** /**
...@@ -19,4 +18,6 @@ public interface ISysDictService extends IService<SysDict> { ...@@ -19,4 +18,6 @@ public interface ISysDictService extends IService<SysDict> {
SysDict queryOneByType(String dictType); SysDict queryOneByType(String dictType);
List<SysDict> queryList(List<String> dictTypeList); List<SysDict> queryList(List<String> dictTypeList);
List<GetDictItemListByDictTypeResponse> queryListByTypeList(List<String> typeList);
} }
package com.yd.user.service.service.impl; package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.model.SysDict;
import com.yd.user.service.dao.SysDictMapper; import com.yd.user.service.dao.SysDictMapper;
import com.yd.user.service.model.SysDictItem; import com.yd.user.service.model.SysDictItem;
...@@ -48,4 +51,9 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl ...@@ -48,4 +51,9 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
); );
return list; return list;
} }
@Override
public List<GetDictItemListByDictTypeResponse> queryListByTypeList(List<String> typeList) {
return baseMapper.queryListByTypeList(typeList);
}
} }
...@@ -2,4 +2,18 @@ ...@@ -2,4 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <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> </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