【3.6.3版本发布】性能优化部分代码

pull/5955/head^2
zhangdaiscott 2024-03-06 16:19:51 +08:00
parent 4a857680d0
commit a9dba08a8d
8 changed files with 132 additions and 88 deletions

View File

@ -22,10 +22,10 @@ public interface CommonAPI {
/** /**
* 2 * 2
* @param username * @param userId
* @return * @return
*/ */
Set<String> queryUserAuths(String username); Set<String> queryUserAuths(String userId);
/** /**
* 3 id DynamicDataSourceModel * 3 id DynamicDataSourceModel

View File

@ -62,9 +62,11 @@ public class ShiroRealm extends AuthorizingRealm {
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
log.debug("===============Shiro权限认证开始============ [ roles、permissions]=========="); log.debug("===============Shiro权限认证开始============ [ roles、permissions]==========");
String username = null; String username = null;
String userId = null;
if (principals != null) { if (principals != null) {
LoginUser sysUser = (LoginUser) principals.getPrimaryPrincipal(); LoginUser sysUser = (LoginUser) principals.getPrimaryPrincipal();
username = sysUser.getUsername(); username = sysUser.getUsername();
userId = sysUser.getId();
} }
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
@ -74,7 +76,7 @@ public class ShiroRealm extends AuthorizingRealm {
info.setRoles(roleSet); info.setRoles(roleSet);
// 设置用户拥有的权限集合比如“sys:role:add,sys:user:add” // 设置用户拥有的权限集合比如“sys:role:add,sys:user:add”
Set<String> permissionSet = commonApi.queryUserAuths(username); Set<String> permissionSet = commonApi.queryUserAuths(userId);
info.addStringPermissions(permissionSet); info.addStringPermissions(permissionSet);
//System.out.println(permissionSet); //System.out.println(permissionSet);
log.info("===============Shiro权限认证成功=============="); log.info("===============Shiro权限认证成功==============");

View File

@ -307,11 +307,11 @@ public interface ISysBaseAPI extends CommonAPI {
/** /**
* 31 * 31
* @param username * @param userId
* @return * @return
*/ */
@GetMapping("/sys/api/getUserPermissionSet") @GetMapping("/sys/api/getUserPermissionSet")
Set<String> getUserPermissionSet(@RequestParam("username") String username); Set<String> getUserPermissionSet(@RequestParam("userId") String userId);
/** /**
* 32online访 * 32online访
@ -351,12 +351,12 @@ public interface ISysBaseAPI extends CommonAPI {
/** /**
* 36 * 36
* @param username * @param userId
* @return * @return
*/ */
@Override @Override
@GetMapping("/sys/api/queryUserAuths") @GetMapping("/sys/api/queryUserAuths")
Set<String> queryUserAuths(@RequestParam("username")String username); Set<String> queryUserAuths(@RequestParam("userId")String userId);
/** /**
* 37 id DynamicDataSourceModel * 37 id DynamicDataSourceModel
@ -611,20 +611,6 @@ public interface ISysBaseAPI extends CommonAPI {
@PostMapping("/sys/api/saveDataLog") @PostMapping("/sys/api/saveDataLog")
void saveDataLog(DataLogDTO dataLogDto); void saveDataLog(DataLogDTO dataLogDto);
/**
*
* @param sysFilesModel
*/
@PostMapping("/sys/api/addSysFiles")
void addSysFiles(SysFilesModel sysFilesModel);
/**
* id
* @param fileId
*/
@GetMapping("/sys/api/getFileUrl")
String getFileUrl(@RequestParam(name="fileId") String fileId);
/** /**
* *
* @param loginUser * @param loginUser

View File

@ -71,7 +71,7 @@ public class SysBaseAPIFallback implements ISysBaseAPI {
} }
@Override @Override
public Set<String> getDepartParentIdsByDepIds(Set depIds) { public Set<String> getDepartParentIdsByDepIds(Set<String> depIds) {
return null; return null;
} }
@ -194,7 +194,7 @@ public class SysBaseAPIFallback implements ISysBaseAPI {
} }
@Override @Override
public Set<String> getUserPermissionSet(String username) { public Set<String> getUserPermissionSet(String userId) {
return null; return null;
} }
@ -219,7 +219,7 @@ public class SysBaseAPIFallback implements ISysBaseAPI {
} }
@Override @Override
public Set<String> queryUserAuths(String username) { public Set<String> queryUserAuths(String userId) {
return null; return null;
} }
@ -361,17 +361,6 @@ public class SysBaseAPIFallback implements ISysBaseAPI {
return null; return null;
} }
@Override
public void addSysFiles(SysFilesModel sysFilesModel) {
}
@Override
public String getFileUrl(String fileId) {
return null;
}
@Override @Override
public void updateAvatar(LoginUser loginUser) { } public void updateAvatar(LoginUser loginUser) { }

View File

@ -101,7 +101,7 @@ public interface ISysBaseAPI extends CommonAPI {
* @param depIds * @param depIds
* @return parentIds * @return parentIds
*/ */
Set<String> getDepartParentIdsByDepIds(Set depIds); Set<String> getDepartParentIdsByDepIds(Set<String> depIds);
/** /**
* 9 name * 9 name
@ -302,10 +302,10 @@ public interface ISysBaseAPI extends CommonAPI {
/** /**
* 32 * 32
* @param username * @param userId
* @return * @return
*/ */
Set<String> getUserPermissionSet(String username); Set<String> getUserPermissionSet(String userId);
/** /**
* 33online访 * 33online访
@ -445,19 +445,6 @@ public interface ISysBaseAPI extends CommonAPI {
* @param dataLogDto * @param dataLogDto
*/ */
void saveDataLog(DataLogDTO dataLogDto); void saveDataLog(DataLogDTO dataLogDto);
/**
*
* @param sysFilesModel
*/
void addSysFiles(SysFilesModel sysFilesModel);
/**
* id
* @param fileId
*/
String getFileUrl(String fileId);
/** /**
* *
* @param loginUser * @param loginUser

View File

@ -156,7 +156,7 @@ public class SystemApiController {
* @return id * @return id
*/ */
@GetMapping("/getDepartParentIdsByDepIds") @GetMapping("/getDepartParentIdsByDepIds")
Set<String> getDepartParentIdsByDepIds(@RequestParam("depIds") Set depIds){ Set<String> getDepartParentIdsByDepIds(@RequestParam("depIds") Set<String> depIds){
return sysBaseApi.getDepartParentIdsByDepIds(depIds); return sysBaseApi.getDepartParentIdsByDepIds(depIds);
} }
@ -386,12 +386,12 @@ public class SystemApiController {
/** /**
* *
* @param username * @param userId ID
* @return * @return
*/ */
@GetMapping("/getUserPermissionSet") @GetMapping("/getUserPermissionSet")
public Set<String> getUserPermissionSet(@RequestParam("username") String username){ public Set<String> getUserPermissionSet(@RequestParam("userId") String userId){
return sysBaseApi.getUserPermissionSet(username); return sysBaseApi.getUserPermissionSet(userId);
} }
//----- //-----
@ -419,12 +419,12 @@ public class SystemApiController {
/** /**
* *
* @param username * @param userId
* @return * @return
*/ */
@GetMapping("/queryUserAuths") @GetMapping("/queryUserAuths")
public Set<String> queryUserAuths(@RequestParam("username") String username){ public Set<String> queryUserAuths(@RequestParam("userId") String userId){
return sysUserService.getUserPermissionsSet(username); return sysUserService.getUserPermissionsSet(userId);
} }
/** /**

View File

@ -63,6 +63,28 @@
</foreach> </foreach>
) )
</select> </select>
<!-- 获取全部字典项 -->
<select id="queryAllDictItems" resultType="org.jeecg.common.system.vo.DictModelMany">
SELECT
dict.dict_code,
item.item_text AS "text",
item.item_value AS "value",
item.item_color AS "color"
FROM
sys_dict_item item
INNER JOIN sys_dict dict ON dict.id = item.dict_id
WHERE dict.del_flag = 0
<if test="tenantIdList!=null and tenantIdList.size()>0">
AND dict.tenant_id IN (
<foreach item="tenantId" collection="tenantIdList" separator=",">
#{tenantId}
</foreach>
)
</if>
AND item.status =1
order by dict.dict_code, item.sort_order
</select>
<!-- 查询部门信息 作为字典数据 --> <!-- 查询部门信息 作为字典数据 -->
<select id="queryAllDepartBackDictModel" resultType="org.jeecg.common.system.vo.DictModel"> <select id="queryAllDepartBackDictModel" resultType="org.jeecg.common.system.vo.DictModel">

View File

@ -42,46 +42,104 @@
<!-- 获取登录用户拥有的权限 --> <!-- 获取登录用户拥有的权限 -->
<select id="queryByUser" parameterType="Object" resultMap="SysPermission"> <select id="queryByUser" parameterType="Object" resultMap="SysPermission">
SELECT * FROM ( SELECT * FROM (
SELECT p.* SELECT p.id,
p.parent_id,
p.name,
p.url,
p.component,
p.is_route,
p.component_name,
p.redirect,
p.menu_type,
p.perms,
p.perms_type,
p.sort_no,
p.always_show,
p.icon,
p.is_leaf,
p.keep_alive,
p.hidden,
p.hide_tab,
p.rule_flag,
p.status,
p.internal_or_external
FROM sys_permission p FROM sys_permission p
WHERE (exists( WHERE p.del_flag = 0
select a.id from sys_role_permission a AND ( p.id in (
join sys_role b on a.role_id = b.id SELECT DISTINCT a.permission_id
join sys_user_role c on c.role_id = b.id FROM sys_role_permission a
join sys_user d on d.id = c.user_id JOIN sys_role b ON a.role_id = b.id
where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR} JOIN sys_user_role c ON c.role_id = b.id AND c.user_id = #{userId,jdbcType=VARCHAR}
) )
or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1) or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1)
or (p.url like '%:id' and p.url like '/online%' and p.hidden = 1) or (p.url like '%:id' and p.url like '/online%' and p.hidden = 1)
or p.url = '/online') or p.url = '/online'
and p.del_flag = 0 )
<!--update begin Author:lvdandan Date:20200213 for加入部门权限 --> <!--update begin Author:lvdandan Date:20200213 for加入部门权限 -->
UNION UNION
SELECT p.* SELECT p.id,
FROM sys_permission p p.parent_id,
WHERE exists( p.name,
select a.id from sys_depart_role_permission a p.url,
join sys_depart_role b on a.role_id = b.id p.component,
join sys_depart_role_user c on c.drole_id = b.id p.is_route,
join sys_user d on d.id = c.user_id p.component_name,
where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR} p.redirect,
) p.menu_type,
p.perms,
p.perms_type,
p.sort_no,
p.always_show,
p.icon,
p.is_leaf,
p.keep_alive,
p.hidden,
p.hide_tab,
p.rule_flag,
p.status,
p.internal_or_external
FROM sys_permission p
WHERE p.id in(
SELECT DISTINCT a.permission_id
FROM sys_depart_role_permission a
INNER JOIN sys_depart_role b ON a.role_id = b.id
INNER JOIN sys_depart_role_user c ON c.drole_id = b.id AND c.user_id = #{userId,jdbcType=VARCHAR}
)
and p.del_flag = 0 and p.del_flag = 0
<!--update end Author:lvdandan Date:20200213 for加入部门权限 --> <!--update end Author:lvdandan Date:20200213 for加入部门权限 -->
<!-- update begin Author: taoyan Date:20200213 forQQYUN-4303 【low app】 用户登录的时候 加载low app的套餐权限 加到用户信息 --> <!-- update begin Author: taoyan Date:20200213 forQQYUN-4303 【low app】 用户登录的时候 加载low app的套餐权限 加到用户信息 -->
UNION UNION
SELECT p.* SELECT p.id,
FROM sys_permission p p.parent_id,
WHERE exists( p.name,
select a.id from sys_tenant_pack_perms a p.url,
join sys_tenant_pack b on a.pack_id = b.id p.component,
join sys_tenant_pack_user c on c.pack_id = b.id p.is_route,
join sys_user d on d.id = c.user_id p.component_name,
where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR} p.redirect,
) p.menu_type,
and p.del_flag = 0 p.perms,
<!-- update end Author: taoyan Date:20200213 forQQYUN-4303 【low app】 用户登录的时候 加载low app的套餐权限 加到用户信息 --> p.perms_type,
p.sort_no,
p.always_show,
p.icon,
p.is_leaf,
p.keep_alive,
p.hidden,
p.hide_tab,
p.rule_flag,
p.status,
p.internal_or_external
FROM sys_permission p
WHERE p.id in (
SELECT distinct a.permission_id
FROM sys_tenant_pack_perms a
INNER JOIN sys_tenant_pack b ON a.pack_id = b.id AND b.STATUS = '1'
INNER JOIN sys_tenant_pack_user c ON c.pack_id = b.id AND c.STATUS = '1' AND c.user_id = #{userId,jdbcType=VARCHAR}
)
and p.del_flag = 0
<!-- update end Author: taoyan Date:20200213 forQQYUN-4303 【low app】 用户登录的时候 加载low app的套餐权限 加到用户信息 -->
) h order by h.sort_no ASC ) h order by h.sort_no ASC
</select> </select>