用户管理及下拉选查询接口开发

This commit is contained in:
haozq 2025-12-09 20:05:03 +08:00
parent c04db104e5
commit dbf6c4592e
8 changed files with 115 additions and 40 deletions

View File

@ -4,6 +4,7 @@ import com.bonus.hnrn.rnbmw.basic.entity.SubContractorBean;
import com.bonus.hnrn.rnbmw.basic.service.ProjectService;
import com.bonus.hnrn.rnbmw.basic.service.SubContractorService;
import com.bonus.hnrn.rnbmw.manager.annotation.LogAnnotation;
import com.bonus.hnrn.rnbmw.manager.config.FilePathConfig;
import com.bonus.hnrn.rnbmw.manager.table.PageTableHandler;
import com.bonus.hnrn.rnbmw.manager.table.PageTableRequest;
import com.bonus.hnrn.rnbmw.manager.table.PageTableResponse;
@ -39,6 +40,9 @@ public class SubContractorController {
@Resource(name = "ProjectService")
private ProjectService proService;
@Resource
private FilePathConfig filePathConfig;
@GetMapping
@ApiOperation(value = "分包商")
@PreAuthorize("hasAuthority('sys:SubContractor:query')")
@ -214,15 +218,11 @@ public class SubContractorController {
if (StringHelper.isEmpty(tmpName)) {
return null; // 根据情况
}
String dataPath=filePathConfig.getAutoAdaptPath();
String suffix = tmpName.substring(tmpName.lastIndexOf("."));
String fileName = DateTimeHelper.getNowDate().replace("-", "") + "_" + generateShortUuid() + "_" + tmpName;
String mkdirsName = "subContractor"; // 委托需求
String Files = "/rdata/gz_real_name/" + mkdirsName + "/"; // linux 系统路径
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) {
Files = "e://files/" + mkdirsName;
}
String Files = dataPath + mkdirsName + "/"; // linux 系统路径
String path = Files + "/" + DateTimeHelper.getYear(new Date()) + "/" + DateTimeHelper.getMonth(new Date()) + "/"+DateTimeHelper.getDay()+"/" + fileName;
File file = new File(path);
//生成文件夹

View File

@ -0,0 +1,39 @@
package com.bonus.hnrn.rnbmw.manager.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
import java.nio.file.Paths;
@Service
public class FilePathConfig {
@Value("${files.path}")
private String linuxPath;
@Value("${windows.path}")
private String windowsPath;
public String getAutoAdaptPath() {
// 获取系统名称统一转小写避免大小写问题
String osName = System.getProperty("os.name").toLowerCase();
String targetPath;
// 判断系统类型
if (osName.contains("win")) {
// Windows系统包含win7/win10/win11等
targetPath = windowsPath;
} else if (osName.contains("nix") || osName.contains("nux") || osName.contains("mac")) {
// Linux/Unix/Mac系统覆盖主流服务器系统
targetPath = linuxPath;
} else {
// 兜底未知系统默认使用Linux路径可根据业务调整
throw new RuntimeException("不支持的操作系统类型:" + osName);
}
// 路径标准化统一分隔符确保结尾有分隔符避免拼接错误
return Paths.get(targetPath).toFile().getAbsolutePath() + File.separator;
}
}

View File

@ -1,6 +1,7 @@
package com.bonus.hnrn.rnbmw.manager.config;
import java.io.File;
import java.nio.file.Paths;
import java.util.List;
import com.bonus.hnrn.rnbmw.manager.filter.ParamLengthInterceptor;
@ -45,16 +46,45 @@ public class WebMvcConfig implements WebMvcConfigurer {
* 上传文件根路径
*/
@Value("${files.path}")
private String filesPath;
private String linuxPath;
@Value("${windows.path}")
private String windowsPath;
/**
* 外部文件访问
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String autoPath = getAutoAdaptPath();
registry.addResourceHandler("/gzRealName/**")
.addResourceLocations(ResourceUtils.FILE_URL_PREFIX + filesPath );
.addResourceLocations(ResourceUtils.FILE_URL_PREFIX + autoPath );
registry.addResourceHandler("/statics/**")
.addResourceLocations(ResourceUtils.FILE_URL_PREFIX + filesPath + File.separator);
.addResourceLocations(ResourceUtils.FILE_URL_PREFIX + autoPath + File.separator);
}
/**
* 判断服务器环境
* @return
*/
private String getAutoAdaptPath() {
// 获取系统名称统一转小写避免大小写问题
String osName = System.getProperty("os.name").toLowerCase();
String targetPath;
// 判断系统类型
if (osName.contains("win")) {
// Windows系统包含win7/win10/win11等
targetPath = windowsPath;
} else if (osName.contains("nix") || osName.contains("nux") || osName.contains("mac")) {
// Linux/Unix/Mac系统覆盖主流服务器系统
targetPath = linuxPath;
} else {
// 兜底未知系统默认使用Linux路径可根据业务调整
throw new RuntimeException("不支持的操作系统类型:" + osName);
}
// 路径标准化统一分隔符确保结尾有分隔符避免拼接错误
return Paths.get(targetPath).toFile().getAbsolutePath() + File.separator;
}
/**

View File

@ -46,6 +46,9 @@ log:
files:
path: /rdata/gz_real_name/
upload_path: /rdata/gz_real_name
windows:
path: F:/files/
upload_path: F:/files
token:
expire:
seconds: 7200

View File

@ -57,7 +57,7 @@ public class PublicLoginController {
@PostMapping("getDeptTree")
@ApiOperation(value = "获取部门树")
public AjaxRes getDeptTree() {
public AjaxRes getDeptTree(PublicUserVo vo) {
try{
List<MapBean> result = userService.getRole();
return AjaxRes.success(result);
@ -74,7 +74,7 @@ public class PublicLoginController {
*/
@PostMapping("getRoleList")
@ApiOperation(value = "获取角色下拉选")
public AjaxRes getRoleList() {
public AjaxRes getRoleList(PublicUserVo vo) {
AjaxRes ar = new AjaxRes();
try {
List<ZNode> list = userService.getDepartmentTree();

View File

@ -4,6 +4,7 @@ package com.bns.ldlz.controller;
import com.bns.common.constant.Constants;
import com.bns.common.core.controller.BaseController;
import com.bns.common.core.domain.AjaxResult;
import com.bns.common.core.domain.TreeSelect;
import com.bns.common.core.domain.entity.SysDept;
import com.bns.common.core.domain.entity.SysRole;
import com.bns.ldlz.domain.LoginForm;
@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
@ -26,7 +28,7 @@ import java.util.List;
*/
@RestController
@RequestMapping(value = "/publicLogin")
public class PublicLoginController extends BaseController {
public class PublicLoginController {
@Autowired
private PublicLoginService loginService;
@ -60,20 +62,21 @@ public class PublicLoginController extends BaseController {
@PostMapping("getDeptTree")
@ApiOperation(value = "获取部门树")
public AjaxResult getDeptTree(@RequestBody SysDept dept) {
return success(deptService.selectPublicDeptTreeList(dept));
public AjaxResult getDeptTree(SysDept dept) {
List<TreeSelect> list=deptService.selectPublicDeptTreeList(dept);
return AjaxResult.success(list);
}
/**
* 角色下拉选
* @param vo
* @param
* @return
*/
@PostMapping("getRoleList")
@ApiOperation(value = "获取角色下拉选")
public AjaxResult getRoleList(@RequestBody PublicUserVo vo) {
public AjaxResult getRoleList() {
List<SysRole> roles = roleService.selectPublicRoleAll();
return success(roles);
return AjaxResult.success(roles);
}

View File

@ -51,23 +51,23 @@ public class ResourcesConfig implements WebMvcConfigurer
/**
* 跨域配置
*/
@Bean
public CorsFilter corsFilter()
{
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 设置访问源地址
config.addAllowedOrigin("*");
// 设置访问源请求头
config.addAllowedHeader("*");
// 设置访问源请求方法
config.addAllowedMethod("*");
// 有效期 1800秒
config.setMaxAge(1800L);
// 添加映射路径拦截一切请求
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
// 返回新的CorsFilter
return new CorsFilter(source);
}
// @Bean
// public CorsFilter corsFilter()
// {
// CorsConfiguration config = new CorsConfiguration();
// config.setAllowCredentials(true);
// // 设置访问源地址
// config.addAllowedOrigin("*");
// // 设置访问源请求头
// config.addAllowedHeader("*");
// // 设置访问源请求方法
// config.addAllowedMethod("*");
// // 有效期 1800秒
// config.setMaxAge(1800L);
// // 添加映射路径拦截一切请求
// UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// source.registerCorsConfiguration("/**", config);
// // 返回新的CorsFilter
// return new CorsFilter(source);
// }
}

View File

@ -55,8 +55,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
/**
* 跨域过滤器
*/
@Autowired
private CorsFilter corsFilter;
// @Autowired
// private CorsFilter corsFilter;
/**
* 允许匿名访问的地址
@ -126,8 +126,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 添加JWT filter
httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
// 添加CORS filter
httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class);
httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class);
// httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class);
// httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class);
}
/**