Эх сурвалжийг харах

用户权限、菜单增删改查
下拉列表
修改cy部门删除bug

marxjaw 3 сар өмнө
parent
commit
9510b13c9e
15 өөрчлөгдсөн 524 нэмэгдсэн , 35 устгасан
  1. 17 0
      yt-common/src/main/java/com/ytpm/middle/enums/PermissionTypeEnum.java
  2. 47 0
      yt-common/src/main/java/com/ytpm/middle/param/MiddlePermissionParam.java
  3. 5 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddlePermissionVO.java
  4. 2 1
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/CustomUserAuthenticationConverter.java
  5. 2 2
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DeptController.java
  6. 10 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DropdownController.java
  7. 54 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/PermissionController.java
  8. 1 1
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleDeptMapper.java
  9. 56 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/PermissionMapper.java
  10. 1 3
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/DeptService.java
  11. 33 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/PermissionService.java
  12. 9 17
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/DeptServiceImpl.java
  13. 130 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/PermissionServiceImpl.java
  14. 2 11
      yt-middle/middle-platform/src/main/resources/mapper/MiddlerDeptMapper.xml
  15. 155 0
      yt-middle/middle-platform/src/main/resources/mapper/PermissionMapper.xml

+ 17 - 0
yt-common/src/main/java/com/ytpm/middle/enums/PermissionTypeEnum.java

@@ -0,0 +1,17 @@
+package com.ytpm.middle.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum PermissionTypeEnum {
+    MENU("menu","菜单"),
+    BUTTON("permission","按钮");
+
+    private String code;
+    private String desc;
+
+    PermissionTypeEnum(String type, String permission) {
+        this.code = type;
+        this.desc = permission;
+    }
+}

+ 47 - 0
yt-common/src/main/java/com/ytpm/middle/param/MiddlePermissionParam.java

@@ -0,0 +1,47 @@
+package com.ytpm.middle.param;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("权限表单")
+public class MiddlePermissionParam extends BaseParam {
+    /** 权限ID */
+    @ApiModelProperty(value = "权限ID")
+    private int permissionId;
+    /** 权限名称 */
+    @ApiModelProperty(value = "权限名称",required = true)
+    private String permissionName;
+    /** 父级权限ID */
+    @ApiModelProperty(value = "父级权限ID")
+    private Integer parentId;
+    /** 权限类型  menu-菜单 permission-按钮 */
+    @ApiModelProperty(value = "权限类型  menu-菜单 permission-按钮",required = true)
+    private String type;
+    /** 权限编码 */
+    @ApiModelProperty(value = "权限编码")
+    private String permissionCode;
+    /** 打开方式 */
+    @ApiModelProperty(value = "打开方式")
+    private String target;
+    /** 图标 */
+    @ApiModelProperty(value = "图标")
+    private String icon;
+    /** 链接 */
+    @ApiModelProperty(value = "链接")
+    private String href;
+    /** 路由 */
+    @ApiModelProperty(value = "路由",required = true)
+    private String route;
+    /** 排序 */
+    @ApiModelProperty(value = "排序")
+    private int sort;
+}

+ 5 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddlePermissionVO.java

@@ -8,6 +8,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+
 @EqualsAndHashCode(callSuper = true)
 @Data
 @NoArgsConstructor
@@ -44,4 +46,7 @@ public class MiddlePermissionVO extends BaseParam {
     /** 排序 */
     @ApiModelProperty("排序")
     private int sort;
+    /** 子权限列表 */
+    @ApiModelProperty("子权限列表")
+    private List<MiddlePermissionVO> children;
 }

+ 2 - 1
yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/CustomUserAuthenticationConverter.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ytpm.constant.StrConstant;
+import com.ytpm.handle.CustomerException;
 import com.ytpm.middle.dao.MiddleUserMapper;
 import com.ytpm.middle.util.RedisUtil;
 import com.ytpm.middle.view.MiddleUserInfo;
