Merge remote-tracking branch 'origin/develop_master' into develop_master

This commit is contained in:
2510220824
2021-07-04 13:58:21 +08:00
29 changed files with 599 additions and 30 deletions
@@ -6,6 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
@@ -23,11 +23,11 @@ public class CodeGen {
// x.x.x.x:3306/xxxx --MYSQL
// 192.168.10.140:1521:foton_slrs_test
// foton_slrs_test@101.36.227.22
private static final String DB_IP="101.36.227.22:33050/foton_slrs_test";
private static final String DB_IP="192.168.10.47/foton_slrs_test";
private static final String DB_USER="root";
private static final String DB_PWD="1q2w3e4r";
private static final String DB_PWD="root";
/**
@@ -28,16 +28,19 @@ logging.level.org.springframework=info
# 请求前缀
restPath=/api
#server.servlet.context-path=/api
#Eruept
eureka.client.allow-redirects=true
eureka.client.register-with-eureka=true
eureka.client.service-url.defaultZone=http://101.36.227.25:8050/eureka/
#是否将自己注册到Eureka Server上,默认为true
eureka.client.register-with-eureka=false
#eureka.client.register-with-eureka=false
##是否从Eureka Server上获取注册信息,默认为true
eureka.client.fetch-registry=false
#eureka.client.fetch-registry=false
#eureka.client.service-url.defaultZone=http://10.5.116.172:8672/eureka/
#eureka.client.service-url.defaultZone=http://127.0.0.1:8671/eureka/
#eureka.client.service-url.defaultZone=http://10.5.116.172:8672/eureka/
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
#eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
# 请求连接的超时时间 默认的时间为 1 秒
ribbon.ConnectTimeout=500000
# 请求处理的超时时间
@@ -99,7 +99,7 @@ public class SarMenuController extends BaseController<SarMenu> {
@ApiOperation("删除菜单")
@DeleteMapping
public ResponseMessage<Object> delMenu(@RequestParam Integer menuId){
public ResponseMessage<Object> delMenu(@RequestParam String menuId){
return sarMenuEOService.delMenu(menuId);
}
}
@@ -54,10 +54,10 @@ public interface ISarMenuService extends IService<SarMenu> {
/**
* 删除菜单
* @param menuId:菜单ID
* @param menuId :菜单ID
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> delMenu(Integer menuId);
ResponseMessage<Object> delMenu(String menuId);
/**
* 通过Ids查询menu
@@ -222,11 +222,11 @@ public class SarMenuServiceImpl extends ServiceImpl<SarMenuDao, SarMenu> impleme
/**
* 删除菜单
* @param menuId:菜单ID
* @param menuId :菜单ID
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> delMenu(Integer menuId) {
public ResponseMessage<Object> delMenu(String menuId) {
QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>();
sarMenuQueryWrapper.eq("parent_id",menuId);
List<SarMenu> children=dao.selectList(sarMenuQueryWrapper);
@@ -1,6 +1,8 @@
package com.adc.da.slrs.sarPersonalCenter.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,6 +23,7 @@ import lombok.experimental.Accessors;
@ApiModel(value="SarUserPersonalMenu对象", description="")
public class SarUserPersonalMenu extends BaseEntity {
@TableId(type = IdType.UUID)
@ApiModelProperty("id")
private String id;
@@ -1,6 +1,7 @@
package com.adc.da.slrs.sarPersonalCenter.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -22,8 +23,11 @@ public interface ISarUserPersonalMenuService extends IService<SarUserPersonalMen
public ResponseMessage<IPage<SarUserPersonalMenu>> updateUserPersonalMenu(SarUserPersonalMenuEO eo);
public void updateUserPersonalMenuForRole(List<SarUserPersonalMenu> menus,String userId);
public void updateUserPersonalMenuForRole(List<SarMenu> menus, String userId);
/**
* 更新用户权限
* @param roleId:角色ID
*/
void setPersonalMenu(String roleId);
}
@@ -2,14 +2,19 @@ package com.adc.da.slrs.sarPersonalCenter.service.impl;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenu;
import com.adc.da.slrs.sarPersonalCenter.dao.SarUserPersonalMenuDao;
import com.adc.da.slrs.sarPersonalCenter.entity.SarUserPersonalMenuEO;
import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService;
import com.adc.da.slrs.sarUser.service.impl.TsUserServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -24,7 +29,9 @@ import java.util.*;
*/
@Service
public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalMenuDao, SarUserPersonalMenu> implements ISarUserPersonalMenuService {
@Autowired
@Lazy
private TsUserServiceImpl tsUserService;
@Override
public ResponseMessage<IPage<SarUserPersonalMenu>> getUserPersonalMenu(SarUserPersonalMenuEO eo) {
@@ -68,16 +75,15 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalM
}
@Override
public void updateUserPersonalMenuForRole(List<SarUserPersonalMenu> menuList,String userId) {
public void updateUserPersonalMenuForRole(List<SarMenu> menuList,String userId) {
Set<String> ids=new HashSet<>();
for (SarUserPersonalMenu menu : menuList) {
if(menu.getMenuId()!=null&&menu.getMenuId().trim().length()>0){
for (SarMenu menu : menuList) {
if(menu.getId()!=null&&menu.getId().trim().length()>0){
QueryWrapper<SarUserPersonalMenu> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("user_id",userId);
queryWrapper.eq("menu_id",menu.getMenuId());
queryWrapper.eq("menu_id",menu.getId());
List<SarUserPersonalMenu> menus = getBaseMapper().selectList(queryWrapper);
if (menus.size()>0) {
ids.add(menus.get(0).getId());
@@ -86,9 +92,9 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalM
SarUserPersonalMenu sarUserPersonalMenu=new SarUserPersonalMenu();
sarUserPersonalMenu.setMenuName(menu.getMenuName());
sarUserPersonalMenu.setMenuUrl(menu.getMenuUrl());
sarUserPersonalMenu.setUserId(menu.getUserId());
sarUserPersonalMenu.setMenuId(menu.getMenuId());
sarUserPersonalMenu.setMenuUrl(menu.getHref());
sarUserPersonalMenu.setUserId(userId);
sarUserPersonalMenu.setMenuId(menu.getId());
sarUserPersonalMenu.setState(0);
getBaseMapper().insert(sarUserPersonalMenu);
@@ -101,4 +107,18 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl<SarUserPersonalM
getBaseMapper().delete(queryWrapper);
}
/**
* 更新用户权限
* @param roleId:角色ID
*/
@Async
@Override
public void setPersonalMenu(String roleId) {
List<String> userIds=tsUserService.getUserIdsByRoleId(roleId);
for(String userId:userIds){
List<SarMenu> menus=tsUserService.getMenusByUserId(userId);
updateUserPersonalMenuForRole(menus,userId);
}
}
}
@@ -63,4 +63,12 @@ public interface TsPositionDao extends BaseMapper<TsPosition> {
* @return List<String>
*/
List<String> getRoleIdsByPositionIds(List<String> positionIds);
/**
* 通过roleId查询岗位ID列表
* @param roleId:角色ID
* @return List<String>
*/
@Select("select position_id from ts_position_role where role_id=#{roleId}")
List<String> getPositionIdsByRoleId(String roleId);
}
@@ -66,4 +66,11 @@ public interface ITsPositionService extends IService<TsPosition> {
* @return List<String>
*/
List<String> getRoleIdsByPositionIds(List<String> positionIds);
/**
* 通过roleId查询岗位ID列表
* @param roleId:角色ID
* @return List<String>
*/
List<String> getPositionIdsByRoleId(String roleId);
}
@@ -147,4 +147,14 @@ public class TsPositionServiceImpl extends ServiceImpl<TsPositionDao, TsPosition
}
return null;
}
/**
* 通过roleId查询岗位ID列表
* @param roleId:角色ID
* @return List<String>
*/
@Override
public List<String> getPositionIdsByRoleId(String roleId) {
return tsPositionDao.getPositionIdsByRoleId(roleId);
}
}
@@ -0,0 +1,57 @@
package com.adc.da.slrs.sarResource.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zyl
* @since 2021-06-30
*/
@RestController
@Api(tags = "资源管理")
@RequestMapping("/api/sarResource/ts-resource")
public class TsResourceController extends BaseController<TsResource> {
@Autowired
private ITsResourceService tsResourceService;
@ApiOperation("查询所有资源")
@GetMapping
public ResponseMessage<List<TsResource>> getAll(){
List<TsResource> tsResources=tsResourceService.getAll();
return Result.success(tsResources);
}
@ApiOperation("添加资源")
@PostMapping("/add")
public ResponseMessage<Object> addResource(@RequestBody TsResource tsResource){
return tsResourceService.addResource(tsResource);
}
@ApiOperation("编辑资源")
@PutMapping
public ResponseMessage<Object> updateResource(@Validated(TsResource.update.class) @RequestBody TsResource tsResource){
return tsResourceService.updateResource(tsResource);
}
@ApiOperation("删除资源")
@DeleteMapping
public ResponseMessage<Object> delResource(@RequestParam String resourceId){
return tsResourceService.delResource(resourceId);
}
}
@@ -0,0 +1,16 @@
package com.adc.da.slrs.sarResource.dao;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zyl
* @since 2021-06-30
*/
public interface TsResourceDao extends BaseMapper<TsResource> {
}
@@ -0,0 +1,53 @@
package com.adc.da.slrs.sarResource.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zyl
* @since 2021-06-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="TsResource对象", description="")
public class TsResource extends BaseEntity {
public interface update{
}
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "路径")
private String href;
@ApiModelProperty(value = "父节点ID")
private String parentId;
@ApiModelProperty(value = "资源名称")
private String name;
@TableId(type = IdType.UUID)
@NotNull(message = "id不能为空",groups = {update.class})
@ApiModelProperty(value = "ID")
private String id;
@TableField(exist = false)
@ApiModelProperty("子节点")
private List<TsResource> children;
}
@@ -0,0 +1,33 @@
package com.adc.da.slrs.sarResource.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author zyl
* @since 2021-06-30
*/
public interface ITsResourceService extends IService<TsResource> {
List<TsResource> getAll();
ResponseMessage<Object> addResource(TsResource tsResource);
ResponseMessage<Object> updateResource(TsResource tsResource);
ResponseMessage<Object> delResource(String resourceId);
/**
* 通过Ids查询menu
* @param resourceIds :菜单Ids
* @return List<Menu>
*/
List<TsResource> getResourceByIds(List<String> resourceIds);
}
@@ -0,0 +1,127 @@
package com.adc.da.slrs.sarResource.service.impl;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarResource.dao.TsResourceDao;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author zyl
* @since 2021-06-30
*/
@Service
public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource> implements ITsResourceService {
@Autowired
private TsResourceDao dao;
/**
* 查询所有菜单
*/
@Override
public List<TsResource> getAll() {
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.isNull("PARENT_ID");
List<TsResource> TsResources=dao.selectList(TsResourceQueryWrapper);
for(TsResource TsResource:TsResources){
TsResource.setChildren(recursionGetChildren((TsResource)));
}
return TsResources;
}
/**
* 添加菜单
* @param TsResource:菜单信息
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> addResource(TsResource TsResource) {
if(TsResource.getParentId()!=null){
TsResource parent=dao.selectById(TsResource.getParentId());
if(parent==null){
return Result.error("该父菜单不存在");
}
}
dao.insert(TsResource);
return Result.success();
}
/**
* 编辑菜单
* @param TsResource:菜单信息
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> updateResource(TsResource TsResource) {
TsResource oldResource=dao.selectById(TsResource.getId());
if(oldResource==null){
return Result.error("该菜单不存在");
}
if(TsResource.getParentId()!=null){
TsResource parent=dao.selectById(TsResource.getParentId());
if(parent==null){
return Result.error("父节点不存在");
}
}
dao.updateById(TsResource);
return Result.success();
}
/**
* 删除菜单
* @param ResourceId:菜单ID
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> delResource(String ResourceId) {
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.eq("parent_id",ResourceId);
List<TsResource> children=dao.selectList(TsResourceQueryWrapper);
if(children!=null&&children.size()>0){
return Result.error("该菜单有子节点,无法删除");
}
dao.deleteById(ResourceId);
return Result.success();
}
/**
* 通过Ids查询Resource
* @param resourceIds :菜单Ids
* @return List<Resource>
*/
@Override
public List<TsResource> getResourceByIds(List<String> resourceIds) {
if(resourceIds!=null&&resourceIds.size()>0){
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.in("id",resourceIds);
return dao.selectList(TsResourceQueryWrapper);
}
return new ArrayList<>();
}
/**
* 递归调用获取子节点
* @param parent:父节点
* @return List<TsResource>
*/
private List<TsResource> recursionGetChildren(TsResource parent){
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.eq("PARENT_ID",parent.getId());
List<TsResource> children=dao.selectList(TsResourceQueryWrapper);
for(TsResource TsResource:children){
TsResource.setChildren(recursionGetChildren((TsResource)));
}
return children;
}
}
@@ -6,6 +6,7 @@ import com.adc.da.http.Result;
import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO;
import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO;
import com.adc.da.slrs.sarRole.service.ITsRoleService;
import com.adc.da.sys.entity.UserEO;
import io.swagger.annotations.ApiOperation;
@@ -92,4 +93,18 @@ public class TsRoleController extends BaseController<TsRole> {
List<String> menuIds=tsRoleService.getMenu(roleId);
return Result.success(menuIds);
}
@ApiOperation("配置资源")
@PostMapping("/resource")
public ResponseMessage<Object> setResource(@Valid @RequestBody TsRoleResourceVO tsRoleResourceVO){
return tsRoleService.setResource(tsRoleResourceVO);
}
@ApiOperation("查询角色资源")
@GetMapping("/resource")
public ResponseMessage<List<String>> getResource(@RequestParam String roleId){
List<String> resourceIds=tsRoleService.getResource(roleId);
return Result.success(resourceIds);
}
}
@@ -59,4 +59,36 @@ public interface TsRoleDao extends BaseMapper<TsRole> {
* @return List<String>
*/
List<String> getMenuIdsByRoleIds(List<String> roleIds);
/**
* 通过角色ID查询绑定的资源ID
* @param roleId:角色ID
* @return List<String>
*/
@Select("select resource_id from ts_role_resource where role_id=#{roleId}")
List<String> getResourceIds(String roleId);
/**
* 添加资源
* @param roleId:角色ID
* @param resourceId:权限ID
*/
@Insert("insert into ts_role_resource (role_id,resource_id) values (#{roleId},#{resourceId})")
void addResource(String roleId, String resourceId);
/**
* 删除权限
* @param roleId:角色ID
* @param resourceId:权限ID
*/
@Delete("delete from ts_role_resource where role_id=#{roleId} and resource_id=#{resourceId}")
void delResource(String roleId, String resourceId);
/**
* 通过角色Id列表查询资源Id列表
* @param roleIds:角色ID列表
* @return List<String>
*/
List<String> getResourceIdsByRoleIds(List<String> roleIds);
}
@@ -0,0 +1,14 @@
package com.adc.da.slrs.sarRole.entity;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class TsRoleResourceVO {
@NotNull(message = "roleId不能为空")
private String roleId;
@NotNull(message = "resourceIds不能为空")
private List<String> resourceIds;
}
@@ -3,6 +3,7 @@ package com.adc.da.slrs.sarRole.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarRole.entity.TsRole;
import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO;
import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -71,4 +72,10 @@ public interface ITsRoleService extends IService<TsRole> {
* @return List<String>
*/
List<String> getMenuIdsByRoleIds(List<String> roleIds);
ResponseMessage<Object> setResource(TsRoleResourceVO tsRoleResourceVO);
List<String> getResource(String roleId);
List<String> getResourceIdsByRoleIds(List<String> roleIds);
}
@@ -5,14 +5,19 @@ import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.dao.SarMenuDao;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarMenu.service.ISarMenuService;
import com.adc.da.slrs.sarPersonalCenter.service.ISarUserPersonalMenuService;
import com.adc.da.slrs.sarRole.entity.TsRole;
import com.adc.da.slrs.sarRole.dao.TsRoleDao;
import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO;
import com.adc.da.slrs.sarRole.entity.TsRoleResourceVO;
import com.adc.da.slrs.sarRole.service.ITsRoleService;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.utils.util.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,13 +32,16 @@ import java.util.Map;
* @author zyl
* @since 2021-06-22
*/
@EnableAsync
@Service
public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements ITsRoleService {
@Autowired
private TsRoleDao tsRoleDao;
@Autowired
private ISarMenuService sarMenuService;
@Autowired
@Lazy
private ISarUserPersonalMenuService sarUserPersonalMenuService;
/**
* 查询所有角色
* @return List<TsRole>
@@ -169,8 +177,7 @@ public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements
tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId);
}
}
//修改首页自定义目录
// List<SarMenu> menus=sarMenuService.getMenusByIds(tsRoleMenuVO.getMenuIds());
sarUserPersonalMenuService.setPersonalMenu(tsRoleMenuVO.getRoleId());
return Result.success();
}
@@ -197,5 +204,59 @@ public class TsRoleServiceImpl extends ServiceImpl<TsRoleDao, TsRole> implements
return null;
}
/**
* 配置资源
* @param tsRoleResourceVO:资源ID
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> setResource(TsRoleResourceVO tsRoleResourceVO) {
TsRole role=tsRoleDao.selectById(tsRoleResourceVO.getRoleId());
if(role==null){
return Result.error("该角色不存在");
}
List<String> oldResourceIds=tsRoleDao.getResourceIds(tsRoleResourceVO.getRoleId());
Map<String,List<String>> updateMenuIds= ListUtil.difList(tsRoleResourceVO.getResourceIds(),oldResourceIds);
List<String> insertIds=updateMenuIds.get("insert");
List<String> deleteIds=updateMenuIds.get("delete");
if(insertIds!=null&&insertIds.size()>0){
for(String menuId:insertIds){
tsRoleDao.addResource(tsRoleResourceVO.getRoleId(),menuId);
}
}
if(deleteIds!=null&&deleteIds.size()>0){
for(String menuId:deleteIds){
tsRoleDao.delResource(tsRoleResourceVO.getRoleId(),menuId);
}
}
return Result.success();
}
/**
* 查询角色资源
* @param roleId:角色ID
* @return List<String>
*/
@Override
public List<String> getResource(String roleId) {
return tsRoleDao.getResourceIds(roleId);
}
/**
* 通过角色Id列表查询菜单Id列表
* @param roleIds:角色ID列表
* @return List<String>
*/
@Override
public List<String> getResourceIdsByRoleIds(List<String> roleIds) {
if(roleIds!=null&&roleIds.size()>0){
return tsRoleDao.getResourceIdsByRoleIds(roleIds);
}
return null;
}
}
@@ -4,6 +4,7 @@ package com.adc.da.slrs.sarUser.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import io.swagger.annotations.ApiOperation;
@@ -55,6 +56,13 @@ public class TsUserController extends BaseController<TsUser> {
return Result.success(menus);
}
@ApiOperation("查询当前登录用户资源")
@GetMapping("/resource")
public ResponseMessage<List<TsResource>> getResource(){
List<TsResource> resources=tsUserService.getResource();
return Result.success(resources);
}
}
@@ -46,4 +46,11 @@ public interface TsUserDao extends BaseMapper<TsUser> {
* @return List<TsUser>
*/
List<TsUser> getUserAndPosition(String institutionId);
/**
* 通过岗位Id列表查询用户ID列表
* @param positionIds:岗位ID列表
* @return List<String>
*/
List<String> getUserIdsByPositionIds(List<String> positionIds);
}
@@ -2,6 +2,7 @@ package com.adc.da.slrs.sarUser.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -45,4 +46,21 @@ public interface ITsUserService extends IService<TsUser> {
* @return List<SarMenu>
*/
List<SarMenu> getMenu();
List<TsResource> getResource();
/**
* 配置个人菜单
* @param roleId :角色ID
* @return List<String>
*/
public List<String> getUserIdsByRoleId(String roleId);
/**
* 通过用户ID查询菜单
* @param userId:用户ID
* @return List<SarMenu>
*/
public List<SarMenu> getMenusByUserId(String userId);
}
@@ -5,23 +5,22 @@ import com.adc.da.http.Result;
import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarMenu.service.ISarMenuService;
import com.adc.da.slrs.sarPosition.entity.TsPosition;
import com.adc.da.slrs.sarPosition.service.ITsPositionService;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import com.adc.da.slrs.sarRole.service.ITsRoleService;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.dao.TsUserDao;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.sys.entity.UserEO;
import com.adc.da.util.LoginUserUtil;
import com.adc.da.utils.util.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.awt.*;
import java.util.List;
import java.util.Map;
@@ -40,9 +39,14 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
@Autowired
private ITsPositionService tsPositionService;
@Autowired
@Lazy
private ITsRoleService tsRoleService;
@Autowired
private ISarMenuService sarMenuService;
@Autowired
private ITsResourceService tsResourceService;
// @Autowired
// private ISarUserPersonalMenuService sarUserPersonalMenuService;
/**
* 通过机构ID查询人员
@@ -117,9 +121,47 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
*/
@Override
public List<SarMenu> getMenu() {
UserEO userEO=UserUtils.getUser();
String userId= userEO.getUsid();
List<String> positionIds=tsUserDao.selectPositionIds(userId);
List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds);
List<String> menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds);
return sarMenuService.getMenuByIds(menuIds);
}
/**
* 查询当前登录的用户资源
* @return List<SarMenu>
*/
@Override
public List<TsResource> getResource() {
UserEO userEO=UserUtils.getUser();
String userId= userEO.getUsid();
System.out.println(userId);
List<String> positionIds=tsUserDao.selectPositionIds(userId);
List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds);
List<String> resourceIds=tsRoleService.getResourceIdsByRoleIds(roleIds);
return tsResourceService.getResourceByIds(resourceIds);
}
/**
* 配置个人菜单
* @param roleId :角色ID
* @return List<String>
*/
@Override
public List<String> getUserIdsByRoleId(String roleId) {
List<String> positionIds=tsPositionService.getPositionIdsByRoleId(roleId);
return tsUserDao.getUserIdsByPositionIds(positionIds);
}
/**
* 通过用户ID查询菜单
* @param userId:用户ID
* @return List<SarMenu>
*/
@Override
public List<SarMenu> getMenusByUserId(String userId){
List<String> positionIds=tsUserDao.selectPositionIds(userId);
List<String> roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds);
List<String> menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds);
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.slrs.sarResource.dao.TsResourceDao">
</mapper>
@@ -10,4 +10,13 @@
</foreach>
)
</select>
<select id="getResourceIdsByRoleIds" resultType="String">
select distinct resource_id from ts_role_resource
where role_id in
(
<foreach collection="list" separator="," item="roleId">
#{roleId}
</foreach>
)
</select>
</mapper>
@@ -36,4 +36,14 @@
on up.position_id=p.id
where u.institution_id=#{institutionId}
</select>
<select id="getUserIdsByPositionIds" resultType="String">
select user_id from ts_user_position
where position_id in
(
<foreach collection="list" item="positionId" separator=",">
#{positionId}
</foreach>
)
</select>
</mapper>