diff --git a/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java b/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java index 870c415d..b77dfe97 100644 --- a/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java +++ b/adc-da-main/src/main/java/com/adc/da/main/config/RestTemplateConfig.java @@ -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; diff --git a/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java b/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java index e17bf8a0..12658804 100644 --- a/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java +++ b/adc-da-main/src/main/java/com/adc/da/main/generate/CodeGen.java @@ -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"; /** diff --git a/adc-da-main/src/main/resources/application.properties b/adc-da-main/src/main/resources/application.properties index 4cb8be56..fb1168dc 100644 --- a/adc-da-main/src/main/resources/application.properties +++ b/adc-da-main/src/main/resources/application.properties @@ -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 # 请求处理的超时时间 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java index 765bf2c4..a3cf165f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java @@ -99,7 +99,7 @@ public class SarMenuController extends BaseController { @ApiOperation("删除菜单") @DeleteMapping - public ResponseMessage delMenu(@RequestParam Integer menuId){ + public ResponseMessage delMenu(@RequestParam String menuId){ return sarMenuEOService.delMenu(menuId); } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java index ddc99449..73fcc03b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java @@ -54,10 +54,10 @@ public interface ISarMenuService extends IService { /** * 删除菜单 - * @param menuId:菜单ID + * @param menuId :菜单ID * @return ResponseMessage */ - ResponseMessage delMenu(Integer menuId); + ResponseMessage delMenu(String menuId); /** * 通过Ids查询menu diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java index 9fdd43c3..609f7e67 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java @@ -222,11 +222,11 @@ public class SarMenuServiceImpl extends ServiceImpl impleme /** * 删除菜单 - * @param menuId:菜单ID + * @param menuId :菜单ID * @return ResponseMessage */ @Override - public ResponseMessage delMenu(Integer menuId) { + public ResponseMessage delMenu(String menuId) { QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); sarMenuQueryWrapper.eq("parent_id",menuId); List children=dao.selectList(sarMenuQueryWrapper); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java index c8005efd..76fab518 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/entity/SarUserPersonalMenu.java @@ -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; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java index 3ec6ace4..e29c294a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/ISarUserPersonalMenuService.java @@ -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> updateUserPersonalMenu(SarUserPersonalMenuEO eo); - public void updateUserPersonalMenuForRole(List menus,String userId); - - + public void updateUserPersonalMenuForRole(List menus, String userId); + /** + * 更新用户权限 + * @param roleId:角色ID + */ + void setPersonalMenu(String roleId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java index 42b8052d..b1b3ceae 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPersonalCenter/service/impl/SarUserPersonalMenuServiceImpl.java @@ -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 implements ISarUserPersonalMenuService { - + @Autowired + @Lazy + private TsUserServiceImpl tsUserService; @Override public ResponseMessage> getUserPersonalMenu(SarUserPersonalMenuEO eo) { @@ -68,16 +75,15 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl menuList,String userId) { - + public void updateUserPersonalMenuForRole(List menuList,String userId) { Set 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 queryWrapper=new QueryWrapper<>(); queryWrapper.eq("user_id",userId); - queryWrapper.eq("menu_id",menu.getMenuId()); + queryWrapper.eq("menu_id",menu.getId()); List menus = getBaseMapper().selectList(queryWrapper); if (menus.size()>0) { ids.add(menus.get(0).getId()); @@ -86,9 +92,9 @@ public class SarUserPersonalMenuServiceImpl extends ServiceImpl userIds=tsUserService.getUserIdsByRoleId(roleId); + for(String userId:userIds){ + List menus=tsUserService.getMenusByUserId(userId); + updateUserPersonalMenuForRole(menus,userId); + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java index e2cfd184..d5989e46 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java @@ -63,4 +63,12 @@ public interface TsPositionDao extends BaseMapper { * @return List */ List getRoleIdsByPositionIds(List positionIds); + + /** + * 通过roleId查询岗位ID列表 + * @param roleId:角色ID + * @return List + */ + @Select("select position_id from ts_position_role where role_id=#{roleId}") + List getPositionIdsByRoleId(String roleId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java index 5691afd3..79565b95 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java @@ -66,4 +66,11 @@ public interface ITsPositionService extends IService { * @return List */ List getRoleIdsByPositionIds(List positionIds); + + /** + * 通过roleId查询岗位ID列表 + * @param roleId:角色ID + * @return List + */ + List getPositionIdsByRoleId(String roleId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java index ea291337..9ac99608 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java @@ -147,4 +147,14 @@ public class TsPositionServiceImpl extends ServiceImpl + */ + @Override + public List getPositionIdsByRoleId(String roleId) { + return tsPositionDao.getPositionIdsByRoleId(roleId); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/controller/TsResourceController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/controller/TsResourceController.java new file mode 100644 index 00000000..3c7ad27e --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/controller/TsResourceController.java @@ -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; + +/** +*

+ * 前端控制器 + *

