guoyuji
2024-05-08 41a179ab155ea26ef849595b4ee61decb613f324
用户权限页面与后端功能上传
9个文件已修改
1个文件已添加
188 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/views/system/role/RoleList.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionBasicController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionRoleController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionBasicService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionRoleService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/target/classes/mapper/userInfo/PermissionRoleMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/system/role/RoleList.vue
@@ -99,12 +99,13 @@
  //表头按钮
  toolbarConfig: {
    buttons: [
    ],
    slots:{
      buttons: "toolbar_buttons"
      buttons: "toolbar_buttons",
      tools:'save_buttons'
    },
    buttons: [
    ],
    zoom: true,
    custom: true
  },
@@ -180,6 +181,37 @@
  getPermissionList()
}
const saveBatch = () => {
  const $grid = pGrid.value
  if($grid.getCheckboxRecords().length === 0){
    ElMessage.warning("请先选择权限")
    return
  }
  ElMessageBox.confirm(
      '确认修改角色权限?',
      'Warning',
      {
        confirmButtonText: '确认',
        cancelButtonText: '取消',
        type: 'warning',
      }
  ).then(() => {
    const permission = {
      id: checkId.value,
      detail: $grid.getCheckboxRecords()
    }
    request.post(`/permissionRole/savePermissionRole`,permission).then(res=>{
      if(res.data=== true && res.code==='200'){
        ElMessage.success('保存成功')
        dialogVisible.value = false
        getPermissionList()
      }else{
        ElMessage.error('保存失败')
      }
    })
  })
}
</script>
<template>
@@ -221,6 +253,13 @@
              @change="selectChange"
          />
        </template>
        <template #save_buttons>
          <vxe-button
              @click="saveBatch"
              status='primary'
              style="margin-right: 1rem"
          >新增</vxe-button>
        </template>
      </vxe-grid>
