【fix sonar】 SysBaseApiImpl.java文件

This commit is contained in:
tianwenbo
2023-03-07 09:46:24 +08:00
parent c9931dc087
commit dba987bd5a
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import com.jero.common.api.dto.OnlineAuthDTO; import com.jero.common.api.dto.OnlineAuthDTO;
import com.jero.common.api.dto.message.*; import com.jero.common.api.dto.message.*;
@@ -34,6 +35,7 @@ import com.jero.modules.system.entity.*;
import com.jero.modules.system.mapper.*; import com.jero.modules.system.mapper.*;
import com.jero.modules.system.service.*; import com.jero.modules.system.service.*;
import com.jero.modules.system.util.SecurityUtil; import com.jero.modules.system.util.SecurityUtil;
import org.checkerframework.checker.units.qual.K;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
@@ -95,6 +97,9 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Autowired @Autowired
ISysCategoryService sysCategoryService; ISysCategoryService sysCategoryService;
private static final String ERROR_MSG = "消息模板不存在,模板编码:";
private static final String STATUS = "status";
private static final String DEL_FLAG = "del_flag";
@Override @Override
@Cacheable(cacheNames=CacheConstant.SYS_USERS_CACHE, key="#username") @Cacheable(cacheNames=CacheConstant.SYS_USERS_CACHE, key="#username")
@@ -126,22 +131,22 @@ public class SysBaseApiImpl implements ISysBaseAPI {
List<SysPermission> currentSyspermission = null; List<SysPermission> currentSyspermission = null;
if(oConvertUtils.isNotEmpty(component)) { if(oConvertUtils.isNotEmpty(component)) {
//1.通过注解属性pageComponent 获取菜单 //1.通过注解属性pageComponent 获取菜单
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>(); LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getDelFlag,0); query.eq(SysPermission::getDelFlag,0);
query.eq(SysPermission::getComponent, component); query.eq(SysPermission::getComponent, component);
currentSyspermission = sysPermissionMapper.selectList(query); currentSyspermission = sysPermissionMapper.selectList(query);
}else { }else {
//1.直接通过前端请求地址查询菜单 //1.直接通过前端请求地址查询菜单
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>(); LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getMenuType,2); query.eq(SysPermission::getMenuType,2);
query.eq(SysPermission::getDelFlag,0); query.eq(SysPermission::getDelFlag,0);
query.eq(SysPermission::getUrl, requestPath); query.eq(SysPermission::getUrl, requestPath);
currentSyspermission = sysPermissionMapper.selectList(query); currentSyspermission = sysPermissionMapper.selectList(query);
//2.未找到 再通过自定义匹配URL 获取菜单 //2.未找到 再通过自定义匹配URL 获取菜单
if(currentSyspermission==null || currentSyspermission.size()==0) { if(currentSyspermission==null || currentSyspermission.isEmpty()) {
//通过自定义URL匹配规则 获取菜单(实现通过菜单配置数据权限规则,实际上针对获取数据接口进行数据规则控制) //通过自定义URL匹配规则 获取菜单(实现通过菜单配置数据权限规则,实际上针对获取数据接口进行数据规则控制)
String userMatchUrl = UrlMatchEnum.getMatchResultByUrl(requestPath); String userMatchUrl = UrlMatchEnum.getMatchResultByUrl(requestPath);
LambdaQueryWrapper<SysPermission> queryQserMatch = new LambdaQueryWrapper<SysPermission>(); LambdaQueryWrapper<SysPermission> queryQserMatch = new LambdaQueryWrapper<>();
queryQserMatch.eq(SysPermission::getMenuType, 1); queryQserMatch.eq(SysPermission::getMenuType, 1);
queryQserMatch.eq(SysPermission::getDelFlag, 0); queryQserMatch.eq(SysPermission::getDelFlag, 0);
queryQserMatch.eq(SysPermission::getUrl, userMatchUrl); queryQserMatch.eq(SysPermission::getUrl, userMatchUrl);
@@ -150,7 +155,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
} }
} }
//3.未找到 再通过正则匹配获取菜单 //3.未找到 再通过正则匹配获取菜单
if(currentSyspermission==null || currentSyspermission.size()==0) { if(currentSyspermission==null || currentSyspermission.isEmpty()) {
//通过正则匹配权限配置 //通过正则匹配权限配置
String regUrl = getRegexpUrl(requestPath); String regUrl = getRegexpUrl(requestPath);
if(regUrl!=null) { if(regUrl!=null) {
@@ -158,12 +163,12 @@ public class SysBaseApiImpl implements ISysBaseAPI {
} }
} }
} }
if(currentSyspermission!=null && currentSyspermission.size()>0){ if(currentSyspermission!=null && !currentSyspermission.isEmpty()){
List<SysPermissionDataRuleModel> dataRules = new ArrayList<SysPermissionDataRuleModel>(); List<SysPermissionDataRuleModel> dataRules = new ArrayList<>();
for (SysPermission sysPermission : currentSyspermission) { for (SysPermission sysPermission : currentSyspermission) {
// update-begin--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722 // update-begin--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
List<SysPermissionDataRule> temp = sysPermissionDataRuleService.queryPermissionDataRules(username, sysPermission.getId()); List<SysPermissionDataRule> temp = sysPermissionDataRuleService.queryPermissionDataRules(username, sysPermission.getId());
if(temp!=null && temp.size()>0) { if(temp!=null && !temp.isEmpty()) {
//dataRules.addAll(temp); //dataRules.addAll(temp);
dataRules = oConvertUtils.entityListToModelList(temp,SysPermissionDataRuleModel.class); dataRules = oConvertUtils.entityListToModelList(temp,SysPermissionDataRuleModel.class);
} }
@@ -182,7 +187,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
*/ */
private String getRegexpUrl(String url) { private String getRegexpUrl(String url) {
List<String> list = sysPermissionMapper.queryPermissionUrlWithStar(); List<String> list = sysPermissionMapper.queryPermissionUrlWithStar();
if(list!=null && list.size()>0) { if(list!=null && !list.isEmpty()) {
for (String p : list) { for (String p : list) {
PathMatcher matcher = new AntPathMatcher(); PathMatcher matcher = new AntPathMatcher();
if(matcher.match(p, url)) { if(matcher.match(p, url)) {
@@ -207,8 +212,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
} }
//多部门支持in查询 //多部门支持in查询
List<SysDepart> list = departMapper.queryUserDeparts(user.getId()); List<SysDepart> list = departMapper.queryUserDeparts(user.getId());
List<String> sysMultiOrgCode = new ArrayList<String>(); List<String> sysMultiOrgCode = new ArrayList<>();
if(list==null || list.size()==0) { if(list==null || list.isEmpty()) {
//当前用户无部门 //当前用户无部门
//sysMultiOrgCode.add("0"); //sysMultiOrgCode.add("0");
}else if(list.size()==1) { }else if(list.size()==1) {
@@ -265,8 +270,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public DictModel getParentDepartId(String departId) { public DictModel getParentDepartId(String departId) {
SysDepart depart = departMapper.getParentDepartId(departId); SysDepart depart = departMapper.getParentDepartId(departId);
DictModel model = new DictModel(depart.getId(),depart.getParentId()); // DictModel model = new DictModel(depart.getId(),depart.getParentId());
return model; return new DictModel(depart.getId(),depart.getParentId());
} }
@Override @Override
@@ -325,8 +330,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
String toUser = message.getToUser(); String toUser = message.getToUser();
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ if(sysSmsTemplates==null||sysSmsTemplates.isEmpty()){
throw new JeroBootException("消息模板不存在,模板编码:"+templateCode); throw new JeroBootException(ERROR_MSG+templateCode);
} }
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
//模板标题 //模板标题
@@ -391,8 +396,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
String busType = message.getBusType(); String busType = message.getBusType();
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ if(sysSmsTemplates==null||sysSmsTemplates.isEmpty()){
throw new JeroBootException("消息模板不存在,模板编码:"+templateCode); throw new JeroBootException(ERROR_MSG+templateCode);
} }
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
//模板标题 //模板标题
@@ -451,8 +456,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
String templateCode = templateDTO.getTemplateCode(); String templateCode = templateDTO.getTemplateCode();
Map<String, String> map = templateDTO.getTemplateParam(); Map<String, String> map = templateDTO.getTemplateParam();
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ if(sysSmsTemplates==null||sysSmsTemplates.isEmpty()){
throw new JeroBootException("消息模板不存在,模板编码:"+templateCode); throw new JeroBootException(ERROR_MSG+templateCode);
} }
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
//模板内容 //模板内容
@@ -487,7 +492,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
* @return * @return
* @throws SQLException * @throws SQLException
*/ */
private String getDatabaseTypeByDataSource(DataSource dataSource) throws SQLException{ private static String getDatabaseTypeByDataSource(DataSource dataSource) throws SQLException{
if("".equals(DB_TYPE)) { if("".equals(DB_TYPE)) {
Connection connection = dataSource.getConnection(); Connection connection = dataSource.getConnection();
try { try {
@@ -517,11 +522,11 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<DictModel> queryAllDict() { public List<DictModel> queryAllDict() {
// 查询并排序 // 查询并排序
QueryWrapper<SysDict> queryWrapper = new QueryWrapper<SysDict>(); QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("create_time"); queryWrapper.orderByAsc("create_time");
List<SysDict> dicts = sysDictService.list(queryWrapper); List<SysDict> dicts = sysDictService.list(queryWrapper);
// 封装成 model // 封装成 model
List<DictModel> list = new ArrayList<DictModel>(); List<DictModel> list = new ArrayList<>();
for (SysDict dict : dicts) { for (SysDict dict : dicts) {
list.add(new DictModel(dict.getDictCode(), dict.getDictName())); list.add(new DictModel(dict.getDictCode(), dict.getDictName()));
} }
@@ -532,8 +537,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<SysCategoryModel> queryAllDSysCategory() { public List<SysCategoryModel> queryAllDSysCategory() {
List<SysCategory> ls = categoryMapper.selectList(null); List<SysCategory> ls = categoryMapper.selectList(null);
List<SysCategoryModel> res = oConvertUtils.entityListToModelList(ls,SysCategoryModel.class); // List<SysCategoryModel> res = oConvertUtils.entityListToModelList(ls,SysCategoryModel.class);
return res; return oConvertUtils.entityListToModelList(ls,SysCategoryModel.class);
} }
@Override @Override
@@ -548,8 +553,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<ComboModel> queryAllUserBackCombo() { public List<ComboModel> queryAllUserBackCombo() {
List<ComboModel> list = new ArrayList<ComboModel>(); List<ComboModel> list = new ArrayList<>();
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq("status",1).eq("del_flag",0)); List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().eq(STATUS,1).eq(DEL_FLAG,0));
for(SysUser user : userList){ for(SysUser user : userList){
ComboModel model = new ComboModel(); ComboModel model = new ComboModel();
model.setTitle(user.getRealname()); model.setTitle(user.getRealname());
@@ -563,9 +568,9 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize) { public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize) {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq("status",1).eq("del_flag",0); QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq(STATUS,1).eq(DEL_FLAG,0);
List<ComboModel> list = new ArrayList<ComboModel>(); List<ComboModel> list = new ArrayList<>();
Page<SysUser> page = new Page<SysUser>(pageNo, pageSize); Page<SysUser> page = new Page<>(pageNo, pageSize);
IPage<SysUser> pageList = userMapper.selectPage(page, queryWrapper); IPage<SysUser> pageList = userMapper.selectPage(page, queryWrapper);
for(SysUser user : pageList.getRecords()){ for(SysUser user : pageList.getRecords()){
ComboModel model = new ComboModel(); ComboModel model = new ComboModel();
@@ -590,8 +595,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<ComboModel> queryAllRole() { public List<ComboModel> queryAllRole() {
List<ComboModel> list = new ArrayList<ComboModel>(); List<ComboModel> list = new ArrayList<>();
List<SysRole> roleList = roleMapper.selectList(new QueryWrapper<SysRole>()); List<SysRole> roleList = roleMapper.selectList(new QueryWrapper<>());
for(SysRole role : roleList){ for(SysRole role : roleList){
ComboModel model = new ComboModel(); ComboModel model = new ComboModel();
model.setTitle(role.getRoleName()); model.setTitle(role.getRoleName());
@@ -603,8 +608,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<ComboModel> queryAllRole(String[] roleIds) { public List<ComboModel> queryAllRole(String[] roleIds) {
List<ComboModel> list = new ArrayList<ComboModel>(); List<ComboModel> list = new ArrayList<>();
List<SysRole> roleList = roleMapper.selectList(new QueryWrapper<SysRole>()); List<SysRole> roleList = roleMapper.selectList(new QueryWrapper<>());
for(SysRole role : roleList){ for(SysRole role : roleList){
ComboModel model = new ComboModel(); ComboModel model = new ComboModel();
model.setTitle(role.getRoleName()); model.setTitle(role.getRoleName());
@@ -634,8 +639,8 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<SysDepartModel> getAllSysDepart() { public List<SysDepartModel> getAllSysDepart() {
List<SysDepartModel> departModelList = new ArrayList<SysDepartModel>(); List<SysDepartModel> departModelList = new ArrayList<>();
List<SysDepart> departList = departMapper.selectList(new QueryWrapper<SysDepart>().eq("del_flag","0")); List<SysDepart> departList = departMapper.selectList(new QueryWrapper<SysDepart>().eq(DEL_FLAG,"0"));
for(SysDepart depart : departList){ for(SysDepart depart : departList){
SysDepartModel model = new SysDepartModel(); SysDepartModel model = new SysDepartModel();
BeanUtils.copyProperties(depart,model); BeanUtils.copyProperties(depart,model);
@@ -668,7 +673,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<String> getDeptHeadByDepId(String deptId) { public List<String> getDeptHeadByDepId(String deptId) {
List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().like("depart_ids",deptId).eq("status",1).eq("del_flag",0)); List<SysUser> userList = userMapper.selectList(new QueryWrapper<SysUser>().like("depart_ids",deptId).eq(STATUS,1).eq(DEL_FLAG,0));
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for(SysUser user : userList){ for(SysUser user : userList){
list.add(user.getUsername()); list.add(user.getUsername());
@@ -685,7 +690,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<LoginUser> queryAllUserByIds(String[] userIds) { public List<LoginUser> queryAllUserByIds(String[] userIds) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq("status",1).eq("del_flag",0); QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq(STATUS,1).eq(DEL_FLAG,0);
queryWrapper.in("id",userIds); queryWrapper.in("id",userIds);
List<LoginUser> loginUsers = new ArrayList<>(); List<LoginUser> loginUsers = new ArrayList<>();
List<SysUser> sysUsers = userMapper.selectList(queryWrapper); List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
@@ -712,7 +717,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
@Override @Override
public List<LoginUser> queryUserByNames(String[] userNames) { public List<LoginUser> queryUserByNames(String[] userNames) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq("status",1).eq("del_flag",0); QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().eq(STATUS,1).eq(DEL_FLAG,0);
queryWrapper.in("username",userNames); queryWrapper.in("username",userNames);
List<LoginUser> loginUsers = new ArrayList<>(); List<LoginUser> loginUsers = new ArrayList<>();
List<SysUser> sysUsers = userMapper.selectList(queryWrapper); List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
@@ -796,7 +801,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
permissionSet.add(po.getPerms()); permissionSet.add(po.getPerms());
} }
} }
log.info("-------通过数据库读取用户拥有的权限Perms------username "+ username+",Perms size: "+ (permissionSet==null?0:permissionSet.size()) ); log.info("-------通过数据库读取用户拥有的权限Perms------username "+ username+",Perms size: "+ (permissionSet.isEmpty()?0:permissionSet.size()) );
return permissionSet; return permissionSet;
} }
@@ -811,11 +816,11 @@ public class SysBaseApiImpl implements ISysBaseAPI {
List<String> possibleUrl = onlineAuthDTO.getPossibleUrl(); List<String> possibleUrl = onlineAuthDTO.getPossibleUrl();
String onlineFormUrl = onlineAuthDTO.getOnlineFormUrl(); String onlineFormUrl = onlineAuthDTO.getOnlineFormUrl();
//查询菜单 //查询菜单
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>(); LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getDelFlag, 0); query.eq(SysPermission::getDelFlag, 0);
query.in(SysPermission::getUrl, possibleUrl); query.in(SysPermission::getUrl, possibleUrl);
List<SysPermission> permissionList = sysPermissionMapper.selectList(query); List<SysPermission> permissionList = sysPermissionMapper.selectList(query);
if (permissionList == null || permissionList.size() == 0) { if (permissionList == null || permissionList.isEmpty()) {
//没有配置菜单 找online表单菜单地址 //没有配置菜单 找online表单菜单地址
SysPermission sysPermission = new SysPermission(); SysPermission sysPermission = new SysPermission();
sysPermission.setUrl(onlineFormUrl); sysPermission.setUrl(onlineFormUrl);
@@ -1040,10 +1045,10 @@ public class SysBaseApiImpl implements ISysBaseAPI {
//2.获取公司下级部门 //2.获取公司下级部门
List<SysDepart> departs=sysDepartService.queryDeptByPid(comp.getId()); List<SysDepart> departs=sysDepartService.queryDeptByPid(comp.getId());
//3.获取部门下的人员信息 //3.获取部门下的人员信息
List<Map> list=new ArrayList(); List<Map> list=new ArrayList<>();
//4.处理部门和下级用户数据 //4.处理部门和下级用户数据
for (SysDepart dept:departs) { for (SysDepart dept:departs) {
Map map=new HashMap(); Map map=new HashMap<>();
//部门名称 //部门名称
String departName = dept.getDepartName(); String departName = dept.getDepartName();
//根据部门编码获取下级部门id //根据部门编码获取下级部门id