zhangjinli 3 years ago
commit bd7e06cb4d

@ -16,6 +16,8 @@
<properties>
<java.version>8</java.version>
<maven.test.skip>true</maven.test.skip>
<aop.version>2.2.2.RELEASE</aop.version>
<jackson.version>2.12.4</jackson.version>
</properties>
<dependencies>
<dependency>
@ -151,6 +153,19 @@
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- ********************** AOP **************************************************** -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>${aop.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- ********************** AOP **************************************************** -->
</dependencies>
<build>

@ -0,0 +1,16 @@
package com.zh.project0512.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* admin
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AdminCheckAuthorityAnnotation {
// 权限编号
String jurisdictionId() default "";
}

@ -0,0 +1,112 @@
package com.zh.project0512.aop;
import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation;
import com.zh.project0512.model.Admin;
import com.zh.project0512.service.IAdminRoleService;
import com.zh.project0512.service.IAdminService;
import com.zh.project0512.service.IUserService;
import com.zh.project0512.utils.BizException;
import com.zh.project0512.utils.JwtUtil;
import com.zh.project0512.utils.result.HttpStatusEnum;
import jdk.nashorn.internal.ir.annotations.Reference;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.HandlerMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
/**
*
*/
@Order(3)//设置切面优先级为3优先级越小优先级越高
@Aspect
@Component
public class AdminCheckAuthorityAspect {
private final static Logger logger = LoggerFactory.getLogger(AdminCheckAuthorityAspect.class);
@Resource
IAdminService adminService;
@Resource
IAdminRoleService adminRoleService;
/**
* :
*/
@Pointcut("@annotation(com.zh.project0512.annotation.AdminCheckAuthorityAnnotation)")
public void executePointCut() {
}
/**
* :
*/
@Before("executePointCut()")
public void doBefore(JoinPoint joinPoint) {
// 接收到请求,记录请求内容
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//获取当前用户的信息
String tokenId = request.getHeader("token");
Integer id = Integer.valueOf(new JwtUtil().parseAdminJWT(tokenId).getId());
Admin admin = adminService.getById(id);
//1、查询【当前用户】所拥有的【角色】
String roleIdsStr = admin.getRoleIds();
if (roleIdsStr != null && !roleIdsStr.trim().equals("")){
String[] roleIds = roleIdsStr.split(",");
HashSet<Integer> jurisdictionIds = new HashSet<>();
for (String roleId : roleIds) {
//2、根据【角色】查询对应的权限
List<Integer> jurisdictionIdList = adminRoleService.findJurisdictionByRoleId(roleId);
//3、将各个角色的权限 合在一起 并进行 去重操作
jurisdictionIds.addAll(jurisdictionIdList);
}
//4、获取该api所需权限
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
AdminCheckAuthorityAnnotation annotation = signature.getMethod().getAnnotation(AdminCheckAuthorityAnnotation.class);
String jurisdictionId = annotation.jurisdictionId();
//5、判断该用户是否存在该api所需权限,如果存在,则通过,不存在则抛出提示权限不足
if (!jurisdictionIds.contains(Integer.valueOf(jurisdictionId))){
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"用户权限不足");
}
}else {
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"用户权限不足");
}
}
/**
*
*/
@AfterReturning(returning = "ret", pointcut = "executePointCut()")
public void doAfterReturning(Object ret) {
}
}

