perf: 代码优化

pull/9/head
Carina 4 years ago
parent 0812c9f143
commit 9ce8a166ea

@ -34,6 +34,7 @@ import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder; import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.chain.QueryDataPermsHandler; import org.opsli.core.persistence.querybuilder.chain.QueryDataPermsHandler;
import org.opsli.core.persistence.querybuilder.chain.QueryTenantHandler; import org.opsli.core.persistence.querybuilder.chain.QueryTenantHandler;
import org.opsli.core.persistence.querybuilder.conf.WebQueryConf;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -212,23 +213,17 @@ public abstract class CrudServiceImpl<M extends BaseMapper<T>, T extends BaseEnt
@Override @Override
public List<T> findList(QueryWrapper<T> queryWrapper) { public List<T> findList(QueryWrapper<T> queryWrapper) {
// 数据处理责任链 // 数据处理责任链
queryWrapper = new QueryTenantHandler( QueryWrapper<T> qWrapper = this.addHandler(entityClazz, queryWrapper);
new QueryDataPermsHandler()
).handler(entityClazz, queryWrapper);
return super.list(queryWrapper); return super.list(qWrapper);
} }
@Override @Override
public List<T> findAllList() { public List<T> findAllList() {
QueryBuilder<T> queryBuilder = new GenQueryBuilder<>();
QueryWrapper<T> queryWrapper = queryBuilder.build();
// 数据处理责任链 // 数据处理责任链
queryWrapper = new QueryTenantHandler( QueryWrapper<T> qWrapper = this.addHandler(entityClazz);
new QueryDataPermsHandler()
).handler(entityClazz, queryWrapper);
return super.list(queryWrapper); return super.list(qWrapper);
} }
@Override @Override
@ -300,6 +295,46 @@ public abstract class CrudServiceImpl<M extends BaseMapper<T>, T extends BaseEnt
return WrapperUtil.transformInstance(models, entityClazz); return WrapperUtil.transformInstance(models, entityClazz);
} }
/**
*
* @param qClass Class
* @param <Q>
* @return
*/
protected <Q extends BaseEntity> QueryWrapper<Q> addHandler(Class<Q> qClass){
QueryWrapper<Q> qQueryWrapper = new QueryWrapper<>();
return addHandler(qClass, qQueryWrapper);
}
/**
*
* @param qClass Class
* @param qQueryWrapper
* @param <Q>
* @return
*/
protected <Q extends BaseEntity> QueryWrapper<Q> addHandler(Class<Q> qClass, QueryWrapper<Q> qQueryWrapper){
// 数据处理责任链
return new QueryTenantHandler(
new QueryDataPermsHandler()
).handler(qClass, qQueryWrapper);
}
/**
*
* @param qClass Class
* @param qQueryWrapper
* @param <Q>
* @return
*/
protected <Q extends BaseEntity> QueryWrapper<Q> addHandler(Class<Q> qClass,
WebQueryConf conf,
QueryWrapper<Q> qQueryWrapper){
// 数据处理责任链
return new QueryTenantHandler(
new QueryDataPermsHandler()
).handler(qClass, conf, qQueryWrapper);
}
// ======================== 初始化 ======================== // ======================== 初始化 ========================

@ -17,21 +17,15 @@ package org.opsli.modulars.system.role.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.opsli.api.wrapper.system.role.RoleModel; import org.opsli.api.wrapper.system.role.RoleModel;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.constants.MyBatisConstants; import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.exception.ServiceException; import org.opsli.common.exception.ServiceException;
import org.opsli.common.utils.FieldUtil; import org.opsli.common.utils.FieldUtil;
import org.opsli.core.base.service.impl.CrudServiceImpl; import org.opsli.core.base.service.impl.CrudServiceImpl;
import org.opsli.core.msg.CoreMsg; import org.opsli.core.msg.CoreMsg;
import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.chain.QueryDataPermsHandler;
import org.opsli.core.persistence.querybuilder.chain.QueryTenantHandler;
import org.opsli.core.utils.UserUtil; import org.opsli.core.utils.UserUtil;
import org.opsli.modulars.system.SystemMsg; import org.opsli.modulars.system.SystemMsg;
import org.opsli.modulars.system.role.entity.SysRole; import org.opsli.modulars.system.role.entity.SysRole;
@ -205,9 +199,7 @@ public class RoleServiceImpl extends CrudServiceImpl<RoleMapper, SysRole, RoleMo
}else { }else {
// 租户检测 // 租户检测
// 数据处理责任链 // 数据处理责任链
wrapper = new QueryTenantHandler( wrapper = super.addHandler(entityClazz, wrapper);
new QueryDataPermsHandler()
).handler(entityClazz, wrapper);
} }
return super.count(wrapper) == 0; return super.count(wrapper) == 0;
@ -240,9 +232,7 @@ public class RoleServiceImpl extends CrudServiceImpl<RoleMapper, SysRole, RoleMo
}else { }else {
// 租户检测 // 租户检测
// 数据处理责任链 // 数据处理责任链
wrapper = new QueryTenantHandler( wrapper = super.addHandler(entityClazz, wrapper);
new QueryDataPermsHandler()
).handler(entityClazz, wrapper);
} }
return super.count(wrapper) == 0; return super.count(wrapper) == 0;

