From 039d75ff55335675a7f8701bc77324f793f251aa Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 16 Mar 2022 16:08:45 +0800 Subject: [PATCH] 20220316 --- .../ccsens/ptos_zero/service/TallService.java | 89 +++++++++++++------ 1 file changed, 60 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/ccsens/ptos_zero/service/TallService.java b/src/main/java/com/ccsens/ptos_zero/service/TallService.java index af011ea..1404275 100644 --- a/src/main/java/com/ccsens/ptos_zero/service/TallService.java +++ b/src/main/java/com/ccsens/ptos_zero/service/TallService.java @@ -3,11 +3,13 @@ package com.ccsens.ptos_zero.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.ccsens.ptos_zero.bean.po.ProRole; +import com.ccsens.ptos_zero.bean.po.ProRoleExample; import com.ccsens.ptos_zero.bean.po.ProTaskSub; import com.ccsens.ptos_zero.bean.po.ProUser; import com.ccsens.ptos_zero.bean.vo.DeliverVo; @@ -164,6 +166,17 @@ public class TallService implements ITallService { @Override public List queryProjectByUser(String token, TallProjectDto.QueryProjectDto param) { TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); + +// List projectInfos = new ArrayList<>(); +// TallProjectVo.ProjectInfo projectInfo = new TallProjectVo.ProjectInfo(); +// projectInfo.setId(1485932638408675328L); +// projectInfo.setName("我的"); +// projectInfo.setUrl("http://101.201.226.163:7310"); +// projectInfo.setBusinessCode("ZERO"); +// projectInfo.setDomainCode("tall_dh"); +// projectInfos.add(projectInfo); + +// TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); if(ObjectUtil.isNull(userByToken)){ return null; } @@ -201,7 +214,7 @@ public class TallService implements ITallService { @Override public TallRoleVo.QueryRole queryShowRole(String token, TallRoleDto.QueryRoleById param) { //TODO 通过token向tall获取用户信息, - TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); + TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); if(ObjectUtil.isNull(userByToken)){ throw new BaseException(CodeEnum.NOT_LOGIN); } @@ -217,15 +230,43 @@ public class TallService implements ITallService { //查询当前用户在项目下的角色,没有则算作关注者 List userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); - //查询用户可见的角色 List roleInfoList = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(userRoleList)){ //不是关注者,查询可见的角色(完全屏蔽才不可见) roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(),userRoleList); + if(CollectionUtil.isNotEmpty(roleInfoList)){ + roleInfoList.forEach(roleInfo -> { + if("我".equals(roleInfo.getName())){ + roleInfo.setMine(1); + } + }); + } }else { - //是关注者查询可见的角色(未设置过对谁不可见信息的角色) - roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); +// //是关注者查询可见的角色(未设置过对谁不可见信息的角色) +// roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); + //TODO 0号项目游客查看所有,默认属于管理员 + ProRoleExample proRoleExample = new ProRoleExample(); + proRoleExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); + List proRoles = proRoleDao.selectByExample(proRoleExample); + if(CollectionUtil.isNotEmpty(proRoles)){ + for (ProRole proRole : proRoles) { + if("我".equals(proRole.getName())){ + TallRoleVo.RoleInfo roleInfo = new TallRoleVo.RoleInfo(); + roleInfo.setId(proRole.getId()); + roleInfo.setName(proRole.getName()); + roleInfo.setMine(1); + roleInfoList.add(roleInfo); + }else if("管理员".equals(proRole.getName())){ + TallRoleVo.RoleInfo roleInfo = new TallRoleVo.RoleInfo(); + roleInfo.setId(proRole.getId()); + roleInfo.setName(proRole.getName()); + roleInfo.setMine(1); + roleInfoList.add(roleInfo); + } + } + } } //查询配置信息 List showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),userByToken.getId()); @@ -285,19 +326,13 @@ public class TallService implements ITallService { @Override public List queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param) { - TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); - if(ObjectUtil.isNull(userByToken)){ - throw new BaseException(CodeEnum.NOT_LOGIN); - } - //通过手机号获取用户在服务内的userId - ProUser user = null; - if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ - user = userDao.getUserIdByPhone(userByToken.getPhone()); - } -// if(ObjectUtil.isNull(user)){ -// throw new BaseException(ZeroCodeError.NOT_USER_SERVER); -// } + Long userId = null; + //查找当前角色是否有查看权限 + Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); + if (BooleanUtil.isFalse(isLook)) { + throw new BaseException(CodeEnum.NO_POWER); + } List roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); @@ -308,24 +343,20 @@ public class TallService implements ITallService { queryCheckerOfTask(permanentGlobalTask); //TODO 查询插件展示信息 - queryPluginShow(permanentGlobalTask,user == null ? null : user.getId()); + queryPluginShow(permanentGlobalTask,null); return permanentGlobalTask; } @Override public List queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param) { - TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); - if(ObjectUtil.isNull(userByToken)){ - throw new BaseException(CodeEnum.NOT_LOGIN); - } - //通过手机号获取用户在服务内的userId - ProUser user = null; - if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ - user = userDao.getUserIdByPhone(userByToken.getPhone()); + //TODO 通过token向tall获取用户信息, + Long userId = null; + + //查找当前角色是否有查看权限 + Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); + if (BooleanUtil.isFalse(isLook)) { + throw new BaseException(CodeEnum.NO_POWER); } -// if(ObjectUtil.isNull(user)){ -// throw new BaseException(ZeroCodeError.NOT_USER_SERVER); -// } List roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); @@ -336,7 +367,7 @@ public class TallService implements ITallService { queryCheckerOfTask(globalTask); //TODO 查询插件展示信息 - queryPluginShow(globalTask,user == null ? null : user.getId()); + queryPluginShow(globalTask,null); return globalTask; }