@ -0,0 +1,59 @@
package com.zh.project0512.controller.manage;
import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.model.dto.AdminJurisdictionFBIDTO;
import com.zh.project0512.model.vo.AdminJurisdictionFBRIVo;
import com.zh.project0512.service.IAdminJurisdictionService;
import com.zh.project0512.utils.BizException;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import com.zh.project0512.utils.result.ResultList;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
*
*/
@Tag(name = "用户权限")
@RestController
@RequestMapping("/manage/userJurisdiction")
public class AdminJurisdictionController {
@Resource
IAdminJurisdictionService userJurisdictionService;
/**
*
* @param operationRoleJurisdictionDTO DTO
* @return
*/
@AdminCheckAuthorityAnnotation(jurisdictionId = "5")
@Operation(summary = "操作角色权限")
@PostMapping("/operationRoleJurisdiction")
public Result<String> operationRoleJurisdiction(@Validated @RequestBody OperationRoleJurisdictionDTO operationRoleJurisdictionDTO){
if (userJurisdictionService.operationRoleJurisdiction(operationRoleJurisdictionDTO)){
return Result.success("操作角色权限","操作成功");
}else {
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"操作失败");
}
}
/**
* id
* @param adminJurisdictionFBIDTO FBI DTO
* @return
*/
@Operation(summary = "根据角色主键id查询角色权限信息")
@PostMapping("/findByRoleId")
public ResultList<AdminJurisdictionFBRIVo> findByRoleId(@Validated @RequestBody AdminJurisdictionFBIDTO adminJurisdictionFBIDTO){
return ResultList.success(userJurisdictionService.findByRoleId(adminJurisdictionFBIDTO));
}
}

@ -0,0 +1,74 @@
package com.zh.project0512.controller.manage;
import com.zh.project0512.model.dto.AdminRoleInsertDTO;
import com.zh.project0512.model.dto.AdminRoleListDTO;
import com.zh.project0512.model.dto.AdminRoleUpdateDTO;
import com.zh.project0512.model.vo.AdminRoleListVo;
import com.zh.project0512.service.IAdminRoleService;
import com.zh.project0512.utils.BizException;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import com.zh.project0512.utils.result.ResultPageInfo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
*
*/
@Tag(name = "用户角色")
@RestController
@RequestMapping("/manage/userRole")
public class AdminRoleController {
@Resource
IAdminRoleService userRoleService;
/**
*
* @param adminRoleListDTO list DTO
* @return
*/
@Operation(summary = "查询用户角色")
@PostMapping("/list")
public ResultPageInfo<AdminRoleListVo> list(@Validated @RequestBody AdminRoleListDTO adminRoleListDTO){
return ResultPageInfo.success(userRoleService.list(adminRoleListDTO));
}
/**
*
* @param adminRoleInsertDTO
* @return
*/
@Operation(summary = "添加用户角色")
@PostMapping("/insert")
public Result<String> insert(@Validated @RequestBody AdminRoleInsertDTO adminRoleInsertDTO){
if (userRoleService.insert(adminRoleInsertDTO)){
return Result.success("添加用户角色","操作成功");
}else {
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"添加失败");
}
}
/**
*
* @param adminRoleUpdateDTO update DTO
* @return
*/
@Operation(summary = "修改用户角色")
@PostMapping("/update")
public Result<String> update(@Validated @RequestBody AdminRoleUpdateDTO adminRoleUpdateDTO){
if (userRoleService.update(adminRoleUpdateDTO)){
return Result.success("修改用户角色","操作成功");
}else {
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"修改失败");
}
}
}

@ -1,51 +0,0 @@
package com.zh.project0512.controller.wxApp;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.model.dto.UserJurisdictionFBIDTO;
import com.zh.project0512.service.IUserJurisdictionService;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
*
*/
@Tag(name = "用户权限")
@RestController
@RequestMapping("/wxApp/userJurisdiction")
public class UserJurisdictionController {
@Resource
IUserJurisdictionService userJurisdictionService;
/**
*
* @param operationRoleJurisdictionDTO DTO
* @return
*/
@PostMapping("/operationRoleJurisdiction")
public Result<String> operationRoleJurisdiction(@Validated @RequestBody OperationRoleJurisdictionDTO operationRoleJurisdictionDTO){
if (userJurisdictionService.operationRoleJurisdiction(operationRoleJurisdictionDTO)){
return Result.success("操作角色权限","操作成功");
}else {
throw new RuntimeException("操作失败");
}
}
/**
* id//TODO 有问题
* @param userJurisdictionFBIDTO FBI DTO
* @return
*/
@PostMapping("/findByRoleId")
public Result<String> findByRoleId(@Validated @RequestBody UserJurisdictionFBIDTO userJurisdictionFBIDTO){
// return Result.success(userJurisdictionService.findByRoleId(userJurisdictionFBIDTO));
return null;
}
}

