add
This commit is contained in:
@ -68,4 +68,9 @@ public class BaseConstant {
|
|||||||
* 租户 key 前缀
|
* 租户 key 前缀
|
||||||
*/
|
*/
|
||||||
public static final String TENANT_KEY_PREFIX = "tenant_";
|
public static final String TENANT_KEY_PREFIX = "tenant_";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* header 租户 key
|
||||||
|
*/
|
||||||
|
public static final String HEADER_KEY_TENANT = "tenant";
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.qiaoba.common.database.filters;
|
package com.qiaoba.common.database.filters;
|
||||||
|
|
||||||
|
import com.qiaoba.common.base.constants.BaseConstant;
|
||||||
import com.qiaoba.common.base.context.BaseContext;
|
import com.qiaoba.common.base.context.BaseContext;
|
||||||
import com.qiaoba.common.database.config.DynamicDataSourceContext;
|
import com.qiaoba.common.database.config.DynamicDataSourceContext;
|
||||||
import com.qiaoba.common.database.constants.DynamicDatasourceConstant;
|
import com.qiaoba.common.database.constants.DynamicDatasourceConstant;
|
||||||
@ -32,7 +33,7 @@ public class DynamicDataSourceFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||||
before();
|
before(request);
|
||||||
filterChain.doFilter(request, response);
|
filterChain.doFilter(request, response);
|
||||||
after();
|
after();
|
||||||
}
|
}
|
||||||
@ -43,12 +44,13 @@ public class DynamicDataSourceFilter extends OncePerRequestFilter {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void before() {
|
private void before(HttpServletRequest request) {
|
||||||
|
String tenantId = request.getHeader(BaseConstant.HEADER_KEY_TENANT);
|
||||||
// todo
|
// todo
|
||||||
//设置当前租户对应的数据源
|
//设置当前租户对应的数据源
|
||||||
BaseContext.setDataSource(DynamicDatasourceConstant.DEFAULT_MASTER_DATASOURCE_KEY);
|
BaseContext.setDataSource(DynamicDatasourceConstant.DEFAULT_MASTER_DATASOURCE_KEY);
|
||||||
//设置当前租户对应的租户ID
|
//设置当前租户对应的租户ID
|
||||||
BaseContext.setTenantId("1");
|
BaseContext.setTenantId(tenantId);
|
||||||
//设置当前租户对应的数据库类型
|
//设置当前租户对应的数据库类型
|
||||||
BaseContext.setDatabaseType("MySQL");
|
BaseContext.setDatabaseType("MySQL");
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import com.qiaoba.common.base.result.AjaxResult;
|
|||||||
import com.qiaoba.common.database.entity.PageQuery;
|
import com.qiaoba.common.database.entity.PageQuery;
|
||||||
import com.qiaoba.common.database.entity.TableDataInfo;
|
import com.qiaoba.common.database.entity.TableDataInfo;
|
||||||
import com.qiaoba.common.poi.utils.ExcelUtil;
|
import com.qiaoba.common.poi.utils.ExcelUtil;
|
||||||
|
import com.qiaoba.module.system.service.SysDictDataService;
|
||||||
import com.qiaoba.module.system.service.SysDictTypeService;
|
import com.qiaoba.module.system.service.SysDictTypeService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
@ -27,6 +28,8 @@ import java.util.List;
|
|||||||
public class SysDictTypeController {
|
public class SysDictTypeController {
|
||||||
|
|
||||||
private final SysDictTypeService sysDictTypeService;
|
private final SysDictTypeService sysDictTypeService;
|
||||||
|
private final SysDictDataService sysDictDataService;
|
||||||
|
|
||||||
|
|
||||||
@PreAuthorize("hasAuthority('system:dict:list')")
|
@PreAuthorize("hasAuthority('system:dict:list')")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@ -64,4 +67,11 @@ public class SysDictTypeController {
|
|||||||
public AjaxResult remove(@PathVariable List<String> ids) {
|
public AjaxResult remove(@PathVariable List<String> ids) {
|
||||||
return AjaxResult.toAjax(sysDictTypeService.deleteByIds(ids));
|
return AjaxResult.toAjax(sysDictTypeService.deleteByIds(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("hasAuthority('system:dict:remove')")
|
||||||
|
@DeleteMapping("/refreshCache")
|
||||||
|
public AjaxResult refreshCache() {
|
||||||
|
sysDictDataService.resetDictCache();
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,4 +73,9 @@ public interface SysDictDataService extends SysDictApiService {
|
|||||||
* @return list
|
* @return list
|
||||||
*/
|
*/
|
||||||
List<SysDictData> selectList(SysDictDataParam param);
|
List<SysDictData> selectList(SysDictDataParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置字典缓存数据
|
||||||
|
*/
|
||||||
|
void resetDictCache();
|
||||||
}
|
}
|
||||||
|
@ -65,4 +65,5 @@ public interface SysDictTypeService {
|
|||||||
* @return list
|
* @return list
|
||||||
*/
|
*/
|
||||||
List<SysDictType> selectList(SysDictTypeParam param);
|
List<SysDictType> selectList(SysDictTypeParam param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,14 +9,14 @@ import com.qiaoba.auth.utils.SecurityUtil;
|
|||||||
import com.qiaoba.common.base.exceptions.ServiceException;
|
import com.qiaoba.common.base.exceptions.ServiceException;
|
||||||
import com.qiaoba.common.database.entity.PageQuery;
|
import com.qiaoba.common.database.entity.PageQuery;
|
||||||
import com.qiaoba.common.database.entity.TableDataInfo;
|
import com.qiaoba.common.database.entity.TableDataInfo;
|
||||||
|
import com.qiaoba.common.redis.constants.CacheConstant;
|
||||||
import com.qiaoba.module.system.mapper.SysDictDataMapper;
|
import com.qiaoba.module.system.mapper.SysDictDataMapper;
|
||||||
import com.qiaoba.module.system.service.SysDictDataService;
|
import com.qiaoba.module.system.service.SysDictDataService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.stream.Collectors;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -70,6 +70,11 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
|||||||
return sysDictDataMapper.selectList(param2Wrapper(param));
|
return sysDictDataMapper.selectList(param2Wrapper(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resetDictCache() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SysDictData> selectByDictType(String dictType) {
|
public List<SysDictData> selectByDictType(String dictType) {
|
||||||
return sysDictDataMapper.selectList(param2Wrapper(new SysDictDataParam(dictType)));
|
return sysDictDataMapper.selectList(param2Wrapper(new SysDictDataParam(dictType)));
|
||||||
|
@ -2,19 +2,26 @@ package com.qiaoba.module.system.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.qiaoba.api.system.entity.SysDictData;
|
||||||
import com.qiaoba.api.system.entity.SysDictType;
|
import com.qiaoba.api.system.entity.SysDictType;
|
||||||
|
import com.qiaoba.api.system.entity.param.SysDictDataParam;
|
||||||
import com.qiaoba.api.system.entity.param.SysDictTypeParam;
|
import com.qiaoba.api.system.entity.param.SysDictTypeParam;
|
||||||
import com.qiaoba.auth.utils.SecurityUtil;
|
import com.qiaoba.auth.utils.SecurityUtil;
|
||||||
import com.qiaoba.common.base.exceptions.ServiceException;
|
import com.qiaoba.common.base.exceptions.ServiceException;
|
||||||
import com.qiaoba.common.database.entity.PageQuery;
|
import com.qiaoba.common.database.entity.PageQuery;
|
||||||
import com.qiaoba.common.database.entity.TableDataInfo;
|
import com.qiaoba.common.database.entity.TableDataInfo;
|
||||||
|
import com.qiaoba.common.redis.constants.CacheConstant;
|
||||||
|
import com.qiaoba.common.redis.service.RedisService;
|
||||||
import com.qiaoba.module.system.mapper.SysDictTypeMapper;
|
import com.qiaoba.module.system.mapper.SysDictTypeMapper;
|
||||||
import com.qiaoba.module.system.service.SysDictTypeService;
|
import com.qiaoba.module.system.service.SysDictTypeService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字典类型管理 服务层实现
|
* 字典类型管理 服务层实现
|
||||||
@ -28,6 +35,8 @@ import java.util.List;
|
|||||||
public class SysDictTypeServiceImpl implements SysDictTypeService {
|
public class SysDictTypeServiceImpl implements SysDictTypeService {
|
||||||
|
|
||||||
private final SysDictTypeMapper sysDictTypeMapper;
|
private final SysDictTypeMapper sysDictTypeMapper;
|
||||||
|
private final RedisService redisService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int insert(SysDictType sysDictType) {
|
public int insert(SysDictType sysDictType) {
|
||||||
@ -66,6 +75,7 @@ public class SysDictTypeServiceImpl implements SysDictTypeService {
|
|||||||
return sysDictTypeMapper.selectList(param2Wrapper(param));
|
return sysDictTypeMapper.selectList(param2Wrapper(param));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void checkAllowInsertOrUpdate(SysDictType sysDictType) {
|
private void checkAllowInsertOrUpdate(SysDictType sysDictType) {
|
||||||
String dictType = sysDictTypeMapper.checkDictTypeUnique(sysDictType);
|
String dictType = sysDictTypeMapper.checkDictTypeUnique(sysDictType);
|
||||||
if (StrUtil.isNotBlank(dictType)) {
|
if (StrUtil.isNotBlank(dictType)) {
|
||||||
|
Reference in New Issue
Block a user