Ver Fonte

权限管理、组织架构管理

xiaof há 4 anos atrás
pai
commit
9deff44766

+ 74 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/bean/dto/OrgDto.java

@@ -0,0 +1,74 @@
+package com.qmth.digit.print.business.bean.dto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Date: 2021/3/29.
+ */
+public class OrgDto {
+
+    private Long id;
+    private Long schoolId;
+    private String code;
+    private String name;
+    private Long parentId;
+    private Boolean enable;
+    private List<OrgDto> children = new ArrayList<>();
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public List<OrgDto> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<OrgDto> children) {
+        this.children = children;
+    }
+}

+ 85 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/bean/dto/PrivilegeDto.java

@@ -0,0 +1,85 @@
+package com.qmth.digit.print.business.bean.dto;
+
+import com.qmth.digit.print.common.enums.PrivilegeTypeEnum;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Date: 2021/3/29.
+ */
+public class PrivilegeDto {
+
+    private Long id;
+    private Long schoolId;
+    private String name;
+    private String url;
+    private PrivilegeTypeEnum type;
+    private Long parentId;
+    private Integer sortNumber;
+    private List<PrivilegeDto> children = new ArrayList<>();
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public PrivilegeTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(PrivilegeTypeEnum type) {
+        this.type = type;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public Integer getSortNumber() {
+        return sortNumber;
+    }
+
+    public void setSortNumber(Integer sortNumber) {
+        this.sortNumber = sortNumber;
+    }
+
+    public List<PrivilegeDto> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<PrivilegeDto> children) {
+        this.children = children;
+    }
+}

+ 3 - 3
digit-print-business/src/main/java/com/qmth/digit/print/business/entity/SysOrg.java