@ -1,71 +0,0 @@
package com.zh.project0512.controller.wxApp;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.model.dto.UserRoleInsertDTO;
import com.zh.project0512.model.dto.UserRoleListDTO;
import com.zh.project0512.model.dto.UserRoleUpdateDTO;
import com.zh.project0512.model.vo.UserRoleListVo;
import com.zh.project0512.service.IUserRoleService;
import com.zh.project0512.utils.result.Result;
import com.zh.project0512.utils.result.ResultPageInfo;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
*
*/
@Tag(name = "用户角色")
@RestController
@RequestMapping("/wxApp/userRole")
public class UserRoleController {
@Resource
IUserRoleService userRoleService;
/**
*
* @param userRoleListDTO list DTO
* @return
*/
@PostMapping("/list")
public ResultPageInfo<UserRoleListVo> list(@Validated @RequestBody UserRoleListDTO userRoleListDTO){
return ResultPageInfo.success(userRoleService.list(userRoleListDTO));
}
/**
*
* @param userRoleInsertDTO
* @return
*/
@PostMapping("/insert")
public Result<String> insert(@Validated @RequestBody UserRoleInsertDTO userRoleInsertDTO){
if (userRoleService.insert(userRoleInsertDTO)){
return Result.success("添加用户角色","操作成功");
}else {
throw new RuntimeException("添加失败");
}
}
/**
*
* @param userRoleUpdateDTO update DTO
* @return
*/
@PostMapping("/update")
public Result<String> update(@Validated @RequestBody UserRoleUpdateDTO userRoleUpdateDTO){
if (userRoleService.update(userRoleUpdateDTO)){
return Result.success("修改用户角色","操作成功");
}else {
throw new RuntimeException("修改失败");
}
}
}

@ -0,0 +1,7 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.AdminJurisdiction;
public interface AdminJurisdictionMapper extends BaseMapper<AdminJurisdiction> {
}

@ -0,0 +1,7 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.AdminMenus;
public interface AdminMenusMapper extends BaseMapper<AdminMenus> {
}

@ -0,0 +1,7 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.AdminOperation;
public interface AdminOperationMapper extends BaseMapper<AdminOperation> {
}

@ -0,0 +1,7 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.AdminRoleJurisdiction;
public interface AdminRoleJurisdictionMapper extends BaseMapper<AdminRoleJurisdiction> {
}

@ -0,0 +1,7 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.AdminRole;
public interface AdminRoleMapper extends BaseMapper<AdminRole> {
}

@ -1,7 +0,0 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.UserJurisdiction;
public interface UserJurisdictionMapper extends BaseMapper<UserJurisdiction> {
}

@ -1,7 +0,0 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.UserRoleJurisdiction;
public interface UserRoleJurisdictionMapper extends BaseMapper<UserRoleJurisdiction> {
}

@ -1,7 +0,0 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.UserRole;
public interface UserRoleMapper extends BaseMapper<UserRole> {
}

@ -90,5 +90,10 @@ public class Admin extends Model {
*/
private Integer status;
/**
* id,
*/
@TableField("roleIds")
private String roleIds;
}