north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionBasicController.java
@@ -15,9 +15,9 @@
        this.permissionBasicService = permissionBasicService;
    }
    @PostMapping("getPermission/{userId}/{lang}")
    public Result getPermission(@PathVariable Integer userId,@PathVariable String lang, @RequestBody List<Integer> selectPageId){
       return  Result.seccess(permissionBasicService.getPermission(userId,lang,selectPageId));
    @PostMapping("getPermission/{roleId}/{lang}")
    public Result getPermission(@PathVariable Integer roleId,@PathVariable String lang, @RequestBody List<Integer> selectPageId){
       return  Result.seccess(permissionBasicService.getPermission(roleId,lang,selectPageId));
    }
    @PostMapping("getPermissionList/{lang}")
north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionRoleController.java
New file
@@ -0,0 +1,27 @@
package com.example.erp.controller.userInfo;
import com.example.erp.common.Result;
import com.example.erp.service.userInfo.PermissionRoleService;
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.RestController;
import java.util.Map;
@RestController
@RequestMapping("/permissionRole")
public class PermissionRoleController {
    private final PermissionRoleService permissionRoleService;
    public PermissionRoleController(PermissionRoleService permissionRoleService) {
        this.permissionRoleService = permissionRoleService;
    }
    @RequestMapping("/savePermissionRole")
    public Result savePermissionRole(@RequestBody Map<String, Object> permissionRole) {
        return Result.seccess(permissionRoleService.savePermissionRole(permissionRole));
    }
}
north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java
@@ -9,7 +9,7 @@
@Mapper
public interface PermissionBasicMapper extends BaseMapper<PermissionBasic> {
     List<PermissionBasic> getPermission(Integer userId, String lang, Integer id);
     List<PermissionBasic> getPermission(Integer roleId, String lang, Integer id);
     List<PermissionBasic> selectOneLevel(String lang);
north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java
@@ -9,4 +9,6 @@
@Mapper
public interface PermissionRoleMapper extends BaseMapper<PermissionRole> {
    List<String> getUserPermission(Integer loginId);
    Boolean saveBatch(List<PermissionRole> permissionRoles);
}
north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionBasicService.java
@@ -17,8 +17,8 @@
        this.permissionBasicMapper = permissionBasicMapper;
    }
    public List<PermissionBasic> getPermission(Integer userId, String lang, List<Integer> selectPageId) {
        return permissionBasicMapper.getPermission(userId,lang, selectPageId.get(1));
    public List<PermissionBasic> getPermission(Integer roleId, String lang, List<Integer> selectPageId) {
        return permissionBasicMapper.getPermission(roleId,lang, selectPageId.get(1));
    }
    public Object getPermissionList(String lang) {
north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionRoleService.java
@@ -1,11 +1,18 @@
package com.example.erp.service.userInfo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.entity.userInfo.PermissionBasic;
import com.example.erp.entity.userInfo.PermissionRole;
import com.example.erp.mapper.userInfo.PermissionRoleMapper;
import com.example.erp.mapper.userInfo.UserMapper;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@DS("user_info")
@Service
@@ -26,4 +33,30 @@
    public List<String> getUserRole(Integer id) {
        return userMapper.getUserRole(id);
    }
    public Boolean savePermissionRole(Map<String, Object> permissionRoleMap) {
        JSONObject permissionRoleJson = new JSONObject(permissionRoleMap);
        List<PermissionBasic> permissionBasics =
                JSONArray.parseArray(
                        JSONObject.toJSONString(permissionRoleJson.get("detail")),
                        PermissionBasic.class);
        Integer roleId = (Integer) permissionRoleMap.get("id");
        if(permissionBasics.isEmpty() || roleId == null ){
            return false;
        }
        List<PermissionRole> permissionRoles = new ArrayList<>();
        for (PermissionBasic permissionBasic : permissionBasics) {
            PermissionRole permissionRole = new PermissionRole();
            permissionRole.setRoleId(roleId);
            permissionRole.setPermissionId(permissionBasic.getId());
            permissionRoles.add(permissionRole);
        }
        permissionRoleMapper.delete(new QueryWrapper<PermissionRole>().eq("role_id", roleId));
        return permissionRoleMapper.saveBatch(permissionRoles);
    }
}
north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml
@@ -4,26 +4,30 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.erp.mapper.userInfo.PermissionBasicMapper">
    <select id="getPermission">
        select a.*,
               CASE
                   WHEN b.id IS NULL THEN 0
                   ELSE 1
                END as 'checked'
        select a.id,
        <if test="lang=='en'">
               a.menu,
        </if>
        <if test="lang=='zh'">
               c.itemName as menu,
        </if>
               a.page,
               a.permission,
               a.state,
        IF(b.id IS NULL, 0, 1) as 'checked'
        from permission_basic as a
        left join permission_role as b
        on a.id = b.permission_id
        left join user_role as c
        on b.role_id = c.role_id
        left join user as d
        on c.user_id = d.id
        and d.id = #{userId}
        where
            a.id!=1
            and a.state=1
        on b.permission_id = a.id
        and b.role_id = #{roleId}
        <if test="lang=='zh'">
            left join sys_menu_item as c
            on c.menu = a.menu
        </if>
        where a.id!=1 and a.state=1
        <if test="id != null and id != ''">
            and a.page = (select page from permission_basic where id = #{id})
        </if>
        group by a.id
    </select>
    
@@ -35,7 +39,6 @@
                <if test="lang=='en'">
                    a.menu
                </if>
        from permission_basic as a
        left join sys_menu_item as b
        on a.menu = b.menu
north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml
@@ -21,5 +21,21 @@
        where a.id = #{loginId}
            and d.state = 1
    </select>
    <insert id="saveBatch">
        insert into
            permission_role(
                            role_id,
                            permission_id
                            )
        values
        <foreach collection ="permissionRoles" item="permissionRole" separator =",">
            (
                #{permissionRole.roleId},
                #{permissionRole.permissionId}
            )
        </foreach>
    </insert>
</mapper>
north-glass-erp/target/classes/mapper/userInfo/PermissionRoleMapper.xml
@@ -21,5 +21,21 @@
        where a.id = #{loginId}
            and d.state = 1
    </select>
    <insert id="saveBatch">
        insert into
            permission_role(
                            role_id,
                            permission_id
                            )
        values
        <foreach collection ="permissionRoles" item="permissionRole" separator =",">
            (
                #{permissionRole.roleId},
                #{permissionRole.permissionId}
            )
        </foreach>
    </insert>
</mapper>