From 2d0670f1f87cff3c569853ad867809bc7726146b Mon Sep 17 00:00:00 2001 From: hyy-alt <1041001226@qq.com> Date: Wed, 21 Jul 2021 14:25:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2=E6=A0=8F?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/common/api/PluginController.java | 31 --------- .../com/ccsens/common/api/RoleController.java | 16 ++++- .../com/ccsens/common/bean/dto/PluginDto.java | 22 +++++++ .../com/ccsens/common/bean/vo/PluginVo.java | 31 +++++++++ .../common/service/IProRoleService.java | 2 + .../ccsens/common/service/ProRoleService.java | 66 ++++++++++++++++--- 6 files changed, 127 insertions(+), 41 deletions(-) delete mode 100644 common/src/main/java/com/ccsens/common/api/PluginController.java create mode 100644 common/src/main/java/com/ccsens/common/bean/dto/PluginDto.java create mode 100644 common/src/main/java/com/ccsens/common/bean/vo/PluginVo.java diff --git a/common/src/main/java/com/ccsens/common/api/PluginController.java b/common/src/main/java/com/ccsens/common/api/PluginController.java deleted file mode 100644 index 98c48d7e..00000000 --- a/common/src/main/java/com/ccsens/common/api/PluginController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.ccsens.common.api; - -import com.ccsens.util.JsonResponse; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import javax.servlet.http.HttpServletRequest; - -@Slf4j -@Api(tags = "插件相关", description = "") -@RestController -@RequestMapping("/plugins") -public class PluginController { - - - - - - - - - -} diff --git a/common/src/main/java/com/ccsens/common/api/RoleController.java b/common/src/main/java/com/ccsens/common/api/RoleController.java index cfe398d3..4790a41f 100644 --- a/common/src/main/java/com/ccsens/common/api/RoleController.java +++ b/common/src/main/java/com/ccsens/common/api/RoleController.java @@ -36,7 +36,7 @@ public class RoleController { @ApiOperation(value = "查询角色栏展示的角色",notes = "") @ApiImplicitParams({ }) - @RequestMapping(value = "/QueryShowRole", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "/QueryRoleShow", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse queryByProjectVirtualRole( @ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("查询角色栏展示的角色:{}",params); @@ -45,4 +45,18 @@ public class RoleController { log.info("查询角色栏展示的角色成功"); return JsonResponse.newInstance().ok(list); } + + + @MustLogin + @ApiOperation(value = "配置角色栏展示的角色",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/UpdateRoleShow", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse updateShowRole( + @ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("配置角色栏展示的角色:{}",params); + proRoleService.updateShowRole(params.getParam(),params.getUserId()); + log.info("配置角色栏展示的角色成功"); + return JsonResponse.newInstance().ok(); + } } diff --git a/common/src/main/java/com/ccsens/common/bean/dto/PluginDto.java b/common/src/main/java/com/ccsens/common/bean/dto/PluginDto.java new file mode 100644 index 00000000..fc1ca209 --- /dev/null +++ b/common/src/main/java/com/ccsens/common/bean/dto/PluginDto.java @@ -0,0 +1,22 @@ +package com.ccsens.common.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class PluginDto { + + + @Data + @ApiModel("根据插件id查询插件信息入参") + public static class QueryPlugins{ + @NotNull(message = "项目id不能为空") + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("插件样式(样式类型 (1一行 2两行 3半屏))") + private byte styleType; + } +} diff --git a/common/src/main/java/com/ccsens/common/bean/vo/PluginVo.java b/common/src/main/java/com/ccsens/common/bean/vo/PluginVo.java new file mode 100644 index 00000000..0de5dc25 --- /dev/null +++ b/common/src/main/java/com/ccsens/common/bean/vo/PluginVo.java @@ -0,0 +1,31 @@ +package com.ccsens.common.bean.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class PluginVo { + + @Data + @ApiModel("根据插件id查询插件信息结果") + public static class QueryPlugins { + @ApiModelProperty("插件id") + private Long id; + @ApiModelProperty("插件名称") + private String name; + @ApiModelProperty("插件简介") + private String intro; + @ApiModelProperty(" 插件版本") + private String version; + @ApiModelProperty("样式类型 (1一行 2两行 3半屏)") + private byte styleType; + @ApiModelProperty("插件样式内容") + private String html; + @ApiModelProperty(" 插件的js功能") + private String js; + } +} diff --git a/common/src/main/java/com/ccsens/common/service/IProRoleService.java b/common/src/main/java/com/ccsens/common/service/IProRoleService.java index 12ef0265..95aeb27c 100644 --- a/common/src/main/java/com/ccsens/common/service/IProRoleService.java +++ b/common/src/main/java/com/ccsens/common/service/IProRoleService.java @@ -6,4 +6,6 @@ import com.ccsens.common.bean.vo.RoleVo; public interface IProRoleService { RoleVo.QueryRole QueryShowRole(RoleDto.QueryRole param, Long userId); + + void updateShowRole(RoleDto.UpdateRoleShow param, Long userId); } diff --git a/common/src/main/java/com/ccsens/common/service/ProRoleService.java b/common/src/main/java/com/ccsens/common/service/ProRoleService.java index c26f4c61..a0d08a63 100644 --- a/common/src/main/java/com/ccsens/common/service/ProRoleService.java +++ b/common/src/main/java/com/ccsens/common/service/ProRoleService.java @@ -1,5 +1,6 @@ package com.ccsens.common.service; +import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.common.bean.dto.RoleDto; @@ -8,7 +9,9 @@ import com.ccsens.common.bean.vo.RoleVo; import com.ccsens.common.persist.dao.LabelDao; import com.ccsens.common.persist.dao.ProRoleDao; import com.ccsens.common.persist.mapper.*; +import com.ccsens.util.CodeEnum; import com.ccsens.util.WebConstant; +import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -17,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service @@ -33,12 +37,15 @@ public class ProRoleService implements IProRoleService { @Resource private ProRoleRepulsionMapper proRoleRepulsionMapper; @Resource - private ProRoleShowMapper ProRoleShowMapper; + private ProRoleShowMapper proRoleShowMapper; @Resource private LabelMapper labelMapper; @Resource private LabelDao labelDao; + @Resource + private Snowflake snowflake; + @Override public RoleVo.QueryRole QueryShowRole(RoleDto.QueryRole param, Long userId) { @@ -72,25 +79,33 @@ public class ProRoleService implements IProRoleService { Long roleId1 = 0L; //List roleIds =null; //查询当前用户所属的角色 for (ProRoleMember proRoleMember : proRoleMembers) { - Long roleId = proRoleMember.getRoleId();//查询当前用户所属的角色 + Long roleId = proRoleMember.getRoleId();//查询当前用户所属的角色 后端 前端 roleIds.add(roleId); ProRoleRepulsionExample proRoleRepulsionExample = new ProRoleRepulsionExample(); proRoleRepulsionExample.createCriteria().andRoleIdEqualTo(roleId); List proRoleRepulsions = proRoleRepulsionMapper.selectByExample(proRoleRepulsionExample); for (ProRoleRepulsion proRoleRepulsion : proRoleRepulsions) { roleId1 = proRoleRepulsion.getRoleId();//对自己不可见的角色 - roleIds1.add(roleId1); + //判断对自己不可见的角色是不是我的角色 + roleIds1.add(roleId1); //前端 } } //查询项目下的所有角色 去除不可见角色 通过项目id查找角色id ProRoleExample proRoleExample = new ProRoleExample(); proRoleExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); - proRoles = proRoleMapper.selectByExample(proRoleExample); + proRoles = proRoleMapper.selectByExample(proRoleExample); //前端 后端 UI //在一个集合里面 去除另外一个集合 1 2 3 1 2 for (ProRole proRole : proRoles) { - for (int i = 0; i < roleIds1.size(); i++) { - if (proRole.getId().equals(roleIds1.get(i))) { - proRoles.remove(proRole); + if(roleIds1.size()> 0){ //不可见的角色大于0 + for (int i = 0; i < roleIds1.size(); i++) { + int size = roleIds.size(); //当前用户只有一个角色 + if(size == 1){ + if (proRole.getId().equals(roleIds1.get(i))) { + proRoles.remove(proRole); //去除不可见角色 + } + }else { + //不可见角色没有 + } } } } @@ -165,13 +180,13 @@ public class ProRoleService implements IProRoleService { //根据项目id和userId查询当前用户配置的角色栏信息 ProRoleShowExample proRoleShowExample = new ProRoleShowExample(); proRoleShowExample.createCriteria().andProjectIdEqualTo(param.getProjectId()).andUserIdEqualTo(userId); - List proRoleShows = ProRoleShowMapper.selectByExample(proRoleShowExample); + List proRoleShows = proRoleShowMapper.selectByExample(proRoleShowExample); //循环所有的角色,判断是否在配置信息内 将角色信息放入“显示角色”的数组内 将角色放入“隐藏角色"数组 if (ObjectUtil.isNotNull(proRoleShows)) { for (int i = 0; i < proRoles1.size(); i++) { ProRoleShowExample proRoleShowExample1 = new ProRoleShowExample(); proRoleShowExample.createCriteria().andRoleIdEqualTo(proRoles1.get(i).getId()); - List proRoleShows1 = ProRoleShowMapper.selectByExample(proRoleShowExample1); + List proRoleShows1 = proRoleShowMapper.selectByExample(proRoleShowExample1); if (ObjectUtil.isNotNull(proRoleShows1)) { //配置过了 将角色信总放入“显示角色"的数组内 RoleInfo.setId(proRoles1.get(i).getId()); @@ -280,4 +295,37 @@ public class ProRoleService implements IProRoleService { role.setVisibleList(visibleList); return role; } + + @Override + public void updateShowRole(RoleDto.UpdateRoleShow param, Long userId) { + //判断入参内的角色判断入参内的角色id列表是否为空 + if(ObjectUtil.isNull(param.getRoleIds())){ + throw new BaseException(CodeEnum.NOT_ROLE); + } + //根据token获取到userld和项目id在角色展示表中查看是否有原来的数据 + ProRoleShowExample proRoleShowExample = new ProRoleShowExample(); + proRoleShowExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(param.getProjectId()); + List proRoleShows = proRoleShowMapper.selectByExample(proRoleShowExample); + if(ObjectUtil.isNotNull(proRoleShows)){ + for (ProRoleShow proRoleShow : proRoleShows) { + proRoleShow.setRecStatus((byte) 2); + proRoleShowMapper.updateByPrimaryKeySelective(proRoleShow); + } + } + List roleIds = param.getRoleIds(); //roleid + //去重重复的 + List roleIdsList=(List) roleIds.stream().distinct().collect(Collectors.toList()); + for (int i = 0; i < roleIdsList.size(); i++) { + ProRoleShow proRoleShow = new ProRoleShow(); + proRoleShow.setId(snowflake.nextId()); + proRoleShow.setUserId(userId); + proRoleShow.setProjectId(param.getProjectId()); + proRoleShow.setRoleId((long)roleIdsList.get(i)); + proRoleShow.setOperator(userId); + proRoleShow.setSequence(i); + proRoleShowMapper.insertSelective(proRoleShow); + } + + + } }