+* +* @author zyl +* @since 2021-06-30 +*/ +@RestController +@Api(tags = "资源管理") +@RequestMapping("/api/sarResource/ts-resource") +public class TsResourceController extends BaseController { + @Autowired + private ITsResourceService tsResourceService; + + @ApiOperation("查询所有资源") + @GetMapping + public ResponseMessage> getAll(){ + List tsResources=tsResourceService.getAll(); + return Result.success(tsResources); + } + + @ApiOperation("添加资源") + @PostMapping("/add") + public ResponseMessage addResource(@RequestBody TsResource tsResource){ + return tsResourceService.addResource(tsResource); + } + + @ApiOperation("编辑资源") + @PutMapping + public ResponseMessage updateResource(@Validated(TsResource.update.class) @RequestBody TsResource tsResource){ + return tsResourceService.updateResource(tsResource); + } + + @ApiOperation("删除资源") + @DeleteMapping + public ResponseMessage delResource(@RequestParam String resourceId){ + return tsResourceService.delResource(resourceId); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java new file mode 100644 index 00000000..be0671ec --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java @@ -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; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zyl + * @since 2021-06-30 + */ +public interface TsResourceDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java new file mode 100644 index 00000000..4cddc2ef --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java @@ -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; + +/** + *

+ * + *

+ * + * @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 children; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java new file mode 100644 index 00000000..0dfe5a24 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java @@ -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; + +/** + *

+ * 服务类 + *

+ * + * @author zyl + * @since 2021-06-30 + */ +public interface ITsResourceService extends IService { + + List getAll(); + + ResponseMessage addResource(TsResource tsResource); + + ResponseMessage updateResource(TsResource tsResource); + + ResponseMessage delResource(String resourceId); + + /** + * 通过Ids查询menu + * @param resourceIds :菜单Ids + * @return List + */ + List getResourceByIds(List resourceIds); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java new file mode 100644 index 00000000..3c284b46 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java @@ -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; + +/** + *

+ * 服务实现类 + *

+ * + * @author zyl + * @since 2021-06-30 + */ +@Service +public class TsResourceServiceImpl extends ServiceImpl implements ITsResourceService { + @Autowired + private TsResourceDao dao; + /** + * 查询所有菜单 + */ + @Override + public List getAll() { + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + TsResourceQueryWrapper.isNull("PARENT_ID"); + List TsResources=dao.selectList(TsResourceQueryWrapper); + for(TsResource TsResource:TsResources){ + TsResource.setChildren(recursionGetChildren((TsResource))); + } + return TsResources; + } + + /** + * 添加菜单 + * @param TsResource:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage 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 + */ + @Override + public ResponseMessage 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 + */ + @Override + public ResponseMessage delResource(String ResourceId) { + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + TsResourceQueryWrapper.eq("parent_id",ResourceId); + List 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 + */ + @Override + public List getResourceByIds(List resourceIds) { + if(resourceIds!=null&&resourceIds.size()>0){ + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + TsResourceQueryWrapper.in("id",resourceIds); + return dao.selectList(TsResourceQueryWrapper); + } + return new ArrayList<>(); + } + + /** + * 递归调用获取子节点 + * @param parent:父节点 + * @return List + */ + private List recursionGetChildren(TsResource parent){ + QueryWrapper TsResourceQueryWrapper=new QueryWrapper<>(); + TsResourceQueryWrapper.eq("PARENT_ID",parent.getId()); + List children=dao.selectList(TsResourceQueryWrapper); + for(TsResource TsResource:children){ + TsResource.setChildren(recursionGetChildren((TsResource))); + } + return children; + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java index aa22930a..d29f9159 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java @@ -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 { List menuIds=tsRoleService.getMenu(roleId); return Result.success(menuIds); } + + @ApiOperation("配置资源") + @PostMapping("/resource") + public ResponseMessage setResource(@Valid @RequestBody TsRoleResourceVO tsRoleResourceVO){ + return tsRoleService.setResource(tsRoleResourceVO); + } + + @ApiOperation("查询角色资源") + @GetMapping("/resource") + public ResponseMessage> getResource(@RequestParam String roleId){ + List resourceIds=tsRoleService.getResource(roleId); + return Result.success(resourceIds); + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java index f742edf1..e3987b47 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java @@ -59,4 +59,36 @@ public interface TsRoleDao extends BaseMapper { * @return List */ List getMenuIdsByRoleIds(List roleIds); + + /** + * 通过角色ID查询绑定的资源ID + * @param roleId:角色ID + * @return List + */ + @Select("select resource_id from ts_role_resource where role_id=#{roleId}") + List 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 + */ + List getResourceIdsByRoleIds(List roleIds); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleResourceVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleResourceVO.java new file mode 100644 index 00000000..6652ac28 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/entity/TsRoleResourceVO.java @@ -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 resourceIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java index 29eb5df8..1091a832 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java @@ -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 { * @return List */ List getMenuIdsByRoleIds(List roleIds); + + ResponseMessage setResource(TsRoleResourceVO tsRoleResourceVO); + + List getResource(String roleId); + + List getResourceIdsByRoleIds(List roleIds); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java index b94f71cd..3db343a2 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java @@ -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 implements ITsRoleService { @Autowired private TsRoleDao tsRoleDao; @Autowired private ISarMenuService sarMenuService; - + @Autowired + @Lazy + private ISarUserPersonalMenuService sarUserPersonalMenuService; /** * 查询所有角色 * @return List @@ -169,8 +177,7 @@ public class TsRoleServiceImpl extends ServiceImpl implements tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId); } } - //修改首页自定义目录 -// List menus=sarMenuService.getMenusByIds(tsRoleMenuVO.getMenuIds()); + sarUserPersonalMenuService.setPersonalMenu(tsRoleMenuVO.getRoleId()); return Result.success(); } @@ -197,5 +204,59 @@ public class TsRoleServiceImpl extends ServiceImpl implements return null; } + /** + * 配置资源 + * @param tsRoleResourceVO:资源ID + * @return ResponseMessage + */ + @Override + public ResponseMessage setResource(TsRoleResourceVO tsRoleResourceVO) { + TsRole role=tsRoleDao.selectById(tsRoleResourceVO.getRoleId()); + if(role==null){ + return Result.error("该角色不存在"); + } + List oldResourceIds=tsRoleDao.getResourceIds(tsRoleResourceVO.getRoleId()); + Map> updateMenuIds= ListUtil.difList(tsRoleResourceVO.getResourceIds(),oldResourceIds); + List insertIds=updateMenuIds.get("insert"); + List 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 + */ + @Override + public List getResource(String roleId) { + return tsRoleDao.getResourceIds(roleId); + } + + /** + * 通过角色Id列表查询菜单Id列表 + * @param roleIds:角色ID列表 + * @return List + */ + @Override + public List getResourceIdsByRoleIds(List roleIds) { + if(roleIds!=null&&roleIds.size()>0){ + return tsRoleDao.getResourceIdsByRoleIds(roleIds); + } + return null; + } + + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java index f02253a2..8aec0495 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java @@ -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 { return Result.success(menus); } + @ApiOperation("查询当前登录用户资源") + @GetMapping("/resource") + public ResponseMessage> getResource(){ + List resources=tsUserService.getResource(); + return Result.success(resources); + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java index 73962ead..260e3afd 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java @@ -46,4 +46,11 @@ public interface TsUserDao extends BaseMapper { * @return List */ List getUserAndPosition(String institutionId); + + /** + * 通过岗位Id列表查询用户ID列表 + * @param positionIds:岗位ID列表 + * @return List + */ + List getUserIdsByPositionIds(List positionIds); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java index 8d35fafe..00560dd3 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java @@ -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 { * @return List */ List getMenu(); + + List getResource(); + + /** + * 配置个人菜单 + * @param roleId :角色ID + * @return List + */ + public List getUserIdsByRoleId(String roleId); + + /** + * 通过用户ID查询菜单 + * @param userId:用户ID + * @return List + */ + public List getMenusByUserId(String userId); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java index 476b4917..dc6b96fa 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java @@ -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 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 implements */ @Override public List getMenu() { + UserEO userEO=UserUtils.getUser(); + String userId= userEO.getUsid(); + List positionIds=tsUserDao.selectPositionIds(userId); + List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); + List menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds); + return sarMenuService.getMenuByIds(menuIds); + } + + /** + * 查询当前登录的用户资源 + * @return List + */ + @Override + public List getResource() { UserEO userEO=UserUtils.getUser(); String userId= userEO.getUsid(); System.out.println(userId); + List positionIds=tsUserDao.selectPositionIds(userId); + List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); + List resourceIds=tsRoleService.getResourceIdsByRoleIds(roleIds); + return tsResourceService.getResourceByIds(resourceIds); + } + + /** + * 配置个人菜单 + * @param roleId :角色ID + * @return List + */ + @Override + public List getUserIdsByRoleId(String roleId) { + List positionIds=tsPositionService.getPositionIdsByRoleId(roleId); + return tsUserDao.getUserIdsByPositionIds(positionIds); + } + + /** + * 通过用户ID查询菜单 + * @param userId:用户ID + * @return List + */ + @Override + public List getMenusByUserId(String userId){ List positionIds=tsUserDao.selectPositionIds(userId); List roleIds=tsPositionService.getRoleIdsByPositionIds(positionIds); List menuIds=tsRoleService.getMenuIdsByRoleIds(roleIds); diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarResource/TsResourceMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarResource/TsResourceMapper.xml new file mode 100644 index 00000000..447de27f --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarResource/TsResourceMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml index a366fda3..e4ac1c0e 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarRole/TsRoleMapper.xml @@ -10,4 +10,13 @@ ) + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml index 67b94fdc..158d3b20 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml @@ -36,4 +36,14 @@ on up.position_id=p.id where u.institution_id=#{institutionId} + +