From 44ee58a99afe19ba5ae962200f2bebab8da4618b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 07 五月 2024 15:33:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/router/index.js                                               |   38 ++
 north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue                                |    8 
 north-glass-erp/src/main/java/com/example/erp/service/userInfo/RoleService.java                  |   27 +
 north-glass-erp/northglass-erp/src/views/system/role/Role.vue                                    |   61 +++
 north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionBasic.java               |    1 
 north-glass-erp/src/main/java/com/example/erp/entity/userInfo/UserRole.java                      |   17 
 north-glass-erp/src/main/java/com/example/erp/entity/userInfo/Role.java                          |    2 
 north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue                           |   11 
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/RoleController.java            |   23 +
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionBasicController.java |   29 +
 north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java                 |    1 
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserRoleController.java        |   27 +
 north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserService.java                  |   37 ++
 north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserRoleMapper.java                |    9 
 north-glass-erp/northglass-erp/src/views/system/user/UserList.vue                                |  196 ++++++++++
 north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionBasicService.java       |   41 ++
 north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java         |   17 
 north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserMapper.java                    |    2 
 north-glass-erp/northglass-erp/src/views/system/role/RoleList.vue                                |  224 ++++++++++++
 north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionRole.java                |    1 
 north-glass-erp/target/classes/mapper/userInfo/User.xml                                          |   32 +
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserInfoController.java        |   19 
 north-glass-erp/src/main/resources/mapper/userInfo/User.xml                                      |   32 +
 north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserRoleService.java              |   41 ++
 north-glass-erp/northglass-erp/src/views/system/user/User.vue                                    |   61 +++
 north-glass-erp/src/main/java/com/example/erp/entity/userInfo/User.java                          |    5 
 north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/RoleMapper.java                    |   12 
 north-glass-erp/src/main/java/com/example/erp/config/StpInterfaceImpl.java                       |   13 
 north-glass-erp/src/main/resources/mapper/userInfo/RoleMapper.xml                                |    8 
 north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml                     |   42 ++
 north-glass-erp/src/main/java/com/example/erp/exception/GlobalExceptionHandle.java               |    1 
 31 files changed, 1,000 insertions(+), 38 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/router/index.js b/north-glass-erp/northglass-erp/src/router/index.js
index c3ffb7f..1a0f6b0 100644
--- a/north-glass-erp/northglass-erp/src/router/index.js
+++ b/north-glass-erp/northglass-erp/src/router/index.js
@@ -21,6 +21,42 @@
       name: 'main',
       component: () => import('../layout/MainErpView.vue'),
       children:[
+          //user妯″潡
+        {
+          path:'user',
+          name: 'user',
+          component: () => import('../views/system/user/User.vue'),
+          children:[
+            {
+              path: 'userList',
+              name: 'userList',
+              component: () => import('../views/system/user/UserList.vue')
+            },
+            {
+              name:'user',
+              path: '',
+              redirect:'/main/user/userList'
+            }
+          ]
+        },
+        {
+          path:'role',
+          name: 'role',
+          component: () => import('../views/system/role/Role.vue'),
+          children:[
+            {
+              path: 'roleList',
+              name: 'roleList',
+              component: () => import('../views/system/role/RoleList.vue')
+            },
+            {
+              name:'role',
+              path: '',
+              redirect:'/main/role/roleList'
+            }
+          ]
+        },
+
           //sd妯″潡
         {
           path:'orderBasicData',
@@ -108,7 +144,7 @@
             },
             {
               path: '',
-              redirect:'/main/order/SelectOrder'
+              redirect:'/main/order/selectOrder'
             }
           ]
         },
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 464631f..ed91a96 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
@@ -314,7 +314,13 @@
         value-format="YYYY-MM-DD"
 
     />