@@ -60,7 +61,7 @@ public class CustomUserAuthenticationConverter implements UserAuthenticationConv
             MiddleUserInfo user = userMapper.getByLoginName(userName);
             if(Objects.isNull(user)){
                 log.error("当前用户不存在,应该退出登录");
-                return null;
+                throw new CustomerException("用户登录失效,请重新登录!");
             }
             String key = StrConstant.USER_INFO_PRE + userName ;
             if (redisService.hasKey(key)) {

+ 2 - 2
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DeptController.java

@@ -50,8 +50,8 @@ public class DeptController {
 
     @ApiOperation("删除部门")
     @GetMapping("/deleteOne")
-    public Result<String> deleteOne(@RequestBody MiddleDeptParam param) {
-        return deptService.deleteOne(param);
+    public Result<String> deleteOne(@RequestParam(name = "deptId")Integer deptId,@ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        return deptService.deleteOne(deptId,userInfo.getUserId());
     }
 
 }

+ 10 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DropdownController.java

@@ -3,6 +3,7 @@ package com.ytpm.middle.controller;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.service.DeptService;
+import com.ytpm.middle.service.PermissionService;
 import com.ytpm.middle.view.DropDownVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @Api(tags = "前端获取选项模块")
 @RestController
@@ -19,10 +21,18 @@ public class DropdownController {
 
     @Resource
     private DeptService deptService;
+    @Resource
+    private PermissionService permissionService;
 
     @ApiOperation("查询部门树形菜单")
     @GetMapping("/deptTree")
     public Result<DropDownVO> deptTree() {
         return deptService.getDeptTree();
     }
+
+    @ApiOperation("查询权限下拉列表")
+    @GetMapping("/permissionList")
+    public ResultTable<DropDownVO> permissionDropList() {
+        return permissionService.permissionDropList();
+    }
 }

+ 54 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/PermissionController.java

@@ -0,0 +1,54 @@
+package com.ytpm.middle.controller;
+
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.param.MiddlePermissionParam;
+import com.ytpm.middle.service.PermissionService;
+import com.ytpm.middle.view.MiddlePermissionVO;
+import com.ytpm.middle.view.MiddleUserInfo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.GetMapping;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/permission")
+public class PermissionController {
+
+    @Resource
+    private PermissionService permissionService;
+
+    @ApiOperation("查询权限菜单列表")
+    @PostMapping("/queryTree")
+    public ResultTable<MiddlePermissionVO> queryTree(@RequestBody MiddlePermissionParam param){
+        return permissionService.queryTree(param);
+    }
+
+    @ApiOperation("新增权限")
+    @PostMapping("/addOne")
+    public Result<String> addOne(@RequestBody MiddlePermissionParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
+        param.setDefaultParam(userInfo.getUserId());
+        return permissionService.addOne(param);
+    }
+
+    @ApiOperation("修改权限")
+    @PostMapping("/updateOne")
+    public Result<String> updateOne(@RequestBody MiddlePermissionParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
+        param.setUpdateParam(userInfo.getUserId());
+        return permissionService.updateOne(param);
+    }
+
+    @ApiOperation("删除权限")
+    @GetMapping("/delOne")
+    public Result<String> delOne(@RequestParam(name = "permissionId")int permissionId, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
+        return permissionService.delOne(permissionId,userInfo.getUserId());
+    }
+
+}

+ 1 - 1
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleDeptMapper.java

@@ -48,5 +48,5 @@ public interface MiddleDeptMapper {
     /**
      * 批量修改部门信息
      */
-    void updateBatch(List<YtMiddleDept> subDepartments);
+    void updateChildren(@Param("deptId") Integer deptId,@Param("operatorId")String operatorId);
 }

+ 56 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/PermissionMapper.java

@@ -0,0 +1,56 @@
+package com.ytpm.middle.dao;
+
+import com.ytpm.middle.model.YtMiddlePermission;
+import com.ytpm.middle.param.MiddlePermissionParam;
+import com.ytpm.middle.view.DropDownVO;
+import com.ytpm.middle.view.MiddlePermissionVO;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PermissionMapper {
+    /**
+     * 查询一级菜单
+     */
+    List<MiddlePermissionVO> getFirstMenu(MiddlePermissionParam param);
+
+    /**
+     * 查询所有菜单
+     */
+    List<MiddlePermissionVO> queryAll(MiddlePermissionParam param);
+
+    /**
+     * 根据路由获取菜单
+     */
+    YtMiddlePermission getByRoute(@Param("route") String route);
+
+    /**
+     * 根据权限编码获取权限
+     */
+    YtMiddlePermission getByCode(@Param("permissionCode") String permissionCode);
+
+    /**
+     * 新增权限
+     */
+    void insertOne(YtMiddlePermission middlePermission);
+    /**
+     * 修改权限
+     */
+    void updateById(YtMiddlePermission middlePermission);
+
+    /**
+     * 删除权限
+     */
+    YtMiddlePermission selectPrimary(@Param("permissionId") int permissionId);
+
+    /**
+     * 删除子权限
+     */
+    void delByParentId(@Param("permissionId")int permissionId,@Param("userId")String userId);
+    /**
+     * 查询权限下拉列表
+     */
+    List<DropDownVO> permissionDropList();
+}

+ 1 - 3
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/DeptService.java

@@ -30,8 +30,6 @@ public interface DeptService {
 
     /**
      * 删除部门信息
-     * @param param
-     * @return
      */
-    Result<String> deleteOne(MiddleDeptParam param);
+    Result<String> deleteOne(Integer deptId, String operatorId);
 }

+ 33 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/PermissionService.java

@@ -0,0 +1,33 @@
+package com.ytpm.middle.service;
+
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.param.MiddlePermissionParam;
+import com.ytpm.middle.view.DropDownVO;
+import com.ytpm.middle.view.MiddlePermissionVO;
+
+public interface PermissionService {
+    /**
+     * 查询权限列表
+     */
+    ResultTable<MiddlePermissionVO> queryTree(MiddlePermissionParam param);
+
+    /**
+     * 新增权限
+     */
+    Result<String> addOne(MiddlePermissionParam param);
+    /**
+     * 修改权限
+     */
+    Result<String> updateOne(MiddlePermissionParam param);
+
+    /**
+     * 删除权限
+     */
+    Result<String> delOne(int permissionId, String userId);
+
+    /**
+     * 查询权限下拉列表
+     */
+    ResultTable<DropDownVO> permissionDropList();
+}

+ 9 - 17
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/DeptServiceImpl.java

@@ -86,27 +86,19 @@ public class DeptServiceImpl implements DeptService {
     /**
      * 删除部门信息
      *
-     * @param param
-     * @return
      */
     @Override
-    public Result<String> deleteOne(MiddleDeptParam param) {
-        YtMiddleDept ytMiddleDept = deptMapper.selectPrimary(param.getDeptId());
-        if (Objects.isNull(ytMiddleDept)) {
+    public Result<String> deleteOne(Integer deptId,String operatorId) {
+        YtMiddleDept old = deptMapper.selectPrimary(deptId);
+        if (Objects.isNull(old)) {
             return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
         }
-        List<YtMiddleDept> subDepartments = deptMapper.selectByParentId(ytMiddleDept.getParentId());
-        if (CollectionUtils.isNotEmpty(subDepartments)) {
-            for (YtMiddleDept subDept : subDepartments) {
-                subDept.setParentId(null);
-                subDept.setAvailable(0);
-            }
-        }
-        deptMapper.updateBatch(subDepartments);
-        ytMiddleDept.setAvailable(0);
-        ytMiddleDept.setUpdateTime(new Date());
-        ytMiddleDept.setUpdateUserId(param.getUpdateUserId());
-        deptMapper.updateById(ytMiddleDept);
+        deptMapper.updateChildren(deptId,operatorId);
+        YtMiddleDept dept = new YtMiddleDept();
+        dept.setDeptId(deptId);
+        dept.setAvailable(0);
+        dept.setUpdateParam(operatorId);
+        deptMapper.updateById(dept);
         return Result.resultOk(RepMessage.MODIFY_SUCCESS);
     }
 

+ 130 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/PermissionServiceImpl.java

@@ -0,0 +1,130 @@
+package com.ytpm.middle.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.github.pagehelper.PageInfo;
+import com.ytpm.general.RepMessage;
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.dao.PermissionMapper;
+import com.ytpm.middle.enums.PermissionTypeEnum;
+import com.ytpm.middle.model.YtMiddlePermission;
+import com.ytpm.middle.param.MiddlePermissionParam;
+import com.ytpm.middle.service.PermissionService;
+import com.ytpm.middle.view.DropDownVO;
+import com.ytpm.middle.view.MiddlePermissionVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Service
+public class PermissionServiceImpl implements PermissionService {
+
+    @Resource
+    private PermissionMapper permissionMapper;
+
+    /**
+     * 查询权限列表
+     */
+    @Override
+    public ResultTable<MiddlePermissionVO> queryTree(MiddlePermissionParam param) {
+        List<MiddlePermissionVO> allList = permissionMapper.queryAll(param);
+        if(CollUtil.isEmpty(allList)){
+            return ResultTable.resultTableOk(new PageInfo<>(Collections.emptyList()));
+        }
+        //过滤一级列表
+        List<MiddlePermissionVO> firstList = allList.stream().filter(
+                s-> Objects.isNull(s.getParentId())).collect(Collectors.toList());
+        //递归处理菜单设置子列表
+        for (MiddlePermissionVO vo : firstList) {
+            recursionChildPermission(vo,allList);
+        }
+        return ResultTable.resultTableOk(new PageInfo<>(firstList));
+    }
+
+    /**
+     * 新增权限
+     */
+    @Override
+    public Result<String> addOne(MiddlePermissionParam param) {
+        YtMiddlePermission permission;
+        if(PermissionTypeEnum.MENU.getCode().equals(param.getType())){
+            permission = permissionMapper.getByRoute(param.getRoute());
+        }else{
+            permission = permissionMapper.getByCode(param.getPermissionCode());
+        }
+        if(Objects.nonNull(permission)){
+            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        }
+        YtMiddlePermission middlePermission = new YtMiddlePermission();
+        BeanUtils.copyProperties(param,middlePermission);
+        permissionMapper.insertOne(middlePermission);
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
+    }
+
+    /**
+     * 修改权限
+     */
+    @Override
+    public Result<String> updateOne(MiddlePermissionParam param) {
+        YtMiddlePermission permission;
+        if(PermissionTypeEnum.MENU.getCode().equals(param.getType())){
+            permission = permissionMapper.getByRoute(param.getRoute());
+        }else{
+            permission = permissionMapper.getByCode(param.getPermissionCode());
+        }
+        if(Objects.isNull(permission)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
+        YtMiddlePermission middlePermission = new YtMiddlePermission();
+        BeanUtils.copyProperties(param,middlePermission);
+        permissionMapper.updateById(middlePermission);
+        return Result.resultOk(RepMessage.MODIFY_SUCCESS);
+    }
+
+    /**
+     * 删除权限ID
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<String> delOne(int permissionId, String userId) {
+        YtMiddlePermission permission = permissionMapper.selectPrimary(permissionId);
+        if(Objects.isNull(permission)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
+        YtMiddlePermission middlePermission = new YtMiddlePermission();
+        middlePermission.setPermissionId(permissionId);
+        middlePermission.setAvailable(0);
+        middlePermission.setUpdateParam(userId);
+        permissionMapper.updateById(middlePermission);
+        permissionMapper.delByParentId(permissionId,userId);
+        return Result.resultOk(RepMessage.DELETE_SUCCESS);
+    }
+
+    /**
+     * 查询权限下拉列表
+     */
+    @Override
+    public ResultTable<DropDownVO> permissionDropList() {
+        return ResultTable.resultTableOk(new PageInfo<>(permissionMapper.permissionDropList()));
+    }
+
+    /**
+     * 递归处理菜单设置子列表
+     */
+    private void recursionChildPermission(MiddlePermissionVO vo, List<MiddlePermissionVO> allList) {
+        List<MiddlePermissionVO> children = allList.stream()
+                .filter(s -> Objects.equals(vo.getPermissionId(), s.getParentId()))
+                .collect(Collectors.toList());
+        if(CollUtil.isEmpty(children))return;
+        vo.setChildren(children);
+        for (MiddlePermissionVO child : children) {
+            recursionChildPermission(child,allList);
+        }
+    }
+}

+ 2 - 11
yt-middle/middle-platform/src/main/resources/mapper/MiddlerDeptMapper.xml

@@ -51,17 +51,8 @@
         where dept_id = #{deptId}
     </update>
 
-    <update id="updateBatch">
-        <foreach collection="subDepartments" item="dept" index="index" open="" separator=";" close="">
-            UPDATE yt_middle_dept
-            <set>
-                <if test="dept.deptName != null">dept_name = #{dept.deptName},</if>
-                <if test="dept.available != null">available = #{dept.available},</if>
-                <if test="dept.updateTime != null">update_time = #{dept.updateTime},</if>
-                <if test="dept.updateUserId != null">update_user_id = #{dept.updateUserId},</if>
-            </set>
-            WHERE dept_id = #{dept.deptId}
-        </foreach>
+    <update id="updateChildren">
+        update yt_middle_dept set available = 0, update_time = now(), update_user_id = #{operatorId} where parent_id = #{deptId}
     </update>
 
     <select id="queryList" resultType="com.ytpm.middle.view.MiddleDeptVO">

+ 155 - 0
yt-middle/middle-platform/src/main/resources/mapper/PermissionMapper.xml

@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ytpm.middle.dao.PermissionMapper">
+    <insert id="insertOne">
+        insert into yt_middle_permission
+        (
+         permission_name,
+         permission_code,
+         type,
+         parent_id,
+         target,
+         icon,
+         href,
+         route,
+         sort,
+         create_time,
+         create_user_id,
+         available
+        )
+        values
+        (
+         #{permissionName},
+         #{permissionCode},
+         #{type},
+         #{parentId},
+         #{target},
+         #{icon},
+         #{href},
+         #{route},
+         #{sort},
+         #{createTime},
+         #{createUserId},
+         #{available}
+        )
+    </insert>
+    <update id="updateById">
+        update yt_middle_permission
+        <set>
+            <if test="permissionName != null">
+                permission_name = #{permissionName},
+            </if>
+            <if test="permissionCode != null">
+                permission_code = #{permissionCode},
+            </if>
+            <if test="type != null">
+                type = #{type},
+            </if>
+            <if test="parentId != null">
+                parent_id = #{parentId},
+            </if>
+            <if test="target != null">
+                target = #{target},
+            </if>
+            <if test="icon != null">
+                icon = #{icon},
+            </if>
+            <if test="href != null">
+                href = #{href},
+            </if>
+            <if test=" != null">
+                route = #{route},
+            </if>
+            <if test="sort != null">
+                sort = #{sort},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="updateUserId != null">
+                update_user_id = #{updateUserId},
+            </if>
+            <if test="available != null">
+                available = #{available}
+            </if>
+        </set>
+        where permission_id = #{permissionId}
+    </update>
+    <delete id="delByParentId">
+        update yt_middle_permission set available = 0, update_time = now(),update_user_id = #{userId} where parent_id = #{userId}
+    </delete>
+
+    <select id="getFirstMenu" resultType="com.ytpm.middle.view.MiddlePermissionVO">
+        select
+            permission_id,
+            permission_name,
+            permission_code,
+            type,
+            parent_id,
+            target,
+            icon,
+            href,
+            route,
+            sort,
+            create_time,
+            create_user_id,
+            update_time,
+            update_user_id,
+            available
+        from yt_middle_permission
+        where parent_id is null
+    </select>
+    <select id="queryAll" resultType="com.ytpm.middle.view.MiddlePermissionVO">
+        select
+            permission_id,
+            permission_name,
+            permission_code,
+            type,
+            parent_id,
+            target,
+            icon,
+            href,
+            route,
+            sort,
+            create_time,
+            create_user_id,
+            update_time,
+            update_user_id,
+            available
+        from yt_middle_permission
+        <where>
+            <if test="permissionName != null and permissionName!= ''">
+                and permission_name like concat('%',#{permissionName},'%')
+            </if>
+            <if test="route != null and route!= ''">
+                and route like concat('%',#{route},'%')
+            </if>
+            <if test="available != null">
+                and available  = #{available}
+            </if>
+        </where>
+    </select>
+    <select id="getByRoute" resultType="com.ytpm.middle.model.YtMiddlePermission">
+        select
+            permission_id, permission_name, permission_code, type, parent_id, target, icon, href, route, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_permission
+        where route = #{route}
+    </select>
+    <select id="getByCode" resultType="com.ytpm.middle.model.YtMiddlePermission">
+        select
+            permission_id, permission_name, permission_code, type, parent_id, target, icon, href, route, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_permission
+        where permission_code = #{permissionCode}
+    </select>
+    <select id="selectPrimary" resultType="com.ytpm.middle.model.YtMiddlePermission">
+        select
+            permission_id, permission_name, permission_code, type, parent_id, target, icon, href, route, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_permission
+        where permission_id = #{permissionId}
+    </select>
+    <select id="permissionDropList" resultType="com.ytpm.middle.view.DropDownVO">
+        select
+            permission_id optionVal, permission_name optionName
+        from yt_middle_permission
+    </select>
+</mapper>