Browse Source

角色授权或重新授权时,保留数据权限

master
dimengzhe 2 years ago
parent
commit
94a8ca30d9
  1. 19
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmenurole/MenuRoleVo.java
  2. 3
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmenurole/SysMenuRole.java
  3. 3
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmobilemenurole/SysMobileMenuRole.java
  4. 3
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleMapper.java
  5. 4
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleMapper.xml
  6. 18
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleRest.java
  7. 17
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleService.java
  8. 3
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmobilemenurole/SysMobileMenuRoleMapper.java
  9. 4
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmobilemenurole/SysMobileMenuRoleMapper.xml
  10. 7
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmobilemenurole/SysMobileMenuRoleService.java

19
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmenurole/MenuRoleVo.java

@ -0,0 +1,19 @@
package com.yxt.anrui.portal.api.sysmenurole;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 菜单和角色临时存储
* @author: dimengzhe
* @date: 2023/6/1
**/
@Data
public class MenuRoleVo {
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
@ApiModelProperty("菜单sid")
private String menuSid;
}

3
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmenurole/SysMenuRole.java

@ -31,4 +31,7 @@ public class SysMenuRole extends BaseEntity {
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
}

3
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysmobilemenurole/SysMobileMenuRole.java

@ -16,4 +16,7 @@ public class SysMobileMenuRole extends BaseEntity {
private String menuSid;
@ApiModelProperty("角色sid")
private String roleSid;
@ApiModelProperty("数据权限ID(1集团、2事业部、3分公司、4部门、5个人)")
private String dataRuleId;
}

3
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysmenurole.MenuRoleVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -44,4 +45,6 @@ public interface SysMenuRoleMapper extends BaseMapper<SysMenuRole> {
void delByRoleSid(@Param("roleSid") String roleSid);
List<SysMenuRoleVo> list(@Param(Constants.WRAPPER) QueryWrapper<SysMenuRoleVo> qw);
List<MenuRoleVo> selectByRoleSid(String roleSid);
}

4
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleMapper.xml

@ -30,4 +30,8 @@
LEFT JOIN sys_menu m ON rm.menuSid = m.sid
${ew.customSqlSegment}
</select>
<select id="selectByRoleSid" resultType="com.yxt.anrui.portal.api.sysmenurole.MenuRoleVo">
select menuSid,dataRuleId from sys_menu_role where roleSid = #{roleSid}
</select>
</mapper>

18
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleRest.java