@ -16,7 +16,6 @@
package org.opsli.modulars.system.user.service.impl; package org.opsli.modulars.system.user.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -24,10 +23,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.opsli.api.base.warpper.ApiWrapper;
import org.opsli.api.wrapper.system.menu.MenuModel;
import org.opsli.api.wrapper.system.options.OptionsModel; import org.opsli.api.wrapper.system.options.OptionsModel;
import org.opsli.api.wrapper.system.role.RoleModel;
import org.opsli.api.wrapper.system.user.UserModel; import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.api.wrapper.system.user.UserPassword; import org.opsli.api.wrapper.system.user.UserPassword;
import org.opsli.api.wrapper.system.user.UserRoleRefModel; import org.opsli.api.wrapper.system.user.UserRoleRefModel;
@ -37,19 +33,15 @@ import org.opsli.common.enums.DictType;
import org.opsli.common.exception.ServiceException; import org.opsli.common.exception.ServiceException;
import org.opsli.common.utils.CheckStrength; import org.opsli.common.utils.CheckStrength;
import org.opsli.common.utils.FieldUtil; import org.opsli.common.utils.FieldUtil;
import org.opsli.common.utils.ListDistinctUtil;
import org.opsli.common.utils.WrapperUtil; import org.opsli.common.utils.WrapperUtil;
import org.opsli.core.base.service.impl.CrudServiceImpl; import org.opsli.core.base.service.impl.CrudServiceImpl;
import org.opsli.core.msg.CoreMsg; import org.opsli.core.msg.CoreMsg;
import org.opsli.core.persistence.Page; import org.opsli.core.persistence.Page;
import org.opsli.core.persistence.querybuilder.GenQueryBuilder; import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder; import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.chain.QueryDataPermsHandler;
import org.opsli.core.persistence.querybuilder.chain.QueryTenantHandler;
import org.opsli.core.utils.OptionsUtil; import org.opsli.core.utils.OptionsUtil;
import org.opsli.core.utils.UserUtil; import org.opsli.core.utils.UserUtil;
import org.opsli.modulars.system.SystemMsg; import org.opsli.modulars.system.SystemMsg;
import org.opsli.modulars.system.menu.entity.SysMenu;
import org.opsli.modulars.system.menu.service.IMenuService; import org.opsli.modulars.system.menu.service.IMenuService;
import org.opsli.modulars.system.role.entity.SysRole; import org.opsli.modulars.system.role.entity.SysRole;
import org.opsli.modulars.system.role.service.IRoleService; import org.opsli.modulars.system.role.service.IRoleService;
@ -64,7 +56,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
@ -457,9 +448,7 @@ public class UserServiceImpl extends CrudServiceImpl<UserMapper, SysUser, UserMo
// 如果没有租户修改能力 则默认增加租户限制 // 如果没有租户修改能力 则默认增加租户限制
if(!UserUtil.isHasUpdateTenantPerms(UserUtil.getUser())){ if(!UserUtil.isHasUpdateTenantPerms(UserUtil.getUser())){
// 数据处理责任链 // 数据处理责任链
queryWrapper = new QueryTenantHandler( queryWrapper = super.addHandler(entityClazz, queryWrapper);
new QueryDataPermsHandler()
).handler(entityClazz, queryWrapper);
} }
return super.list(queryWrapper); return super.list(queryWrapper);
@ -472,9 +461,7 @@ public class UserServiceImpl extends CrudServiceImpl<UserMapper, SysUser, UserMo
// 如果没有租户修改能力 则默认增加租户限制 // 如果没有租户修改能力 则默认增加租户限制
if(!UserUtil.isHasUpdateTenantPerms(UserUtil.getUser())){ if(!UserUtil.isHasUpdateTenantPerms(UserUtil.getUser())){
// 数据处理责任链 // 数据处理责任链
queryWrapper = new QueryTenantHandler( queryWrapper = super.addHandler(entityClazz, queryWrapper);
new QueryDataPermsHandler()
).handler(entityClazz, queryWrapper);
} }
return super.list(queryWrapper); return super.list(queryWrapper);
} }
@ -606,9 +593,7 @@ public class UserServiceImpl extends CrudServiceImpl<UserMapper, SysUser, UserMo
// 如果没有租户修改能力 则默认增加租户限制 // 如果没有租户修改能力 则默认增加租户限制
if(!UserUtil.isHasUpdateTenantPerms(UserUtil.getUser())){ if(!UserUtil.isHasUpdateTenantPerms(UserUtil.getUser())){
// 数据处理责任链 // 数据处理责任链
queryWrapper = new QueryTenantHandler( queryWrapper = super.addHandler(SysUserWeb.class, queryWrapper);
new QueryDataPermsHandler()
).handler(SysUserWeb.class, queryWrapper);
} }
@ -671,9 +656,7 @@ public class UserServiceImpl extends CrudServiceImpl<UserMapper, SysUser, UserMo
// 租户检测 // 租户检测
// 数据处理责任链 // 数据处理责任链
wrapper = new QueryTenantHandler( wrapper = super.addHandler(entityClazz, wrapper);
new QueryDataPermsHandler()
).handler(entityClazz, wrapper);
return super.count(wrapper) == 0; return super.count(wrapper) == 0;
} }

Loading…
Cancel
Save