From 05dbb19d1826ae4b888340d53b56746c1efa66cc Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期六, 11 五月 2024 14:55:57 +0800 Subject: [PATCH] 登录时获取用户权限 --- north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue | 11 ++++- north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java | 1 north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml | 28 ++++++++++++++ north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java | 2 + north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml | 2 + north-glass-erp/northglass-erp/src/stores/userInfo.js | 3 + north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue | 1 north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java | 9 ++++ north-glass-erp/northglass-erp/src/components/sd/product/GlassType.vue | 1 north-glass-erp/src/main/java/com/example/erp/controller/dto/UserDTO.java | 4 ++ 10 files changed, 58 insertions(+), 4 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/components/sd/product/GlassType.vue b/north-glass-erp/northglass-erp/src/components/sd/product/GlassType.vue index 7545d94..0424c7f 100644 --- a/north-glass-erp/northglass-erp/src/components/sd/product/GlassType.vue +++ b/north-glass-erp/northglass-erp/src/components/sd/product/GlassType.vue @@ -16,6 +16,7 @@ ElMessage.warning(res.msg) } }) + </script> <template> diff --git a/north-glass-erp/northglass-erp/src/stores/userInfo.js b/north-glass-erp/northglass-erp/src/stores/userInfo.js index 64b1cca..5bf8d1e 100644 --- a/north-glass-erp/northglass-erp/src/stores/userInfo.js +++ b/north-glass-erp/northglass-erp/src/stores/userInfo.js @@ -6,7 +6,8 @@ state: () =>({ user:ref({ userName:null, - userId:null + userId:null, + permissions:[] }), responseCode:null, msg:null diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue index ed91a96..a22ba05 100644 --- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue @@ -7,9 +7,10 @@ import deepClone from "@/utils/deepClone" import {ElMessage} from "element-plus" import {VXETable} from "vxe-table" + import useUserInfoStore from '@/stores/userInfo' import {useI18n} from "vue-i18n" - import {toolbarButtonClickEvent} from "@/hook/mouseMove"; const { t } = useI18n() + const userStore = useUserInfoStore() const router = useRouter() let rowClickIndex = ref(null) const dialogTableVisible = ref(false) @@ -355,7 +356,13 @@ <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�--> <template #button_slot="{ row }"> - <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{ $t('basicData.edit') }}</el-button> + <el-button @click="getTableRow(row,'edit')" + v-if="userStore.user.permissions.indexOf('selectOrder.edit') > -1" + link + type="primary" + size="small"> + {{ $t('basicData.edit') }} + </el-button> <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')"> <template #reference> <el-button link type="primary" size="small">{{ $t('basicData.delete') }}</el-button> diff --git a/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue b/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue index 0827a21..175317c 100644 --- a/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue +++ b/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue @@ -95,6 +95,7 @@ item.separation = JSON.parse(item.separation) }) productTotal.value = res.data.title + productGlassTypeStore.GlassType =[res.data.title.typeId.substring(0,2),res.data.title.typeId] //BasicData.value = res.data }else{ ElMessage.warning(res.msg) diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/dto/UserDTO.java b/north-glass-erp/src/main/java/com/example/erp/controller/dto/UserDTO.java index 937fc6e..e20656a 100644 --- a/north-glass-erp/src/main/java/com/example/erp/controller/dto/UserDTO.java +++ b/north-glass-erp/src/main/java/com/example/erp/controller/dto/UserDTO.java @@ -1,6 +1,9 @@ package com.example.erp.controller.dto; import lombok.Data; + +import java.util.List; + @Data //鐢ㄤ簬鎺ュ彈鍓嶇鐧诲綍棰漸ser淇℃伅 public class UserDTO { private Integer id; @@ -8,4 +11,5 @@ private String pass; private String token; private String userName; + private List<String> permissions; } diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java index 9a63096..2e8c08a 100644 --- a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java +++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java @@ -14,4 +14,5 @@ List<PermissionBasic> selectOneLevel(String lang); List<Map<String,Object>> selectTowLevel(Integer id); + } diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java index 73b3ece..d651b7d 100644 --- a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java +++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionRoleMapper.java @@ -11,4 +11,6 @@ List<String> getUserPermission(Integer loginId); Boolean saveBatch(List<PermissionRole> permissionRoles); + + List<String> getUserEditPermission(Integer loginId); } diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java index 5b4ede4..17e1f71 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java @@ -5,8 +5,11 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.erp.controller.dto.UserDTO; +import com.example.erp.entity.userInfo.PermissionBasic; import com.example.erp.entity.userInfo.Role; import com.example.erp.entity.userInfo.User; +import com.example.erp.mapper.userInfo.PermissionBasicMapper; +import com.example.erp.mapper.userInfo.PermissionRoleMapper; import com.example.erp.mapper.userInfo.RoleMapper; import com.example.erp.mapper.userInfo.UserMapper; import com.example.erp.tools.TokenTools; @@ -28,9 +31,12 @@ private final UserMapper userMapper; private final RoleMapper roleMapper; - public UserService(UserMapper userMapper, RoleMapper roleMapper) { + private final PermissionRoleMapper permissionRoleMapper; + + public UserService(UserMapper userMapper, RoleMapper roleMapper, PermissionRoleMapper permissionRoleMapper) { this.userMapper = userMapper; this.roleMapper = roleMapper; + this.permissionRoleMapper = permissionRoleMapper; } @@ -88,6 +94,7 @@ userDTO.setId(user.getId()); userDTO.setUserName(user.getUserName()); userDTO.setToken(StpUtil.getTokenValue()); + userDTO.setPermissions(permissionRoleMapper.getUserEditPermission(user.getId())); return userDTO; }else{ return null; diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml b/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml index c515579..aeeeb60 100644 --- a/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml +++ b/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml @@ -59,4 +59,6 @@ </select> + + </mapper> \ No newline at end of file diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml b/north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml index d8085f7..9625f33 100644 --- a/north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml +++ b/north-glass-erp/src/main/resources/mapper/userInfo/PermissionRoleMapper.xml @@ -21,6 +21,34 @@ where a.id = #{loginId} and d.state = 1 </select> + + <select id="getUserEditPermission"> + select + concat( + if(d.page=null || d.page='','',concat(d.page, '.')), + d.permission + ) as 'permission' + <if test="loginId!=1"> + from user as a + left join user_role as e + on e.user_id = a.id + left join role as b + on e.role_id = b.id + left join permission_role as c + on b.id = c.role_id + left join permission_basic d + on d.id = c.permission_id + and d.permission='edit' + where a.id = #{loginId} + + </if> + <if test="loginId==1"> + from permission_basic d + where d.permission='edit' + </if> + and d.state = 1 + group by d.id + </select> <insert id="saveBatch"> insert into -- Gitblit v1.8.0