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