@ -16,8 +16,8 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("userJurisdiction")
public class UserJurisdiction implements Serializable {
@TableName("adminJurisdiction")
public class AdminJurisdiction implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
@ -29,12 +29,12 @@ public class UserJurisdiction implements Serializable {
* id
*/
@TableField("menusId")
private String menusId;
private Integer menusId;
/**
* id
*/
@TableField("operationId")
private String operationId;
private Integer operationId;
/**
*
*/

@ -3,6 +3,7 @@ package com.zh.project0512.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -15,7 +16,8 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserMenus implements Serializable {
@TableName("adminMenus")
public class AdminMenus implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -3,6 +3,7 @@ package com.zh.project0512.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -15,7 +16,8 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserOperation implements Serializable {
@TableName("adminOperation")
public class AdminOperation implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -17,8 +17,8 @@ import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("userRole")
public class UserRole implements Serializable {
@TableName("adminRole")
public class AdminRole implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -16,8 +16,8 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("userRoleJurisdiction")
public class UserRoleJurisdiction implements Serializable {
@TableName("adminRoleJurisdiction")
public class AdminRoleJurisdiction implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -14,7 +14,7 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserJurisdictionFBIDTO implements Serializable {
public class AdminJurisdictionFBIDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -15,7 +15,7 @@ import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Schema(title = "用户角色添加")
public class UserRoleInsertDTO implements Serializable {
public class AdminRoleInsertDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -15,7 +15,7 @@ import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Schema
public class UserRoleListDTO implements Serializable {
public class AdminRoleListDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -13,7 +13,7 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserRoleUpdateDTO implements Serializable {
public class AdminRoleUpdateDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -12,7 +12,7 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserJurisdictionFBIVo implements Serializable {
public class AdminJurisdictionFBIVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;

@ -0,0 +1,35 @@
package com.zh.project0512.model.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* -Vo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AdminJurisdictionFBRIOperationVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Integer id;
/**
*
*/
private String name;
/**
*
*/
private String code;
/**
*
*/
private boolean check;
}

@ -0,0 +1,39 @@
package com.zh.project0512.model.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* id Vo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AdminJurisdictionFBRIVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Integer id;
/**
*
*/
private String name;
/**
*
*/
private String code;
/**
*
*/
private boolean check;
/**
*
*/
private List<AdminJurisdictionFBRIOperationVo> operationVoList;
}

@ -11,7 +11,7 @@ import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserRoleListVo implements Serializable {
public class AdminRoleListVo implements Serializable {
private static final long serialVersionUID = 1L;
/**

@ -0,0 +1,24 @@
package com.zh.project0512.service;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.model.dto.AdminJurisdictionFBIDTO;
import com.zh.project0512.model.vo.AdminJurisdictionFBRIVo;
import java.util.List;
public interface IAdminJurisdictionService {
/**
*
* @param operationRoleJurisdictionDTO DTO
* @return
*/
boolean operationRoleJurisdiction(OperationRoleJurisdictionDTO operationRoleJurisdictionDTO);
/**
* id
* @param adminJurisdictionFBIDTO FBI DTO
* @return
*/
List<AdminJurisdictionFBRIVo> findByRoleId(AdminJurisdictionFBIDTO adminJurisdictionFBIDTO);
}

@ -0,0 +1,39 @@
package com.zh.project0512.service;
import com.zh.project0512.model.dto.AdminRoleInsertDTO;
import com.zh.project0512.model.dto.AdminRoleListDTO;
import com.zh.project0512.model.dto.AdminRoleUpdateDTO;
import com.zh.project0512.model.vo.AdminRoleListVo;
import com.zh.project0512.utils.page.PageInfo;
import java.util.List;
public interface IAdminRoleService {
/**
*
* @param adminRoleListDTO list DTO
* @return
*/
PageInfo<AdminRoleListVo> list(AdminRoleListDTO adminRoleListDTO);
/**
*
* @param adminRoleInsertDTO DTO
* @return
*/
boolean insert(AdminRoleInsertDTO adminRoleInsertDTO);
/**
*
* @param adminRoleUpdateDTO update DTO
* @return
*/
boolean update(AdminRoleUpdateDTO adminRoleUpdateDTO);
/**
*
* @param roleId id
* @return
*/
List<Integer> findJurisdictionByRoleId(String roleId);
}

@ -1,12 +0,0 @@
package com.zh.project0512.service;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
public interface IUserJurisdictionService {
/**
*
* @param operationRoleJurisdictionDTO DTO
* @return
*/
boolean operationRoleJurisdiction(OperationRoleJurisdictionDTO operationRoleJurisdictionDTO);
}

@ -1,30 +0,0 @@
package com.zh.project0512.service;
import com.zh.project0512.model.dto.UserRoleInsertDTO;
import com.zh.project0512.model.dto.UserRoleListDTO;
import com.zh.project0512.model.dto.UserRoleUpdateDTO;
import com.zh.project0512.model.vo.UserRoleListVo;
import com.zh.project0512.utils.page.PageInfo;
public interface IUserRoleService {
/**
*
* @param userRoleListDTO list DTO
* @return
*/
PageInfo<UserRoleListVo> list(UserRoleListDTO userRoleListDTO);
/**
*
* @param userRoleInsertDTO DTO
* @return
*/
boolean insert(UserRoleInsertDTO userRoleInsertDTO);
/**
*
* @param userRoleUpdateDTO update DTO
* @return
*/
boolean update(UserRoleUpdateDTO userRoleUpdateDTO);
}

@ -0,0 +1,114 @@
package com.zh.project0512.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zh.project0512.mapper.*;
import com.zh.project0512.model.*;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.model.dto.AdminJurisdictionFBIDTO;
import com.zh.project0512.model.vo.AdminJurisdictionFBRIOperationVo;
import com.zh.project0512.model.vo.AdminJurisdictionFBRIVo;
import com.zh.project0512.service.IAdminJurisdictionService;
import com.zh.project0512.utils.BizException;
import com.zh.project0512.utils.PropertyUtils;
import com.zh.project0512.utils.result.HttpStatusEnum;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
public class AdminJurisdictionServiceImpl implements IAdminJurisdictionService {
@Resource
AdminRoleJurisdictionMapper adminRoleJurisdictionMapper;
@Resource
AdminMenusMapper adminMenusMapper;
@Resource
AdminOperationMapper adminOperationMapper;
@Resource
AdminJurisdictionMapper adminJurisdictionMapper;
@Resource
AdminRoleMapper adminRoleMapper;
@Override
@Transactional
public boolean operationRoleJurisdiction(OperationRoleJurisdictionDTO operationRoleJurisdictionDTO) {
AdminRole adminRole = adminRoleMapper.selectById(operationRoleJurisdictionDTO.getRoleId());
if (adminRole == null){
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"记录不存在");
}
//先删除角色-权限关联表
QueryWrapper<AdminRoleJurisdiction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("roleId",operationRoleJurisdictionDTO.getRoleId());
adminRoleJurisdictionMapper.delete(queryWrapper);
//后添加角色-权限关联表
int[] jurisdictionIds = operationRoleJurisdictionDTO.getJurisdictionIds();
if (jurisdictionIds.length > 0){
for (int jurisdictionId : jurisdictionIds) {
AdminRoleJurisdiction adminRoleJurisdiction = new AdminRoleJurisdiction();
adminRoleJurisdiction.setRoleId(operationRoleJurisdictionDTO.getRoleId());
adminRoleJurisdiction.setJurisdictionId(jurisdictionId);
adminRoleJurisdictionMapper.insert(adminRoleJurisdiction);
}
}
return true;
}
@Override
public List<AdminJurisdictionFBRIVo> findByRoleId(AdminJurisdictionFBIDTO adminJurisdictionFBIDTO) {
AdminRole adminRole = adminRoleMapper.selectById(adminJurisdictionFBIDTO.getRoleId());
if (adminRole == null){
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"记录不存在");
}
ArrayList<AdminJurisdictionFBRIVo> adminJurisdictionFBRIVos = new ArrayList<>();
//查询所有菜单
QueryWrapper<AdminMenus> queryWrapper = new QueryWrapper<>();
List<AdminMenus> adminMenus = adminMenusMapper.selectList(queryWrapper);
if (adminMenus != null && adminMenus.size() >0){
for (AdminMenus userMenu : adminMenus) {
AdminJurisdictionFBRIVo adminJurisdictionFBRIVo = new AdminJurisdictionFBRIVo();
PropertyUtils.copyProperties(userMenu, adminJurisdictionFBRIVo);
adminJurisdictionFBRIVo.setCheck(false);//默认为未选中
//查询菜单下所有操作信息
ArrayList<AdminJurisdictionFBRIOperationVo> operationVoList = new ArrayList<>();
QueryWrapper<AdminJurisdiction> queryWrapper4 = new QueryWrapper<>();
queryWrapper4.eq("menusId",userMenu.getId());
List<AdminJurisdiction> adminJurisdictions = adminJurisdictionMapper.selectList(queryWrapper4);
if (adminJurisdictions != null && adminJurisdictions.size()>0){
for (AdminJurisdiction adminJurisdiction : adminJurisdictions) {
AdminOperation adminOperation = adminOperationMapper.selectById(adminJurisdiction.getOperationId());
if (adminOperation != null){
AdminJurisdictionFBRIOperationVo operationVo = new AdminJurisdictionFBRIOperationVo();
PropertyUtils.copyProperties(adminOperation,operationVo);
operationVo.setCheck(false);//默认为未选中
//查询该操作是否选中,如果选中则菜单也被选中
QueryWrapper<AdminRoleJurisdiction> queryWrapper5 = new QueryWrapper<>();
queryWrapper5.eq("jurisdictionId", adminJurisdiction.getId());
queryWrapper5.eq("roleId", adminJurisdictionFBIDTO.getRoleId());
queryWrapper5.last("limit 1");
AdminRoleJurisdiction adminRoleJurisdiction = adminRoleJurisdictionMapper.selectOne(queryWrapper5);
if (adminRoleJurisdiction != null){
operationVo.setCheck(true);
adminJurisdictionFBRIVo.setCheck(true);
}
operationVoList.add(operationVo);
}
}
}
adminJurisdictionFBRIVo.setOperationVoList(operationVoList);
adminJurisdictionFBRIVos.add(adminJurisdictionFBRIVo);
}
}
return adminJurisdictionFBRIVos;
}
}

@ -0,0 +1,90 @@
package com.zh.project0512.serviceImpl;
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.zh.project0512.mapper.AdminRoleJurisdictionMapper;
import com.zh.project0512.mapper.AdminRoleMapper;
import com.zh.project0512.model.AdminRole;
import com.zh.project0512.model.AdminRoleJurisdiction;
import com.zh.project0512.model.dto.AdminRoleInsertDTO;
import com.zh.project0512.model.dto.AdminRoleListDTO;
import com.zh.project0512.model.dto.AdminRoleUpdateDTO;
import com.zh.project0512.model.vo.AdminRoleListVo;
import com.zh.project0512.service.IAdminRoleService;
import com.zh.project0512.utils.BizException;
import com.zh.project0512.utils.PropertyUtils;
import com.zh.project0512.utils.page.PageInfo;
import com.zh.project0512.utils.result.HttpStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@Service
public class AdminRoleServiceImpl implements IAdminRoleService {
@Resource
AdminRoleMapper adminRoleMapper;
@Resource
AdminRoleJurisdictionMapper adminRoleJurisdictionMapper;
@Override
public PageInfo<AdminRoleListVo> list(AdminRoleListDTO adminRoleListDTO) {
ArrayList<AdminRoleListVo> adminRoleListVoList = new ArrayList<>();
QueryWrapper<AdminRole> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.isNotBlank(adminRoleListDTO.getName()),"name", adminRoleListDTO.getName());
Page<AdminRole> page = new Page<>(adminRoleListDTO.getPageNum(), adminRoleListDTO.getPageSize());
IPage<AdminRole> userRoleIPage = adminRoleMapper.selectPage(page, queryWrapper);
List<AdminRole> records = userRoleIPage.getRecords();
if (records != null && records.size()>0){
for (AdminRole record : records) {
AdminRoleListVo adminRoleListVo = new AdminRoleListVo();
PropertyUtils.copyProperties(record, adminRoleListVo);
adminRoleListVoList.add(adminRoleListVo);
}
}
return new PageInfo<>(userRoleIPage.getPages(), adminRoleListVoList, userRoleIPage.getTotal());
}
@Override
public boolean insert(AdminRoleInsertDTO adminRoleInsertDTO) {
AdminRole adminRole = new AdminRole();
adminRole.setName(adminRoleInsertDTO.getName());
adminRole.setCode(UUID.randomUUID().toString().replace("-",""));
adminRole.setCreateAt(new Date());
int insert = adminRoleMapper.insert(adminRole);
return insert > 0;
}
@Override
public boolean update(AdminRoleUpdateDTO adminRoleUpdateDTO) {
AdminRole adminRole = adminRoleMapper.selectById(adminRoleUpdateDTO.getId());
if (adminRole == null){
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"记录不存在");
}
adminRole.setName(adminRoleUpdateDTO.getName());
adminRole.setModifyAt(new Date());
int update = adminRoleMapper.updateById(adminRole);
return update > 0;
}
@Override
public List<Integer> findJurisdictionByRoleId(String roleId) {
ArrayList<Integer> jurisdictionIds = new ArrayList<>();
QueryWrapper<AdminRoleJurisdiction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("roleId",roleId);
List<AdminRoleJurisdiction> adminRoleJurisdictionList = adminRoleJurisdictionMapper.selectList(queryWrapper);
for (AdminRoleJurisdiction adminRoleJurisdiction : adminRoleJurisdictionList) {
jurisdictionIds.add(adminRoleJurisdiction.getJurisdictionId());
}
return jurisdictionIds;
}
}

@ -1,39 +0,0 @@
package com.zh.project0512.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zh.project0512.mapper.UserRoleJurisdictionMapper;
import com.zh.project0512.model.UserRoleJurisdiction;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.service.IUserJurisdictionService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@Service
public class UserJurisdictionServiceImpl implements IUserJurisdictionService {
@Resource
UserRoleJurisdictionMapper userRoleJurisdictionMapper;
@Override
@Transactional
public boolean operationRoleJurisdiction(OperationRoleJurisdictionDTO operationRoleJurisdictionDTO) {
//先删除角色-权限关联表
QueryWrapper<UserRoleJurisdiction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("roleId",operationRoleJurisdictionDTO.getRoleId());
userRoleJurisdictionMapper.delete(queryWrapper);
//后添加角色-权限关联表
int[] jurisdictionIds = operationRoleJurisdictionDTO.getJurisdictionIds();
if (jurisdictionIds.length > 0){
for (int jurisdictionId : jurisdictionIds) {
UserRoleJurisdiction userRoleJurisdiction = new UserRoleJurisdiction();
userRoleJurisdiction.setRoleId(operationRoleJurisdictionDTO.getRoleId());
userRoleJurisdiction.setJurisdictionId(jurisdictionId);
userRoleJurisdictionMapper.insert(userRoleJurisdiction);
}
}
return true;
}
}

@ -1,71 +0,0 @@
package com.zh.project0512.serviceImpl;
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.zh.project0512.mapper.UserRoleMapper;
import com.zh.project0512.model.UserPointsRecords;
import com.zh.project0512.model.UserRole;
import com.zh.project0512.model.dto.UserRoleInsertDTO;
import com.zh.project0512.model.dto.UserRoleListDTO;
import com.zh.project0512.model.dto.UserRoleUpdateDTO;
import com.zh.project0512.model.vo.UserPointsRecordListVo;
import com.zh.project0512.model.vo.UserRoleListVo;
import com.zh.project0512.service.IUserRoleService;
import com.zh.project0512.utils.PropertyUtils;
import com.zh.project0512.utils.page.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@Service
public class UserRoleServiceImpl implements IUserRoleService {
@Resource
UserRoleMapper userRoleMapper;
@Override
public PageInfo<UserRoleListVo> list(UserRoleListDTO userRoleListDTO) {
ArrayList<UserRoleListVo> userRoleListVoList = new ArrayList<>();
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.isNotBlank(userRoleListDTO.getName()),"name",userRoleListDTO.getName());
Page<UserRole> page = new Page<>(userRoleListDTO.getPageNum(), userRoleListDTO.getPageSize());
IPage<UserRole> userRoleIPage = userRoleMapper.selectPage(page, queryWrapper);
List<UserRole> records = userRoleIPage.getRecords();
if (records != null && records.size()>0){
for (UserRole record : records) {
UserRoleListVo userRoleListVo = new UserRoleListVo();
PropertyUtils.copyProperties(record,userRoleListVo);
userRoleListVoList.add(userRoleListVo);
}
}
return new PageInfo<>(userRoleIPage.getPages(), userRoleListVoList, userRoleIPage.getTotal());
}
@Override
public boolean insert(UserRoleInsertDTO userRoleInsertDTO) {
UserRole userRole = new UserRole();
userRole.setName(userRoleInsertDTO.getName());
userRole.setCode(UUID.randomUUID().toString().replace("-",""));
userRole.setCreateAt(new Date());
int insert = userRoleMapper.insert(userRole);
return insert > 0;
}
@Override
public boolean update(UserRoleUpdateDTO userRoleUpdateDTO) {
UserRole userRole = userRoleMapper.selectById(userRoleUpdateDTO.getId());
if (userRole == null){
throw new RuntimeException("记录不存在");
}
userRole.setName(userRoleUpdateDTO.getName());
int update = userRoleMapper.updateById(userRole);
return update > 0;
}
}

@ -0,0 +1,26 @@
package com.zh.project0512.utils;
import com.zh.project0512.utils.result.HttpStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class BizException extends RuntimeException{
private static final long serialVersionUID = 1L;
private Integer code;
private String message;
public BizException(HttpStatusEnum httpStatusEnum) {
this.code = httpStatusEnum.code();
this.message = httpStatusEnum.reasonPhraseCN();
}
public BizException(HttpStatusEnum httpStatusEnum, String message) {
this.code = httpStatusEnum.code();
this.message = message;
}
}

@ -46,7 +46,7 @@ public class PropertyUtils {
}
}
} catch (Exception e) {
throw new RuntimeException("PropertyUtils 属性转换错误");
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误");
// throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误");
}
@ -89,8 +89,7 @@ public class PropertyUtils {
}
}
} catch (Exception e) {
throw new RuntimeException("PropertyUtils 属性转换错误");
// throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误");
throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误");
}
}

@ -9,8 +9,10 @@ import org.springframework.validation.BindException;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.ValidationException;
@ -58,4 +60,17 @@ public class RestExceptionHandler {
}
return new ResponseEntity<>(result,HttpStatus.BAD_REQUEST);
}
/**
*
* @param req
* @param e
* @return
*/
@ExceptionHandler(value = BizException.class)
@ResponseBody
public Result<String> bizExceptionHandler(HttpServletRequest req, BizException e){
// log.error("发生业务异常!原因是:{}",e.getMessage());
return Result.fail(e.getCode(),e.getMessage());
}
}

@ -81,4 +81,7 @@ public class Result<T> {
return new Result<T>(false, httpStatusEnum.code(), msg);
}
public static <T> Result<T> fail(int code, String msg) {
return new Result<T>(false, code, msg);
}
}

Loading…
Cancel
Save