@@ -40,7 +40,7 @@ public class SysOrg extends BaseEntity implements Serializable {
     /**
     /**
      * 0-禁用,1-启用
      * 0-禁用,1-启用
      */
      */
-    private Integer enable;
+    private Boolean enable;
 
 
     public Long getSchoolId() {
     public Long getSchoolId() {
         return schoolId;
         return schoolId;
@@ -74,11 +74,11 @@ public class SysOrg extends BaseEntity implements Serializable {
         this.parentId = parentId;
         this.parentId = parentId;
     }
     }
 
 
-    public Integer getEnable() {
+    public Boolean getEnable() {
         return enable;
         return enable;
     }
     }
 
 
-    public void setEnable(Integer enable) {
+    public void setEnable(Boolean enable) {
         this.enable = enable;
         this.enable = enable;
     }
     }
 
 

+ 4 - 3
digit-print-business/src/main/java/com/qmth/digit/print/business/entity/SysPrivilege.java

@@ -3,6 +3,7 @@ package com.qmth.digit.print.business.entity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.qmth.digit.print.business.base.BaseEntity;
 import com.qmth.digit.print.business.base.BaseEntity;
+import com.qmth.digit.print.common.enums.PrivilegeTypeEnum;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 
 
@@ -35,7 +36,7 @@ public class SysPrivilege extends BaseEntity implements Serializable {
     /**
     /**
      * M-菜单,F-操作
      * M-菜单,F-操作
      */
      */
-    private String type;
+    private PrivilegeTypeEnum type;
     /**
     /**
      * 上级菜单
      * 上级菜单
      */
      */
@@ -72,11 +73,11 @@ public class SysPrivilege extends BaseEntity implements Serializable {
         this.url = url;
         this.url = url;
     }
     }
 
 
-    public String getType() {
+    public PrivilegeTypeEnum getType() {
         return type;
         return type;
     }
     }
 
 
-    public void setType(String type) {
+    public void setType(PrivilegeTypeEnum type) {
         this.type = type;
         this.type = type;
     }
     }
 
 

+ 10 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/SysOrgService.java

@@ -1,8 +1,11 @@
 package com.qmth.digit.print.business.service;
 package com.qmth.digit.print.business.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.digit.print.business.bean.dto.OrgDto;
 import com.qmth.digit.print.business.entity.SysOrg;
 import com.qmth.digit.print.business.entity.SysOrg;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 学校组织架构 服务类
  * 学校组织架构 服务类
@@ -13,4 +16,11 @@ import com.qmth.digit.print.business.entity.SysOrg;
  */
  */
 public interface SysOrgService extends IService<SysOrg> {
 public interface SysOrgService extends IService<SysOrg> {
 
 
+    List<OrgDto> listOrgTree(Long schoolId);
+
+    boolean saveOrg(SysOrg org);
+
+    boolean enable(SysOrg org);
+
+    boolean remove(Long id);
 }
 }

+ 10 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/SysPrivilegeService.java

@@ -1,8 +1,11 @@
 package com.qmth.digit.print.business.service;
 package com.qmth.digit.print.business.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.digit.print.business.bean.dto.PrivilegeDto;
 import com.qmth.digit.print.business.entity.SysPrivilege;
 import com.qmth.digit.print.business.entity.SysPrivilege;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 菜单权限表 服务类
  * 菜单权限表 服务类
@@ -13,4 +16,11 @@ import com.qmth.digit.print.business.entity.SysPrivilege;
  */
  */
 public interface SysPrivilegeService extends IService<SysPrivilege> {
 public interface SysPrivilegeService extends IService<SysPrivilege> {
 
 
+    List<PrivilegeDto> listOrgTree(Long schoolId);
+
+    boolean savePrivilege(SysPrivilege privilege);
+
+    boolean remove(Long id);
+
+    List<Long> getRolePrivileges(Long roleId);
 }
 }

+ 96 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/SysOrgServiceImpl.java

@@ -1,11 +1,20 @@
 package com.qmth.digit.print.business.service.impl;
 package com.qmth.digit.print.business.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.digit.print.business.bean.dto.OrgDto;
+import com.qmth.digit.print.business.entity.BasicTemplateOrg;
 import com.qmth.digit.print.business.entity.SysOrg;
 import com.qmth.digit.print.business.entity.SysOrg;
 import com.qmth.digit.print.business.mapper.SysOrgMapper;
 import com.qmth.digit.print.business.mapper.SysOrgMapper;
+import com.qmth.digit.print.business.service.BasicTemplateOrgService;
 import com.qmth.digit.print.business.service.SysOrgService;
 import com.qmth.digit.print.business.service.SysOrgService;
+import com.qmth.digit.print.common.enums.ExceptionResultEnum;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.*;
+
 /**
 /**
  * <p>
  * <p>
  * 学校组织架构 服务实现类
  * 学校组织架构 服务实现类
@@ -17,4 +26,91 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> implements SysOrgService {
 public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> implements SysOrgService {
 
 
+    @Autowired
+    private BasicTemplateOrgService basicTemplateOrgService;
+
+    @Override
+    public List<OrgDto> listOrgTree(Long schoolId) {
+        QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId).orderByAsc(SysOrg::getParentId, SysOrg::getCode);
+        List<SysOrg> orgList = this.list(queryWrapper);
+        Map<Long, OrgDto> map = new LinkedHashMap<>();
+        for (SysOrg sysOrg : orgList) {
+            OrgDto orgDto = new OrgDto();
+            orgDto.setId(sysOrg.getId());
+            orgDto.setSchoolId(sysOrg.getSchoolId());
+            orgDto.setCode(sysOrg.getCode());
+            orgDto.setName(sysOrg.getName());
+            orgDto.setParentId(sysOrg.getParentId());
+            orgDto.setEnable(sysOrg.getEnable());
+            map.put(sysOrg.getId(), orgDto);
+        }
+
+        Iterator<Long> iterator = map.keySet().iterator();
+        Set<Long> deleteKeys = new HashSet<>();
+        while (iterator.hasNext()) {
+            Long parentId = iterator.next();
+            if (map.get(parentId).getParentId() != null) {
+                map.get(map.get(parentId).getParentId()).getChildren().add(map.get(parentId));
+                deleteKeys.add(parentId);
+            }
+        }
+        for (Long key : deleteKeys) {
+            map.remove(key);
+        }
+
+        return new ArrayList<>(map.values());
+    }
+
+    @Override
+    public boolean saveOrg(SysOrg org) {
+        QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysOrg::getSchoolId, org.getSchoolId()).eq(SysOrg::getCode, org.getCode());
+        SysOrg sysOrg = this.getOne(queryWrapper);
+
+        boolean isSuccess;
+
+        // 新增
+        if (org.getId() == null) {
+            if (sysOrg != null) {
+                throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
+            }
+            org.setCreateTime(System.currentTimeMillis());
+            isSuccess = this.save(org);
+        }
+        // 修改
+        else {
+            if (sysOrg != null && org.getId() != sysOrg.getId()) {
+                throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
+            }
+            org.setUpdateTime(System.currentTimeMillis());
+            isSuccess = this.updateById(org);
+        }
+
+        return isSuccess;
+    }
+
+    @Override
+    public boolean enable(SysOrg org) {
+        /*QueryWrapper<BasicTemplateOrg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicTemplateOrg::getOrgId, org.getId());
+        List<BasicTemplateOrg> basicTemplateOrgs = basicTemplateOrgService.list(queryWrapper);
+        if(basicTemplateOrgs != null && basicTemplateOrgs.size() > 0){
+            throw ExceptionResultEnum.ERROR.exception("机构已绑定,不能禁用");
+        }*/
+        UpdateWrapper<SysOrg> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(SysOrg::getEnable, org.getEnable()).eq(SysOrg::getId, org.getId());
+        return this.update(updateWrapper);
+    }
+
+    @Override
+    public boolean remove(Long id) {
+        QueryWrapper<BasicTemplateOrg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicTemplateOrg::getOrgId, id);
+        List<BasicTemplateOrg> basicTemplateOrgs = basicTemplateOrgService.list(queryWrapper);
+        if (basicTemplateOrgs != null && basicTemplateOrgs.size() > 0) {
+            throw ExceptionResultEnum.ERROR.exception("机构已绑定,不能删除");
+        }
+        return this.removeById(id);
+    }
 }
 }

