From 1b4d9b2dd4ed07758241d1143890b3a86b3c0641 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 28 四月 2024 14:15:49 +0800
Subject: [PATCH] 权限管理开发基本功能已完成,待前端对接
---
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java | 10
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java | 31 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java | 40 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java | 35 +
UI-Project/src/views/LoginView.vue | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java | 59 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java | 31 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java | 10
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java | 128 ++----
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java | 5
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java | 4
UI-Project/src/router/index.js | 30 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java | 26 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java | 35 +
hangzhoumesParent/common/springsecurity/src/main/resources/application.yml | 36 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java | 6
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java | 44 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java | 3
UI-Project/src/layout/MainErpView.vue | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java | 158 +++----
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml | 5
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java | 38 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java | 33 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java | 64 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java | 40 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java | 5
/dev/null | 29 -
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java | 7
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java | 26
hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java | 26 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java | 58 ++
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java | 103 ++++
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java | 3
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java | 4
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java | 7
49 files changed, 877 insertions(+), 324 deletions(-)
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index d2e3ed7..dc3f4f9 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -23,7 +23,7 @@
//鎻愬彇鑿滃崟妯″潡鍒楄〃
let menuList = $ref([])
-request.get('/loadGlass/menu/sysMenu/list').then((res) => {
+request.get('/loadGlass/sys/menu/getMenuTree').then((res) => {
if (res.code == 200) {
menuList = deepClone(res.data)
} else {
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index c51d269..ceeccbb 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -1,5 +1,9 @@
import {createRouter, createWebHashHistory} from 'vue-router'
+import User from '../views/sys/User.vue'
+import Role from '../views/sys/Role.vue'
+import Menu from '../views/sys/Menu.vue'
+
const router = createRouter({
history: createWebHashHistory(),
routes: [
@@ -200,10 +204,34 @@
component: () => import('../views/Visualization/screenthree.vue')
}
]
+ },
+
+ /*----------- 绠$悊绯荤粺 ----------------*/
+ {
+ path: 'sys',
+ name: 'screen',
+ component: () => import('../views/Visualization/screen.vue'),
+ children: [
+ {
+ path: '/sys/users',
+ name: 'SysUser',
+ component: User
+ },
+ {
+ path: '/sys/roles',
+ name: 'SysRole',
+ component: Role
+ },
+ {
+ path: '/sys/menus',
+ name: 'SysMenu',
+ component: Menu
+ },
+ ]
},
{
path: '',
- redirect:'/Slicecage/slicecage'
+ redirect: '/Slicecage/slicecage'
}
]
},
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 21d4f05..7206227 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -48,7 +48,7 @@
if (valid) {
loginLoadings.value = true
request
- .post('/loadGlass/userinfo/login', userForm)
+ .post('/loadGlass/sys/user/login', userForm)
.then((res) => {
if (res['code'] == 200) {
store.$patch({user: res.data})
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
index f95b3bb..0062ed2 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
@@ -7,13 +7,14 @@
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.Contact;
-import springfox.documentation.service.Parameter;
+import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
/**
@@ -46,9 +47,26 @@
.apis(RequestHandlerSelectors.basePackage("com.mes"))
.paths(PathSelectors.any())
.build()
- .globalOperationParameters(pars);
+ .globalOperationParameters(pars)
+ .securitySchemes(Collections.EMPTY_LIST)
+ .securityContexts(Arrays.asList(securityContext()));
}
+ private SecurityContext securityContext() {
+ return SecurityContext.builder()
+ .securityReferences(defaultAuth())
+ .forPaths(PathSelectors.any())
+ .build();
+ }
+
+ private List<SecurityReference> defaultAuth() {
+ AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+ authorizationScopes[0] = authorizationScope;
+ return Arrays.asList(new SecurityReference("Authorization", authorizationScopes));
+ }
+
+
private ApiInfo webApiInfo() {
return new ApiInfoBuilder()
.title("缃戠珯-API鏂囨。")
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java
similarity index 60%
rename from hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java
index e58f366..d70b171 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/entity/request/GeneralRequest.java
@@ -1,4 +1,4 @@
-package com.mes.userinfo.entity.request;
+package com.mes.entity.request;
import cn.hutool.db.Page;
import lombok.Data;
@@ -9,9 +9,9 @@
* @Description:
*/
@Data
-public class UserRequest {
+public class GeneralRequest {
- private String userName;
+ private String key;
private Page page;
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/base/BaseController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/base/BaseController.java
deleted file mode 100644
index ac66731..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/base/BaseController.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.mes.base;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.mes.common.utils.RedisUtil;
-import com.mes.menu.service.SysMenuService;
-import com.mes.role.service.SysRoleMenuService;
-import com.mes.role.service.SysRoleService;
-import com.mes.userinfo.service.SysUserRoleService;
-import com.mes.userinfo.service.SysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.ServletRequestUtils;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * @Author : zhoush
- * @Date: 2024/4/24 10:00
- * @Description:
- */
-public class BaseController {
- @Autowired
- public HttpServletRequest req;
-
- @Autowired
- public RedisUtil redisUtil;
-
- @Autowired
- public SysUserService sysUserService;
-
- @Autowired
- public SysRoleService sysRoleService;
-
- @Autowired
- public SysMenuService sysMenuService;
-
- @Autowired
- public SysUserRoleService sysUserRoleService;
-
- @Autowired
- public SysRoleMenuService sysRoleMenuService;
-
- /**
- * 鑾峰彇椤甸潰
- *
- * @return
- */
- public Page getPage() {
- int current = ServletRequestUtils.getIntParameter(req, "cuurent", 1);
- int size = ServletRequestUtils.getIntParameter(req, "size", 10);
-
- return new Page(current, size);
- }
-}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
index cfe6197..e5f3071 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
@@ -2,6 +2,7 @@
import com.mes.common.filter.JwtAuthenticationTokenFilter;
+import com.mes.common.handler.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -13,8 +14,6 @@
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.security.web.AuthenticationEntryPoint;
-import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@Configuration
@@ -23,12 +22,20 @@
public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+ @Autowired
+ LoginFailureHandler loginFailureHandler;
@Autowired
- private AuthenticationEntryPoint authenticationEntryPoint;
+ LoginSuccessHandler loginSuccessHandler;
@Autowired
- private AccessDeniedHandler accessDeniedHandler;
+ JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint;
+
+ @Autowired
+ JwtAccessDeniedHandler jwtAccessDeniedHandler;
+
+ @Autowired
+ JwtLogoutSuccessHandler jwtLogoutSuccessHandler;
@Bean
public PasswordEncoder passwordEncoder() {
@@ -40,25 +47,42 @@
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
- http
- //鍏抽棴csrf
- .csrf().disable()
- //涓嶉�氳繃Session鑾峰彇SecurityContext
- .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+
+ http.cors().and().csrf().disable()
+
+ // 鐧诲綍閰嶇疆
+ .formLogin()
+ .successHandler(loginSuccessHandler)
+ .failureHandler(loginFailureHandler)
+
+ .and()
+ .logout()
+ .logoutSuccessHandler(jwtLogoutSuccessHandler)
+
+ // 绂佺敤session
+ .and()
+ .sessionManagement()
+ .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+
+ // 閰嶇疆鎷︽埅瑙勫垯
.and()
.authorizeRequests()
- // 瀵逛簬鐧诲綍鎺ュ彛 鍏佽鍖垮悕璁块棶
- .antMatchers("/userinfo/login").anonymous()
- // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇�
- .anyRequest().authenticated();
- http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+ .antMatchers("/sys/user/login").anonymous()
+ .antMatchers("/swagger-ui.html").permitAll()
+ .antMatchers("/webjars/**").permitAll()
+ .antMatchers("/v2/**").permitAll()
+ .antMatchers("/swagger-resources/**").permitAll()
+ .anyRequest().authenticated()
- //閰嶇疆寮傚父澶勭悊鍣�
- http.exceptionHandling()
- .authenticationEntryPoint(authenticationEntryPoint)
- .accessDeniedHandler(accessDeniedHandler);
- //鍏佽璺ㄥ煙
- http.cors();
+ // 寮傚父澶勭悊鍣�
+ .and()
+ .exceptionHandling()
+ .authenticationEntryPoint(jwtAuthenticationEntryPoint)
+ .accessDeniedHandler(jwtAccessDeniedHandler)
+
+ // 閰嶇疆鑷畾涔夌殑杩囨护鍣�
+ .and()
+ .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
}
@Bean
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
index 074f98b..34416ba 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -2,8 +2,9 @@
import com.mes.common.utils.JwtUtil;
import com.mes.common.utils.RedisUtil;
-import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.common.utils.UserInfoUtils;
import com.mes.userinfo.entity.LoginUser;
+import com.mes.userinfo.service.SysUserService;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -36,7 +37,7 @@
private RedisUtil redisUtil;
@Resource
- private SysMenuMapper menuMapper;
+ private SysUserService sysUserService;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
@@ -63,9 +64,10 @@
response.setHeader("token", "");
throw new RuntimeException("鐢ㄦ埛鏈櫥褰�");
}
-
+ //灏嗙敤鎴蜂俊鎭斁鍏ュ綋鍓嶇嚎绋�
+ UserInfoUtils.set(loginUser.getUser());
//瀛樺叆SecurityContextHolder锛屼互渚涘悗闈㈢殑杩囨护鍣ㄤ娇鐢�
- List<String> permissionKeyList = menuMapper.selectPermsByUserId(Long.parseLong(userid));
+ List<String> permissionKeyList = sysUserService.getUserAuthorityInfo(Long.parseLong(userid));
List<GrantedAuthority> authorities = permissionKeyList.stream().
map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java
deleted file mode 100644
index 302ff52..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.mes.common.handler;
-
-import com.alibaba.fastjson.JSON;
-import com.mes.common.utils.WebUtils;
-import com.mes.utils.Result;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.access.AccessDeniedException;
-import org.springframework.security.web.access.AccessDeniedHandler;
-import org.springframework.stereotype.Component;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- * @Author : zhoush
- * @Date: 2024/4/12 10:38
- * @Description:
- */
-@Component
-public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
- @Override
- public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
- Result result = Result.error(HttpStatus.FORBIDDEN.value(), "鏉冮檺涓嶈冻");
- String json = JSON.toJSONString(result);
- WebUtils.renderString(response, json);
-
- }
-}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java
deleted file mode 100644
index 6cf146f..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.mes.common.handler;
-
-import com.alibaba.fastjson.JSON;
-import com.mes.common.utils.WebUtils;
-import com.mes.utils.Result;
-import org.springframework.http.HttpStatus;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.web.AuthenticationEntryPoint;
-import org.springframework.stereotype.Component;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- * @Author : zhoush
- * @Date: 2024/4/12 10:38
- * @Description:
- */
-@Component
-public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
- @Override
- public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
- Result result = Result.error(HttpStatus.UNAUTHORIZED.value(), "璁よ瘉澶辫触璇烽噸鏂扮櫥褰�");
- String json = JSON.toJSONString(result);
- WebUtils.renderString(response, json);
- }
-}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java
new file mode 100644
index 0000000..aad53aa
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAccessDeniedHandler.java
@@ -0,0 +1,35 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class JwtAccessDeniedHandler implements AccessDeniedHandler {
+
+ @Override
+ public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
+
+ response.setContentType("application/json;charset=UTF-8");
+ response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+
+ ServletOutputStream outputStream = response.getOutputStream();
+
+ Result result = Result.error(HttpStatus.FORBIDDEN.value(), "鏉冮檺涓嶈冻");
+
+ outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+ outputStream.flush();
+ outputStream.close();
+
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java
new file mode 100644
index 0000000..a95ca0c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtAuthenticationEntryPoint.java
@@ -0,0 +1,33 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {
+
+ @Override
+ public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
+
+ response.setContentType("application/json;charset=UTF-8");
+ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ ServletOutputStream outputStream = response.getOutputStream();
+
+ Result result = Result.error(HttpStatus.UNAUTHORIZED.value(), "璁よ瘉澶辫触璇烽噸鏂扮櫥褰�");
+
+ outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+ outputStream.flush();
+ outputStream.close();
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java
new file mode 100644
index 0000000..3757d4d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/JwtLogoutSuccessHandler.java
@@ -0,0 +1,40 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
+import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class JwtLogoutSuccessHandler implements LogoutSuccessHandler {
+
+ private static final String header = "Authorization";
+
+ @Override
+ public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
+
+ if (authentication != null) {
+ new SecurityContextLogoutHandler().logout(request, response, authentication);
+ }
+
+ response.setContentType("application/json;charset=UTF-8");
+ ServletOutputStream outputStream = response.getOutputStream();
+
+ response.setHeader(header, "");
+
+ Result result = Result.success("");
+
+ outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+ outputStream.flush();
+ outputStream.close();
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java
new file mode 100644
index 0000000..72abdbe
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginFailureHandler.java
@@ -0,0 +1,31 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.utils.Result;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.authentication.AuthenticationFailureHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class LoginFailureHandler implements AuthenticationFailureHandler {
+
+ @Override
+ public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
+
+ response.setContentType("application/json;charset=UTF-8");
+ ServletOutputStream outputStream = response.getOutputStream();
+
+ Result result = Result.error("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+
+ outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+ outputStream.flush();
+ outputStream.close();
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java
new file mode 100644
index 0000000..c5458bb
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/LoginSuccessHandler.java
@@ -0,0 +1,38 @@
+package com.mes.common.handler;
+
+import cn.hutool.json.JSONUtil;
+import com.mes.common.utils.JwtUtil;
+import com.mes.utils.Result;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class LoginSuccessHandler implements AuthenticationSuccessHandler {
+
+ private static final String header = "Authorization";
+
+ @Override
+ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
+ response.setContentType("application/json;charset=UTF-8");
+ ServletOutputStream outputStream = response.getOutputStream();
+
+ // 鐢熸垚jwt锛屽苟鏀剧疆鍒拌姹傚ご涓�
+ String jwt = JwtUtil.generateToken(authentication.getName());
+ response.setHeader(header, jwt);
+
+ Result result = Result.success("");
+
+ outputStream.write(JSONUtil.toJsonStr(result).getBytes("UTF-8"));
+
+ outputStream.flush();
+ outputStream.close();
+ }
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
index f7af90a..ea033e3 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
@@ -48,7 +48,7 @@
}
// jwt鏄惁杩囨湡
- public boolean isTokenExpired(Claims claims) {
+ public static boolean isTokenExpired(Claims claims) {
return claims.getExpiration().before(new Date());
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java
new file mode 100644
index 0000000..292797c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/UserInfoUtils.java
@@ -0,0 +1,26 @@
+package com.mes.common.utils;
+
+import com.mes.userinfo.entity.SysUser;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/25 15:41
+ * @Description:
+ */
+public class UserInfoUtils {
+ private static InheritableThreadLocal<SysUser> tokenPool = new InheritableThreadLocal<SysUser>();
+
+ public static SysUser get() {
+ return tokenPool.get();
+ }
+
+ public static void set(SysUser user) {
+ tokenPool.set(user);
+ }
+
+ public static void remove() {
+ if (get() != null) {
+ tokenPool.remove();
+ }
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
index 919fdb9..4ca0cb9 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
@@ -1,116 +1,76 @@
package com.mes.menu.controller;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.mes.base.BaseController;
+import com.mes.entity.request.GeneralRequest;
import com.mes.menu.entity.SysMenu;
-import com.mes.role.entity.SysRoleMenu;
+import com.mes.menu.service.SysMenuService;
import com.mes.utils.Result;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
+import java.util.Map;
/**
- * <p>
- * 鑿滃崟琛�
- * </p>
- *
* @author zhoush
* @since 2024-04-11
*/
-@ApiModel("鑾峰彇鑿滃崟淇℃伅")
+@Api(description = "鑿滃崟绠$悊")
@RestController
-@RequestMapping("/menu/sysMenu")
-public class SysMenuController extends BaseController {
- @ApiOperation("鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鎵�鏈夎彍鍗�")
- @GetMapping("/list")
- public Result<List<SysMenu>> getMenuTree(String userName) {
- return Result.success(sysMenuService.getMenuTree());
- }
+@RequestMapping("/sys/menu")
+public class SysMenuController {
- @ApiOperation("鑾峰彇鐢ㄦ埛鐨勬潈闄�")
- @GetMapping("/getAuthorityInfo")
- public Result<List<String>> getAuthorityInfo(String userName) {
- return Result.success(sysMenuService.getAuthorityInfo(userName));
- }
+ @Autowired
+ private SysMenuService sysMenuService;
- /**
- * 鐢ㄦ埛褰撳墠鐢ㄦ埛鐨勮彍鍗曞拰鏉冮檺淇℃伅
- *
- * @param userName
- * @return
- */
- @GetMapping("/nav")
- public Result nav(String userName) {
-// SysUser sysUser = sysUserService.listByUserNameName(userName);
-//
-// // 鑾峰彇鏉冮檺淇℃伅
-// sysUserService.getUserAuthorityInfo(sysUser.getId());// ROLE_admin,ROLE_normal,sys:user:list,....
-// String[] authorityInfoArray = StringUtils.tokenizeToStringArray(authorityInfo, ",");
-//
-// // 鑾峰彇瀵艰埅鏍忎俊鎭�
-// List<SysMenuDto> navs = sysMenuService.getCurrentUserNav();
-//
-// return Result.success(MapUtil.builder()
-// .put("authoritys", authorityInfoArray)
-// .put("nav", navs)
-// .map()
-// );
- return null;
- }
-
- @GetMapping("/info/{id}")
- @PreAuthorize("hasAuthority('sys:menu:list')")
- public Result info(@PathVariable(name = "id") Long id) {
- return Result.success(sysMenuService.getById(id));
- }
-
-// @GetMapping("/list")
-// @PreAuthorize("hasAuthority('sys:menu:list')")
-// public Result list() {
-//
-//// List<SysMenu> menus = sysMenuService.tree();
-// return Result.success(null);
-// }
-
+ @ApiOperation("鏂板鑿滃崟")
@PostMapping("/save")
- @PreAuthorize("hasAuthority('sys:menu:save')")
+// @PreAuthorize("hasAuthority('sys:menu:save')")
public Result save(@Validated @RequestBody SysMenu sysMenu) {
return Result.success(sysMenuService.save(sysMenu));
}
- @PostMapping("/update")
- @PreAuthorize("hasAuthority('sys:menu:update')")
- public Result update(@Validated @RequestBody SysMenu sysMenu) {
-
- sysMenuService.updateById(sysMenu);
-
- // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
- sysUserService.clearUserAuthorityInfoByMenuId(sysMenu.getId());
+ @ApiOperation("淇敼鑿滃崟淇℃伅")
+ @PostMapping("/updateMenu")
+// @PreAuthorize("hasAuthority('sys:menu:update')")
+ public Result updateMenu(@Validated @RequestBody SysMenu sysMenu) {
+ sysMenuService.updateMenu(sysMenu);
return Result.success(sysMenu);
}
- @PostMapping("/delete/{id}")
- @PreAuthorize("hasAuthority('sys:menu:delete')")
- public Result delete(@PathVariable("id") Long id) {
+ @ApiOperation("鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鎵�鏈夎彍鍗�")
+ @GetMapping("/getMenuTree")
+ public Result<List<SysMenu>> getMenuTree(GeneralRequest request) {
+ return Result.success(sysMenuService.getMenuTree(request));
+ }
- int count = sysMenuService.count(new QueryWrapper<SysMenu>().eq("parent_id", id));
- if (count > 0) {
- return Result.error("璇峰厛鍒犻櫎瀛愯彍鍗�");
- }
+ @ApiOperation("鑾峰彇鐢ㄦ埛鐨勬潈闄�")
+ @GetMapping("/getAuthorityInfo")
+ public Result<List<String>> getAuthorityInfo() {
+ return Result.success(sysMenuService.getAuthorityInfo());
+ }
- // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
- sysUserService.clearUserAuthorityInfoByMenuId(id);
- sysMenuService.removeById(id);
+ @ApiOperation("鐢ㄦ埛褰撳墠鐢ㄦ埛鐨勮彍鍗曞拰鏉冮檺淇℃伅")
+ @GetMapping("/nav")
+ public Result<Map<Object, Object>> nav() {
+ return Result.success(sysMenuService.nav());
+ }
- // 鍚屾鍒犻櫎涓棿鍏宠仈琛�
- sysRoleMenuService.remove(new QueryWrapper<SysRoleMenu>().eq("menu_id", id));
- return Result.success("");
+ @ApiOperation("鍒犻櫎鑿滃崟")
+ @PostMapping("/deleteMenu")
+// @PreAuthorize("hasAuthority('sys:menu:delete')")
+ public Result<String> deleteMenu(Long menuId) {
+ return Result.success(sysMenuService.deleteMenu(menuId));
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎鑿滃崟")
+ @PostMapping("/batchDeleteMenu")
+// @PreAuthorize("hasAuthority('sys:menu:delete')")
+ public Result<String> batchDeleteMenu(@RequestBody List<Long> menuIds) {
+ return Result.success(sysMenuService.batchDeleteMenu(menuIds));
}
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
index 683ca4c..37476c6 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
@@ -35,7 +35,7 @@
/**
* 鐖秈d
*/
- private Integer parentId;
+ private Long parentId;
/**
* 妯″潡鍚嶇О
@@ -73,6 +73,11 @@
private Date createTime;
/**
+ * 鏉冮檺
+ */
+ private String perms;
+
+ /**
* 瀛愯彍鍗�
*/
@TableField(exist = false)
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
index 04fd616..b1ef2d6 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
@@ -1,6 +1,6 @@
package com.mes.menu.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
import com.mes.menu.entity.SysMenu;
import org.apache.ibatis.annotations.Mapper;
@@ -15,7 +15,7 @@
* @since 2024-04-11
*/
@Mapper
-public interface SysMenuMapper extends BaseMapper<SysMenu> {
+public interface SysMenuMapper extends MPJBaseMapper<SysMenu> {
List<String> selectPermsByUserId(long parseLong);
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
index eaea61f..014d1cd 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
@@ -1,9 +1,11 @@
package com.mes.menu.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
import com.mes.menu.entity.SysMenu;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -16,17 +18,49 @@
public interface SysMenuService extends IService<SysMenu> {
/**
+ * 鏇存柊鑿滃崟淇℃伅
+ *
+ * @param menu
+ * @return
+ */
+ SysMenu updateMenu(SysMenu menu);
+
+ /**
* 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鑿滃崟鏍�
*
* @return
*/
- List<SysMenu> getMenuTree();
+ List<SysMenu> getMenuTree(GeneralRequest request);
/**
* 鑾峰彇鐢ㄦ埛鐨勬潈闄�
*
- * @param userName
* @return
*/
- List<String> getAuthorityInfo(String userName);
+ List<String> getAuthorityInfo();
+
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鑿滃崟鍙婃潈闄愪俊鎭�
+ *
+ * @return
+ */
+ Map<Object, Object> nav();
+
+ /**
+ * 鍒犻櫎鑿滃崟淇℃伅
+ *
+ * @param menuId
+ * @return
+ */
+ String deleteMenu(Long menuId);
+
+ /**
+ * 鎵归噺鍒犻櫎鑿滃崟淇℃伅
+ *
+ * @param menuIds
+ * @return
+ */
+ String batchDeleteMenu(List<Long> menuIds);
+
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
index 884b2ed..b4d0fc6 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
@@ -1,18 +1,28 @@
package com.mes.menu.service.impl;
+import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.entity.request.GeneralRequest;
import com.mes.menu.entity.SysMenu;
import com.mes.menu.mapper.SysMenuMapper;
import com.mes.menu.service.SysMenuService;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.service.SysRoleMenuService;
import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
import com.mes.userinfo.service.SysUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -30,21 +40,75 @@
@Autowired
SysUserService sysUserService;
+ @Autowired
+ SysUserRoleMapper sysUserRoleMapper;
+
+ @Autowired
+ SysRoleMenuService sysRoleMenuService;
+
@Override
- public List<SysMenu> getMenuTree() {
+ public SysMenu updateMenu(SysMenu menu) {
+ baseMapper.updateById(menu);
+ // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
+ sysUserService.clearUserAuthorityInfoByMenuId(menu.getId());
+ return menu;
+ }
+
+ @Override
+ public List<SysMenu> getMenuTree(GeneralRequest request) {
//todo:闇�瑕佸厛鑾峰彇鐢ㄦ埛鐨勮鑹诧紝瑙掕壊涓嬬殑鑿滃崟鏉冮檺锛屾嬁鍒拌彍鍗昳d鑾峰彇鎵�鏈夎彍鍗�
- List<SysMenu> menuList = this.baseMapper.selectList(null);
+ SysUser user = UserInfoUtils.get();
+ MPJLambdaWrapper<SysUserRole> wrapper = new MPJLambdaWrapper<>();
+
+ wrapper.selectAll(SysMenu.class).distinct()
+ .leftJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId)
+ .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId)
+ .leftJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId)
+ .eq(SysUser::getId, user.getId())
+ .like(StringUtils.isNotBlank(request.getKey()), SysMenu::getMenuName, request.getKey());
+
+ List<SysMenu> menuList = sysUserRoleMapper.selectJoinList(SysMenu.class, wrapper);
return create(menuList);
}
@Override
- public List<String> getAuthorityInfo(String userName) {
- log.info("鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓簕}", userName);
- SysUser sysUser = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName));
-
+ public List<String> getAuthorityInfo() {
+ SysUser user = UserInfoUtils.get();
+ log.info("鑾峰彇鐢ㄦ埛淇℃伅锛岀敤鎴峰悕涓簕}", user);
// 鑾峰彇鏉冮檺淇℃伅
// ROLE_admin,ROLE_normal,sys:user:list,....
- return sysUserService.getUserAuthorityInfo(sysUser.getId());
+ return sysUserService.getUserAuthorityInfo(user.getId());
+ }
+
+ @Override
+ public Map<Object, Object> nav() {
+ List<SysMenu> menuTree = getMenuTree(new GeneralRequest());
+ List<String> authorityInfo = getAuthorityInfo();
+ return MapUtil.builder().put("authoritys", authorityInfo)
+ .put("tree", menuTree).map();
+ }
+
+ @Override
+ public String deleteMenu(Long menuId) {
+ int count = this.count(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getParentId, menuId));
+ if (count > 0) {
+ return "鏃犳硶鍒犻櫎,璇峰厛鍒犻櫎瀛愯彍鍗�";
+ }
+
+ // 娓呴櫎鎵�鏈変笌璇ヨ彍鍗曠浉鍏崇殑鏉冮檺缂撳瓨
+ sysUserService.clearUserAuthorityInfoByMenuId(menuId);
+
+ this.removeById(menuId);
+
+ // 鍚屾鍒犻櫎涓棿鍏宠仈琛�
+ sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getMenuId, menuId));
+ return "鍒犻櫎鎴愬姛";
+ }
+
+ @Override
+ public String batchDeleteMenu(List<Long> menuIds) {
+ menuIds.stream().forEach(e -> deleteMenu(e));
+ return "鎵归噺鍒犻櫎鎴愬姛";
}
@@ -74,87 +138,9 @@
private List<SysMenu> getChildren(SysMenu menu, List<SysMenu> menus) {
List<SysMenu> res = menus.stream()
.filter(item -> item.getParentId().equals(menu.getId()))
- .map(item -> {
- item.setChildren(getChildren(item, menus));
- return item;
- }).collect(Collectors.toList());
+ .collect(Collectors.toList());
log.info("鑿滃崟鏍�:{}", JSONUtil.toJsonStr(res));
return res;
}
-
-//
-// @Autowired
-// SysUserMapper sysUserMapper;
-//
-// @Override
-// public List<SysMenuDto> getCurrentUserNav() {
-// String username = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-// SysUser sysUser = sysUserService.listByUserNameName(username);
-//
-// List<Long> menuIds = sysUserMapper.getNavMenuIds(sysUser.getId());
-// List<SysMenu> menus = this.listByIds(menuIds);
-//
-// // 杞爲鐘剁粨鏋�
-// List<SysMenu> menuTree = buildTreeMenu(menus);
-//
-// // 瀹炰綋杞珼TO
-// return convert(menuTree);
-// }
-//
-// @Override
-// public List<SysMenu> tree() {
-// // 鑾峰彇鎵�鏈夎彍鍗曚俊鎭�
-// List<SysMenu> sysMenus = this.list(new QueryWrapper<SysMenu>().orderByAsc("orderNum"));
-//
-// // 杞垚鏍戠姸缁撴瀯
-// return buildTreeMenu(sysMenus);
-// }
-//
-// private List<SysMenuDto> convert(List<SysMenu> menuTree) {
-// List<SysMenuDto> menuDtos = new ArrayList<>();
-//
-// menuTree.forEach(m -> {
-// SysMenuDto dto = new SysMenuDto();
-//
-// dto.setId(m.getId());
-// dto.setName(m.getPerms());
-// dto.setTitle(m.getName());
-// dto.setComponent(m.getComponent());
-// dto.setPath(m.getPath());
-//
-// if (m.getChildren().size() > 0) {
-//
-// // 瀛愯妭鐐硅皟鐢ㄥ綋鍓嶆柟娉曡繘琛屽啀娆¤浆鎹�
-// dto.setChildren(convert(m.getChildren()));
-// }
-//
-// menuDtos.add(dto);
-// });
-//
-// return menuDtos;
-// }
-//
-// private List<SysMenu> buildTreeMenu(List<SysMenu> menus) {
-//
-// List<SysMenu> finalMenus = new ArrayList<>();
-//
-// // 鍏堝悇鑷鎵惧埌鍚勮嚜鐨勫瀛�
-// for (SysMenu menu : menus) {
-//
-// for (SysMenu e : menus) {
-// if (menu.getId() == e.getParentId()) {
-// menu.getChildren().add(e);
-// }
-// }
-//
-// // 鎻愬彇鍑虹埗鑺傜偣
-// if (menu.getParentId() == 0L) {
-// finalMenus.add(menu);
-// }
-// }
-//
-// System.out.println(JSONUtil.toJsonStr(finalMenus));
-// return finalMenus;
-// }
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
index 8cb18bf..cb6da80 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
@@ -1,20 +1,63 @@
package com.mes.role.controller;
-import com.mes.base.BaseController;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.role.entity.SysRole;
+import com.mes.role.entity.vo.SysRoleVO;
+import com.mes.role.service.SysRoleService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
/**
- * <p>
- * 瑙掕壊琛� 鍓嶇鎺у埗鍣�
- * </p>
- *
* @author zhoush
* @since 2024-04-11
*/
+@Api(description = "瑙掕壊绠$悊")
@RestController
-@RequestMapping("/role/sys-role")
-public class SysRoleController extends BaseController {
-}
+@RequestMapping("/sys/role")
+public class SysRoleController {
+ @Autowired
+ private SysRoleService sysRoleService;
+
+ @ApiOperation("鏂板瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+ @PostMapping("/saveRole")
+// @PreAuthorize("hasAuthority('sys:role:save')")
+ public Result<SysRole> saveRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
+ return Result.success(sysRoleService.saveRole(sysRoleVO));
+ }
+
+ @ApiOperation("缂栬緫瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+ @PostMapping("/updateRole")
+// @PreAuthorize("hasAuthority('sys:role:save')")
+ public Result<String> updateRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
+ return Result.success(sysRoleService.updateRole(sysRoleVO));
+ }
+
+ @ApiOperation("鏌ヨ瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+ @PostMapping("/queryRole")
+// @PreAuthorize("hasAuthority('sys:role:save')")
+ public Result<List<SysRoleVO>> queryRole(@Validated @RequestBody GeneralRequest request) {
+ return Result.success(sysRoleService.queryRole(request));
+ }
+
+
+ @ApiOperation("鍒犻櫎瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
+ @PostMapping("/delete")
+// @PreAuthorize("hasAuthority('sys:role:delete')")
+ @Transactional
+ public Result<String> deleteRole(@RequestBody List<Long> ids) {
+ return Result.success(sysRoleService.deleteRole(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
index e69af40..aae2aed 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
@@ -24,7 +24,7 @@
/**
* 瑙掕壊ID
*/
- @TableId(value = "role_id", type = IdType.AUTO)
+ @TableId(type = IdType.NONE)
private Long roleId;
/**
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java
new file mode 100644
index 0000000..45efd61
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/vo/SysRoleVO.java
@@ -0,0 +1,44 @@
+package com.mes.role.entity.vo;
+
+import com.mes.menu.entity.SysMenu;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/26 13:57
+ * @Description:
+ */
+@Api(description = "瑙掕壊淇℃伅")
+@Data
+public class SysRoleVO implements Serializable {
+
+ @ApiModelProperty(hidden = true)
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "瑙掕壊ID", position = 2)
+ private Long id;
+
+ @ApiModelProperty(value = "瑙掕壊鍚嶇О", position = 3)
+ private String name;
+
+ @ApiModelProperty(value = "瑙掕壊鏉冮檺瀛楃涓�", position = 4)
+ private String roleKey;
+
+ @ApiModelProperty(value = "瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�", position = 5)
+ private String status;
+
+ @ApiModelProperty(value = "鍒犻櫎鏍囧織", position = 6)
+ private Integer delFlag;
+
+ @ApiModelProperty(value = "澶囨敞", position = 7)
+ private String remark;
+
+ @ApiModelProperty(value = "瑙掕壊鑿滃崟淇℃伅", position = 8)
+ private List<SysMenu> menuList;
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
index 4a549d3..d9251c1 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
@@ -1,6 +1,6 @@
package com.mes.role.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
import com.mes.role.entity.SysRole;
import org.apache.ibatis.annotations.Mapper;
@@ -13,6 +13,6 @@
* @since 2024-04-11
*/
@Mapper
-public interface SysRoleMapper extends BaseMapper<SysRole> {
+public interface SysRoleMapper extends MPJBaseMapper<SysRole> {
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
index 6f89b19..9592106 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
@@ -1,7 +1,11 @@
package com.mes.role.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
import com.mes.role.entity.SysRole;
+import com.mes.role.entity.vo.SysRoleVO;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +17,35 @@
*/
public interface SysRoleService extends IService<SysRole> {
+ /**
+ * 鍒涘缓瑙掕壊淇℃伅
+ *
+ * @param sysRoleVO
+ * @return
+ */
+ SysRole saveRole(SysRoleVO sysRoleVO);
+
+ /**
+ * 淇敼瑙掕壊淇℃伅鍙婃潈闄�
+ *
+ * @param sysRoleVO
+ * @return
+ */
+ String updateRole(SysRoleVO sysRoleVO);
+
+ /**
+ * 鎸夌収瑙掕壊鍚嶆煡璇㈣鑹蹭俊鎭�
+ *
+ * @param request
+ * @return
+ */
+ List<SysRoleVO> queryRole(GeneralRequest request);
+
+ /**
+ * 鏌ヨ瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�
+ *
+ * @param ids
+ * @return
+ */
+ String deleteRole(List<Long> ids);
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
index 5b78836..2d08603 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -1,10 +1,28 @@
package com.mes.role.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.entity.request.GeneralRequest;
+import com.mes.menu.entity.SysMenu;
import com.mes.role.entity.SysRole;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.entity.vo.SysRoleVO;
import com.mes.role.mapper.SysRoleMapper;
+import com.mes.role.service.SysRoleMenuService;
import com.mes.role.service.SysRoleService;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.service.SysUserRoleService;
+import com.mes.userinfo.service.SysUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -15,6 +33,91 @@
* @since 2024-04-11
*/
@Service
+@Slf4j
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
+ @Autowired
+ SysRoleMenuService sysRoleMenuService;
+
+ @Autowired
+ SysUserService sysUserService;
+
+ @Autowired
+ SysUserRoleService sysUserRoleService;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public SysRole saveRole(SysRoleVO sysRoleVO) {
+ log.info("淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id");
+ SysRole sysRole = new SysRole();
+ BeanUtils.copyProperties(sysRoleVO, sysRole);
+ this.save(sysRole);
+ //淇濆瓨瑙掕壊鏉冮檺淇℃伅
+ saveRoleMenu(sysRole.getId(), sysRoleVO.getMenuList());
+ return sysRole;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String updateRole(SysRoleVO sysRoleVO) {
+ log.info("淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id");
+ SysRole sysRole = new SysRole();
+ BeanUtils.copyProperties(sysRoleVO, sysRole);
+ this.updateById(sysRole);
+ //淇濆瓨瑙掕壊鏉冮檺淇℃伅
+ return saveRoleMenu(sysRole.getId(), sysRoleVO.getMenuList());
+ }
+
+ @Override
+ public List<SysRoleVO> queryRole(GeneralRequest request) {
+ MPJLambdaWrapper<SysRole> wrapper = new MPJLambdaWrapper<>();
+ wrapper.selectAll(SysRole.class)
+ .selectCollection(SysMenu.class, SysRoleVO::getMenuList)
+ .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysRole::getId)
+ .leftJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId)
+ .like(StringUtils.hasText(request.getKey()), SysRole::getName, request.getKey());
+ return baseMapper.selectJoinList(SysRoleVO.class, wrapper);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String deleteRole(List<Long> ids) {
+ log.info("鍒犻櫎瑙掕壊淇℃伅");
+ this.removeByIds(ids);
+
+ log.info("鍒犻櫎涓棿琛ㄤ俊鎭�");
+ sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, ids));
+ sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, ids));
+
+ log.info("娓呯┖缂撳瓨涓殑鏉冮檺淇℃伅");
+ ids.stream().forEach(id -> sysUserService.clearUserAuthorityInfoByRoleId(id));
+ return "success";
+ }
+
+ /**
+ * 淇濆瓨瑙掕壊鏉冮檺淇℃伅
+ *
+ * @param roleId
+ * @param menuList
+ * @return
+ */
+ private String saveRoleMenu(Long roleId, List<SysMenu> menuList) {
+ log.info("閰嶇疆瑙掕壊鑿滃崟鍏冲績");
+ List<SysRoleMenu> roleMenuList = menuList.stream().map(menu -> {
+ SysRoleMenu roleMenu = new SysRoleMenu();
+ roleMenu.setRoleId(roleId);
+ roleMenu.setMenuId(menu.getId());
+ return roleMenu;
+ }).collect(Collectors.toList());
+ log.info("娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�");
+
+
+ // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑
+ sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
+ sysRoleMenuService.saveBatch(roleMenuList);
+
+ // 鍒犻櫎缂撳瓨
+ sysUserService.clearUserAuthorityInfoByRoleId(roleId);
+ return "success";
+ }
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
index 727c0dc..2e0f357 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -1,13 +1,15 @@
package com.mes.userinfo.controller;
-import com.mes.base.BaseController;
+import com.mes.entity.request.GeneralRequest;
import com.mes.userinfo.entity.SysUser;
-import com.mes.userinfo.entity.request.UserRequest;
import com.mes.userinfo.entity.vo.SysUserVO;
+import com.mes.userinfo.service.SysUserService;
import com.mes.utils.Result;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -25,10 +27,13 @@
* @author zhoush
* @since 2024-04-11
*/
-@ApiModel("鐢ㄦ埛淇℃伅")
+@Api(description = "鐢ㄦ埛绠$悊")
@RestController
-@RequestMapping("/userinfo")
-public class SysUserController extends BaseController {
+@RequestMapping("/sys/user")
+public class SysUserController {
+
+ @Autowired
+ private SysUserService sysUserService;
@ApiOperation("鐢ㄦ埛鐧诲綍")
@PostMapping("/login")
@@ -38,6 +43,8 @@
@ApiOperation("閫�鍑虹櫥褰�")
@PostMapping("/logout")
+// @PreAuthorize("hasRole('ROLE_admin')")
+ @PreAuthorize("hasAuthority('xt:yh')")
public Result<String> logout() {
return Result.success(sysUserService.logout());
}
@@ -57,17 +64,18 @@
return Result.success(sysUserService.updateUser(sysUser));
}
+ @ApiOperation("閲嶇疆瀵嗙爜")
@PostMapping("/resetPassword")
// @PreAuthorize("hasAuthority('sys:user:resetPassword')")
- public Result resetPassword(@RequestBody Long userId) {
- return Result.success(sysUserService.resetPassword(userId));
+ public Result resetPassword(String userId) {
+ return Result.success(sysUserService.resetPassword(Long.parseLong(userId)));
}
@ApiOperation("鑾峰彇鐢ㄦ埛鍒楄〃")
@PostMapping("/listByUserName")
// @PreAuthorize("hasAuthority('sys:user:list')")
- public Result<List<SysUserVO>> listByUserName(@RequestBody UserRequest request) {
+ public Result<List<SysUserVO>> listByUserName(@RequestBody GeneralRequest request) {
return Result.success(sysUserService.listByUserName(request));
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
index c6ff26f..9aa76b4 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
@@ -1,5 +1,7 @@
package com.mes.userinfo.entity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -24,6 +26,7 @@
/**
* 鐢ㄦ埛id
*/
+ @TableId(type = IdType.NONE)
private Long userId;
/**
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
index 109ccfd..f43f8c7 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
@@ -1,7 +1,7 @@
package com.mes.userinfo.entity.vo;
import com.mes.role.entity.SysRole;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,7 +16,7 @@
* @author zhoush
* @since 2024-04-11
*/
-@ApiModel(description = "<p> 鐢ㄦ埛淇℃伅 </p>")
+@Api(description = "鐢ㄦ埛淇℃伅")
@Data
public class SysUserVO implements Serializable {
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
index c40b16f..cfd9a6f 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
@@ -1,6 +1,6 @@
package com.mes.userinfo.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
import com.mes.userinfo.entity.SysUserRole;
import org.apache.ibatis.annotations.Mapper;
@@ -13,6 +13,6 @@
* @since 2024-04-11
*/
@Mapper
-public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
+public interface SysUserRoleMapper extends MPJBaseMapper<SysUserRole> {
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
index 0992b6c..9351f47 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
@@ -1,6 +1,6 @@
package com.mes.userinfo.service;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
import com.mes.userinfo.entity.SysUserRole;
/**
@@ -11,6 +11,7 @@
* @author zhoush
* @since 2024-04-11
*/
-public interface SysUserRoleService extends IService<SysUserRole> {
+public interface SysUserRoleService extends MPJBaseService<SysUserRole> {
+
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
index 87cc2cd..467a88a 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
@@ -1,8 +1,8 @@
package com.mes.userinfo.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.entity.request.GeneralRequest;
import com.mes.userinfo.entity.SysUser;
-import com.mes.userinfo.entity.request.UserRequest;
import com.mes.userinfo.entity.vo.SysUserVO;
import java.util.List;
@@ -60,10 +60,18 @@
/**
* 鎸夊悕绉拌幏鍙栫敤鎴蜂俊鎭�
*
+ * @param userName
+ * @return
+ */
+ SysUser queryByUserName(String userName);
+
+ /**
+ * 鎸夊叧閿瓧鑾峰彇鐢ㄦ埛淇℃伅鍒楄〃
+ *
* @param request
* @return
*/
- List<SysUserVO> listByUserName(UserRequest request);
+ List<SysUserVO> listByUserName(GeneralRequest request);
/**
* 鍒犻櫎鐢ㄦ埛淇℃伅
@@ -81,5 +89,22 @@
*/
List<String> getUserAuthorityInfo(Long userId);
- void clearUserAuthorityInfoByMenuId(Long userId);
+ /**
+ * 娓呯┖鐢ㄦ埛鏉冮檺淇℃伅閫氳繃鐢ㄦ埛淇℃伅
+ */
+ void clearUserAuthorityInfo(String userName);
+
+ /**
+ * 娓呯┖鐢ㄦ埛鏉冮檺淇℃伅閫氳繃瑙掕壊id
+ *
+ * @param roleId
+ */
+ void clearUserAuthorityInfoByRoleId(Long roleId);
+
+ /**
+ * 娓呯┖鐢ㄦ埛鏉冮檺淇℃伅閫氳繃鑿滃崟id
+ *
+ * @param menuId
+ */
+ void clearUserAuthorityInfoByMenuId(Long menuId);
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
index c674fea..144ecd6 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -1,5 +1,6 @@
package com.mes.userinfo.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -7,13 +8,15 @@
import com.mes.common.config.Const;
import com.mes.common.utils.JwtUtil;
import com.mes.common.utils.RedisUtil;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.entity.request.GeneralRequest;
import com.mes.menu.mapper.SysMenuMapper;
import com.mes.role.entity.SysRole;
+import com.mes.role.entity.SysRoleMenu;
import com.mes.role.service.SysRoleService;
import com.mes.userinfo.entity.LoginUser;
import com.mes.userinfo.entity.SysUser;
import com.mes.userinfo.entity.SysUserRole;
-import com.mes.userinfo.entity.request.UserRequest;
import com.mes.userinfo.entity.vo.SysUserVO;
import com.mes.userinfo.mapper.SysUserMapper;
import com.mes.userinfo.service.SysUserRoleService;
@@ -21,10 +24,10 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -69,8 +72,12 @@
@Resource
BCryptPasswordEncoder passwordEncoder;
+ @Value("${test.common}")
+ private String value;
+
@Override
public Map<String, String> login(SysUser user) {
+ log.info(value);
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(), user.getPassword());
Authentication authenticate = authenticationManager.authenticate(authenticationToken);
if (Objects.isNull(authenticate)) {
@@ -93,10 +100,9 @@
@Override
public String logout() {
- Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
- LoginUser loginUser = (LoginUser) authentication.getPrincipal();
- Long userid = loginUser.getUser().getId();
- redisUtil.deleteObject("login:" + userid);
+ log.info("鐢ㄦ埛閫�鍑�");
+ SysUser user = UserInfoUtils.get();
+ redisUtil.deleteObject("login:" + user.getId());
return "娉ㄩ攢鎴愬姛";
}
@@ -122,10 +128,12 @@
BeanUtils.copyProperties(user, sysUser);
this.updateById(sysUser);
log.info("鍒犻櫎鐢ㄦ埛瑙掕壊淇℃伅");
- sysUserRoleService.removeByIds(user.getRoleList());
+ List<Long> roleIds = user.getRoleList().stream().map(SysRole::getId).collect(Collectors.toList());
+ sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>()
+ .eq(SysUserRole::getUserId, sysUser.getId()).in(CollectionUtil.isNotEmpty(roleIds), SysUserRole::getRoleId, roleIds));
log.info("淇濆瓨鐢ㄦ埛瑙掕壊淇℃伅");
saveUserRole(user.getRoleList(), sysUser.getId());
- return null;
+ return user;
}
@Override
@@ -140,13 +148,18 @@
}
@Override
- public List<SysUserVO> listByUserName(UserRequest request) {
+ public SysUser queryByUserName(String userName) {
+ return baseMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName));
+ }
+
+ @Override
+ public List<SysUserVO> listByUserName(GeneralRequest request) {
MPJLambdaWrapper<SysUser> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(SysUser.class)
.selectCollection(SysRole.class, SysUserVO::getRoleList)
.leftJoin(SysUserRole.class, SysUserRole::getUserId, SysUser::getId)
.leftJoin(SysRole.class, SysRole::getId, SysUserRole::getRoleId)
- .like(StringUtils.hasText(request.getUserName()), SysUser::getUserName, request.getUserName());
+ .like(StringUtils.hasText(request.getKey()), SysUser::getUserName, request.getKey());
return baseMapper.selectJoinList(SysUserVO.class, wrapper);
}
@@ -191,8 +204,31 @@
}
@Override
- public void clearUserAuthorityInfoByMenuId(Long userId) {
+ public void clearUserAuthorityInfo(String userName) {
+ redisUtil.deleteObject("GrantedAuthority:" + userName);
+ }
+ @Override
+ public void clearUserAuthorityInfoByRoleId(Long roleId) {
+ List<SysUser> sysUsers = this.list(new QueryWrapper<SysUser>()
+ .inSql("id", "select user_id from sys_user_role where role_id = " + roleId));
+
+ sysUsers.forEach(u -> {
+ this.clearUserAuthorityInfo(u.getUserName());
+ });
+
+ }
+
+ @Override
+ public void clearUserAuthorityInfoByMenuId(Long menuId) {
+ MPJLambdaWrapper<SysUserRole> wrapper = new MPJLambdaWrapper<SysUserRole>().selectAll(SysUser.class).distinct()
+ .leftJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId)
+ .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId)
+ .eq(SysRoleMenu::getMenuId, menuId);
+ List<SysUser> sysUsers = sysUserRoleService.selectJoinList(SysUser.class, wrapper);
+ sysUsers.forEach(u -> {
+ this.clearUserAuthorityInfo(u.getUserName());
+ });
}
/**
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
index 90bf33d..70e7dec 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
@@ -1,11 +1,25 @@
-server:
- port: 8089
-spring:
- profiles:
- active: dev
- application:
- name: security
-mybatis-plus:
- mapper-locations: classpath*:mapper/*.xml
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+#server:
+# port: 8089
+#spring:
+# datasource:
+# driver-class-name: com.mysql.cj.jdbc.Driver
+# url: jdbc:mysql://192.168.56.10:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+# username: root
+# password: root
+# cloud:
+# nacos:
+# discovery:
+# server-addr: 127.0.0.1:8848
+# application:
+# name: security
+# redis:
+# database: 0
+# host: 127.0.0.1
+# port: 6379
+# password:
+# session:
+# store-type: redis
+#mybatis-plus:
+# mapper-locations: classpath*:mapper/*.xml
+# configuration:
+# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
index 3e49ae0..dcd76c0 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -3,17 +3,12 @@
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.service.EdgStorageCageService;
-import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl;
-import com.mes.taskcache.entity.TaskCache;
-import com.mes.taskcache.service.impl.TaskCacheServiceImpl;
import com.mes.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import java.awt.image.ImageProducer;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -25,7 +20,7 @@
* @author zhoush
* @since 2024-04-07
*/
-@Api(tags = "鐞嗙墖绗肩紦瀛�")
+@Api(description = "鐞嗙墖绗肩紦瀛�")
@RestController
@RequestMapping("/edgStorageCage")
public class EdgStorageCageController {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
index 78b491f..08fa5a6 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
@@ -10,10 +10,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
-import com.mes.glassinfo.service.impl.GlassInfoServiceImpl;
import java.util.List;
-import java.util.Map;
/**
* <p>
@@ -23,7 +21,7 @@
* @author zhoush
* @since 2024-04-07
*/
-@Api(tags = "鐜荤拑淇℃伅灏忕墖")
+@Api(description = "鐜荤拑淇℃伅灏忕墖")
@RestController
@RequestMapping("/glassInfo")
public class GlassInfoController {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 85e1ef5..3995547 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -12,7 +12,6 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
-import java.util.Map;
/**
* <p>
@@ -22,7 +21,7 @@
* @author zhoush
* @since 2024-04-07
*/
-@Api(tags = "璇嗗埆鏄剧ず")
+@Api(description = "璇嗗埆鏄剧ず")
@RestController
@RequestMapping("/taskCache")
public class TaskCacheController {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index d474358..90aaa1b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -8,4 +8,4 @@
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
index 9595d77..2564546 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
@@ -2,7 +2,7 @@
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.service.BigStorageCageService;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -19,7 +19,7 @@
* @author zhoush
* @since 2024-03-27
*/
-@ApiModel("鐞嗙墖绗间俊鎭�")
+@Api(description = "鐞嗙墖绗间俊鎭�")
@RestController
@RequestMapping("/bigStorageCage")
public class BigStorageCageController {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
index 4041b1e..2b003c0 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -3,10 +3,9 @@
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -21,7 +20,7 @@
* @author zhoush
* @since 2024-03-27
*/
-@ApiModel(description = "鐞嗙墖绗艰鎯�")
+@Api(description = "鐞嗙墖绗艰鎯�")
@RestController
@RequestMapping("/bigStorageCageDetails")
public class BigStorageCageDetailsController {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
index ddc77a0..5c89cc9 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -19,7 +19,7 @@
* @author zhoush
* @since 2024-03-27
*/
-@ApiModel(description = "<p> 澶х悊鐗囩 </p>")
+@Api(description = "澶х悊鐗囩")
@Data
@EqualsAndHashCode(callSuper = false)
public class BigStorageCage implements Serializable {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
index fc9c3e0..4788f9b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -2,22 +2,22 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
-
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.io.Serializable;
+
/**
* <p>
- *
+ *
* </p>
*
* @author zhoush
* @since 2024-03-27
*/
-@ApiModel(description = "<p> 澶х悊鐗囩璇︽儏 </p>")
+@Api(description = "澶х悊鐗囩璇︽儏")
@Data
@EqualsAndHashCode(callSuper = false)
public class BigStorageCageDetails implements Serializable {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
index d84d57b..332c237 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
@@ -3,7 +3,7 @@
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,7 +20,7 @@
* @author zhoush
* @since 2024-04-16
*/
-@ApiModel("杩涚墖浠诲姟淇℃伅")
+@Api(description = "杩涚墖浠诲姟淇℃伅")
@RestController
@RequestMapping("/big-storage-cage-feed-task")
public class BigStorageCageFeedTaskController {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
index d98ee38..dbdc794 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
@@ -3,7 +3,7 @@
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,7 +20,7 @@
* @author zhoush
* @since 2024-04-16
*/
-@ApiModel("鍑虹墖浠诲姟淇℃伅")
+@Api(description = "鍑虹墖浠诲姟淇℃伅")
@RestController
@RequestMapping("/big-storage-cage-out-task")
public class BigStorageCageOutTaskController {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
index 94840e1..c4f2565 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -8,4 +8,7 @@
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+test:
+ common: 123789
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java
index 9f636a1..dfb7a0b 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/ApplicationTest.java
@@ -1,7 +1,11 @@
package com.mes;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.service.SysMenuService;
import com.mes.pp.entity.OptimizeDetail;
import com.mes.pp.service.OptimizeDetailService;
+import com.mes.userinfo.entity.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -25,6 +29,18 @@
@Resource
OptimizeDetailService optimizationDetailService;
+ @Resource
+ SysMenuService service;
+
+ @Test
+ public void test1() {
+ SysUser user = new SysUser();
+ user.setId(1l);
+ UserInfoUtils.set(user);
+ List<SysMenu> menuTree = service.getMenuTree(null);
+ System.out.println("鑾峰彇璁板綍鏁帮細" + menuTree);
+ }
+
@Test
public void test() {
List<OptimizeDetail> list = optimizationDetailService.list();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
index 17a62f7..601786c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -11,7 +11,7 @@
import java.util.List;
import java.util.Map;
-@Api(tags = "缂撳瓨")
+@Api(description = "缂撳瓨")
@RestController
@RequestMapping("/downStorage")
public class DownStorageCageDetailsController {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
index 1617790..795e921 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
-import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -17,7 +17,7 @@
* @author zhoush
* @since 2024-03-27
*/
-@ApiModel(description = "<p> 缂撳瓨</p>")
+@Api(description = "缂撳瓨")
@Data
@EqualsAndHashCode(callSuper = false)
public class DownStorageCage implements Serializable {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
index eee88eb..6b0b547 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -25,7 +25,7 @@
*/
@RestController
-@Api(tags = "宸ヤ綅")
+@Api(description = "宸ヤ綅")
@RequestMapping("/downWorkStation")
public class DownWorkstationController {
--
Gitblit v1.8.0