-    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">{{ $t('basicData.search') }}</el-button>
+    <el-button @click="changeDate"
+               style="margin-top: -5px"
+               id="searchButton"
+               type="primary"
+               :icon="Search">
+      {{ $t('basicData.search') }}
+    </el-button>
     <vxe-grid
         @filter-change="filterChanged"
         max-height="100%"
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
index 9b73710..601b4e5 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -342,14 +342,7 @@
 }
 
 const tagCheck =  (state) => {
-  if(typeof trademarkAttr.value.location === 'string'){
-    return false
-  }
-  const filterArr = trademarkAttr.value.location.filter((item) =>{
-    return item === state
-  })
-  return filterArr.length > 0
-
+  return trademarkAttr.value.location === state
 }
 const resetTrademark = () => {
   for(const key in trademarkAttr.value){
@@ -556,7 +549,7 @@
         <el-row>
           <el-col :span="4">鍟嗘爣浣嶇疆:</el-col>
           <el-col :span="25">
-            <el-checkbox v-model="trademarkAttr.location" v-for="item in trademarkLocation" :label="item"  />
+            <el-radio v-model="trademarkAttr.location" v-for="item in trademarkLocation" :label="item"  />
           </el-col>
         </el-row>
 
diff --git a/north-glass-erp/northglass-erp/src/views/system/role/Role.vue b/north-glass-erp/northglass-erp/src/views/system/role/Role.vue
new file mode 100644
index 0000000..e997f01
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/system/role/Role.vue
@@ -0,0 +1,61 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router"
+import {useI18n} from "vue-i18n"
+const { t } = useI18n()
+const router = useRouter()
+const route = useRoute()
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+
+
+
+
+</script>
+
+<template>
+  <div id="main-div">
+    <div id="div-title">
+      <el-breadcrumb :separator-icon="ArrowRight">
+        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/role/roleList' }">瑙掕壊棣栭〉</el-breadcrumb-item>
+        <el-breadcrumb-item v-show="false" @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">{{$t('basicData.create')}}</el-breadcrumb-item>
+      </el-breadcrumb>
+    </div>
+
+    <div id="main-body">
+      <router-view :key="route.fullPath" />
+    </div>
+  </div>
+</template>
+
+<style scoped>
+#main-div{
+  width: 99%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#searchButton1{
+//margin-left: 10rem;
+}
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  margin-top: 1%;
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/system/role/RoleList.vue b/north-glass-erp/northglass-erp/src/views/system/role/RoleList.vue
new file mode 100644
index 0000000..9866f6d
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/system/role/RoleList.vue
@@ -0,0 +1,224 @@
+<script setup>
+import {changeFilterEvent, filterChanged} from "@/hook"
+import {onBeforeMount, onMounted, reactive, ref} from "vue"
+import request from "@/utils/request"
+import {useRouter,useRoute} from "vue-router"
+import {useI18n} from "vue-i18n"
+import {ElMessage, ElMessageBox} from "element-plus"
+const { t } = useI18n()
+const router = useRouter()
+const route = useRoute()
+const dialogVisible = ref(false)
+let selectValue = ref(null)
+let options = ref([])
+
+const xGrid = ref()
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'userList',
+  showFooter: false,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+
+  //琛ㄥご鍙傛暟
+  columns:[
+
+  ],
+
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+
+    ],
+    zoom: true,
+    custom: true
+  },
+})
+
+const pGrid = ref()
+const permissionOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'permissionList',
+  showFooter: false,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+
+  //琛ㄥご鍙傛暟
+  columns:[
+
+  ],
+
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+
+    ],
+    slots:{
+      buttons: "toolbar_buttons"
+    },
+    zoom: true,
+    custom: true
+  },
+})
+
+
+
+onBeforeMount(()=>{
+  let columns = [{title: t('basicData.operate'), width: 133, slots: { default: 'button_slot' }}]
+  const columnName = {
+    id: 'ID',
+    role:'瑙掕壊'
+  }
+  for (let columnNameKey in columnName) {
+    let column = {field: columnNameKey,
+      title: columnName[columnNameKey]
+    }
+    columns.push(column)
+  }
+  gridOptions.columns = columns
+
+
+  let columnsP = [
+      { type: 'seq', width: 60 },
+      { type: 'checkbox', width: 50 }
+  ]
+  const columnNameP = {
+    id: 'ID',
+    menu: '鑿滃崟',
+    page:'椤甸潰',
+    permission:'鏉冮檺'
+  }
+  for (let columnNameKey in columnNameP) {
+    let column = {field: columnNameKey,
+      title: columnNameP[columnNameKey]
+    }
+    columnsP.push(column)
+  }
+  permissionOptions.columns = columnsP
+
+})
+
+onMounted(()=>{
+  request.get('/role/findAll').then(res=>{
+    gridOptions.data = res.data
+  })
+  request.post('/permission/getPermissionList').then(res=>{
+    options.value = res.data
+  })
+})
+
+const getTableRow =  (row,type) => {
+  switch (type) {
+    case 'edit': {
+      dialogVisible.value = true
+      break
+    }
+  }
+}
+
+const getPermissionList = () => {
+  request.post(`/permission/getPermission/${2}`).then(res=>{
+    permissionOptions.data = res.data
+  })
+}
+
+const selectChange = ()=>{
+  console.log(selectValue.value)
+}
+
+</script>
+
+<template>
+  <div  style="width: 50%;height: 100% ;">
+    <vxe-grid
+        max-height="100%"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+    >
+      <template #filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+          </div>
+        </div>
+      </template>
+
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">瑙掕壊鏉冮檺</el-button>
+      </template>
+    </vxe-grid>
+
+    <el-dialog
+        v-model="dialogVisible"
+        @open="getPermissionList"
+        style="height: 70%;width: 70%"
+        title="鏉冮檺閫夋嫨">
+      <vxe-grid
+          height="100%"
+          class="mytable-scrollbar"
+          ref="pGrid"
+          v-bind="permissionOptions"
+      >
+        <template #toolbar_buttons>
+          <el-cascader
+              v-model="selectValue"
+              :options="options"
+              @change="selectChange"
+          />
+        </template>
+
+      </vxe-grid>
+
+
+    </el-dialog>
+  </div>
+</template>
+
+<style scoped>
+:deep(.el-dialog__body){
+  height: 80%;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/system/user/User.vue b/north-glass-erp/northglass-erp/src/views/system/user/User.vue
new file mode 100644
index 0000000..21d0c98
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/system/user/User.vue
@@ -0,0 +1,61 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router"
+import {useI18n} from "vue-i18n"
+const { t } = useI18n()
+const router = useRouter()
+const route = useRoute()
+let indexFlag=$ref(1)
+function changeRouter(index){
+  indexFlag=index
+}
+
+
+
+
+</script>
+
+<template>
+  <div id="main-div">
+    <div id="div-title">
+      <el-breadcrumb :separator-icon="ArrowRight">
+        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/user/userList' }">鐢ㄦ埛棣栭〉</el-breadcrumb-item>
+        <el-breadcrumb-item v-show="false" @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">{{$t('basicData.create')}}</el-breadcrumb-item>
+      </el-breadcrumb>
+    </div>
+
+    <div id="main-body">
+      <router-view :key="route.fullPath" />
+    </div>
+  </div>
+</template>
+
+<style scoped>
+#main-div{
+  width: 99%;
+  height: 100%;
+}
+#div-title{
+  height: 2%;
+  width: 100%;
+}
+#searchButton{
+  margin-top: -5px;
+  margin-left: 1rem;
+}
+#searchButton1{
+//margin-left: 10rem;
+}
+/*main-body鏍峰紡*/
+#main-body{
+  width: 100%;
+  height: 95%;
+  margin-top: 1%;
+}
+#select{
+  margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+  color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/system/user/UserList.vue b/north-glass-erp/northglass-erp/src/views/system/user/UserList.vue
new file mode 100644
index 0000000..a1dd201
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/system/user/UserList.vue
@@ -0,0 +1,196 @@
+<script setup>
+import {onBeforeMount, onMounted, reactive, ref} from "vue"
+import {changeFilterEvent,filterChanged} from "@/hook"
+import request from "@/utils/request"
+import {useRouter,useRoute} from "vue-router"
+import {useI18n} from "vue-i18n"
+import {ElMessage, ElMessageBox} from "element-plus"
+const { t } = useI18n()
+const router = useRouter()
+const route = useRoute()
+const dialogVisible = ref(false)
+let roleList = ref([])
+let userRole= ref({
+  userId:'',
+  roles:[]
+})
+const xGrid = ref()
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'userList',
+  showFooter: false,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+
+  //琛ㄥご鍙傛暟
+  columns:[
+
+  ],
+
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+
+    ],
+    zoom: true,
+    custom: true
+  },
+})
+onBeforeMount(()=>{
+  let columns = [{title: t('basicData.operate'), width: 133, slots: { default: 'button_slot' }}]
+  const columnName = {
+    loginName: '鐢ㄦ埛ID',
+    userName:'鐢ㄦ埛',
+    // address:'鍦板潃',
+    // phone:'鐢佃瘽',
+    role:'瑙掕壊',
+    createTime:'鍒涘缓鏃堕棿'
+  }
+  for (let columnNameKey in columnName) {
+    let column = {field: columnNameKey,
+      title: columnName[columnNameKey],
+      filters:[{ data: '' }],
+      slots: { filter: 'filter' },
+      sortable: true,
+      filterMethod:filterChanged
+    }
+    columns.push(column)
+  }
+  gridOptions.columns = columns
+
+})
+onMounted(()=>{
+  request.get('/userInfo/findAll').then(res=>{
+    let arr = res.data.users[0]
+    arr.forEach(item=>{
+      let bValues = item.userRoleList.map(item => item.role);
+      item.role = bValues.join(',')
+    })
+    gridOptions.data = res.data.users[0]
+    roleList.value = res.data.role[0]
+  })
+})
+
+const getTableRow =  (row,type) => {
+  switch (type) {
+    case 'edit': {
+      userRole.value.roles = []
+      dialogVisible.value = true
+      row.userRoleList.forEach(item=>{
+        userRole.value.roles.push(item.roleId)
+      })
+      userRole.value.userId = row.id
+      break
+    }
+    case 'delete': {
+      request.post(`/userInfo/userDelete/${row.id}`).then((res) => {
+        if(res.code==200 && res.data ===true){
+          ElMessage.success(t('searchOrder.msgDeleteSuccess'))
+          router.push({path:'/main/user/userList',query:{random:Math.random()}})
+        }else{
+          ElMessage.warning(t('searchOrder.msgDeleteFail'))
+        }
+      })
+      break
+    }
+
+  }
+}
+
+const handleClose = (done) => {
+  userRole.value.roles = []
+  done()
+}
+
+const roleUpdate = () => {
+  request.post('userRole/updateUserRole',userRole.value).then(res=>{
+    if(res.code==200 && res.data===true){
+      ElMessage.success(t('basicData.msg.saveSuccess'))
+      router.push({path:'/main/user/userList',query:{random:Math.random()}})
+    }
+
+  })
+  dialogVisible.value = false
+}
+
+
+
+</script>
+
+<template>
+  <div  style="width: 100%;height: 100% ;">
+    <vxe-grid
+        max-height="100%"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+    >
+      <template #filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+          </div>
+        </div>
+      </template>
+
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">璁剧疆瑙掕壊</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>
+          </template>
+        </el-popconfirm>
+      </template>
+    </vxe-grid>
+
+    <el-dialog
+        v-model="dialogVisible"
+        title="瑙掕壊閫夋嫨"
+        width="30%"
+        :before-close="handleClose"
+    >
+      <span>
+        <el-checkbox v-for="(item) in roleList"
+                     :label="item.id"
+                     v-model="userRole.roles" >
+          {{item.role}}
+        </el-checkbox>
+      </span>
+      <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="dialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="roleUpdate">
+          纭
+        </el-button>
+      </span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<style scoped>
+.dialog-footer button:first-child {
+  margin-right: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/java/com/example/erp/config/StpInterfaceImpl.java b/north-glass-erp/src/main/java/com/example/erp/config/StpInterfaceImpl.java
index bac35d2..de38cd4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/config/StpInterfaceImpl.java
+++ b/north-glass-erp/src/main/java/com/example/erp/config/StpInterfaceImpl.java
@@ -14,7 +14,10 @@
  * @author kong
  * @since 2022-10-13
  */
-@Component    // 鎵撳紑姝ゆ敞瑙o紝淇濊瘉姝ょ被琚玸pringboot鎵弿锛屽嵆鍙畬鎴恠a-token鐨勮嚜瀹氫箟鏉冮檺楠岃瘉鎵╁睍
+
+
+// 鎵撳紑姝ゆ敞瑙o紝淇濊瘉姝ょ被琚玸pringboot鎵弿锛屽嵆鍙畬鎴恠a-token鐨勮嚜瀹氫箟鏉冮檺楠岃瘉鎵╁睍
+@Component
 public class StpInterfaceImpl implements StpInterface {
     private final PermissionRoleService permissionRoleService;
 
@@ -27,14 +30,6 @@
      */
     @Override
     public List<String> getPermissionList(Object loginId, String loginType) {
-        // 鏈琹ist浠呭仛妯℃嫙锛屽疄闄呴」鐩腑瑕佹牴鎹叿浣撲笟鍔¢�昏緫鏉ユ煡璇㈡潈闄�
-        /*List<String> list = new ArrayList<>();
-        list.add("101");
-        list.add("user.add");
-        list.add("user.update");
-        list.add("user.get");
-        // list.add("user.delete");
-        list.add("art.*");*/
 
         return permissionRoleService.getUserPermission(Integer.parseInt((String) loginId));
     }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
index cecc4a4..a65b541 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -47,6 +47,7 @@
         return Result.seccess(orderService.getOrderList(pageNum, pageSize, selectDate, order,orderType));
     }
     @ApiOperation("鍒犻櫎璁㈠崟")
+    @SaCheckPermission("selectOrder.delete")
     @PostMapping("/deleteOrder/{id}")
     public Result deleteOrder(@PathVariable String id)  {
         return Result.seccess(orderService.deleteOrder(id));
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionBasicController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionBasicController.java
new file mode 100644
index 0000000..63de0f6
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/PermissionBasicController.java
@@ -0,0 +1,29 @@
+package com.example.erp.controller.userInfo;
+
+import com.example.erp.common.Result;
+import com.example.erp.service.userInfo.PermissionBasicService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/permission")
+public class PermissionBasicController {
+    private final PermissionBasicService permissionBasicService;
+
+    public PermissionBasicController(PermissionBasicService permissionBasicService) {
+        this.permissionBasicService = permissionBasicService;
+    }
+
+    @PostMapping("getPermission/{userId}")
+    public Result getPermission(@PathVariable Integer userId){
+        return  Result.seccess(permissionBasicService.getPermission(userId));
+    }
+
+    @PostMapping("getPermissionList")
+    public Result getPermission(){
+        return  Result.seccess(permissionBasicService.getPermissionList());
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/RoleController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/RoleController.java
new file mode 100644
index 0000000..30e9443
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/RoleController.java
@@ -0,0 +1,23 @@
+package com.example.erp.controller.userInfo;
+
+import com.example.erp.common.Result;
+import com.example.erp.service.userInfo.RoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/role")
+public class RoleController {
+    private final RoleService roleService;
+
+    public RoleController(RoleService roleService) {
+        this.roleService = roleService;
+    }
+
+    @GetMapping("/findAll")
+    public Result findAll(){
+        return Result.seccess(roleService.findAll());
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserInfoController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserInfoController.java
index 5255581..6045054 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserInfoController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserInfoController.java
@@ -6,10 +6,7 @@
 import com.example.erp.common.Result;
 import com.example.erp.controller.dto.UserDTO;
 import com.example.erp.service.userInfo.UserService;
-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.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/userInfo")
@@ -36,14 +33,18 @@
     return Result.seccess(userService.isLogin()); }
 
     @SaCheckLogin
-    @PostMapping("/userAdd")
+    @PostMapping("/getTokenInfo")
     public Result userAdd() {
         return Result.seccess(StpUtil.getTokenInfo());
     }
 
-    @PostMapping("/userDelete")
-    @SaCheckPermission("user.delete")
-    public Result userDelete() {
-        return Result.seccess(123123);
+    @PostMapping("/userDelete/{id}")
+    public Result userDelete(@PathVariable Integer id) {
+        return Result.seccess(userService.userDelete(id));
+    }
+
+    @GetMapping("findAll")
+    public Result findAll(){
+        return Result.seccess(userService.findAll());
     }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserRoleController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserRoleController.java
new file mode 100644
index 0000000..c6cc324
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/UserRoleController.java
@@ -0,0 +1,27 @@
+package com.example.erp.controller.userInfo;
+
+import com.example.erp.common.Result;
+import com.example.erp.controller.dto.UserDTO;
+import com.example.erp.service.userInfo.UserRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+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.RestController;
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/userRole")
+public class UserRoleController {
+    private final UserRoleService userRoleService;
+
+    public UserRoleController(UserRoleService userRoleService) {
+        this.userRoleService = userRoleService;
+    }
+
+    @PostMapping("/updateUserRole")
+    public Result updateUserRole(@RequestBody Map<String,Object> params) {
+        return Result.seccess(userRoleService.updateUserRole(params));
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionBasic.java b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionBasic.java
index 163911f..0d530f2 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionBasic.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionBasic.java
@@ -8,6 +8,7 @@
 public class PermissionBasic {
     @TableId(type = IdType.AUTO)
     private Integer id;
+    private String menu;
     private String page;
     private String permission;
     private String state;
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionRole.java b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionRole.java
index 8ab0432..eb80001 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionRole.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/PermissionRole.java
@@ -10,5 +10,4 @@
     private Integer id;
     private Integer roleId;
     private Integer permissionId;
-
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/Role.java b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/Role.java
index 6f7ecf1..03b49ac 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/Role.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/Role.java
@@ -7,6 +7,6 @@
 @Data
 public class Role {
     @TableId(type = IdType.AUTO)
-    private String id;
+    private Integer id;
     private String role;
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/User.java b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/User.java
index 2bcca8f..a300841 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/User.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/User.java
@@ -1,8 +1,11 @@
 package com.example.erp.entity.userInfo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
+
+import java.util.List;
 
 @Data  //get涓巗et浠g爜绠�鍐�
 public class User {
@@ -17,5 +20,7 @@
     private  String createTime;
     private  String updateTime;
     private  Integer state;
+    @TableField(select = false,exist = false)
+    private  List<UserRole> userRoleList;
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/UserRole.java b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/UserRole.java
new file mode 100644
index 0000000..77eb9a8
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/userInfo/UserRole.java
@@ -0,0 +1,17 @@
+package com.example.erp.entity.userInfo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class UserRole {
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+    private Integer userId;
+    private Integer roleId;
+    @TableField(select = false,exist = false)
+    private String role;
+
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/exception/GlobalExceptionHandle.java b/north-glass-erp/src/main/java/com/example/erp/exception/GlobalExceptionHandle.java
index cc7d89a..cba151d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/exception/GlobalExceptionHandle.java
+++ b/north-glass-erp/src/main/java/com/example/erp/exception/GlobalExceptionHandle.java
@@ -22,6 +22,7 @@
         return Result.error(se.getCode(),se.getMessage());
     }
 
+    // 鎷︽埅锛氭棤鏉冮檺寮傚父
     @ExceptionHandler(NotPermissionException.class)
     @ResponseBody
     public Result handlerException(NotPermissionException e) {
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
new file mode 100644
index 0000000..25a841b
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/PermissionBasicMapper.java
@@ -0,0 +1,17 @@
+package com.example.erp.mapper.userInfo;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.userInfo.PermissionBasic;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface PermissionBasicMapper extends BaseMapper<PermissionBasic> {
+     List<PermissionBasic> getPermission(Integer userId);
+
+     List<PermissionBasic> selectOneLevel();
+
+     List<Map<String,Object>> selectTowLevel(String menu);
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/RoleMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/RoleMapper.java
new file mode 100644
index 0000000..41e4360
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/RoleMapper.java
@@ -0,0 +1,12 @@
+package com.example.erp.mapper.userInfo;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.userInfo.Role;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RoleMapper extends BaseMapper<Role> {
+
+
+
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserMapper.java
index 5da45ca..04a247f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserMapper.java
@@ -28,4 +28,6 @@
     Boolean register(User user);
 
     List<String> getUserRole(Integer id);
+
+    Boolean userDelete(Integer id);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserRoleMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserRoleMapper.java
new file mode 100644
index 0000000..f463913
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/userInfo/UserRoleMapper.java
@@ -0,0 +1,9 @@
+package com.example.erp.mapper.userInfo;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.userInfo.UserRole;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserRoleMapper extends BaseMapper<UserRole> {
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionBasicService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionBasicService.java
new file mode 100644
index 0000000..f535f61
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/PermissionBasicService.java
@@ -0,0 +1,41 @@
+package com.example.erp.service.userInfo;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.example.erp.entity.userInfo.PermissionBasic;
+import com.example.erp.mapper.userInfo.PermissionBasicMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class PermissionBasicService {
+    private final PermissionBasicMapper permissionBasicMapper;
+
+    public PermissionBasicService(PermissionBasicMapper permissionBasicMapper) {
+        this.permissionBasicMapper = permissionBasicMapper;
+    }
+
+    public List<PermissionBasic> getPermission(Integer userId) {
+        return permissionBasicMapper.getPermission(userId);
+    }
+
+    public Object getPermissionList() {
+        List<PermissionBasic> getOne = permissionBasicMapper.selectOneLevel();
+        List<Map<String,Object>> ListOne = new ArrayList<>();
+
+        for(PermissionBasic permissionBasic : getOne){
+
+            Map<String,Object> map = new HashMap<>();
+            map.put("value",permissionBasic.getId());
+            map.put("label",permissionBasic.getMenu());
+            map.put("children",permissionBasicMapper.selectTowLevel(permissionBasic.getMenu()));
+            ListOne.add(map);
+        }
+
+        return ListOne;
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/RoleService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/RoleService.java
new file mode 100644
index 0000000..bc687f3
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/RoleService.java
@@ -0,0 +1,27 @@
+package com.example.erp.service.userInfo;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.example.erp.entity.userInfo.Role;
+import com.example.erp.mapper.userInfo.RoleMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@DS("user_info")
+public class RoleService {
+    private final RoleMapper roleMapper;
+
+    public RoleService(RoleMapper roleMapper) {
+        this.roleMapper = roleMapper;
+    }
+
+    public List<Role> findAll() {
+        return roleMapper.selectList(
+                new QueryWrapper<Role>()
+                        .ne("role","admin")
+        );
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserRoleService.java b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserRoleService.java
new file mode 100644
index 0000000..f968e5b
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/userInfo/UserRoleService.java
@@ -0,0 +1,41 @@
+package com.example.erp.service.userInfo;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.example.erp.entity.userInfo.UserRole;
+import com.example.erp.mapper.userInfo.UserRoleMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@DS("user_info")
+public class UserRoleService {
+    private final UserRoleMapper userRoleMapper;
+
+    public UserRoleService(UserRoleMapper userRoleMapper) {
+        this.userRoleMapper = userRoleMapper;
+    }
+
+    public  Boolean updateUserRole(Map<String, Object> params) {
+        Integer userId = (Integer) params.get("userId");
+        List<Integer> list = (List<Integer>) params.get("roles");
+        List<UserRole> userRoleList = new ArrayList<>();
+        if(!list.isEmpty()) {
+            for (Integer roleId : list) {
+                UserRole userRole = new UserRole();
+                userRole.setUserId(userId);
+                userRole.setRoleId(roleId);
+                userRoleList.add(userRole);
+            }
+        }
+        userRoleMapper.delete(new QueryWrapper<UserRole>().eq("user_id", userId));
+        userRoleList.forEach(userRole -> {
+            userRoleMapper.insert(userRole);
+        });
+        return true;
+    }
+}
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 450209f..5b4ede4 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,22 +5,32 @@
 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.Role;
 import com.example.erp.entity.userInfo.User;
+import com.example.erp.mapper.userInfo.RoleMapper;
 import com.example.erp.mapper.userInfo.UserMapper;
 import com.example.erp.tools.TokenTools;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @Service
 @DS("user_info")
 public class UserService {
 
     private final UserMapper userMapper;
+    private final RoleMapper roleMapper;
 
-    public UserService(UserMapper userMapper) {
+    public UserService(UserMapper userMapper, RoleMapper roleMapper) {
         this.userMapper = userMapper;
+        this.roleMapper = roleMapper;
     }
 
 
@@ -70,6 +80,9 @@
         User user = userMapper.selectOne(new QueryWrapper<User>().
                 eq("login_name", userDTO.getUserId()).eq("password", userDTO.getPass()));
         if(user!=null){
+            //妫�鏌ユ槸璁╂湁鐧诲綍锛屾湁鐧诲綍鐩存帴閫�鍑�
+            StpUtil.logout(user.getId());
+            //閲嶆柊杩涜鐧诲綍
             StpUtil.login(user.getId());
             userDTO.setPass(null);
             userDTO.setId(user.getId());
@@ -90,5 +103,27 @@
         StpUtil.logout();
         return true;
     }
+
+    public Map<String,List<Object>> findAll() {
+        List<User> users = userMapper.findAll();
+        users.forEach(user -> {
+            user.setPassword(null);
+        });
+        Map<String,List<Object>> map = new HashMap<>();
+
+        map.put("users", Collections.singletonList(users));
+        map.put("role", Collections.singletonList(
+                roleMapper.selectList(
+                new QueryWrapper<Role>()
+                        .ne("role","admin")
+                )
+        ));
+        return map;
+    }
+
+    public Boolean userDelete(Integer id) {
+
+        return userMapper.userDelete(id);
+    }
 }
 
diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml b/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml
new file mode 100644
index 0000000..5ab8fbd
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/userInfo/PermissionBasicMapper.xml
@@ -0,0 +1,42 @@
+<?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.example.erp.mapper.userInfo.PermissionBasicMapper">
+    <select id="getPermission">
+        select a.*,
+               CASE
+                   WHEN b.id IS NULL THEN 0
+                   ELSE 1
+                END
+        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
+        group by a.id
+    </select>
+    
+    <select id="selectOneLevel">
+        select *
+        from permission_basic
+        where id!=1 and state=1
+        group by  menu
+
+    </select>
+
+    <select id="selectTowLevel">
+        select
+            id as value,
+            page as label
+        from permission_basic
+        where id!=1 and state=1
+        group by  menu
+
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/RoleMapper.xml b/north-glass-erp/src/main/resources/mapper/userInfo/RoleMapper.xml
new file mode 100644
index 0000000..b48c892
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/userInfo/RoleMapper.xml
@@ -0,0 +1,8 @@
+<?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.example.erp.mapper.userInfo.RoleMapper">
+
+
+</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/userInfo/User.xml b/north-glass-erp/src/main/resources/mapper/userInfo/User.xml
index 38454fc..1120d54 100644
--- a/north-glass-erp/src/main/resources/mapper/userInfo/User.xml
+++ b/north-glass-erp/src/main/resources/mapper/userInfo/User.xml
@@ -3,9 +3,30 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.example.erp.mapper.userInfo.UserMapper">
-    <select id="findAll">
-        SELECT *
-        FROM erp_user_info.user
+    <resultMap id="findAllMap" type="com.example.erp.entity.userInfo.User">
+        <id property="id" column="id"/>
+        <result property="loginName" column="login_name"/>
+        <result property="userName" column="user_name"/>
+        <result property="createTime" column="create_time"/>
+
+        <collection property="userRoleList" ofType="com.example.erp.entity.userInfo.UserRole">
+            <result property="userId" column="user_id"/>
+            <result property="roleId" column="role_id"/>
+            <result property="role" column="role"/>
+        </collection>
+    </resultMap>
+
+
+    <select id="findAll" resultMap="findAllMap">
+        SELECT a.*,
+        b.role_id,
+        c.role
+        FROM erp_user_info.user as a
+        left join user_role as b
+        on a.id = b.user_id
+        left join role as c
+        on b.role_id = c.id
+        where state =1 and a.id != 1
     </select>
 
     <select id="findOne" >
@@ -40,4 +61,9 @@
         where a.id = #{loginId}
 
     </select>
+    <update id="userDelete">
+        update user
+        set state =0
+        where id = #{id}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/target/classes/mapper/userInfo/User.xml b/north-glass-erp/target/classes/mapper/userInfo/User.xml
index 38454fc..1120d54 100644
--- a/north-glass-erp/target/classes/mapper/userInfo/User.xml
+++ b/north-glass-erp/target/classes/mapper/userInfo/User.xml
@@ -3,9 +3,30 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.example.erp.mapper.userInfo.UserMapper">
-    <select id="findAll">
-        SELECT *
-        FROM erp_user_info.user
+    <resultMap id="findAllMap" type="com.example.erp.entity.userInfo.User">
+        <id property="id" column="id"/>
+        <result property="loginName" column="login_name"/>
+        <result property="userName" column="user_name"/>
+        <result property="createTime" column="create_time"/>
+
+        <collection property="userRoleList" ofType="com.example.erp.entity.userInfo.UserRole">
+            <result property="userId" column="user_id"/>
+            <result property="roleId" column="role_id"/>
+            <result property="role" column="role"/>
+        </collection>
+    </resultMap>
+
+
+    <select id="findAll" resultMap="findAllMap">
+        SELECT a.*,
+        b.role_id,
+        c.role
+        FROM erp_user_info.user as a
+        left join user_role as b
+        on a.id = b.user_id
+        left join role as c
+        on b.role_id = c.id
+        where state =1 and a.id != 1
     </select>
 
     <select id="findOne" >
@@ -40,4 +61,9 @@
         where a.id = #{loginId}
 
     </select>
+    <update id="userDelete">
+        update user
+        set state =0
+        where id = #{id}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0