+ 96 - 0
digit-print-business/src/main/java/com/qmth/digit/print/business/service/impl/SysPrivilegeServiceImpl.java

@@ -1,11 +1,20 @@
 package com.qmth.digit.print.business.service.impl;
 package com.qmth.digit.print.business.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.digit.print.business.bean.dto.PrivilegeDto;
 import com.qmth.digit.print.business.entity.SysPrivilege;
 import com.qmth.digit.print.business.entity.SysPrivilege;
+import com.qmth.digit.print.business.entity.SysRolePrivilege;
 import com.qmth.digit.print.business.mapper.SysPrivilegeMapper;
 import com.qmth.digit.print.business.mapper.SysPrivilegeMapper;
 import com.qmth.digit.print.business.service.SysPrivilegeService;
 import com.qmth.digit.print.business.service.SysPrivilegeService;
+import com.qmth.digit.print.business.service.SysRolePrivilegeService;
+import com.qmth.digit.print.common.enums.ExceptionResultEnum;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
 /**
  * <p>
  * <p>
  * 菜单权限表 服务实现类
  * 菜单权限表 服务实现类
@@ -17,4 +26,91 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, SysPrivilege> implements SysPrivilegeService {
 public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, SysPrivilege> implements SysPrivilegeService {
 
 
+    @Autowired
+    private SysRolePrivilegeService sysRolePrivilegeService;
+
+    @Override
+    public List<PrivilegeDto> listOrgTree(Long schoolId) {
+        QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId).orderByAsc(SysPrivilege::getParentId, SysPrivilege::getSortNumber);
+        List<SysPrivilege> orgList = this.list(queryWrapper);
+        Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
+        for (SysPrivilege privilege : orgList) {
+            PrivilegeDto privilegeDto = new PrivilegeDto();
+            privilegeDto.setId(privilege.getId());
+            privilegeDto.setSchoolId(privilege.getSchoolId());
+            privilegeDto.setName(privilege.getName());
+            privilegeDto.setUrl(privilege.getUrl());
+            privilegeDto.setType(privilege.getType());
+            privilegeDto.setParentId(privilege.getParentId());
+            privilegeDto.setSortNumber(privilege.getSortNumber());
+            map.put(privilege.getId(), privilegeDto);
+        }
+
+        Iterator<Long> iterator = map.keySet().iterator();
+        Set<Long> deleteKeys = new HashSet<>();
+        while (iterator.hasNext()) {
+            Long parentId = iterator.next();
+            if (map.get(parentId).getParentId() != null) {
+                map.get(map.get(parentId).getParentId()).getChildren().add(map.get(parentId));
+                deleteKeys.add(parentId);
+            }
+        }
+        for (Long key : deleteKeys) {
+            map.remove(key);
+        }
+
+        return new ArrayList<>(map.values());
+    }
+
+    @Override
+    public boolean savePrivilege(SysPrivilege privilege) {
+        QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysPrivilege::getSchoolId, privilege.getSchoolId()).eq(SysPrivilege::getName, privilege.getName());
+        SysPrivilege sysPrivilege = this.getOne(queryWrapper);
+
+        boolean isSuccess;
+
+        // 新增
+        if (privilege.getId() == null) {
+            if (sysPrivilege != null) {
+                throw ExceptionResultEnum.ERROR.exception("名称已存在");
+            }
+            privilege.setCreateTime(System.currentTimeMillis());
+            isSuccess = this.save(privilege);
+        }
+        // 修改
+        else {
+            if (sysPrivilege != null && privilege.getId() != sysPrivilege.getId()) {
+                throw ExceptionResultEnum.ERROR.exception("名称已存在");
+            }
+            privilege.setUpdateTime(System.currentTimeMillis());
+            isSuccess = this.updateById(privilege);
+        }
+
+        return isSuccess;
+    }
+
+    @Override
+    public boolean remove(Long id) {
+        QueryWrapper<SysRolePrivilege> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysRolePrivilege::getPrivilegeId, id);
+        List<SysRolePrivilege> sysRolePrivileges = sysRolePrivilegeService.list(queryWrapper);
+        if (sysRolePrivileges != null && sysRolePrivileges.size() > 0) {
+            throw ExceptionResultEnum.ERROR.exception("权限已绑定,不能删除");
+        }
+        return this.removeById(id);
+    }
+
+    @Override
+    public List<Long> getRolePrivileges(Long roleId) {
+        QueryWrapper<SysRolePrivilege> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysRolePrivilege::getRoleId, roleId);
+        List<SysRolePrivilege> sysRolePrivileges = sysRolePrivilegeService.list(queryWrapper);
+        List<Long> list = null;
+        if (sysRolePrivileges != null && sysRolePrivileges.size() > 0) {
+            list = sysRolePrivileges.stream().map(m -> m.getPrivilegeId()).collect(Collectors.toList());
+        }
+        return list;
+    }
 }
 }

+ 78 - 2
digit-print/src/main/java/com/qmth/digit/print/api/SysOrgController.java

@@ -1,10 +1,27 @@
 package com.qmth.digit.print.api;
 package com.qmth.digit.print.api;
 
 
 
 
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.digit.print.business.bean.ApiUser;
+import com.qmth.digit.print.business.bean.dto.OrgDto;
+import com.qmth.digit.print.business.entity.SysOrg;
+import com.qmth.digit.print.business.service.SysOrgService;
+import com.qmth.digit.print.business.util.RequestUtils;
+import com.qmth.digit.print.common.util.Result;
+import com.qmth.digit.print.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 学校组织架构 前端控制器
  * 学校组织架构 前端控制器
@@ -13,9 +30,68 @@ import org.springframework.web.bind.annotation.RestController;
  * @author xf
  * @author xf
  * @since 2021-03-23
  * @since 2021-03-23
  */
  */
