2.0.0
This commit is contained in:
parent
c883b9168a
commit
7d27d97aea
File diff suppressed because one or more lines are too long
@ -22,7 +22,6 @@
|
||||
"@vitejs/plugin-vue": "^4.0.0",
|
||||
"sass": "^1.52.1",
|
||||
"typescript": "^4.7.2",
|
||||
"unocss": "^0.49.7",
|
||||
"vite": "^4.1.2",
|
||||
"vite-ssg": "^0.22.1",
|
||||
"vue-tsc": "^1.1.3"
|
||||
|
||||
@ -34,7 +34,7 @@ export function setMenus(menus:any) {
|
||||
export function login(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/auth/login',
|
||||
url: '/system/auth/login',
|
||||
method: 'post',
|
||||
data: {
|
||||
username: data.username,
|
||||
@ -42,8 +42,8 @@ export function login(data:any){
|
||||
code: data.code
|
||||
}
|
||||
}).then((res:any) => {
|
||||
setToken(res.data.result.token)
|
||||
resolve(res.data.result.token)
|
||||
setToken(res.data.result)
|
||||
resolve(res.data.result)
|
||||
}).catch((e:any) => {
|
||||
reject(e)
|
||||
})
|
||||
@ -53,7 +53,7 @@ export function login(data:any){
|
||||
// 登出
|
||||
export function logout(){
|
||||
request({
|
||||
url: '/tansci/auth/logout',
|
||||
url: '/system/auth/logout',
|
||||
method: 'get'
|
||||
}).then(() => {
|
||||
removeToken()
|
||||
@ -65,7 +65,7 @@ export function logout(){
|
||||
export function getCode(){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/auth/code',
|
||||
url: '/system/auth/code',
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res)
|
||||
@ -77,7 +77,7 @@ export function getCode(){
|
||||
|
||||
export async function getUserInfo() {
|
||||
await request({
|
||||
url: '/tansci/sysuser/info',
|
||||
url: '/system/user/info',
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
if(res.data.result){
|
||||
|
||||
@ -3,7 +3,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lowcode/code/page',
|
||||
url: '/system/lowcode/code/page',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -17,7 +17,7 @@ export function page(params:any){
|
||||
export function del(id:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lowcode/code/delete/' + id,
|
||||
url: '/system/lowcode/code/delete/' + id,
|
||||
method: 'delete',
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -30,7 +30,7 @@ export function del(id:String){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lowcode/code/save',
|
||||
url: '/system/lowcode/code/save',
|
||||
method: 'post',
|
||||
data
|
||||
}).then((res:any) => {
|
||||
@ -44,7 +44,7 @@ export function save(data:any){
|
||||
export function execute(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lowcode/code/execute',
|
||||
url: '/system/lowcode/code/execute',
|
||||
method: 'post',
|
||||
data
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -3,7 +3,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/page',
|
||||
url: '/system/lcPages/page',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -17,7 +17,7 @@ export function page(params:any){
|
||||
export function getPagesInfo(menuId:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/getPagesInfo/' + menuId,
|
||||
url: '/system/lcPages/getPagesInfo/' + menuId,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -30,7 +30,7 @@ export function getPagesInfo(menuId:String){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/save',
|
||||
url: '/system/lcPages/save',
|
||||
method: 'post',
|
||||
data
|
||||
}).then((res:any) => {
|
||||
@ -44,7 +44,7 @@ export function save(data:any){
|
||||
export function update(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/update',
|
||||
url: '/system/lcPages/update',
|
||||
method: 'post',
|
||||
data
|
||||
}).then((res:any) => {
|
||||
@ -58,7 +58,7 @@ export function update(data:any){
|
||||
export function bindMenu(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/bindMenu',
|
||||
url: '/system/lcPages/bindMenu',
|
||||
method: 'post',
|
||||
data
|
||||
}).then((res:any) => {
|
||||
@ -72,7 +72,7 @@ export function bindMenu(data:any){
|
||||
export function del(id:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/delete/' + id,
|
||||
url: '/system/lcPages/delete/' + id,
|
||||
method: 'get',
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -85,7 +85,7 @@ export function del(id:String){
|
||||
export function batchDelete(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/lcPages/batchDelete',
|
||||
url: '/system/lcPages/batchDelete',
|
||||
method: 'post',
|
||||
data
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -3,7 +3,7 @@ import request from '@/utils/request'
|
||||
export function tables(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/source/tables',
|
||||
url: '/system/source/tables',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -17,7 +17,7 @@ export function tables(params:any){
|
||||
export function columns(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/source/columns',
|
||||
url: '/system/source/columns',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -31,7 +31,7 @@ export function columns(params:any){
|
||||
export function primary(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/source/primary',
|
||||
url: '/system/source/primary',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/syslog/loginLog',
|
||||
url: '/system/syslog/loginLog',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -3,7 +3,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/auth/onlineUser',
|
||||
url: '/system/auth/onlineUser',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -17,7 +17,7 @@ export function page(params:any){
|
||||
export function kick(token:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/auth/kick/' + token,
|
||||
url: '/system/auth/kick/' + token,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/syslog/operLog',
|
||||
url: '/system/syslog/operLog',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function tree(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysdict/tree',
|
||||
url: '/system/dict/tree',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -19,7 +19,7 @@ export function tree(params:any){
|
||||
export function list(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysdict/list',
|
||||
url: '/system/dict/list',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -34,7 +34,7 @@ export function list(params:any){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysdict/save',
|
||||
url: '/system/dict/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -49,7 +49,7 @@ export function save(data:any){
|
||||
export function del(id:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysdict/delete/' + id,
|
||||
url: '/system/dict/delete/' + id,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -63,7 +63,7 @@ export function del(id:String){
|
||||
export function update(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysdict/update',
|
||||
url: '/system/dict/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function list(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysmenu/tree',
|
||||
url: '/system/menu/tree',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -19,7 +19,7 @@ export function list(params:any){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysmenu/save',
|
||||
url: '/system/menu/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -34,7 +34,7 @@ export function save(data:any){
|
||||
export function update(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysmenu/update',
|
||||
url: '/system/menu/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -49,7 +49,7 @@ export function update(data:any){
|
||||
export function del(id:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysmenu/delete/' + id,
|
||||
url: '/system/menu/delete/' + id,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function list(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysorg/list',
|
||||
url: '/system/org/list',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -19,7 +19,7 @@ export function list(params:any){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysorg/save',
|
||||
url: '/system/org/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -34,7 +34,7 @@ export function save(data:any){
|
||||
export function del(id:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysorg/delete/' + id,
|
||||
url: '/system/org/delete/' + id,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -48,7 +48,7 @@ export function del(id:String){
|
||||
export function update(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysorg/update',
|
||||
url: '/system/org/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/page',
|
||||
url: '/system/role/page',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -19,7 +19,7 @@ export function page(params:any){
|
||||
export function list(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/list',
|
||||
url: '/system/role/list',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -34,7 +34,7 @@ export function list(params:any){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/save',
|
||||
url: '/system/role/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -49,7 +49,7 @@ export function save(data:any){
|
||||
export function del(id:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/delete/' + id,
|
||||
url: '/system/role/delete/' + id,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -63,7 +63,7 @@ export function del(id:String){
|
||||
export function update(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/update',
|
||||
url: '/system/role/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -78,7 +78,7 @@ export function update(data:any){
|
||||
export function dataPermissions(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/dataPermissions',
|
||||
url: '/system/role/dataPermissions',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -92,7 +92,7 @@ export function dataPermissions(data:any){
|
||||
export function orgList(roleId:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/orgList/' + roleId,
|
||||
url: '/system/role/orgList/' + roleId,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -106,7 +106,7 @@ export function orgList(roleId:String){
|
||||
export function menuPermissions(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/menuPermissions',
|
||||
url: '/system/role/menuPermissions',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -120,7 +120,7 @@ export function menuPermissions(data:any){
|
||||
export function menuList(roleId:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/menuList/' + roleId,
|
||||
url: '/system/role/menuList/' + roleId,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
|
||||
@ -4,7 +4,7 @@ import request from '@/utils/request'
|
||||
export function page(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysuser/page',
|
||||
url: '/system/user/page',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -19,7 +19,7 @@ export function page(params:any){
|
||||
export function list(params:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysuser/list',
|
||||
url: '/system/user/list',
|
||||
method: 'get',
|
||||
params: params
|
||||
}).then((res:any) => {
|
||||
@ -34,7 +34,7 @@ export function list(params:any){
|
||||
export function save(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysuser/save',
|
||||
url: '/system/user/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -49,7 +49,7 @@ export function save(data:any){
|
||||
export function del(id:String){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysuser/delete/' + id,
|
||||
url: '/system/user/delete/' + id,
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
@ -63,7 +63,7 @@ export function del(id:String){
|
||||
export function update(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysuser/update',
|
||||
url: '/system/user/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -78,7 +78,7 @@ export function update(data:any){
|
||||
export function modifyPass(data:any){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysuser/modifyPass',
|
||||
url: '/system/user/modifyPass',
|
||||
method: 'post',
|
||||
data: data
|
||||
}).then((res:any) => {
|
||||
@ -93,7 +93,7 @@ export function modifyPass(data:any){
|
||||
export function roleList(){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysrole/list',
|
||||
url: '/system/role/list',
|
||||
method: 'get'
|
||||
}).then((res:any) => {
|
||||
resolve(res.data)
|
||||
|
||||
@ -6,7 +6,6 @@ import 'element-plus/dist/index.css'
|
||||
import './styles/index.scss'
|
||||
import * as ElIcons from '@element-plus/icons-vue'
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||
import 'uno.css'
|
||||
import globalProperties from './utils/globalProperties'
|
||||
import hasPermission from './utils/hasPermission'
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ export const loadView = (view:any) => {
|
||||
export function generateRoutes(){
|
||||
return new Promise((resolve, reject) => {
|
||||
request({
|
||||
url: '/tansci/sysmenu/menus',
|
||||
url: '/system/menu/menus',
|
||||
method: 'get'
|
||||
}).then( (res:any) => {
|
||||
const routers = filterRouter(res.data.result, 0)
|
||||
|
||||
@ -1,14 +1,6 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import path from 'path'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import Unocss from 'unocss/vite'
|
||||
import {
|
||||
presetAttributify,
|
||||
presetIcons,
|
||||
presetUno,
|
||||
transformerDirectives,
|
||||
transformerVariantGroup,
|
||||
} from 'unocss'
|
||||
|
||||
const url = "http://127.0.0.1:8000"
|
||||
export default defineConfig({
|
||||
@ -25,29 +17,15 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
vue(),
|
||||
Unocss({
|
||||
presets: [
|
||||
presetUno(),
|
||||
presetAttributify(),
|
||||
presetIcons({
|
||||
scale: 1.2,
|
||||
warn: true,
|
||||
}),
|
||||
],
|
||||
transformers: [
|
||||
transformerDirectives(),
|
||||
transformerVariantGroup(),
|
||||
]
|
||||
}),
|
||||
vue()
|
||||
],
|
||||
server: {
|
||||
proxy: {
|
||||
'/tansci': {
|
||||
'/system': {
|
||||
target: url,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/tansci':'/tansci'
|
||||
'^/system':'/system'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
<mybatis-plus-boot.varsion>3.4.3.1</mybatis-plus-boot.varsion>
|
||||
<druid-spring-boot.varsion>1.2.6</druid-spring-boot.varsion>
|
||||
<sa-token-spring-boot.varsion>1.34.0</sa-token-spring-boot.varsion>
|
||||
<knife4j-spring-boot.version>3.0.3</knife4j-spring-boot.version>
|
||||
<hutool-all.version>5.7.22</hutool-all.version>
|
||||
<fastjson2.version>2.0.26</fastjson2.version>
|
||||
<magic-api.version>2.1.0</magic-api.version>
|
||||
@ -67,12 +66,6 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||
<version>${knife4j-spring-boot.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
package com.tansci.common.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @ClassName: Log.java
|
||||
* @ClassPath: com.tansci.common.annotation.Log.java
|
||||
* @Description: 自定义操作日志注解
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 14:05
|
||||
**/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface Log {
|
||||
|
||||
/**
|
||||
* 操作模块
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
String modul() default "";
|
||||
|
||||
/**
|
||||
* 操作类型
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
String type() default "";
|
||||
|
||||
/**
|
||||
* 操作说明
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
String desc() default "";
|
||||
|
||||
}
|
||||
@ -1,180 +0,0 @@
|
||||
package com.tansci.common.aop;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysOperLog;
|
||||
import com.tansci.domain.vo.SysUserSessionVo;
|
||||
import com.tansci.service.SysOperLogService;
|
||||
import com.tansci.utils.SystemUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.annotation.*;
|
||||
import org.aspectj.lang.reflect.MethodSignature;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @ClassName: OperLogAspect.java
|
||||
* @ClassPath: com.tansci.common.aop.OperLogAspect.java
|
||||
* @Description: 操作日志记录
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 14:02
|
||||
**/
|
||||
@Slf4j
|
||||
@Aspect
|
||||
@Component
|
||||
public class OperLogAspect {
|
||||
|
||||
/**
|
||||
* 统计请求的处理时间
|
||||
*/
|
||||
ThreadLocal<Long> startTime = new ThreadLocal<>();
|
||||
@Autowired
|
||||
private SysOperLogService sysOperLogService;
|
||||
|
||||
/**
|
||||
* @MonthName: logPoinCut
|
||||
* @Description: 设置操作日志切入点 记录操作日志 在注解的位置切入代码
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 14:06
|
||||
* @Param: []
|
||||
* @return: void
|
||||
**/
|
||||
@Pointcut("@annotation(com.tansci.common.annotation.Log)")
|
||||
public void logPoinCut() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @MonthName: exceptionLogPoinCut
|
||||
* @Description: 设置操作异常切入点记录异常日志 扫描所有controller包下操作
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 14:07
|
||||
* @Param: []
|
||||
* @return: void
|
||||
**/
|
||||
@Pointcut("execution(* com.tansci.controller..*.*(..))")
|
||||
public void exceptionLogPoinCut() {
|
||||
}
|
||||
|
||||
@Before("logPoinCut()")
|
||||
public void doBefore() {
|
||||
// 接收到请求,记录请求开始时间
|
||||
startTime.set(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
/**
|
||||
* @MonthName: doAfterReturning
|
||||
* @Description: 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 14:08
|
||||
* @Param: [joinPoint, keys]
|
||||
* @return: void
|
||||
**/
|
||||
@AfterReturning(value = "logPoinCut()", returning = "keys")
|
||||
public void doAfterReturning(JoinPoint joinPoint, Object keys) {
|
||||
try {
|
||||
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
||||
HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
|
||||
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
||||
Method method = signature.getMethod();
|
||||
SysUserSessionVo sessionVo = (SysUserSessionVo) StpUtil.getSession().get(String.valueOf(StpUtil.getLoginId()));
|
||||
|
||||
SysOperLog operLog = SysOperLog.builder()
|
||||
.reqParam(JSON.toJSONString(converMap(request.getParameterMap())))
|
||||
.resParam(JSON.toJSONString(keys))
|
||||
.takeUpTime(System.currentTimeMillis() - startTime.get())
|
||||
.userId(String.valueOf(StpUtil.getLoginId()))
|
||||
.userName(sessionVo.getUsername())
|
||||
.method(joinPoint.getTarget().getClass().getName() + "." + method.getName())
|
||||
.uri(request.getRequestURI())
|
||||
.ip(SystemUtils.getIp(request))
|
||||
.status(Constants.OPER_LOG_STATUS_SUCCESS)
|
||||
.createTime(LocalDateTime.now())
|
||||
.build();
|
||||
|
||||
Log log = method.getAnnotation(Log.class);
|
||||
if (Objects.nonNull(log)) {
|
||||
operLog.setModule(log.modul());
|
||||
operLog.setType(log.type());
|
||||
operLog.setMessage(log.desc());
|
||||
}
|
||||
|
||||
sysOperLogService.save(operLog);
|
||||
} catch (Exception e) {
|
||||
log.error("记录操作日志异常:{}", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @MonthName: doAfterThrowing
|
||||
* @Description: 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 14:36
|
||||
* @Param: [joinPoint, e]
|
||||
* @return: void
|
||||
**/
|
||||
@AfterThrowing(pointcut = "exceptionLogPoinCut()", throwing = "e")
|
||||
public void doAfterThrowing(JoinPoint joinPoint, Throwable e) {
|
||||
try {
|
||||
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
||||
HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
|
||||
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
||||
Method method = signature.getMethod();
|
||||
SysUserSessionVo sessionVo = (SysUserSessionVo) StpUtil.getSession().get(String.valueOf(StpUtil.getLoginId()));
|
||||
|
||||
SysOperLog operLog = SysOperLog.builder()
|
||||
.reqParam(JSON.toJSONString(converMap(request.getParameterMap())))
|
||||
.takeUpTime(System.currentTimeMillis() - startTime.get())
|
||||
.userId(String.valueOf(StpUtil.getLoginId()))
|
||||
.userName(sessionVo.getUsername())
|
||||
.method(joinPoint.getTarget().getClass().getName() + "." + method.getName())
|
||||
.uri(request.getRequestURI())
|
||||
.ip(SystemUtils.getIp(request))
|
||||
.status(Constants.OPER_LOG_STATUS_ERROR)
|
||||
.unusual(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace()))
|
||||
.createTime(LocalDateTime.now())
|
||||
.build();
|
||||
|
||||
Log log = method.getAnnotation(Log.class);
|
||||
if (Objects.nonNull(log)) {
|
||||
operLog.setModule(log.modul());
|
||||
operLog.setType(log.type());
|
||||
operLog.setMessage(log.desc());
|
||||
}
|
||||
|
||||
sysOperLogService.save(operLog);
|
||||
} catch (Exception e2) {
|
||||
log.error("记录操作日志异常:{}", e2);
|
||||
}
|
||||
}
|
||||
|
||||
public Map<String, String> converMap(Map<String, String[]> paramMap) {
|
||||
Map<String, String> rtnMap = new HashMap<>();
|
||||
for (String key : paramMap.keySet()) {
|
||||
rtnMap.put(key, paramMap.get(key)[0]);
|
||||
}
|
||||
return rtnMap;
|
||||
}
|
||||
|
||||
public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
|
||||
StringBuffer strbuff = new StringBuffer();
|
||||
for (StackTraceElement stet : elements) {
|
||||
strbuff.append(stet + "<br/>");
|
||||
}
|
||||
String message = exceptionName + ":" + exceptionMessage + "<br/>" + strbuff.toString();
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,48 +0,0 @@
|
||||
package com.tansci.config;
|
||||
|
||||
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import springfox.documentation.builders.ApiInfoBuilder;
|
||||
import springfox.documentation.builders.PathSelectors;
|
||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||
import springfox.documentation.service.ApiInfo;
|
||||
import springfox.documentation.service.Contact;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||
|
||||
/**
|
||||
* @ClassName: Knife4jConfig.java
|
||||
* @ClassPath: com.tansci.config.Knife4jConfig.java
|
||||
* @Description: Knife4j配置
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:22
|
||||
**/
|
||||
@Configuration
|
||||
@EnableSwagger2
|
||||
@EnableKnife4j
|
||||
public class Knife4jConfig {
|
||||
|
||||
@Bean
|
||||
public Docket createRestApi() {
|
||||
return new Docket(DocumentationType.SWAGGER_2)
|
||||
.useDefaultResponseMessages(false)
|
||||
.apiInfo(apiInfo())
|
||||
.select()
|
||||
.apis(RequestHandlerSelectors.basePackage("com.tansci.controller"))
|
||||
.paths(PathSelectors.any())
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
private ApiInfo apiInfo() {
|
||||
return new ApiInfoBuilder()
|
||||
.title("API 文档")
|
||||
.description("接口文档")
|
||||
.contact(new Contact("tanyp", "http://127.0.0.1:8081/doc.html", ""))
|
||||
.version("1.0.0")
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,28 +0,0 @@
|
||||
package com.tansci.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @ClassName: MybatisPlusConfig.java
|
||||
* @ClassPath: com.tansci.config.MybatisPlusConfig.java
|
||||
* @Description: MybatisPlus分页配置
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:24
|
||||
**/
|
||||
@Configuration
|
||||
@MapperScan("com.tansci.mapper")
|
||||
public class MybatisPlusConfig {
|
||||
|
||||
@Bean
|
||||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
||||
return interceptor;
|
||||
}
|
||||
|
||||
}
|
||||
@ -23,7 +23,7 @@ public class SaTokenConfig implements WebMvcConfigurer {
|
||||
// 验证所有接口
|
||||
.addPathPatterns("/**")
|
||||
// 忽略校验
|
||||
.excludePathPatterns("/auth/**", "//magic/web/**");
|
||||
.excludePathPatterns("/system/auth/**", "/api/web/**");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,85 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.session.SaSessionCustomUtil;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.captcha.CaptchaUtil;
|
||||
import cn.hutool.captcha.LineCaptcha;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysLoginLog;
|
||||
import com.tansci.domain.SysUser;
|
||||
import com.tansci.domain.vo.SysUserVo;
|
||||
import com.tansci.service.SysLoginLogService;
|
||||
import com.tansci.service.SysUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* @ClassName: AuthController.java
|
||||
* @ClassPath: com.tansci.controller.AuthController.java
|
||||
* @Description: 鉴权管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:52
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/auth")
|
||||
@Api(value = "auth", tags = "鉴权管理")
|
||||
public class AuthController {
|
||||
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
@Autowired
|
||||
private SysLoginLogService sysLoginLogService;
|
||||
|
||||
@ApiOperation(value = "登录", notes = "登录")
|
||||
@PostMapping("/login")
|
||||
public Wrapper<SysUserVo> login(HttpServletRequest request, @RequestBody SysUser user) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.login(request, user));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "登出", notes = "登出")
|
||||
@GetMapping("/logout")
|
||||
public Wrapper<Object> logout() {
|
||||
SaSessionCustomUtil.deleteSessionById(String.valueOf(StpUtil.getLoginId()));
|
||||
StpUtil.logout();
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, "登出成功!");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "验证码", notes = "验证码")
|
||||
@GetMapping("/code")
|
||||
public Wrapper<Object> verificationCode(HttpServletRequest request) {
|
||||
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(100, 60);
|
||||
// 四则运算方式
|
||||
// lineCaptcha.setGenerator(new MathGenerator());
|
||||
// 验证码存session, 60秒过期
|
||||
request.getSession().setMaxInactiveInterval(60);
|
||||
request.getSession().setAttribute("verifyCode", lineCaptcha.getCode());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lineCaptcha.getImageBase64());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "在线用户", notes = "在线用户")
|
||||
@Log(modul = "鉴权管理", type = Constants.SELECT, desc = "在线用户")
|
||||
@GetMapping("/onlineUser")
|
||||
public Wrapper<IPage<SysLoginLog>> onlineUser(Page page, String username) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysLoginLogService.onlineUser(page, username));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "踢人", notes = "踢人")
|
||||
@Log(modul = "鉴权管理", type = Constants.UPDATE, desc = "踢人")
|
||||
@GetMapping("/kick/{token}")
|
||||
public Wrapper<Object> kick(@PathVariable String token) {
|
||||
StpUtil.logoutByTokenValue(token);
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, "ok");
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,57 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.vo.ColumnsVo;
|
||||
import com.tansci.domain.vo.TablesVo;
|
||||
import com.tansci.service.DataSourceService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: DataSourceController.java
|
||||
* @ClassPath: com.tansci.controller.DataSourceController.java
|
||||
* @Description: 数据源
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/23 15:19
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/source")
|
||||
@Api(value = "source", tags = "数据源")
|
||||
public class DataSourceController {
|
||||
|
||||
@Autowired
|
||||
private DataSourceService dataSourceService;
|
||||
|
||||
@ApiOperation(value = "数据表", notes = "数据表")
|
||||
@Log(modul = "数据源", type = Constants.SELECT, desc = "数据表")
|
||||
@GetMapping("/tables")
|
||||
public Wrapper<List<TablesVo>> tables(String name) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, dataSourceService.tables(name));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "数据列", notes = "数据列")
|
||||
@Log(modul = "数据列", type = Constants.SELECT, desc = "数据列")
|
||||
@GetMapping("/columns")
|
||||
public Wrapper<List<ColumnsVo>> columns(String name) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, dataSourceService.columns(name));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取住建", notes = "获取住建")
|
||||
@Log(modul = "数据源", type = Constants.SELECT, desc = "获取住建")
|
||||
@GetMapping("/primary")
|
||||
public Wrapper<Object> primary(String name) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, dataSourceService.primary(name));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,102 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.LcPages;
|
||||
import com.tansci.service.LcPagesSerice;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesController.java
|
||||
* @ClassPath: com.tansci.controller.LcPagesController.java
|
||||
* @Description: 页面管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 8:57
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/lcPages")
|
||||
@Api(value = "lcPages", tags = "页面管理")
|
||||
public class LcPagesController {
|
||||
|
||||
@Autowired
|
||||
private LcPagesSerice lcPagesSerice;
|
||||
|
||||
@ApiOperation(value = "分页", notes = "分页")
|
||||
@Log(modul = "页面管理", type = Constants.SELECT, desc = "分页")
|
||||
@GetMapping("/page")
|
||||
public Wrapper<IPage<LcPages>> page(Page page, LcPages pages) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.page(page, pages));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据ID获取页面信息", notes = "根据ID获取页面信息")
|
||||
@Log(modul = "页面管理", type = Constants.SELECT, desc = "根据ID获取页面信息")
|
||||
@GetMapping("/get/{id}")
|
||||
public Wrapper<LcPages> getById(@PathVariable("id") String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.getById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据菜单ID获取页面信息", notes = "根据菜单ID获取页面信息")
|
||||
@Log(modul = "页面管理", type = Constants.SELECT, desc = "根据菜单ID获取页面信息")
|
||||
@GetMapping("/getPagesInfo/{menuId}")
|
||||
public Wrapper<LcPages> getPagesInfo(@PathVariable("menuId") String menuId) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.getPagesInfo(menuId));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加", notes = "添加")
|
||||
@Log(modul = "页面管理", type = Constants.INSERT, desc = "添加")
|
||||
@PostMapping("/save")
|
||||
@SaCheckPermission("pages:save")
|
||||
public Wrapper<Object> save(@RequestBody LcPages pages) {
|
||||
pages.setCreatorId(String.valueOf(StpUtil.getLoginId()));
|
||||
pages.setUpdateTime(LocalDateTime.now());
|
||||
pages.setCreateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.save(pages));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", notes = "修改")
|
||||
@Log(modul = "页面管理", type = Constants.UPDATE, desc = "修改")
|
||||
@PostMapping("/update")
|
||||
@SaCheckPermission("pages:update")
|
||||
public Wrapper<Object> update(@RequestBody LcPages pages) {
|
||||
pages.setUpdateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.updateById(pages));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", notes = "删除")
|
||||
@Log(modul = "页面管理", type = Constants.DELETE, desc = "删除")
|
||||
@GetMapping("/delete/{id}")
|
||||
@SaCheckPermission("pages:delete")
|
||||
public Wrapper<Object> delete(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.delete(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "批量删除", notes = "批量删除")
|
||||
@Log(modul = "页面管理", type = Constants.DELETE, desc = "批量删除")
|
||||
@PostMapping("/batchDelete")
|
||||
@SaCheckPermission("pages:delete")
|
||||
public Wrapper<Object> batchDelete(@RequestBody LcPages pages) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.batchDelete(pages));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "绑定菜单", notes = "绑定菜单")
|
||||
@Log(modul = "页面管理", type = Constants.DELETE, desc = "绑定菜单")
|
||||
@PostMapping("/bindMenu")
|
||||
@SaCheckPermission("pages:update")
|
||||
public Wrapper<Object> bindMenu(@RequestBody LcPages pages) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, lcPagesSerice.bindMenu(pages));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @ClassName: ScreenController.java
|
||||
* @ClassPath: com.tansci.controller.ScreenController.java
|
||||
* @Description: 大屏管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/9 11:17
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/screen")
|
||||
@Api(value = "screen", tags = "大屏管理")
|
||||
public class ScreenController {
|
||||
|
||||
|
||||
}
|
||||
@ -1,76 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysDict;
|
||||
import com.tansci.service.SysDictService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysDictController.java
|
||||
* @ClassPath: com.tansci.controller.SysDictController.java
|
||||
* @Description: 字典管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:45
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/sysdict")
|
||||
@Api(value = "sysdict", tags = "字典管理")
|
||||
public class SysDictController {
|
||||
|
||||
@Autowired
|
||||
private SysDictService sysDictService;
|
||||
|
||||
@ApiOperation(value = "列表树", notes = "列表树")
|
||||
@Log(modul = "字典管理", type = Constants.SELECT, desc = "列表树")
|
||||
@GetMapping("/tree")
|
||||
public Wrapper<List<SysDict>> tree(SysDict dict) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.tree(dict));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "列表", notes = "列表")
|
||||
@Log(modul = "字典管理", type = Constants.SELECT, desc = "列表")
|
||||
@GetMapping("/list")
|
||||
public Wrapper<List<SysDict>> list(SysDict dict) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.list(dict));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加", notes = "添加")
|
||||
@Log(modul = "字典管理", type = Constants.INSERT, desc = "添加")
|
||||
@PostMapping("/save")
|
||||
@SaCheckPermission("dict:save")
|
||||
public Wrapper<Object> save(@RequestBody SysDict dict) {
|
||||
dict.setUpdateTime(LocalDateTime.now());
|
||||
dict.setCreateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.save(dict));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", notes = "删除")
|
||||
@Log(modul = "字典管理", type = Constants.DELETE, desc = "删除")
|
||||
@GetMapping("/delete/{id}")
|
||||
@SaCheckPermission("dict:delete")
|
||||
public Wrapper<Object> delete(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.delete(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", notes = "修改")
|
||||
@Log(modul = "字典管理", type = Constants.UPDATE, desc = "修改")
|
||||
@PostMapping("/update")
|
||||
@SaCheckPermission("dict:update")
|
||||
public Wrapper<Object> update(@RequestBody SysDict dict) {
|
||||
dict.setUpdateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysDictService.updateById(dict));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,53 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysLoginLog;
|
||||
import com.tansci.domain.SysOperLog;
|
||||
import com.tansci.service.SysLoginLogService;
|
||||
import com.tansci.service.SysOperLogService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @ClassName: SysLogController.java
|
||||
* @ClassPath: com.tansci.controller.SysLogController.java
|
||||
* @Description: 日志管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:45
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/syslog")
|
||||
@Api(value = "syslog", tags = "日志管理")
|
||||
public class SysLogController {
|
||||
|
||||
@Autowired
|
||||
private SysLoginLogService sysLoginLogService;
|
||||
@Autowired
|
||||
private SysOperLogService sysOperLogService;
|
||||
|
||||
@ApiOperation(value = "登录日志", notes = "登录日志")
|
||||
@Log(modul = "日志管理", type = Constants.DELETE, desc = "登录日志")
|
||||
@GetMapping("/loginLog")
|
||||
public Wrapper<IPage<SysLoginLog>> loginLog(Page page) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysLoginLogService.page(page));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "操作日志", notes = "操作日志")
|
||||
@Log(modul = "日志管理", type = Constants.DELETE, desc = "操作日志")
|
||||
@GetMapping("/operLog")
|
||||
public Wrapper<IPage<SysOperLog>> operLog(Page page) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysOperLogService.page(page));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysMenu;
|
||||
import com.tansci.domain.vo.SysMenuVo;
|
||||
import com.tansci.service.SysMenuService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysMenuController.java
|
||||
* @ClassPath: com.tansci.controller.SysMenuController.java
|
||||
* @Description: 菜单管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:45
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/sysmenu")
|
||||
@Api(value = "sysmenu", tags = "菜单管理")
|
||||
public class SysMenuController {
|
||||
|
||||
@Autowired
|
||||
private SysMenuService sysMenuService;
|
||||
|
||||
@ApiOperation(value = "当前用户权限菜单列表", notes = "当前用户权限菜单列表")
|
||||
@Log(modul = "菜单管理", type = Constants.SELECT, desc = "当前用户权限菜单列表")
|
||||
@GetMapping("/menus")
|
||||
public Wrapper<List<SysMenuVo>> menus() {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysMenuService.menus());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "菜单树", notes = "菜单树")
|
||||
@Log(modul = "菜单管理", type = Constants.SELECT, desc = "菜单树")
|
||||
@GetMapping("/tree")
|
||||
@SaCheckPermission("menu:list")
|
||||
public Wrapper<List<SysMenu>> tree(SysMenu menu) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysMenuService.tree(menu));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "详情", notes = "详情")
|
||||
@Log(modul = "菜单管理", type = Constants.SELECT, desc = "详情")
|
||||
@GetMapping("/getById/{id}")
|
||||
@SaCheckPermission("menu:view")
|
||||
public Wrapper<SysMenu> getById(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysMenuService.getById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加", notes = "添加")
|
||||
@Log(modul = "菜单管理", type = Constants.INSERT, desc = "添加")
|
||||
@PostMapping("/save")
|
||||
@SaCheckPermission("menu:save")
|
||||
public Wrapper<Object> save(@RequestBody SysMenu menu) {
|
||||
menu.setIsDel(Constants.NOT_DEL_FALG);
|
||||
menu.setUpdateTime(LocalDateTime.now());
|
||||
menu.setCreateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysMenuService.save(menu));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", notes = "删除")
|
||||
@Log(modul = "菜单管理", type = Constants.DELETE, desc = "删除")
|
||||
@GetMapping("/delete/{id}")
|
||||
@SaCheckPermission("menu:delete")
|
||||
public Wrapper<Object> delete(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysMenuService.delete(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", notes = "修改")
|
||||
@Log(modul = "菜单管理", type = Constants.UPDATE, desc = "修改")
|
||||
@PostMapping("/update")
|
||||
@SaCheckPermission("menu:update")
|
||||
public Wrapper<Object> update(@RequestBody SysMenu menu) {
|
||||
menu.setUpdateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysMenuService.updateById(menu));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysOrg;
|
||||
import com.tansci.service.SysOrgService;
|
||||
import com.tansci.utils.UUIDUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOrgController.java
|
||||
* @ClassPath: com.tansci.controller.SysOrgController.java
|
||||
* @Description: 组织管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:46
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/sysorg")
|
||||
@Api(value = "sysorg", tags = "组织管理")
|
||||
public class SysOrgController {
|
||||
|
||||
@Autowired
|
||||
private SysOrgService sysOrgService;
|
||||
|
||||
@ApiOperation(value = "列表", notes = "列表")
|
||||
@Log(modul = "组织管理", type = Constants.SELECT, desc = "列表")
|
||||
@GetMapping("/list")
|
||||
@SaCheckPermission("org:list")
|
||||
public Wrapper<List<SysOrg>> list(SysOrg org) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysOrgService.list(org));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加", notes = "添加")
|
||||
@Log(modul = "组织管理", type = Constants.INSERT, desc = "添加")
|
||||
@PostMapping("/save")
|
||||
@SaCheckPermission("org:save")
|
||||
public Wrapper<Object> save(@RequestBody SysOrg org) {
|
||||
org.setCode("SO" + UUIDUtils.getUUID(10).toUpperCase());
|
||||
org.setIsDel(Constants.NOT_DEL_FALG);
|
||||
org.setUpdateTime(LocalDateTime.now());
|
||||
org.setCreateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysOrgService.save(org));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", notes = "删除")
|
||||
@Log(modul = "组织管理", type = Constants.DELETE, desc = "删除")
|
||||
@GetMapping("/delete/{id}")
|
||||
@SaCheckPermission("org:delete")
|
||||
public Wrapper<Object> delete(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysOrgService.delete(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", notes = "修改")
|
||||
@Log(modul = "组织管理", type = Constants.UPDATE, desc = "修改")
|
||||
@PostMapping("/update")
|
||||
@SaCheckPermission("org:update")
|
||||
public Wrapper<Object> update(@RequestBody SysOrg org) {
|
||||
org.setUpdateTime(LocalDateTime.now());
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysOrgService.updateById(org));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,107 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysRole;
|
||||
import com.tansci.service.SysRoleService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleController.java
|
||||
* @ClassPath: com.tansci.controller.SysRoleController.java
|
||||
* @Description: 角色管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:46
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/sysrole")
|
||||
@Api(value = "sysrole", tags = "角色管理")
|
||||
public class SysRoleController {
|
||||
|
||||
@Autowired
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
@ApiOperation(value = "分页", notes = "分页")
|
||||
@Log(modul = "角色管理", type = Constants.SELECT, desc = "列表")
|
||||
@GetMapping("/page")
|
||||
public Wrapper<IPage<SysRole>> page(Page page, SysRole role) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.page(page, role));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "列表", notes = "列表")
|
||||
@Log(modul = "角色管理", type = Constants.SELECT, desc = "列表")
|
||||
@GetMapping("/list")
|
||||
@SaCheckPermission("role:list")
|
||||
public Wrapper<List<SysRole>> list(SysRole role) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.list(role));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加", notes = "添加")
|
||||
@Log(modul = "角色管理", type = Constants.INSERT, desc = "添加")
|
||||
@PostMapping("/save")
|
||||
@SaCheckPermission("role:save")
|
||||
public Wrapper<Object> save(@RequestBody SysRole role) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.insert(role));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", notes = "删除")
|
||||
@Log(modul = "角色管理", type = Constants.DELETE, desc = "删除")
|
||||
@GetMapping("/delete/{id}")
|
||||
@SaCheckPermission("role:delete")
|
||||
public Wrapper<Object> delete(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.delete(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", notes = "修改")
|
||||
@Log(modul = "角色管理", type = Constants.UPDATE, desc = "修改")
|
||||
@PostMapping("/update")
|
||||
@SaCheckPermission("role:update")
|
||||
public Wrapper<Object> update(@RequestBody SysRole role) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.update(role));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "数据权限", notes = "数据权限")
|
||||
@Log(modul = "角色管理", type = Constants.UPDATE, desc = "数据权限")
|
||||
@PostMapping("/dataPermissions")
|
||||
@SaCheckPermission("role:data")
|
||||
public Wrapper<Object> dataPermissions(@RequestBody SysRole role) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.dataPermissions(role));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取权限组织", notes = "获取权限组织")
|
||||
@Log(modul = "角色管理", type = Constants.UPDATE, desc = "获取权限组织")
|
||||
@GetMapping("/orgList/{roleId}")
|
||||
@SaCheckPermission("role:data")
|
||||
public Wrapper<Object> orgList(@PathVariable String roleId) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.orgList(roleId));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "菜单权限", notes = "菜单权限")
|
||||
@Log(modul = "角色管理", type = Constants.UPDATE, desc = "菜单权限")
|
||||
@PostMapping("/menuPermissions")
|
||||
@SaCheckPermission("role:menu")
|
||||
public Wrapper<Object> menuPermissions(@RequestBody SysRole role) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.menuPermissions(role));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取权限菜单", notes = "获取权限菜单")
|
||||
@Log(modul = "角色管理", type = Constants.UPDATE, desc = "获取权限菜单")
|
||||
@GetMapping("/menuList/{roleId}")
|
||||
@SaCheckPermission("role:menu")
|
||||
public Wrapper<Object> menuList(@PathVariable String roleId) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysRoleService.menuList(roleId));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,91 +0,0 @@
|
||||
package com.tansci.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.tansci.common.WrapMapper;
|
||||
import com.tansci.common.Wrapper;
|
||||
import com.tansci.common.annotation.Log;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.SysUser;
|
||||
import com.tansci.domain.vo.UserAuthVo;
|
||||
import com.tansci.service.SysUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserController.java
|
||||
* @ClassPath: com.tansci.controller.SysUserController.java
|
||||
* @Description: 用户管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:52
|
||||
**/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/sysuser")
|
||||
@Api(value = "sysuser", tags = "用户管理")
|
||||
public class SysUserController {
|
||||
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@ApiOperation(value = "分页", notes = "分页")
|
||||
@Log(modul = "用户管理", type = Constants.SELECT, desc = "分页")
|
||||
@GetMapping("/page")
|
||||
public Wrapper<IPage<SysUser>> page(Page page, SysUser user) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.page(page, user));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "列表", notes = "列表")
|
||||
@Log(modul = "用户管理", type = Constants.SELECT, desc = "列表")
|
||||
@GetMapping("/list")
|
||||
@SaCheckPermission("user:list")
|
||||
public Wrapper<List<SysUser>> list(SysUser user) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.list(user));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户信息", notes = "用户信息")
|
||||
@Log(modul = "用户管理", type = Constants.SELECT, desc = "用户信息")
|
||||
@GetMapping("/info")
|
||||
public Wrapper<UserAuthVo> info() {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.info());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加", notes = "添加")
|
||||
@Log(modul = "用户管理", type = Constants.INSERT, desc = "添加")
|
||||
@PostMapping("/save")
|
||||
@SaCheckPermission("user:save")
|
||||
public Wrapper<Object> save(@RequestBody SysUser user) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.insert(user));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改", notes = "修改")
|
||||
@Log(modul = "用户管理", type = Constants.UPDATE, desc = "修改")
|
||||
@PostMapping("/update")
|
||||
@SaCheckPermission("user:update")
|
||||
public Wrapper<Object> update(@RequestBody SysUser user) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.update(user));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除", notes = "删除")
|
||||
@Log(modul = "用户管理", type = Constants.DELETE, desc = "删除")
|
||||
@GetMapping("/delete/{id}")
|
||||
@SaCheckPermission("user:delete")
|
||||
public Wrapper<Object> delete(@PathVariable String id) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.del(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改密码", notes = "修改密码")
|
||||
@Log(modul = "用户管理", type = Constants.UPDATE, desc = "修改密码")
|
||||
@PostMapping("/modifyPass")
|
||||
@SaCheckPermission("user:password")
|
||||
public Wrapper<Object> modifyPass(@RequestBody SysUser user) {
|
||||
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, sysUserService.modifyPass(user));
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPages.java
|
||||
* @ClassPath: com.tansci.domain.LcPages.java
|
||||
* @Description: 页面管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 8:47
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "页面管理")
|
||||
@TableName(value = "lc_pages")
|
||||
public class LcPages {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value = "主键id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty(value = "副标题")
|
||||
private String subtitle;
|
||||
|
||||
@ApiModelProperty(value = "父ID")
|
||||
private String parentId;
|
||||
|
||||
@ApiModelProperty(value = "页面json")
|
||||
private String pageschema;
|
||||
|
||||
@ApiModelProperty(value = "状态:0、正常,1、禁用")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String creatorId;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String remarks;
|
||||
|
||||
@ApiModelProperty(value = "IDS")
|
||||
@TableField(exist = false)
|
||||
private List<String> ids;
|
||||
|
||||
@ApiModelProperty(value = "菜单ids")
|
||||
@TableField(exist = false)
|
||||
private List<String> menuIds;
|
||||
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesMenu.java
|
||||
* @ClassPath: com.tansci.domain.LcPagesMenu.java
|
||||
* @Description: 页面菜单关系表
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 8:47
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "页面菜单关系")
|
||||
@TableName(value = "lc_pages_menu")
|
||||
public class LcPagesMenu {
|
||||
|
||||
@ApiModelProperty(value = "页面id")
|
||||
private String pagesId;
|
||||
|
||||
@ApiModelProperty(value = "菜单id")
|
||||
private String menuId;
|
||||
|
||||
}
|
||||
@ -1,79 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @ClassName: SysDict.java
|
||||
* @ClassPath: com.tansci.SysDict.java
|
||||
* @Description: 数据字典
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_dict")
|
||||
@ApiModel(value = "数据字典")
|
||||
public class SysDict {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value = "主键id", hidden = true)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "父ID")
|
||||
private String parentId;
|
||||
|
||||
@ApiModelProperty(value = "分组名称")
|
||||
private String groupName;
|
||||
|
||||
@ApiModelProperty(value = "类型:0、系统,1、业务")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "值")
|
||||
private Integer dicValue;
|
||||
|
||||
@ApiModelProperty(value = "名称")
|
||||
private String dicLabel;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "预留字段1")
|
||||
private String text1;
|
||||
|
||||
@ApiModelProperty(value = "预留字段3")
|
||||
private String text2;
|
||||
|
||||
@ApiModelProperty(value = "预留字段2")
|
||||
private String text3;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String remarks;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<SysDict> children;
|
||||
|
||||
}
|
||||
@ -1,67 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @path:com.tansci.domain.SysLoginLog.java
|
||||
* @className:SysLoginLog.java
|
||||
* @description:登录日志
|
||||
* @author:tanyp
|
||||
* @dateTime:2023/03/22 11:33
|
||||
* @editNote:
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_login_log")
|
||||
@ApiModel(value = "登录日志")
|
||||
public class SysLoginLog {
|
||||
|
||||
@ApiModelProperty(value = "主键id")
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "登录账号")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "失败密码")
|
||||
private String failPassword;
|
||||
|
||||
@ApiModelProperty(value = "登录类型:成功、失败)")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(value = "浏览器")
|
||||
private String browser;
|
||||
|
||||
@ApiModelProperty(value = "操作系统")
|
||||
private String os;
|
||||
|
||||
@ApiModelProperty(value = "地理位置")
|
||||
private String address;
|
||||
|
||||
@ApiModelProperty(value = "请求IP")
|
||||
private String ip;
|
||||
|
||||
@ApiModelProperty(value = "token")
|
||||
private String token;
|
||||
|
||||
@ApiModelProperty(value = "失败原因")
|
||||
private String message;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@ -1,94 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysMenu.java
|
||||
* @ClassPath: com.tansci.domain.SysMenu.java
|
||||
* @Description: 菜单
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@TableName(value = "sys_menu")
|
||||
@ApiModel(value = "菜单")
|
||||
public class SysMenu {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value = "主键id", hidden = true)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "父菜单ID")
|
||||
private String parentId;
|
||||
|
||||
@ApiModelProperty(value = "菜单名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "菜单链接")
|
||||
private String url;
|
||||
|
||||
@ApiModelProperty(value = "图标")
|
||||
private String icon;
|
||||
|
||||
@ApiModelProperty(value = "中文名称")
|
||||
private String chineseName;
|
||||
|
||||
@ApiModelProperty(value = "英文名称")
|
||||
private String englishName;
|
||||
|
||||
@ApiModelProperty(value = "权限")
|
||||
private String permission;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "组件名称")
|
||||
private String component;
|
||||
|
||||
@ApiModelProperty(value = "组件类型:0、默认,1、amis")
|
||||
private Integer componentType;
|
||||
|
||||
@ApiModelProperty(value = "打开方式:0、默认,1、iframe,2、新标签页")
|
||||
private Integer openMode;
|
||||
|
||||
@ApiModelProperty(value = "是否删除:0、未删除,1、已删除")
|
||||
private Integer isDel;
|
||||
|
||||
@ApiModelProperty(value = "是否缓存:0、不缓存,1、缓存")
|
||||
private Integer keepAlive;
|
||||
|
||||
@ApiModelProperty(value = "是否显示:0、不显示,1、显示")
|
||||
private Integer isShow;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String remarks;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "子级菜单")
|
||||
private List<SysMenu> children;
|
||||
|
||||
}
|
||||
@ -1,82 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @path:com.tansci.domain.SysOperLog.java
|
||||
* @className:SysOperLog.java
|
||||
* @description:操作日志
|
||||
* @author:tanyp
|
||||
* @dateTime:2023/03/22 11:33
|
||||
* @editNote:
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_oper_log")
|
||||
@ApiModel(value = "操作日志")
|
||||
public class SysOperLog {
|
||||
|
||||
@ApiModelProperty(value = "主键id")
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "功能模块")
|
||||
private String module;
|
||||
|
||||
@ApiModelProperty(value = "操作类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(value = "操作描述")
|
||||
private String message;
|
||||
|
||||
@ApiModelProperty(value = "请求参数")
|
||||
private String reqParam;
|
||||
|
||||
@ApiModelProperty(value = "响应参数")
|
||||
private String resParam;
|
||||
|
||||
@ApiModelProperty(value = "耗时")
|
||||
private Long takeUpTime;
|
||||
|
||||
@ApiModelProperty(value = "操作用户id")
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "状态:0、成功,1、失败")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "操作用户名称")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty(value = "操作方法")
|
||||
private String method;
|
||||
|
||||
@ApiModelProperty(value = "请求url")
|
||||
private String uri;
|
||||
|
||||
@ApiModelProperty(value = "请求IP")
|
||||
private String ip;
|
||||
|
||||
@ApiModelProperty(value = "版本号")
|
||||
private String version;
|
||||
|
||||
@ApiModelProperty(value = "异常信息")
|
||||
private String unusual;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@ -1,68 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @path:com.tansci.domain.SysOrg.java
|
||||
* @className:SysOrg.java
|
||||
* @description:组织
|
||||
* @author:tanyp
|
||||
* @dateTime:2023/03/23 13:35
|
||||
* @editNote:
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_org")
|
||||
@ApiModel(value = "组织")
|
||||
public class SysOrg {
|
||||
|
||||
@ApiModelProperty(value = "主键id")
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "组织名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "父id")
|
||||
private String parentId;
|
||||
|
||||
@ApiModelProperty(value = "组织编码")
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "删除状态:0、正常,1、已删除")
|
||||
private Integer isDel;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String remarks;
|
||||
|
||||
@ApiModelProperty(value = "子集")
|
||||
@TableField(exist = false)
|
||||
private List<SysOrg> children;
|
||||
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRole.java
|
||||
* @ClassPath: com.tansci.domain.SysRole.java
|
||||
* @Description: 角色
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_role")
|
||||
@ApiModel(value = "角色")
|
||||
public class SysRole {
|
||||
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value = "主键id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "角色名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "角色编码")
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "权限:0:全部,1:自定义,2:本级级子级,3:本级")
|
||||
private String permission;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "是否删除:0、未删除,1、已删除")
|
||||
private Integer isDel;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String creator;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String remarks;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "菜单权限")
|
||||
private List<String> menuIds;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "数据权限")
|
||||
private List<String> orgIds;
|
||||
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleMenu.java
|
||||
* @ClassPath: com.tansci.domain.SysRoleMenu.java
|
||||
* @Description: 角色和菜单关联表
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_role_menu")
|
||||
@ApiModel(value = "角色和菜单关联表")
|
||||
public class SysRoleMenu {
|
||||
|
||||
@ApiModelProperty(value = "角色id")
|
||||
private String roleId;
|
||||
|
||||
@ApiModelProperty(value = "菜单id")
|
||||
private String menuId;
|
||||
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleOrg.java
|
||||
* @ClassPath: com.tansci.domain.SysRoleOrg.java
|
||||
* @Description: 用户组织机构关联表
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_role_org")
|
||||
@ApiModel(value = "用户组织机构关联表")
|
||||
public class SysRoleOrg {
|
||||
|
||||
@ApiModelProperty(value = "角色id")
|
||||
private String roleId;
|
||||
|
||||
@ApiModelProperty(value = "组织机构id")
|
||||
private String orgId;
|
||||
|
||||
}
|
||||
@ -1,108 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @path:com.tansci.domain.SysUser.java
|
||||
* @className:SysUser.java
|
||||
* @description: 用户
|
||||
* @author:tanyp
|
||||
* @dateTime:2023/03/20 10:38
|
||||
* @editNote:
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_user")
|
||||
@ApiModel(value = "用户")
|
||||
public class SysUser {
|
||||
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
@TableId(type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "密码")
|
||||
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty(value = "用户昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty(value = "用户类型:1、管理员,2、普通用户")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "手机号")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty(value = "头像")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty(value = "性别:0、男,1、女")
|
||||
private Integer gender;
|
||||
|
||||
@ApiModelProperty(value = "出生日期")
|
||||
private LocalDate birthday;
|
||||
|
||||
@ApiModelProperty(value = "地址")
|
||||
private String address;
|
||||
|
||||
@ApiModelProperty(value = "唯一标识")
|
||||
private String openId;
|
||||
|
||||
@ApiModelProperty(value = "身份证号码")
|
||||
private String idCard;
|
||||
|
||||
@ApiModelProperty(value = "邮箱")
|
||||
private String email;
|
||||
|
||||
@ApiModelProperty(value = "禁止登录:0未禁用,1已禁用")
|
||||
private Integer isLogin;
|
||||
|
||||
@ApiModelProperty(value = "删除标识:0未删除,1已删除")
|
||||
private Integer isDel;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "原密码")
|
||||
private String oldPassword;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "角色ID")
|
||||
private String roleId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "验证码")
|
||||
private String code;
|
||||
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
package com.tansci.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserRole.java
|
||||
* @ClassPath: com.tansci.domain.SysUserRole.java
|
||||
* @Description: 用户角色
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "sys_user_role")
|
||||
@ApiModel(value = "用户角色")
|
||||
public class SysUserRole {
|
||||
|
||||
@ApiModelProperty(value = "角色id")
|
||||
private String roleId;
|
||||
|
||||
@ApiModelProperty(value = "用户id")
|
||||
private String userId;
|
||||
|
||||
}
|
||||
@ -1,51 +0,0 @@
|
||||
package com.tansci.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: ColumnsVo.java
|
||||
* @ClassPath: com.tansci.domain.vo.ColumnsVo.java
|
||||
* @Description: 数据列
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/23 15:00
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "数据列")
|
||||
public class ColumnsVo {
|
||||
|
||||
@ApiModelProperty(value = "数据库")
|
||||
private String tableSchema;
|
||||
|
||||
@ApiModelProperty(value = "数据表")
|
||||
private String tableName;
|
||||
|
||||
@ApiModelProperty(value = "列名称")
|
||||
private String columnName;
|
||||
|
||||
@ApiModelProperty(value = "列描述")
|
||||
private String columnComment;
|
||||
|
||||
@ApiModelProperty(value = "键值")
|
||||
private String columnKey;
|
||||
|
||||
@ApiModelProperty(value = "数据类型")
|
||||
private String dataType;
|
||||
|
||||
@ApiModelProperty(value = "是否为空")
|
||||
private String isNullable;
|
||||
|
||||
@ApiModelProperty(value = "列类型")
|
||||
private String columnType;
|
||||
|
||||
@ApiModelProperty(value = "列长")
|
||||
private String columnLength;
|
||||
|
||||
}
|
||||
@ -1,60 +0,0 @@
|
||||
package com.tansci.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: SysMenuVo.java
|
||||
* @ClassPath: com.tansci.domain.SysMenuVo.java
|
||||
* @Description: 菜单
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/03/20 10:38
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "菜单")
|
||||
public class SysMenuVo {
|
||||
|
||||
@ApiModelProperty(value = "主键id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "父菜单ID")
|
||||
private String parentId;
|
||||
|
||||
@ApiModelProperty(value = "菜单名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "菜单链接")
|
||||
private String path;
|
||||
|
||||
@ApiModelProperty(value = "图标")
|
||||
private String icon;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "组件名称")
|
||||
private String component;
|
||||
|
||||
@ApiModelProperty(value = "组件类型:0、默认,1、amis")
|
||||
private Integer componentType;
|
||||
|
||||
@ApiModelProperty(value = "是否显示:0、不显示,1、显示")
|
||||
private Boolean isShow;
|
||||
|
||||
@ApiModelProperty(value = "meta对象")
|
||||
private Map<String, Object> meta;
|
||||
|
||||
@ApiModelProperty(value = "子级菜单")
|
||||
private List<SysMenuVo> children;
|
||||
|
||||
}
|
||||
@ -1,36 +0,0 @@
|
||||
package com.tansci.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserSession.java
|
||||
* @ClassPath: com.tansci.domain.vo.SysUserSession.java
|
||||
* @Description: 用户session信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 11:02
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "用户session信息")
|
||||
public class SysUserSessionVo {
|
||||
|
||||
@ApiModelProperty(value = "用户ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "用户昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty(value = "用户类型:1、管理员,2、普通用户")
|
||||
private Integer type;
|
||||
|
||||
}
|
||||
@ -1,46 +0,0 @@
|
||||
package com.tansci.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserVo.java
|
||||
* @ClassPath: com.tansci.domain.vo.SysUserVo.java
|
||||
* @Description: 用户信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:13
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "用户信息")
|
||||
public class SysUserVo {
|
||||
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "用户昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty(value = "用户类型:1、管理员,2、普通用户")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "头像")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty(value = "token")
|
||||
private String token;
|
||||
|
||||
@ApiModelProperty(value = "登录时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
|
||||
private LocalDateTime loginTime;
|
||||
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
package com.tansci.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName: TablesVo.java
|
||||
* @ClassPath: com.tansci.domain.vo.TablesVo.java
|
||||
* @Description: 数据表
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/23 14:53
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "数据表")
|
||||
public class TablesVo {
|
||||
|
||||
@ApiModelProperty(value = "数据库")
|
||||
private String tableSchema;
|
||||
|
||||
@ApiModelProperty(value = "数据表")
|
||||
private String tableName;
|
||||
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String tableComment;
|
||||
|
||||
}
|
||||
@ -1,47 +0,0 @@
|
||||
package com.tansci.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: UserAuthVo.java
|
||||
* @ClassPath: com.tansci.domain.vo.UserAuthVo.java
|
||||
* @Description: 用户权限信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:13
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(value = "用户权限信息")
|
||||
public class UserAuthVo {
|
||||
|
||||
@ApiModelProperty(value = "用户名称")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "用户昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty(value = "用户类型:1、管理员,2、普通用户")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "头像")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty(value = "手机号")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty(value = "邮箱")
|
||||
private String email;
|
||||
|
||||
@ApiModelProperty(value = "权限code")
|
||||
private List<String> authorities;
|
||||
|
||||
}
|
||||
@ -1,119 +1,119 @@
|
||||
package com.tansci.handler;
|
||||
|
||||
import cn.dev33.satoken.stp.StpInterface;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.common.constant.Enums;
|
||||
import com.tansci.domain.SysMenu;
|
||||
import com.tansci.domain.SysRoleMenu;
|
||||
import com.tansci.domain.SysUserRole;
|
||||
import com.tansci.domain.vo.SysUserSessionVo;
|
||||
import com.tansci.service.SysMenuService;
|
||||
import com.tansci.service.SysRoleMenuService;
|
||||
import com.tansci.service.SysUserRoleService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: StpInterfaceHandler.java
|
||||
* @ClassPath: com.tansci.handler.StpInterfaceHandler.java
|
||||
* @Description: 自定义权限验证
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 15:07
|
||||
**/
|
||||
@Component
|
||||
public class StpInterfaceHandler implements StpInterface {
|
||||
|
||||
@Autowired
|
||||
private SysUserRoleService sysUserRoleService;
|
||||
@Autowired
|
||||
private SysRoleMenuService sysRoleMenuService;
|
||||
@Autowired
|
||||
private SysMenuService sysMenuService;
|
||||
|
||||
/**
|
||||
* @MonthName: getPermissionList
|
||||
* @Description: 返回一个账号所拥有的权限码集合
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 15:08
|
||||
* @Param: [o, s]
|
||||
* @return: java.util.List<java.lang.String>
|
||||
**/
|
||||
@Override
|
||||
public List<String> getPermissionList(Object loginId, String loginType) {
|
||||
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
if (Objects.nonNull(userSession)) {
|
||||
if (Objects.nonNull(StpUtil.getSession().get(Constants.PERMISSION_KEY))) {
|
||||
return (List<String>) StpUtil.getSession().get(Constants.PERMISSION_KEY);
|
||||
}
|
||||
|
||||
if (Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
List<SysMenu> menus = sysMenuService.list(
|
||||
Wrappers.<SysMenu>lambdaQuery()
|
||||
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.ne(SysMenu::getPermission, "")
|
||||
.isNotNull(SysMenu::getPermission)
|
||||
);
|
||||
List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
|
||||
StpUtil.getSession().set(Constants.PERMISSION_KEY, permissions);
|
||||
return permissions;
|
||||
} else {
|
||||
List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
|
||||
if (Objects.nonNull(roles) && roles.size() > 0) {
|
||||
List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
List<SysRoleMenu> roleMenus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().in(SysRoleMenu::getRoleId, roleIds));
|
||||
if (Objects.nonNull(roleMenus) && roleMenus.size() > 0) {
|
||||
List<SysMenu> menus = sysMenuService.list(
|
||||
Wrappers.<SysMenu>lambdaQuery()
|
||||
.in(SysMenu::getId, roleMenus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()))
|
||||
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.ne(SysMenu::getPermission, "")
|
||||
.isNotNull(SysMenu::getPermission)
|
||||
);
|
||||
List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
|
||||
StpUtil.getSession().set(Constants.PERMISSION_KEY, permissions);
|
||||
return permissions;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @MonthName: getRoleList
|
||||
* @Description: 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验)
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/7 15:08
|
||||
* @Param: [o, s]
|
||||
* @return: java.util.List<java.lang.String>
|
||||
**/
|
||||
@Override
|
||||
public List<String> getRoleList(Object loginId, String loginType) {
|
||||
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
if (Objects.nonNull(userSession)) {
|
||||
if (Objects.nonNull(StpUtil.getSession().get(Constants.ROLE_KEY))) {
|
||||
return (List<String>) StpUtil.getSession().get(Constants.ROLE_KEY);
|
||||
}
|
||||
|
||||
if (Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
List<String> roleIds = sysUserRoleService.list().stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
StpUtil.getSession().set(Constants.ROLE_KEY, roleIds);
|
||||
return roleIds;
|
||||
} else {
|
||||
List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
|
||||
if (Objects.nonNull(roles) && roles.size() > 0) {
|
||||
List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
StpUtil.getSession().set(Constants.ROLE_KEY, roleIds);
|
||||
return roleIds;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
//package com.tansci.handler;
|
||||
//
|
||||
//import cn.dev33.satoken.stp.StpInterface;
|
||||
//import cn.dev33.satoken.stp.StpUtil;
|
||||
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
//import com.tansci.common.constant.Constants;
|
||||
//import com.tansci.common.constant.Enums;
|
||||
//import com.tansci.domain.SysMenu;
|
||||
//import com.tansci.domain.SysRoleMenu;
|
||||
//import com.tansci.domain.SysUserRole;
|
||||
//import com.tansci.domain.vo.SysUserSessionVo;
|
||||
//import com.tansci.service.SysMenuService;
|
||||
//import com.tansci.service.SysRoleMenuService;
|
||||
//import com.tansci.service.SysUserRoleService;
|
||||
//import org.springframework.beans.factory.annotation.Autowired;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import java.util.List;
|
||||
//import java.util.Objects;
|
||||
//import java.util.stream.Collectors;
|
||||
//
|
||||
///**
|
||||
// * @ClassName: StpInterfaceHandler.java
|
||||
// * @ClassPath: com.tansci.handler.StpInterfaceHandler.java
|
||||
// * @Description: 自定义权限验证
|
||||
// * @Author: tanyp
|
||||
// * @Date: 2023/4/7 15:07
|
||||
// **/
|
||||
//@Component
|
||||
//public class StpInterfaceHandler implements StpInterface {
|
||||
//
|
||||
// @Autowired
|
||||
// private SysUserRoleService sysUserRoleService;
|
||||
// @Autowired
|
||||
// private SysRoleMenuService sysRoleMenuService;
|
||||
// @Autowired
|
||||
// private SysMenuService sysMenuService;
|
||||
//
|
||||
// /**
|
||||
// * @MonthName: getPermissionList
|
||||
// * @Description: 返回一个账号所拥有的权限码集合
|
||||
// * @Author: tanyp
|
||||
// * @Date: 2023/4/7 15:08
|
||||
// * @Param: [o, s]
|
||||
// * @return: java.util.List<java.lang.String>
|
||||
// **/
|
||||
// @Override
|
||||
// public List<String> getPermissionList(Object loginId, String loginType) {
|
||||
// SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
// if (Objects.nonNull(userSession)) {
|
||||
// if (Objects.nonNull(StpUtil.getSession().get(Constants.PERMISSION_KEY))) {
|
||||
// return (List<String>) StpUtil.getSession().get(Constants.PERMISSION_KEY);
|
||||
// }
|
||||
//
|
||||
// if (Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
// List<SysMenu> menus = sysMenuService.list(
|
||||
// Wrappers.<SysMenu>lambdaQuery()
|
||||
// .eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
|
||||
// .ne(SysMenu::getPermission, "")
|
||||
// .isNotNull(SysMenu::getPermission)
|
||||
// );
|
||||
// List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
|
||||
// StpUtil.getSession().set(Constants.PERMISSION_KEY, permissions);
|
||||
// return permissions;
|
||||
// } else {
|
||||
// List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
|
||||
// if (Objects.nonNull(roles) && roles.size() > 0) {
|
||||
// List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
// List<SysRoleMenu> roleMenus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().in(SysRoleMenu::getRoleId, roleIds));
|
||||
// if (Objects.nonNull(roleMenus) && roleMenus.size() > 0) {
|
||||
// List<SysMenu> menus = sysMenuService.list(
|
||||
// Wrappers.<SysMenu>lambdaQuery()
|
||||
// .in(SysMenu::getId, roleMenus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()))
|
||||
// .eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
|
||||
// .ne(SysMenu::getPermission, "")
|
||||
// .isNotNull(SysMenu::getPermission)
|
||||
// );
|
||||
// List<String> permissions = menus.stream().map(SysMenu::getPermission).collect(Collectors.toList());
|
||||
// StpUtil.getSession().set(Constants.PERMISSION_KEY, permissions);
|
||||
// return permissions;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * @MonthName: getRoleList
|
||||
// * @Description: 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验)
|
||||
// * @Author: tanyp
|
||||
// * @Date: 2023/4/7 15:08
|
||||
// * @Param: [o, s]
|
||||
// * @return: java.util.List<java.lang.String>
|
||||
// **/
|
||||
// @Override
|
||||
// public List<String> getRoleList(Object loginId, String loginType) {
|
||||
// SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
// if (Objects.nonNull(userSession)) {
|
||||
// if (Objects.nonNull(StpUtil.getSession().get(Constants.ROLE_KEY))) {
|
||||
// return (List<String>) StpUtil.getSession().get(Constants.ROLE_KEY);
|
||||
// }
|
||||
//
|
||||
// if (Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
// List<String> roleIds = sysUserRoleService.list().stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
// StpUtil.getSession().set(Constants.ROLE_KEY, roleIds);
|
||||
// return roleIds;
|
||||
// } else {
|
||||
// List<SysUserRole> roles = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, StpUtil.getLoginId()));
|
||||
// if (Objects.nonNull(roles) && roles.size() > 0) {
|
||||
// List<String> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
// StpUtil.getSession().set(Constants.ROLE_KEY, roleIds);
|
||||
// return roleIds;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return null;
|
||||
// }
|
||||
//}
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.tansci.domain.vo.ColumnsVo;
|
||||
import com.tansci.domain.vo.TablesVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: DataSourceMapper.java
|
||||
* @ClassPath: com.tansci.mapper.DataSourceMapper.java
|
||||
* @Description:数据源
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/23 14:44
|
||||
**/
|
||||
@Mapper
|
||||
public interface DataSourceMapper {
|
||||
|
||||
@Select("select table_schema,table_name,table_comment from information_schema.tables where table_schema = #{sourceName}")
|
||||
List<TablesVo> tables(@Param("sourceName") String sourceName);
|
||||
|
||||
@Select("select table_schema,table_name,column_name,column_comment,column_key,column_type,data_type,is_nullable,CHARACTER_MAXIMUM_LENGTH as columnLength from information_schema.columns where table_name = #{tableName}")
|
||||
List<ColumnsVo> columns(@Param("tableName") String tableName);
|
||||
|
||||
@Select("select column_name from information_schema.columns where table_name = #{tableName} and column_key = 'PRI' and table_schema = database() limit 1")
|
||||
String primary(@Param("tableName") String tableName);
|
||||
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.LcPages;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesMapper.java
|
||||
* @ClassPath: com.tansci.mapper.LcPagesMapper.java
|
||||
* @Description: 页面管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 8:56
|
||||
**/
|
||||
@Mapper
|
||||
public interface LcPagesMapper extends BaseMapper<LcPages> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.LcPagesMenu;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesMenuMapper.java
|
||||
* @ClassPath: com.tansci.mapper.LcPagesMenuMapper.java
|
||||
* @Description: 页面菜单关系
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 9:06
|
||||
**/
|
||||
@Mapper
|
||||
public interface LcPagesMenuMapper extends BaseMapper<LcPagesMenu> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysDict;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysDictMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysDictMapper.java
|
||||
* @Description: 字典信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:28
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysDictMapper extends BaseMapper<SysDict> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysLoginLog;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysLoginLogMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysLoginLogMapper.java
|
||||
* @Description: 登录日志
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:29
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysLoginLogMapper extends BaseMapper<SysLoginLog> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysMenu;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysMenuMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysMenuMapper.java
|
||||
* @Description: 菜单信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:26
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysOperLog;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOperLogMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysOperLogMapper.java
|
||||
* @Description: 操作日志
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:29
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysOperLogMapper extends BaseMapper<SysOperLog> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysOrg;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOrgMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysOrgMapper.java
|
||||
* @Description: 组织机构
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:27
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysOrgMapper extends BaseMapper<SysOrg> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysRole;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysRoleMapper.java
|
||||
* @Description: 角色信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:25
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysRoleMapper extends BaseMapper<SysRole> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysRoleMenu;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleMenuMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysRoleMenuMapper.java
|
||||
* @Description: 菜单角色
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:30
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysRoleOrg;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleOrgMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysRoleOrgMapper.java
|
||||
* @Description: 组织角色
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:30
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysRoleOrgMapper extends BaseMapper<SysRoleOrg> {
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysUserMapper.java
|
||||
* @Description: 用户信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:50
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||
|
||||
@Select("SELECT DISTINCT sm.permission\n" +
|
||||
"FROM sys_menu sm\n" +
|
||||
"right JOIN sys_role_menu srm ON sm.id = srm.menu_id\n" +
|
||||
"right JOIN sys_user_role sur ON sur.role_id = srm.role_id\n" +
|
||||
"right JOIN sys_user su ON su.id = sur.user_id AND su.id = #{userId} AND su.is_del = 0\n" +
|
||||
"WHERE sm.is_del = 0\n" +
|
||||
"AND sm.permission != ''\n" +
|
||||
"AND sm.permission IS NOT NULL")
|
||||
List<String> authorities(@Param("userId") String userId);
|
||||
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
package com.tansci.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tansci.domain.SysUserRole;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserRoleMapper.java
|
||||
* @ClassPath: com.tansci.mapper.SysUserRoleMapper.java
|
||||
* @Description: 用户权限
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:30
|
||||
**/
|
||||
@Mapper
|
||||
public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
|
||||
}
|
||||
@ -1,23 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.tansci.domain.vo.ColumnsVo;
|
||||
import com.tansci.domain.vo.TablesVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: DataSourceService.java
|
||||
* @ClassPath: com.tansci.service.DataSourceService.java
|
||||
* @Description: 数据源
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/23 15:20
|
||||
**/
|
||||
public interface DataSourceService {
|
||||
|
||||
List<TablesVo> tables(String sourceName);
|
||||
|
||||
List<ColumnsVo> columns(String tableName);
|
||||
|
||||
String primary(String tableName);
|
||||
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.LcPagesMenu;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesMenuService.java
|
||||
* @ClassPath: com.tansci.service.LcPagesMenuService.java
|
||||
* @Description: 页面菜单关系
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 9:07
|
||||
**/
|
||||
public interface LcPagesMenuService extends IService<LcPagesMenu> {
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.LcPages;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesSerice.java
|
||||
* @ClassPath: com.tansci.service.LcPagesSerice.java
|
||||
* @Description: 页面管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 8:56
|
||||
**/
|
||||
public interface LcPagesSerice extends IService<LcPages> {
|
||||
|
||||
IPage<LcPages> page(Page page, LcPages pages);
|
||||
|
||||
LcPages getPagesInfo(String menuId);
|
||||
|
||||
Object bindMenu(LcPages pages);
|
||||
|
||||
Object delete(String id);
|
||||
|
||||
Object batchDelete(LcPages pages);
|
||||
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysDict;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysDictService.java
|
||||
* @ClassPath: com.tansci.service.SysDictService.java
|
||||
* @Description: 字典信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:33
|
||||
**/
|
||||
public interface SysDictService extends IService<SysDict> {
|
||||
|
||||
List<SysDict> tree(SysDict dict);
|
||||
|
||||
List<SysDict> list(SysDict dict);
|
||||
|
||||
Object delete(String id);
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysLoginLog;
|
||||
|
||||
/**
|
||||
* @ClassName: SysLoginLogService.java
|
||||
* @ClassPath: com.tansci.service.SysLoginLogService.java
|
||||
* @Description: 登录日志
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:34
|
||||
**/
|
||||
public interface SysLoginLogService extends IService<SysLoginLog> {
|
||||
|
||||
IPage<SysLoginLog> onlineUser(Page page, String username);
|
||||
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysMenu;
|
||||
import com.tansci.domain.vo.SysMenuVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysMenuService.java
|
||||
* @ClassPath: com.tansci.service.SysMenuService.java
|
||||
* @Description: 菜单信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:35
|
||||
**/
|
||||
public interface SysMenuService extends IService<SysMenu> {
|
||||
|
||||
List<SysMenu> tree(SysMenu menu);
|
||||
|
||||
List<SysMenuVo> menus();
|
||||
|
||||
Object delete(String id);
|
||||
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysOperLog;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOperLogService.java
|
||||
* @ClassPath: com.tansci.service.SysOperLogService.java
|
||||
* @Description: 操作日志
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:35
|
||||
**/
|
||||
public interface SysOperLogService extends IService<SysOperLog> {
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysOrg;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOrgService.java
|
||||
* @ClassPath: com.tansci.service.SysOrgService.java
|
||||
* @Description: 组织信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:36
|
||||
**/
|
||||
public interface SysOrgService extends IService<SysOrg> {
|
||||
|
||||
List<SysOrg> list(SysOrg org);
|
||||
|
||||
Object delete(String id);
|
||||
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysRoleMenu;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleMenuService.java
|
||||
* @ClassPath: com.tansci.service.SysRoleMenuService.java
|
||||
* @Description: 菜单角色
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 10:26
|
||||
**/
|
||||
public interface SysRoleMenuService extends IService<SysRoleMenu> {
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysRoleOrg;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleOrgService.java
|
||||
* @ClassPath: com.tansci.service.SysRoleOrgService.java
|
||||
* @Description: 组织权限
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/11 13:36
|
||||
**/
|
||||
public interface SysRoleOrgService extends IService<SysRoleOrg> {
|
||||
}
|
||||
@ -1,37 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysRole;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleService.java
|
||||
* @ClassPath: com.tansci.service.SysRoleService.java
|
||||
* @Description: 角色信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:37
|
||||
**/
|
||||
public interface SysRoleService extends IService<SysRole> {
|
||||
|
||||
IPage<SysRole> page(Page page, SysRole role);
|
||||
|
||||
List<SysRole> list(SysRole role);
|
||||
|
||||
Object insert(SysRole role);
|
||||
|
||||
Object update(SysRole role);
|
||||
|
||||
Object delete(String id);
|
||||
|
||||
Object dataPermissions(SysRole role);
|
||||
|
||||
Object orgList(String roleId);
|
||||
|
||||
Object menuPermissions(SysRole role);
|
||||
|
||||
Object menuList(String roleId);
|
||||
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysUserRole;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserRoleService.java
|
||||
* @ClassPath: com.tansci.service.SysUserRoleService.java
|
||||
* @Description: 用户角色
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 10:04
|
||||
**/
|
||||
public interface SysUserRoleService extends IService<SysUserRole> {
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
package com.tansci.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tansci.domain.SysUser;
|
||||
import com.tansci.domain.vo.SysUserVo;
|
||||
import com.tansci.domain.vo.UserAuthVo;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserService.java
|
||||
* @ClassPath: com.tansci.service.SysUserService.java
|
||||
* @Description: 用户信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:51
|
||||
**/
|
||||
public interface SysUserService extends IService<SysUser> {
|
||||
|
||||
IPage<SysUser> page(Page page, SysUser user);
|
||||
|
||||
List<SysUser> list(SysUser user);
|
||||
|
||||
UserAuthVo info();
|
||||
|
||||
Object insert(SysUser user);
|
||||
|
||||
Object update(SysUser user);
|
||||
|
||||
Object del(String id);
|
||||
|
||||
SysUserVo login(HttpServletRequest request, SysUser user);
|
||||
|
||||
Object modifyPass(SysUser user);
|
||||
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.tansci.domain.vo.ColumnsVo;
|
||||
import com.tansci.domain.vo.TablesVo;
|
||||
import com.tansci.mapper.DataSourceMapper;
|
||||
import com.tansci.service.DataSourceService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: DataSourceServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.DataSourceServiceImpl.java
|
||||
* @Description: 数据源
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/23 15:20
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class DataSourceServiceImpl implements DataSourceService {
|
||||
|
||||
@Autowired
|
||||
private DataSourceMapper dataSourceMapper;
|
||||
|
||||
@Override
|
||||
public List<TablesVo> tables(String sourceName) {
|
||||
return dataSourceMapper.tables(sourceName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ColumnsVo> columns(String tableName) {
|
||||
return dataSourceMapper.columns(tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String primary(String tableName) {
|
||||
return dataSourceMapper.primary(tableName);
|
||||
}
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.domain.LcPagesMenu;
|
||||
import com.tansci.mapper.LcPagesMenuMapper;
|
||||
import com.tansci.service.LcPagesMenuService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesMenuServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.LcPagesMenuServiceImpl.java
|
||||
* @Description: 页面菜单关系
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 9:07
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class LcPagesMenuServiceImpl extends ServiceImpl<LcPagesMenuMapper, LcPagesMenu> implements LcPagesMenuService {
|
||||
}
|
||||
@ -1,98 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.common.exception.BusinessException;
|
||||
import com.tansci.domain.LcPages;
|
||||
import com.tansci.domain.LcPagesMenu;
|
||||
import com.tansci.mapper.LcPagesMapper;
|
||||
import com.tansci.service.LcPagesMenuService;
|
||||
import com.tansci.service.LcPagesSerice;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: LcPagesServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.LcPagesServiceImpl.java
|
||||
* @Description: 页面管理
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/5/11 8:57
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class LcPagesServiceImpl extends ServiceImpl<LcPagesMapper, LcPages> implements LcPagesSerice {
|
||||
|
||||
@Autowired
|
||||
private LcPagesMenuService lcPagesMenuService;
|
||||
|
||||
@Override
|
||||
public IPage<LcPages> page(Page page, LcPages pages) {
|
||||
IPage<LcPages> iPage = this.baseMapper.selectPage(page,
|
||||
Wrappers.<LcPages>lambdaQuery()
|
||||
.eq(Objects.nonNull(pages.getStatus()), LcPages::getStatus, pages.getStatus())
|
||||
.eq(Objects.nonNull(pages.getParentId()), LcPages::getParentId, pages.getParentId())
|
||||
.eq(Objects.nonNull(pages.getCreatorId()), LcPages::getCreatorId, pages.getCreatorId())
|
||||
.like(Objects.nonNull(pages.getTitle()), LcPages::getTitle, pages.getTitle())
|
||||
.orderByDesc(LcPages::getUpdateTime)
|
||||
);
|
||||
|
||||
if (Objects.nonNull(iPage.getRecords()) && iPage.getRecords().size() > 0) {
|
||||
List<LcPagesMenu> menus = lcPagesMenuService.list(Wrappers.<LcPagesMenu>lambdaQuery().in(LcPagesMenu::getPagesId, iPage.getRecords().stream().map(LcPages::getId).collect(Collectors.toList())));
|
||||
iPage.getRecords().forEach(item -> {
|
||||
item.setMenuIds(menus.stream().filter(i -> Objects.equals(i.getPagesId(), item.getId())).map(LcPagesMenu::getMenuId).collect(Collectors.toList()));
|
||||
});
|
||||
}
|
||||
|
||||
return iPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LcPages getPagesInfo(String menuId) {
|
||||
LcPagesMenu pagesMenu = lcPagesMenuService.getOne(Wrappers.<LcPagesMenu>lambdaQuery().eq(LcPagesMenu::getMenuId, menuId));
|
||||
if (Objects.isNull(pagesMenu)) {
|
||||
throw new BusinessException("该菜单未绑定页面");
|
||||
}
|
||||
return this.baseMapper.selectById(pagesMenu.getPagesId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object bindMenu(LcPages pages) {
|
||||
lcPagesMenuService.remove(Wrappers.<LcPagesMenu>lambdaQuery().eq(LcPagesMenu::getPagesId, pages.getId()));
|
||||
if (Objects.nonNull(pages.getMenuIds()) && pages.getMenuIds().size() > 0) {
|
||||
lcPagesMenuService.remove(Wrappers.<LcPagesMenu>lambdaQuery().in(LcPagesMenu::getMenuId, pages.getMenuIds()));
|
||||
List<LcPagesMenu> menus = Lists.newArrayList();
|
||||
pages.getMenuIds().forEach(item -> {
|
||||
menus.add(
|
||||
LcPagesMenu.builder().pagesId(pages.getId()).menuId(item).build()
|
||||
);
|
||||
});
|
||||
lcPagesMenuService.saveBatch(menus);
|
||||
}
|
||||
return "ok";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object delete(String id) {
|
||||
lcPagesMenuService.remove(Wrappers.<LcPagesMenu>lambdaQuery().eq(LcPagesMenu::getPagesId, id));
|
||||
return this.baseMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object batchDelete(LcPages pages) {
|
||||
lcPagesMenuService.remove(Wrappers.<LcPagesMenu>lambdaQuery().in(LcPagesMenu::getPagesId, pages.getIds()));
|
||||
return this.baseMapper.deleteBatchIds(pages.getIds());
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tansci.domain.SysDict;
|
||||
import com.tansci.mapper.SysDictMapper;
|
||||
import com.tansci.service.SysDictService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: SysDictServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysDictServiceImpl.java
|
||||
* @Description: 字典信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:39
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> implements SysDictService {
|
||||
|
||||
@Override
|
||||
public List<SysDict> tree(SysDict dict) {
|
||||
List<SysDict> list = this.baseMapper.selectList(
|
||||
Wrappers.<SysDict>lambdaQuery()
|
||||
.eq(Objects.nonNull(dict.getParentId()), SysDict::getParentId, dict.getParentId())
|
||||
.eq(Objects.nonNull(dict.getGroupName()), SysDict::getGroupName, dict.getGroupName())
|
||||
.eq(Objects.nonNull(dict.getDicValue()), SysDict::getDicValue, dict.getDicValue())
|
||||
.orderByDesc(SysDict::getUpdateTime)
|
||||
);
|
||||
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysDict::getId))), ArrayList::new));
|
||||
Map<String, List<SysDict>> map = list.stream().collect(Collectors.groupingBy(SysDict::getParentId, Collectors.toList()));
|
||||
list.stream().forEach(item -> item.setChildren(map.get(item.getId())));
|
||||
|
||||
List<SysDict> orgList = map.get("0").stream().sorted(Comparator.comparing(SysDict::getSort)).collect(Collectors.toList());
|
||||
return orgList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysDict> list(SysDict dict) {
|
||||
return this.baseMapper.selectList(
|
||||
Wrappers.<SysDict>lambdaQuery()
|
||||
.eq(Objects.nonNull(dict.getParentId()), SysDict::getParentId, dict.getParentId())
|
||||
.eq(Objects.nonNull(dict.getGroupName()), SysDict::getGroupName, dict.getGroupName())
|
||||
.eq(Objects.nonNull(dict.getDicValue()), SysDict::getDicValue, dict.getDicValue())
|
||||
.orderByDesc(SysDict::getUpdateTime)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object delete(String id) {
|
||||
List<SysDict> orgs = this.baseMapper.selectList(Wrappers.<SysDict>lambdaQuery().eq(SysDict::getParentId, id));
|
||||
List<String> ids = Lists.newArrayList(id);
|
||||
ids.addAll(orgs.stream().map(SysDict::getId).collect(Collectors.toList()));
|
||||
return this.baseMapper.deleteBatchIds(ids);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.domain.SysLoginLog;
|
||||
import com.tansci.mapper.SysLoginLogMapper;
|
||||
import com.tansci.service.SysLoginLogService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: SysLoginLogServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysLoginLogServiceImpl.java
|
||||
* @Description: 登录日志
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:40
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysLoginLogServiceImpl extends ServiceImpl<SysLoginLogMapper, SysLoginLog> implements SysLoginLogService {
|
||||
|
||||
@Override
|
||||
public IPage<SysLoginLog> onlineUser(Page page, String username) {
|
||||
List<String> tokens = StpUtil.searchTokenValue("", -1, 99999, true);
|
||||
if (Objects.nonNull(tokens) && tokens.size() > 0) {
|
||||
return this.baseMapper.selectPage(page,
|
||||
Wrappers.<SysLoginLog>lambdaQuery()
|
||||
.in(SysLoginLog::getToken, tokens.stream().map(item -> item.replace("token:login:token:", "")).collect(Collectors.toList()))
|
||||
.eq(Objects.nonNull(username), SysLoginLog::getUsername, username)
|
||||
);
|
||||
}
|
||||
return new Page<>();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,149 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.common.constant.Enums;
|
||||
import com.tansci.domain.SysMenu;
|
||||
import com.tansci.domain.SysRoleMenu;
|
||||
import com.tansci.domain.vo.SysMenuVo;
|
||||
import com.tansci.domain.vo.SysUserSessionVo;
|
||||
import com.tansci.mapper.SysMenuMapper;
|
||||
import com.tansci.service.SysMenuService;
|
||||
import com.tansci.service.SysRoleMenuService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: SysMenuServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysMenuServiceImpl.java
|
||||
* @Description: 菜单信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:41
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
|
||||
|
||||
@Autowired
|
||||
private SysRoleMenuService sysRoleMenuService;
|
||||
|
||||
@Override
|
||||
public List<SysMenu> tree(SysMenu menu) {
|
||||
List<String> menuIds = Lists.newArrayList();
|
||||
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
if (Objects.nonNull(userSession) && Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
menuIds.addAll(this.list().stream().map(SysMenu::getId).collect(Collectors.toList()));
|
||||
} else {
|
||||
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().
|
||||
in(Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0, SysRoleMenu::getRoleId, StpUtil.getRoleList())
|
||||
);
|
||||
menuIds.addAll(menus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()));
|
||||
}
|
||||
if (Objects.isNull(menuIds) || menuIds.size() == 0) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
List<SysMenu> list = this.baseMapper.selectList(
|
||||
Wrappers.<SysMenu>lambdaQuery()
|
||||
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.in(Objects.nonNull(menuIds) && menuIds.size() > 0, SysMenu::getId, menuIds)
|
||||
.eq(Objects.nonNull(menu.getParentId()), SysMenu::getParentId, menu.getParentId())
|
||||
.eq(Objects.nonNull(menu.getIsShow()), SysMenu::getIsShow, menu.getIsShow())
|
||||
.like(Objects.nonNull(menu.getName()), SysMenu::getName, menu.getName())
|
||||
.like(Objects.nonNull(menu.getChineseName()), SysMenu::getChineseName, menu.getChineseName())
|
||||
.orderByDesc(SysMenu::getUpdateTime)
|
||||
);
|
||||
|
||||
if (Objects.isNull(list) || list.size() == 0) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysMenu::getId))), ArrayList::new));
|
||||
Map<String, List<SysMenu>> map = list.stream().collect(Collectors.groupingBy(SysMenu::getParentId, Collectors.toList()));
|
||||
list.stream().forEach(item -> item.setChildren(map.get(item.getId())));
|
||||
|
||||
List<SysMenu> menuList = map.get("0").stream().sorted(Comparator.comparing(SysMenu::getSort)).collect(Collectors.toList());
|
||||
return menuList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenuVo> menus() {
|
||||
List<String> menuIds = Lists.newArrayList();
|
||||
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
if (Objects.nonNull(userSession) && Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
menuIds.addAll(this.list().stream().map(SysMenu::getId).collect(Collectors.toList()));
|
||||
} else {
|
||||
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().
|
||||
in(Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0, SysRoleMenu::getRoleId, StpUtil.getRoleList())
|
||||
);
|
||||
menuIds.addAll(menus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()));
|
||||
}
|
||||
if (Objects.isNull(menuIds) || menuIds.size() == 0) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
List<SysMenu> list = this.baseMapper.selectList(
|
||||
Wrappers.<SysMenu>lambdaQuery()
|
||||
.eq(SysMenu::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.eq(SysMenu::getIsShow, 1)
|
||||
.in(Objects.nonNull(menuIds) && menuIds.size() > 0, SysMenu::getId, menuIds)
|
||||
.orderByAsc(SysMenu::getSort)
|
||||
);
|
||||
|
||||
if (Objects.isNull(list) || list.size() == 0) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
List<SysMenuVo> newList = new ArrayList<>();
|
||||
for (SysMenu menu : list) {
|
||||
Map<String, Object> meta = new HashMap<>();
|
||||
meta.put("title", menu.getChineseName());
|
||||
meta.put("keepAlive", Objects.equals(1, menu.getKeepAlive()) ? true : false);
|
||||
meta.put("isShow", Objects.equals(1, menu.getIsShow()) ? true : false);
|
||||
meta.put("id", menu.getId());
|
||||
meta.put("openMode", menu.getOpenMode());
|
||||
meta.put("type", menu.getComponentType());
|
||||
newList.add(
|
||||
SysMenuVo.builder()
|
||||
.id(menu.getId())
|
||||
.parentId(menu.getParentId())
|
||||
.name(menu.getName())
|
||||
.path(menu.getUrl())
|
||||
.icon(menu.getIcon())
|
||||
.sort(menu.getSort())
|
||||
.component(Objects.nonNull(menu.getComponent()) && menu.getComponent().length() > 0 ? menu.getComponent() : "Layout")
|
||||
.componentType(menu.getComponentType())
|
||||
.isShow(Objects.equals(1, menu.getIsShow()) ? true : false)
|
||||
.meta(meta)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
newList = newList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysMenuVo::getId))), ArrayList::new));
|
||||
Map<String, List<SysMenuVo>> map = newList.stream().collect(Collectors.groupingBy(SysMenuVo::getParentId, Collectors.toList()));
|
||||
newList.stream().forEach(item -> item.setChildren(map.get(item.getId())));
|
||||
|
||||
List<SysMenuVo> menuList = map.get("0").stream().sorted(Comparator.comparing(SysMenuVo::getSort)).collect(Collectors.toList());
|
||||
return menuList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object delete(String id) {
|
||||
List<SysMenu> menus = this.baseMapper.selectList(Wrappers.<SysMenu>lambdaQuery().eq(SysMenu::getParentId, id));
|
||||
List<String> ids = Lists.newArrayList(id);
|
||||
ids.addAll(menus.stream().map(SysMenu::getId).collect(Collectors.toList()));
|
||||
int row = this.baseMapper.deleteBatchIds(ids);
|
||||
if (row > 0) {
|
||||
sysRoleMenuService.remove(Wrappers.<SysRoleMenu>lambdaQuery().in(SysRoleMenu::getMenuId, ids));
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.domain.SysOperLog;
|
||||
import com.tansci.mapper.SysOperLogMapper;
|
||||
import com.tansci.service.SysOperLogService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOperLogServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysOperLogServiceImpl.java
|
||||
* @Description: 操作日志
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:42
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysOperLogServiceImpl extends ServiceImpl<SysOperLogMapper, SysOperLog> implements SysOperLogService {
|
||||
}
|
||||
@ -1,81 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.common.constant.Enums;
|
||||
import com.tansci.domain.SysOrg;
|
||||
import com.tansci.domain.SysRoleOrg;
|
||||
import com.tansci.domain.vo.SysUserSessionVo;
|
||||
import com.tansci.mapper.SysOrgMapper;
|
||||
import com.tansci.service.SysOrgService;
|
||||
import com.tansci.service.SysRoleOrgService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: SysOrgServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysOrgServiceImpl.java
|
||||
* @Description: 组织信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:43
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> implements SysOrgService {
|
||||
|
||||
@Autowired
|
||||
private SysRoleOrgService sysRoleOrgService;
|
||||
|
||||
@Override
|
||||
public List<SysOrg> list(SysOrg org) {
|
||||
List<String> orgIds = Lists.newArrayList();
|
||||
SysUserSessionVo userSession = (SysUserSessionVo) StpUtil.getSession().get(StpUtil.getLoginId().toString());
|
||||
if (Objects.nonNull(userSession) && Objects.equals(Enums.USER_TYPE_1.getKey(), userSession.getType())) {
|
||||
orgIds.addAll(this.baseMapper.selectList(Wrappers.lambdaQuery()).stream().map(SysOrg::getId).collect(Collectors.toList()));
|
||||
} else {
|
||||
List<SysRoleOrg> menus = sysRoleOrgService.list(Wrappers.<SysRoleOrg>lambdaQuery().
|
||||
in(Objects.nonNull(StpUtil.getRoleList()) && StpUtil.getRoleList().size() > 0, SysRoleOrg::getRoleId, StpUtil.getRoleList())
|
||||
);
|
||||
orgIds.addAll(menus.stream().map(SysRoleOrg::getOrgId).collect(Collectors.toList()));
|
||||
}
|
||||
if (Objects.isNull(orgIds) || orgIds.size() == 0) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
List<SysOrg> list = this.baseMapper.selectList(
|
||||
Wrappers.<SysOrg>lambdaQuery()
|
||||
.eq(SysOrg::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.in(Objects.nonNull(orgIds) && orgIds.size() > 0, SysOrg::getId, orgIds)
|
||||
.eq(Objects.nonNull(org.getParentId()), SysOrg::getParentId, org.getParentId())
|
||||
.eq(Objects.nonNull(org.getCode()), SysOrg::getCode, org.getCode())
|
||||
.like(Objects.nonNull(org.getName()), SysOrg::getName, org.getName())
|
||||
.orderByDesc(SysOrg::getUpdateTime)
|
||||
);
|
||||
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysOrg::getId))), ArrayList::new));
|
||||
Map<String, List<SysOrg>> map = list.stream().collect(Collectors.groupingBy(SysOrg::getParentId, Collectors.toList()));
|
||||
list.stream().forEach(item -> item.setChildren(map.get(item.getId())));
|
||||
|
||||
List<SysOrg> orgList = map.get("0").stream().sorted(Comparator.comparing(SysOrg::getSort)).collect(Collectors.toList());
|
||||
return orgList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object delete(String id) {
|
||||
List<SysOrg> orgs = this.baseMapper.selectList(Wrappers.<SysOrg>lambdaQuery().eq(SysOrg::getParentId, id));
|
||||
List<String> ids = Lists.newArrayList(id);
|
||||
ids.addAll(orgs.stream().map(SysOrg::getId).collect(Collectors.toList()));
|
||||
int row = this.baseMapper.deleteBatchIds(ids);
|
||||
if (row > 0) {
|
||||
sysRoleOrgService.remove(Wrappers.<SysRoleOrg>lambdaQuery().in(SysRoleOrg::getOrgId, ids));
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.domain.SysRoleMenu;
|
||||
import com.tansci.mapper.SysRoleMenuMapper;
|
||||
import com.tansci.service.SysRoleMenuService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleMenuServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysRoleMenuServiceImpl.java
|
||||
* @Description: 菜单权限
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 10:26
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.domain.SysRoleOrg;
|
||||
import com.tansci.mapper.SysRoleOrgMapper;
|
||||
import com.tansci.service.SysRoleOrgService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleOrgServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysRoleOrgServiceImpl.java
|
||||
* @Description: 组织权限
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/4/11 13:36
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysRoleOrgServiceImpl extends ServiceImpl<SysRoleOrgMapper, SysRoleOrg> implements SysRoleOrgService {
|
||||
}
|
||||
@ -1,132 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.domain.*;
|
||||
import com.tansci.mapper.SysRoleMapper;
|
||||
import com.tansci.service.*;
|
||||
import com.tansci.utils.UUIDUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: SysRoleServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysRoleServiceImpl.java
|
||||
* @Description: 权限信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 9:44
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
|
||||
|
||||
@Autowired
|
||||
private SysRoleMenuService sysRoleMenuService;
|
||||
@Autowired
|
||||
private SysMenuService sysMenuService;
|
||||
@Autowired
|
||||
private SysRoleOrgService sysRoleOrgService;
|
||||
@Autowired
|
||||
private SysOrgService sysOrgService;
|
||||
|
||||
@Override
|
||||
public IPage<SysRole> page(Page page, SysRole role) {
|
||||
return this.baseMapper.selectPage(page,
|
||||
Wrappers.<SysRole>lambdaQuery().eq(SysRole::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.eq(Objects.nonNull(role.getCode()), SysRole::getCode, role.getCode())
|
||||
.eq(Objects.nonNull(role.getCreator()), SysRole::getCreator, role.getCreator())
|
||||
.like(Objects.nonNull(role.getName()), SysRole::getName, role.getName())
|
||||
.orderByDesc(SysRole::getUpdateTime)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysRole> list(SysRole role) {
|
||||
return this.baseMapper.selectList(
|
||||
Wrappers.<SysRole>lambdaQuery().eq(SysRole::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.eq(Objects.nonNull(role.getCode()), SysRole::getCode, role.getCode())
|
||||
.eq(Objects.nonNull(role.getCreator()), SysRole::getCreator, role.getCreator())
|
||||
.like(Objects.nonNull(role.getName()), SysRole::getName, role.getName())
|
||||
.orderByDesc(SysRole::getUpdateTime)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object insert(SysRole role) {
|
||||
role.setCreator(String.valueOf(StpUtil.getLoginId()));
|
||||
role.setCode("SR"+UUIDUtils.getUUID(10).toUpperCase());
|
||||
role.setIsDel(Constants.NOT_DEL_FALG);
|
||||
role.setUpdateTime(LocalDateTime.now());
|
||||
role.setCreateTime(LocalDateTime.now());
|
||||
return this.baseMapper.insert(role);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object update(SysRole role) {
|
||||
role.setUpdateTime(LocalDateTime.now());
|
||||
return this.baseMapper.updateById(role);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object delete(String id) {
|
||||
int row = this.baseMapper.deleteById(id);
|
||||
if (row > 0) {
|
||||
sysRoleMenuService.remove(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, id));
|
||||
sysRoleOrgService.remove(Wrappers.<SysRoleOrg>lambdaQuery().eq(SysRoleOrg::getRoleId, id));
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object dataPermissions(SysRole role) {
|
||||
sysRoleOrgService.remove(Wrappers.<SysRoleOrg>lambdaQuery().eq(SysRoleOrg::getRoleId, role.getId()));
|
||||
List<SysRoleOrg> orgs = new ArrayList<>();
|
||||
role.getOrgIds().forEach(item -> {
|
||||
orgs.add(SysRoleOrg.builder().roleId(role.getId()).orgId(item).build());
|
||||
});
|
||||
return sysRoleOrgService.saveBatch(orgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object orgList(String roleId) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("list", sysOrgService.list(SysOrg.builder().build()));
|
||||
|
||||
List<SysRoleOrg> orgs = sysRoleOrgService.list(Wrappers.<SysRoleOrg>lambdaQuery().eq(SysRoleOrg::getRoleId, roleId));
|
||||
if (Objects.nonNull(orgs) && orgs.size() > 0) {
|
||||
map.put("selected", orgs.stream().map(SysRoleOrg::getOrgId).collect(Collectors.toList()));
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object menuPermissions(SysRole role) {
|
||||
sysRoleMenuService.remove(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, role.getId()));
|
||||
List<SysRoleMenu> menus = new ArrayList<>();
|
||||
role.getMenuIds().forEach(item -> {
|
||||
menus.add(SysRoleMenu.builder().roleId(role.getId()).menuId(item).build());
|
||||
});
|
||||
return sysRoleMenuService.saveBatch(menus);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object menuList(String roleId) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("list", sysMenuService.tree(SysMenu.builder().build()));
|
||||
|
||||
List<SysRoleMenu> menus = sysRoleMenuService.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, roleId));
|
||||
if (Objects.nonNull(menus) && menus.size() > 0) {
|
||||
map.put("selected", menus.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()));
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.domain.SysUserRole;
|
||||
import com.tansci.mapper.SysUserRoleMapper;
|
||||
import com.tansci.service.SysUserRoleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserRoleServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysUserRoleServiceImpl.java
|
||||
* @Description: 用户权限
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/29 10:05
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
|
||||
}
|
||||
@ -1,201 +0,0 @@
|
||||
package com.tansci.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tansci.common.constant.Constants;
|
||||
import com.tansci.common.exception.BusinessException;
|
||||
import com.tansci.domain.SysLoginLog;
|
||||
import com.tansci.domain.SysUser;
|
||||
import com.tansci.domain.SysUserRole;
|
||||
import com.tansci.domain.vo.SysUserSessionVo;
|
||||
import com.tansci.domain.vo.SysUserVo;
|
||||
import com.tansci.domain.vo.UserAuthVo;
|
||||
import com.tansci.mapper.SysUserMapper;
|
||||
import com.tansci.service.SysLoginLogService;
|
||||
import com.tansci.service.SysUserRoleService;
|
||||
import com.tansci.service.SysUserService;
|
||||
import com.tansci.utils.Sha256Util;
|
||||
import com.tansci.utils.SystemUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @ClassName: SysUserServiceImpl.java
|
||||
* @ClassPath: com.tansci.service.impl.SysUserServiceImpl.java
|
||||
* @Description: 用户信息
|
||||
* @Author: tanyp
|
||||
* @Date: 2023/3/20 15:51
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
|
||||
|
||||
@Autowired
|
||||
private SysUserRoleService sysUserRoleService;
|
||||
@Autowired
|
||||
private SysLoginLogService sysLoginLogService;
|
||||
|
||||
@Override
|
||||
public IPage<SysUser> page(Page page, SysUser user) {
|
||||
IPage<SysUser> iPage = this.baseMapper.selectPage(page,
|
||||
Wrappers.<SysUser>lambdaQuery()
|
||||
.eq(SysUser::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.eq(Objects.nonNull(user.getUsername()), SysUser::getUsername, user.getUsername())
|
||||
.eq(Objects.nonNull(user.getPhone()), SysUser::getPhone, user.getPhone())
|
||||
.eq(Objects.nonNull(user.getNickname()), SysUser::getNickname, user.getNickname())
|
||||
.eq(Objects.nonNull(user.getType()), SysUser::getType, user.getType())
|
||||
);
|
||||
|
||||
if (Objects.nonNull(iPage) && Objects.nonNull(iPage.getRecords())) {
|
||||
List<SysUserRole> roles = sysUserRoleService.list();
|
||||
iPage.getRecords().forEach(item -> {
|
||||
Optional<SysUserRole> rOptional = roles.stream().filter(u -> Objects.equals(u.getUserId(), item.getId())).findFirst();
|
||||
if (rOptional.isPresent()) {
|
||||
item.setRoleId(rOptional.get().getRoleId());
|
||||
}
|
||||
});
|
||||
}
|
||||
return iPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUser> list(SysUser user) {
|
||||
return this.baseMapper.selectList(
|
||||
Wrappers.<SysUser>lambdaQuery()
|
||||
.eq(SysUser::getIsDel, Constants.NOT_DEL_FALG)
|
||||
.eq(Objects.nonNull(user.getType()), SysUser::getType, user.getType())
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserAuthVo info() {
|
||||
SysUser user = this.baseMapper.selectById(String.valueOf(StpUtil.getLoginId()));
|
||||
// 获取当前用户权限code
|
||||
List<String> authorities = this.baseMapper.authorities(String.valueOf(StpUtil.getLoginId()));
|
||||
return UserAuthVo.builder()
|
||||
.username(user.getUsername())
|
||||
.nickname(user.getNickname())
|
||||
.type(user.getType())
|
||||
.phone(user.getPhone())
|
||||
.email(user.getEmail())
|
||||
.authorities(authorities)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object insert(SysUser user) {
|
||||
Integer count = this.baseMapper.selectCount(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, user.getUsername()));
|
||||
if (Objects.nonNull(count) && count > 0) {
|
||||
throw new BusinessException("用户名称已存在!");
|
||||
}
|
||||
user.setIsDel(Constants.NOT_DEL_FALG);
|
||||
user.setUpdateTime(LocalDateTime.now());
|
||||
user.setCreateTime(LocalDateTime.now());
|
||||
user.setPassword(Sha256Util.getSHA256(user.getPassword()));
|
||||
int rows = this.baseMapper.insert(user);
|
||||
if (rows > 0) {
|
||||
sysUserRoleService.save(SysUserRole.builder().userId(user.getId()).roleId(user.getRoleId()).build());
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object update(SysUser user) {
|
||||
user.setUpdateTime(LocalDateTime.now());
|
||||
return this.baseMapper.updateById(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object del(String id) {
|
||||
int rows = this.baseMapper.deleteById(id);
|
||||
if (rows > 0) {
|
||||
sysUserRoleService.remove(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, id));
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysUserVo login(HttpServletRequest request, SysUser user) {
|
||||
SysLoginLog loginLog = SysLoginLog.builder()
|
||||
.username(user.getUsername())
|
||||
.failPassword(user.getPassword())
|
||||
.type("成功")
|
||||
.ip(SystemUtils.getIp(request))
|
||||
.address(SystemUtils.getAddress(request))
|
||||
.browser(SystemUtils.getBrowser(request))
|
||||
.os(SystemUtils.getOS(request))
|
||||
.build();
|
||||
|
||||
try {
|
||||
// 校验验证码
|
||||
String code = (String) request.getSession().getAttribute("verifyCode");
|
||||
if (Objects.isNull(user.getCode()) || !Objects.equals(code, user.getCode())) {
|
||||
loginLog.setType("失败");
|
||||
loginLog.setMessage("验证码有误");
|
||||
throw new BusinessException("验证码有误,请重新获取!");
|
||||
}
|
||||
|
||||
SysUser sysUser = this.baseMapper.selectOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, user.getUsername()));
|
||||
if (Objects.isNull(sysUser) && !Objects.equals(sysUser.getPassword(), Sha256Util.getSHA256(user.getPassword()))) {
|
||||
loginLog.setType("失败");
|
||||
loginLog.setMessage("用户名或密码有误");
|
||||
throw new BusinessException("登录失败,用户名或密码有误!");
|
||||
}
|
||||
|
||||
if (Objects.equals(Constants.USER_IS_LOGIN_ON, sysUser.getIsLogin())) {
|
||||
loginLog.setType("失败");
|
||||
loginLog.setMessage("该账号已被禁用");
|
||||
throw new BusinessException("登录失败,该账号已被禁用!");
|
||||
}
|
||||
|
||||
// 生成token
|
||||
StpUtil.login(sysUser.getId());
|
||||
loginLog.setToken(StpUtil.getTokenInfo().getTokenValue());
|
||||
|
||||
// 存储session
|
||||
StpUtil.getSession().set(sysUser.getId(),
|
||||
SysUserSessionVo.builder()
|
||||
.id(sysUser.getId())
|
||||
.username(sysUser.getUsername())
|
||||
.nickname(sysUser.getNickname())
|
||||
.type(sysUser.getType())
|
||||
.build()
|
||||
);
|
||||
|
||||
return SysUserVo.builder()
|
||||
.username(sysUser.getUsername())
|
||||
.nickname(sysUser.getNickname())
|
||||
.type(sysUser.getType())
|
||||
.avatar(sysUser.getAvatar())
|
||||
.loginTime(LocalDateTime.now())
|
||||
.token(StpUtil.getTokenInfo().getTokenValue())
|
||||
.build();
|
||||
} finally {
|
||||
sysLoginLogService.save(loginLog);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object modifyPass(SysUser user) {
|
||||
SysUser sysUser = this.baseMapper.selectOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, user.getUsername()));
|
||||
|
||||
if (Objects.isNull(sysUser) || !Objects.equals(sysUser.getPassword(), Sha256Util.getSHA256(user.getOldPassword()))) {
|
||||
throw new BusinessException("原始密码错误,请重新输入!");
|
||||
}
|
||||
|
||||
sysUser.setPassword(Sha256Util.getSHA256(user.getPassword()));
|
||||
sysUser.setUpdateTime(LocalDateTime.now());
|
||||
return this.baseMapper.updateById(sysUser);
|
||||
}
|
||||
|
||||
}
|
||||
@ -103,8 +103,7 @@ public class SystemUtils {
|
||||
* @Param: [ip]
|
||||
* @return: java.lang.String
|
||||
**/
|
||||
public static String getAddress(HttpServletRequest request) {
|
||||
String ip = getIp(request);
|
||||
public static String getAddress(String ip) {
|
||||
try {
|
||||
if (Ipv4Util.isInnerIP(ip)) {
|
||||
return "内网IP";
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
server:
|
||||
port: 8000
|
||||
servlet:
|
||||
context-path: /tansci/
|
||||
|
||||
spring:
|
||||
jackson:
|
||||
@ -59,13 +57,13 @@ sa-token:
|
||||
# magic-api
|
||||
magic-api:
|
||||
# 配置web页面入口
|
||||
web: /magic/web
|
||||
web: /api/web
|
||||
# 配置文件存储位置
|
||||
resource:
|
||||
type: database # 配置存储在数据库中
|
||||
tableName: magic_api_file # 数据库中的表名
|
||||
# datasource: tansci_boot # 指定数据源(单数据源时无需配置,多数据源时默认使用主数据源,如果存在其他数据源中需要指定。)
|
||||
prefix: /magic-api # key前缀
|
||||
prefix: /tansci-api # key前缀
|
||||
readonly: false # 是否是只读模式
|
||||
# location: data/magic-api #存储路径
|
||||
prefix: / # 接口前缀,可以不配置
|
||||
|
||||
Loading…
Reference in New Issue
Block a user