@ -1,23 +1,20 @@
package com.yxt.anrui.portal.biz.sysmenurole;
import com.yxt.anrui.portal.api.sysmenurole.*;
import com.yxt.anrui.portal.api.sysrole.SysRole;
import com.yxt.anrui.portal.api.syssourcerole.SysSourceRole;
import com.yxt.anrui.portal.biz.sysrole.SysRoleService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRole;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleQuery;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleVo;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleDto;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleFeign;
import java.util.Objects;
/**
* Project: anrui_portal(门户建设) <br/>
@ -89,14 +86,19 @@ public class SysMenuRoleRest implements SysMenuRoleFeign {
return ResultBean.fireFail().setMessage("角色sid不存在");
}
}
List<MenuRoleVo> menuRoleList = sysMenuRoleService.selectByRoleSid(roleSid);
sysMenuRoleService.delByRoleSid(roleSid);
ResultBean rb = ResultBean.fireFail();
if(!StringUtils.isBlank(menuSid)){
String[] sids = menuSid.split(",");
for(String sid:sids){
MenuRoleVo menuRoleVo = menuRoleList.stream().filter(s -> Objects.equals(s.getMenuSid(), sid)).findFirst().orElse(null);
SysMenuRole sysMenuRole = new SysMenuRole();
sysMenuRole.setRoleSid(roleSid);
sysMenuRole.setMenuSid(sid);
if(menuRoleVo != null){
sysMenuRole.setDataRuleId(menuRoleVo.getDataRuleId());
}
sysMenuRoleService.save(sysMenuRole);
}
}

17
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmenurole/SysMenuRoleService.java

@ -3,28 +3,19 @@ package com.yxt.anrui.portal.biz.sysmenurole;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysmenu.SysMenuVo;
import com.yxt.anrui.portal.api.sysmenurole.*;
import com.yxt.anrui.portal.biz.sysmenu.SysMenuService;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRole;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleQuery;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleVo;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleDto;
import com.yxt.anrui.portal.api.sysmenurole.SysMenuRoleFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Project: anrui_portal(门户建设) <br/>
@ -168,6 +159,10 @@ public class SysMenuRoleService extends MybatisBaseService<SysMenuRoleMapper, Sy
return list_menus_map;
}
public List<MenuRoleVo> selectByRoleSid(String roleSid) {
return baseMapper.selectByRoleSid(roleSid);
}
///----获平台角色s的某个资源的菜单树形列表(内存操作) 开始----

3
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmobilemenurole/SysMobileMenuRoleMapper.java

@ -3,6 +3,7 @@ package com.yxt.anrui.portal.biz.sysmobilemenurole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.portal.api.index.AppIndexNewListVo;
import com.yxt.anrui.portal.api.index.AppIndexNewVo;
import com.yxt.anrui.portal.api.sysmenurole.MenuRoleVo;
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRole;
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo;
import org.apache.ibatis.annotations.Mapper;
@ -57,4 +58,6 @@ public interface SysMobileMenuRoleMapper extends BaseMapper<SysMobileMenuRole> {
List<String> selectMenuList(@Param("userSid") String userSid, @Param("appSid") String appSid);
List<String> selectAppSidList(@Param("userSid") String userSid);
List<MenuRoleVo> selectByRoleSid(String roleSid);
}

4
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmobilemenurole/SysMobileMenuRoleMapper.xml

@ -81,4 +81,8 @@
left join sys_user_role sr on sr.roleSid = smr.roleSid
where sr.userSid = #{userSid}
</select>
<select id="selectByRoleSid" resultType="com.yxt.anrui.portal.api.sysmenurole.MenuRoleVo">
select menuSid,dataRuleId from sys_mobile_menu_role where roleSid = #{roleSid}
</select>
</mapper>

7
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysmobilemenurole/SysMobileMenuRoleService.java

@ -3,6 +3,7 @@ package com.yxt.anrui.portal.biz.sysmobilemenurole;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionVo;
import com.yxt.anrui.portal.api.index.AppIndexNewListVo;
import com.yxt.anrui.portal.api.index.AppIndexNewVo;
import com.yxt.anrui.portal.api.sysmenurole.MenuRoleVo;
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRole;
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleDto;
import com.yxt.anrui.portal.api.sysmobilemenurole.SysMobileMenuRoleVo;
@ -19,6 +20,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* @Author dimengzhe
@ -115,14 +117,19 @@ public class SysMobileMenuRoleService extends MybatisBaseService<SysMobileMenuRo
return ResultBean.fireFail().setMessage("角色sid不存在");
}
}
List<MenuRoleVo> menuRoleList = baseMapper.selectByRoleSid(roleSid);
baseMapper.deleteByRoleSid(roleSid);
ResultBean rb = ResultBean.fireFail();
if (!StringUtils.isBlank(menuSid)) {
String[] sids = menuSid.split(",");
for (String sid : sids) {
MenuRoleVo menuRoleVo = menuRoleList.stream().filter(s -> Objects.equals(s.getMenuSid(), sid)).findFirst().orElse(null);
SysMobileMenuRole sysMenuRole = new SysMobileMenuRole();
sysMenuRole.setMenuSid(sid);
sysMenuRole.setRoleSid(roleSid);
if(menuRoleVo != null){
sysMenuRole.setDataRuleId(menuRoleVo.getDataRuleId());
}
baseMapper.insert(sysMenuRole);
}
}

Loading…
Cancel
Save