+@Api(tags = "组织架构Controller")
 @RestController
 @RestController
-@RequestMapping("/sysOrg")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/org")
+@Aac(auth = BOOL.FALSE)
 public class SysOrgController {
 public class SysOrgController {
 
 
+    @Autowired
+    private SysOrgService sysOrgService;
+
+    /**
+     * 查询机构树
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Result list(HttpServletRequest request) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        List<OrgDto> orgDtoList = sysOrgService.listOrgTree(apiUser.getSchoolId());
+        return ResultUtil.ok(orgDtoList);
+    }
+
+    /**
+     * 新增/修改
+     * @param request
+     * @param org
+     * @return
+     */
+    @ApiOperation(value = "新增/修改")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public Result save(HttpServletRequest request, @RequestBody SysOrg org) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        org.setSchoolId(apiUser.getSchoolId());
+        org.setCreateId(org.getId() == null ? apiUser.getUserData().getId() : null);
+        org.setUpdateId(org.getId() != null ? apiUser.getUserData().getId() : null);
+        boolean isSuccess = sysOrgService.saveOrg(org);
+        return ResultUtil.ok(isSuccess);
+    }
+
+    /**
+     * 启用/禁用
+     * @param org
+     * @return
+     */
+    @ApiOperation(value = "启用/禁用")
+    @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    public Result enable(@RequestBody SysOrg org) {
+        boolean isSuccess = sysOrgService.enable(org);
+        return ResultUtil.ok(isSuccess);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除")
+    @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    public Result remove(Long id) {
+        boolean isSuccess = sysOrgService.remove(id);
+        return ResultUtil.ok(isSuccess);
+    }
+
 }
 }
 
 

+ 81 - 2
digit-print/src/main/java/com/qmth/digit/print/api/SysPrivilegeController.java

@@ -1,10 +1,27 @@
 package com.qmth.digit.print.api;
 package com.qmth.digit.print.api;
 
 
 
 
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.digit.print.business.bean.ApiUser;
+import com.qmth.digit.print.business.bean.dto.PrivilegeDto;
+import com.qmth.digit.print.business.entity.SysPrivilege;
+import com.qmth.digit.print.business.service.SysPrivilegeService;
+import com.qmth.digit.print.business.util.RequestUtils;
+import com.qmth.digit.print.common.util.Result;
+import com.qmth.digit.print.common.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 菜单权限表 前端控制器
  * 菜单权限表 前端控制器
@@ -13,9 +30,71 @@ import org.springframework.web.bind.annotation.RestController;
  * @author xf
  * @author xf
  * @since 2021-03-23
  * @since 2021-03-23
  */
  */
+@Api(tags = "菜单权限Controller")
 @RestController
 @RestController
-@RequestMapping("/sysPrivilege")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/privilege")
+@Aac(auth = BOOL.FALSE)
 public class SysPrivilegeController {
 public class SysPrivilegeController {
 
 
+    @Autowired
+    private SysPrivilegeService sysPrivilegeService;
+
+    /**
+     * 查询
+     *
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Result list(HttpServletRequest request) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        List<PrivilegeDto> privilegeDtoList = sysPrivilegeService.listOrgTree(apiUser.getSchoolId());
+        return ResultUtil.ok(privilegeDtoList);
+    }
+
+    /**
+     * 新增/修改
+     *
+     * @param request
+     * @param privilege
+     * @return
+     */
+    @ApiOperation(value = "新增/修改")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public Result save(HttpServletRequest request, @RequestBody SysPrivilege privilege) {
+        ApiUser apiUser = RequestUtils.getApiUser(request);
+        privilege.setSchoolId(apiUser.getSchoolId());
+        privilege.setCreateId(privilege.getId() == null ? apiUser.getUserData().getId() : null);
+        privilege.setUpdateId(privilege.getId() != null ? apiUser.getUserData().getId() : null);
+        boolean isSuccess = sysPrivilegeService.savePrivilege(privilege);
+        return ResultUtil.ok(isSuccess);
+    }
+
+    /**
+     * 删除
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除")
+    @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    public Result remove(Long id) {
+        boolean isSuccess = sysPrivilegeService.remove(id);
+        return ResultUtil.ok(isSuccess);
+    }
+
+    /**
+     * 角色已绑定权限列表
+     *
+     * @param roleId
+     * @return
+     */
+    @ApiOperation(value = "角色已绑定权限列表")
+    @RequestMapping(value = "/get_role_privileges", method = RequestMethod.GET)
+    public Result getRolePrivileges(Long roleId) {
+        List<Long> list = sysPrivilegeService.getRolePrivileges(roleId);
+        return ResultUtil.ok(list);
+    }
 }
 }
 
 

+ 6 - 0
digit-print/src/main/java/com/qmth/digit/print/api/SysRoleController.java

@@ -101,6 +101,12 @@ public class SysRoleController {
         return ResultUtil.ok(isSuccess);
         return ResultUtil.ok(isSuccess);
     }
     }
 
 
+    /**
+     * 用户已绑定角色列表
+     * @param request
+     * @param userId
+     * @return
+     */
     @ApiOperation(value = "用户已绑定角色列表")
     @ApiOperation(value = "用户已绑定角色列表")
     @RequestMapping(value = "/get_user_roles", method = RequestMethod.GET)
     @RequestMapping(value = "/get_user_roles", method = RequestMethod.GET)
     public Result getUserRoles(HttpServletRequest request, Long userId) {
     public Result getUserRoles(HttpServletRequest request, Long userId) {