Commit ec9df5b9 authored by hkl's avatar hkl

feat:1.代码提交

parent 5f2bd8be
...@@ -10,22 +10,28 @@ import java.io.Serializable; ...@@ -10,22 +10,28 @@ import java.io.Serializable;
/** /**
* 接口返回数据格式 * 接口返回数据格式
*
* @author scott * @author scott
* @email jeecgos@163.com * @email jeecgos@163.com
* @date 2019年1月19日 * @date 2019年1月19日
*/ */
@Data @Data
@ApiModel(value="接口返回对象", description="接口返回对象") @ApiModel(value = "接口返回对象", description = "接口返回对象")
public class Result<T> implements Serializable { public class Result<T> implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public void setSuccess(boolean success) {
this.success = success;
this.code = 200;
}
/** /**
* 成功标志 * 成功标志
*/ */
@ApiModelProperty(value = "成功标志") @ApiModelProperty(value = "成功标志")
private boolean success = true; private boolean success = true;
/** /**
* 返回处理消息 * 返回处理消息
*/ */
...@@ -55,6 +61,7 @@ public class Result<T> implements Serializable { ...@@ -55,6 +61,7 @@ public class Result<T> implements Serializable {
/** /**
* 兼容VUE3版token失效不跳转登录页面 * 兼容VUE3版token失效不跳转登录页面
*
* @param code * @param code
* @param message * @param message
*/ */
...@@ -70,14 +77,14 @@ public class Result<T> implements Serializable { ...@@ -70,14 +77,14 @@ public class Result<T> implements Serializable {
return this; return this;
} }
public static<T> Result<T> ok() { public static <T> Result<T> ok() {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
return r; return r;
} }
public static<T> Result<T> ok(String msg) { public static <T> Result<T> ok(String msg) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
...@@ -87,7 +94,7 @@ public class Result<T> implements Serializable { ...@@ -87,7 +94,7 @@ public class Result<T> implements Serializable {
return r; return r;
} }
public static<T> Result<T> ok(T data) { public static <T> Result<T> ok(T data) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
...@@ -95,7 +102,7 @@ public class Result<T> implements Serializable { ...@@ -95,7 +102,7 @@ public class Result<T> implements Serializable {
return r; return r;
} }
public static<T> Result<T> OK() { public static <T> Result<T> OK() {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
...@@ -109,7 +116,7 @@ public class Result<T> implements Serializable { ...@@ -109,7 +116,7 @@ public class Result<T> implements Serializable {
* @param <T> * @param <T>
* @return * @return
*/ */
public static<T> Result<T> OK(String msg) { public static <T> Result<T> OK(String msg) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
...@@ -119,7 +126,7 @@ public class Result<T> implements Serializable { ...@@ -119,7 +126,7 @@ public class Result<T> implements Serializable {
return r; return r;
} }
public static<T> Result<T> OK(T data) { public static <T> Result<T> OK(T data) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
...@@ -127,7 +134,7 @@ public class Result<T> implements Serializable { ...@@ -127,7 +134,7 @@ public class Result<T> implements Serializable {
return r; return r;
} }
public static<T> Result<T> OK(String msg, T data) { public static <T> Result<T> OK(String msg, T data) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(true); r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200); r.setCode(CommonConstant.SC_OK_200);
...@@ -136,7 +143,7 @@ public class Result<T> implements Serializable { ...@@ -136,7 +143,7 @@ public class Result<T> implements Serializable {
return r; return r;
} }
public static<T> Result<T> error(String msg, T data) { public static <T> Result<T> error(String msg, T data) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setSuccess(false); r.setSuccess(false);
r.setCode(CommonConstant.SC_INTERNAL_SERVER_ERROR_500); r.setCode(CommonConstant.SC_INTERNAL_SERVER_ERROR_500);
...@@ -145,11 +152,11 @@ public class Result<T> implements Serializable { ...@@ -145,11 +152,11 @@ public class Result<T> implements Serializable {
return r; return r;
} }
public static<T> Result<T> error(String msg) { public static <T> Result<T> error(String msg) {
return error(CommonConstant.SC_INTERNAL_SERVER_ERROR_500, msg); return error(CommonConstant.SC_INTERNAL_SERVER_ERROR_500, msg);
} }
public static<T> Result<T> error(int code, String msg) { public static <T> Result<T> error(int code, String msg) {
Result<T> r = new Result<T>(); Result<T> r = new Result<T>();
r.setCode(code); r.setCode(code);
r.setMessage(msg); r.setMessage(msg);
...@@ -167,7 +174,7 @@ public class Result<T> implements Serializable { ...@@ -167,7 +174,7 @@ public class Result<T> implements Serializable {
/** /**
* 无权限访问返回结果 * 无权限访问返回结果
*/ */
public static<T> Result<T> noauth(String msg) { public static <T> Result<T> noauth(String msg) {
return error(CommonConstant.SC_JEECG_NO_AUTHZ, msg); return error(CommonConstant.SC_JEECG_NO_AUTHZ, msg);
} }
......
...@@ -14,8 +14,8 @@ import org.springframework.http.ResponseEntity; ...@@ -14,8 +14,8 @@ import org.springframework.http.ResponseEntity;
*/ */
public class RestDesformUtil { public class RestDesformUtil {
private static String domain = null; public static String domain = null;
private static String path = null; public static String path = null;
static { static {
domain = SpringContextUtils.getDomain(); domain = SpringContextUtils.getDomain();
......
...@@ -25,59 +25,59 @@ public class FileTypeFilter { ...@@ -25,59 +25,59 @@ public class FileTypeFilter {
static { static {
FILE_TYPE_MAP.put("3c25402070616765206c", "jsp"); FILE_TYPE_MAP.put("3c25402070616765206c", "jsp");
FILE_TYPE_MAP.put("3c3f7068700a0a2f2a2a0a202a205048", "php"); FILE_TYPE_MAP.put("3c3f7068700a0a2f2a2a0a202a205048", "php");
/* fileTypeMap.put("ffd8ffe000104a464946", "jpg"); FILE_TYPE_MAP.put("ffd8ffe000104a464946", "jpg");
fileTypeMap.put("89504e470d0a1a0a0000", "png"); FILE_TYPE_MAP.put("89504e470d0a1a0a0000", "png");
fileTypeMap.put("47494638396126026f01", "gif"); FILE_TYPE_MAP.put("47494638396126026f01", "gif");
fileTypeMap.put("49492a00227105008037", "tif"); FILE_TYPE_MAP.put("49492a00227105008037", "tif");
fileTypeMap.put("424d228c010000000000", "bmp"); FILE_TYPE_MAP.put("424d228c010000000000", "bmp");
fileTypeMap.put("424d8240090000000000", "bmp"); FILE_TYPE_MAP.put("424d8240090000000000", "bmp");
fileTypeMap.put("424d8e1b030000000000", "bmp"); FILE_TYPE_MAP.put("424d8e1b030000000000", "bmp");
fileTypeMap.put("41433130313500000000", "dwg"); FILE_TYPE_MAP.put("41433130313500000000", "dwg");
fileTypeMap.put("3c21444f435459504520", "html"); FILE_TYPE_MAP.put("3c21444f435459504520", "html");
fileTypeMap.put("3c21646f637479706520", "htm"); FILE_TYPE_MAP.put("3c21646f637479706520", "htm");
fileTypeMap.put("48544d4c207b0d0a0942", "css"); FILE_TYPE_MAP.put("48544d4c207b0d0a0942", "css");
fileTypeMap.put("696b2e71623d696b2e71", "js"); FILE_TYPE_MAP.put("696b2e71623d696b2e71", "js");
fileTypeMap.put("7b5c727466315c616e73", "rtf"); FILE_TYPE_MAP.put("7b5c727466315c616e73", "rtf");
fileTypeMap.put("38425053000100000000", "psd"); FILE_TYPE_MAP.put("38425053000100000000", "psd");
fileTypeMap.put("46726f6d3a203d3f6762", "eml"); FILE_TYPE_MAP.put("46726f6d3a203d3f6762", "eml");
fileTypeMap.put("d0cf11e0a1b11ae10000", "doc"); FILE_TYPE_MAP.put("d0cf11e0a1b11ae10000", "doc");
fileTypeMap.put("5374616E64617264204A", "mdb"); FILE_TYPE_MAP.put("5374616E64617264204A", "mdb");
fileTypeMap.put("252150532D41646F6265", "ps"); FILE_TYPE_MAP.put("252150532D41646F6265", "ps");
fileTypeMap.put("255044462d312e350d0a", "pdf"); FILE_TYPE_MAP.put("255044462d312e350d0a", "pdf");
fileTypeMap.put("2e524d46000000120001", "rmvb"); FILE_TYPE_MAP.put("2e524d46000000120001", "rmvb");
fileTypeMap.put("464c5601050000000900", "flv"); FILE_TYPE_MAP.put("464c5601050000000900", "flv");
fileTypeMap.put("00000020667479706d70", "mp4"); FILE_TYPE_MAP.put("00000020667479706d70", "mp4");
fileTypeMap.put("49443303000000002176", "mp3"); FILE_TYPE_MAP.put("49443303000000002176", "mp3");
fileTypeMap.put("000001ba210001000180", "mpg"); FILE_TYPE_MAP.put("000001ba210001000180", "mpg");
fileTypeMap.put("3026b2758e66cf11a6d9", "wmv"); FILE_TYPE_MAP.put("3026b2758e66cf11a6d9", "wmv");
fileTypeMap.put("52494646e27807005741", "wav"); FILE_TYPE_MAP.put("52494646e27807005741", "wav");
fileTypeMap.put("52494646d07d60074156", "avi"); FILE_TYPE_MAP.put("52494646d07d60074156", "avi");
fileTypeMap.put("4d546864000000060001", "mid"); FILE_TYPE_MAP.put("4d546864000000060001", "mid");
fileTypeMap.put("504b0304140000000800", "zip"); FILE_TYPE_MAP.put("504b0304140000000800", "zip");
fileTypeMap.put("526172211a0700cf9073", "rar"); FILE_TYPE_MAP.put("526172211a0700cf9073", "rar");
fileTypeMap.put("235468697320636f6e66", "ini"); FILE_TYPE_MAP.put("235468697320636f6e66", "ini");
fileTypeMap.put("504b03040a0000000000", "jar"); FILE_TYPE_MAP.put("504b03040a0000000000", "jar");
fileTypeMap.put("4d5a9000030000000400", "exe"); FILE_TYPE_MAP.put("4d5a9000030000000400", "exe");
fileTypeMap.put("3c25402070616765206c", "jsp"); FILE_TYPE_MAP.put("3c25402070616765206c", "jsp");
fileTypeMap.put("4d616e69666573742d56", "mf"); FILE_TYPE_MAP.put("4d616e69666573742d56", "mf");
fileTypeMap.put("3c3f786d6c2076657273", "xml"); FILE_TYPE_MAP.put("3c3f786d6c2076657273", "xml");
fileTypeMap.put("494e5345525420494e54", "sql"); FILE_TYPE_MAP.put("494e5345525420494e54", "sql");
fileTypeMap.put("7061636b616765207765", "java"); FILE_TYPE_MAP.put("7061636b616765207765", "java");
fileTypeMap.put("406563686f206f66660d", "bat"); FILE_TYPE_MAP.put("406563686f206f66660d", "bat");
fileTypeMap.put("1f8b0800000000000000", "gz"); FILE_TYPE_MAP.put("1f8b0800000000000000", "gz");
fileTypeMap.put("6c6f67346a2e726f6f74", "properties"); FILE_TYPE_MAP.put("6c6f67346a2e726f6f74", "properties");
fileTypeMap.put("cafebabe0000002e0041", "class"); FILE_TYPE_MAP.put("cafebabe0000002e0041", "class");
fileTypeMap.put("49545346030000006000", "chm"); FILE_TYPE_MAP.put("49545346030000006000", "chm");
fileTypeMap.put("04000000010000001300", "mxp"); FILE_TYPE_MAP.put("04000000010000001300", "mxp");
fileTypeMap.put("504b0304140006000800", "docx"); FILE_TYPE_MAP.put("504b0304140006000800", "docx");
fileTypeMap.put("6431303a637265617465", "torrent"); FILE_TYPE_MAP.put("6431303a637265617465", "torrent");
fileTypeMap.put("6D6F6F76", "mov"); FILE_TYPE_MAP.put("6D6F6F76", "mov");
fileTypeMap.put("FF575043", "wpd"); FILE_TYPE_MAP.put("FF575043", "wpd");
fileTypeMap.put("CFAD12FEC5FD746F", "dbx"); FILE_TYPE_MAP.put("CFAD12FEC5FD746F", "dbx");
fileTypeMap.put("2142444E", "pst"); FILE_TYPE_MAP.put("2142444E", "pst");
fileTypeMap.put("AC9EBD8F", "qdf"); FILE_TYPE_MAP.put("AC9EBD8F", "qdf");
fileTypeMap.put("E3828596", "pwl"); FILE_TYPE_MAP.put("E3828596", "pwl");
fileTypeMap.put("2E7261FD", "ram");*/ FILE_TYPE_MAP.put("2E7261FD", "ram");
} }
/** /**
......
...@@ -19,13 +19,11 @@ import springfox.documentation.builders.ApiInfoBuilder; ...@@ -19,13 +19,11 @@ import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.schema.ModelRef; import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.*; import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
...@@ -45,7 +43,6 @@ import java.util.stream.Collectors; ...@@ -45,7 +43,6 @@ import java.util.stream.Collectors;
public class Swagger2Config implements WebMvcConfigurer { public class Swagger2Config implements WebMvcConfigurer {
/** /**
*
* 显示swagger-ui.html文档展示页,还必须注入swagger资源: * 显示swagger-ui.html文档展示页,还必须注入swagger资源:
* *
* @param registry * @param registry
...@@ -89,8 +86,10 @@ public class Swagger2Config implements WebMvcConfigurer { ...@@ -89,8 +86,10 @@ public class Swagger2Config implements WebMvcConfigurer {
SecurityScheme securityScheme() { SecurityScheme securityScheme() {
return new ApiKey(CommonConstant.X_ACCESS_TOKEN, CommonConstant.X_ACCESS_TOKEN, "header"); return new ApiKey(CommonConstant.X_ACCESS_TOKEN, CommonConstant.X_ACCESS_TOKEN, "header");
} }
/** /**
* JWT token * JWT token
*
* @return * @return
*/ */
private List<Parameter> setHeaderToken() { private List<Parameter> setHeaderToken() {
...@@ -115,7 +114,7 @@ public class Swagger2Config implements WebMvcConfigurer { ...@@ -115,7 +114,7 @@ public class Swagger2Config implements WebMvcConfigurer {
// 描述 // 描述
.description("后台API接口") .description("后台API接口")
// 作者 // 作者
.contact(new Contact(" "," "," ")) .contact(new Contact(" ", " ", " "))
.license("The Apache License, Version 2.0") .license("The Apache License, Version 2.0")
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
.build(); .build();
...@@ -143,6 +142,7 @@ public class Swagger2Config implements WebMvcConfigurer { ...@@ -143,6 +142,7 @@ public class Swagger2Config implements WebMvcConfigurer {
/** /**
* 解决springboot2.6 和springfox不兼容问题 * 解决springboot2.6 和springfox不兼容问题
*
* @return * @return
*/ */
@Bean @Bean
...@@ -151,7 +151,7 @@ public class Swagger2Config implements WebMvcConfigurer { ...@@ -151,7 +151,7 @@ public class Swagger2Config implements WebMvcConfigurer {
@Override @Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { if (bean instanceof WebMvcRequestHandlerProvider) {
customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
} }
return bean; return bean;
......
...@@ -65,89 +65,89 @@ public class ShiroConfig { ...@@ -65,89 +65,89 @@ public class ShiroConfig {
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>(); Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();
//支持yml方式,配置拦截排除 //支持yml方式,配置拦截排除
// if(jeecgBaseConfig!=null && jeecgBaseConfig.getShiro()!=null){ if(jeecgBaseConfig!=null && jeecgBaseConfig.getShiro()!=null){
// String shiroExcludeUrls = jeecgBaseConfig.getShiro().getExcludeUrls(); String shiroExcludeUrls = jeecgBaseConfig.getShiro().getExcludeUrls();
// if(oConvertUtils.isNotEmpty(shiroExcludeUrls)){ if(oConvertUtils.isNotEmpty(shiroExcludeUrls)){
// String[] permissionUrl = shiroExcludeUrls.split(","); String[] permissionUrl = shiroExcludeUrls.split(",");
// for(String url : permissionUrl){ for(String url : permissionUrl){
// filterChainDefinitionMap.put(url,"anon"); filterChainDefinitionMap.put(url,"anon");
// } }
// } }
// } }
// // 配置不会被拦截的链接 顺序判断 // 配置不会被拦截的链接 顺序判断
// filterChainDefinitionMap.put("/sys/cas/client/validateLogin", "anon"); //cas验证登录 filterChainDefinitionMap.put("/sys/cas/client/validateLogin", "anon"); //cas验证登录
// filterChainDefinitionMap.put("/sys/randomImage/**", "anon"); //登录验证码接口排除 filterChainDefinitionMap.put("/sys/randomImage/**", "anon"); //登录验证码接口排除
// filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除 filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除
// filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除
// filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除
// filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除 filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除
// filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录 filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录
// filterChainDefinitionMap.put("/sys/getEncryptedString", "anon"); //获取加密串 filterChainDefinitionMap.put("/sys/getEncryptedString", "anon"); //获取加密串
// filterChainDefinitionMap.put("/sys/sms", "anon");//短信验证码 filterChainDefinitionMap.put("/sys/sms", "anon");//短信验证码
// filterChainDefinitionMap.put("/sys/phoneLogin", "anon");//手机登录 filterChainDefinitionMap.put("/sys/phoneLogin", "anon");//手机登录
// filterChainDefinitionMap.put("/sys/user/checkOnlyUser", "anon");//校验用户是否存在 filterChainDefinitionMap.put("/sys/user/checkOnlyUser", "anon");//校验用户是否存在
// filterChainDefinitionMap.put("/sys/user/register", "anon");//用户注册 filterChainDefinitionMap.put("/sys/user/register", "anon");//用户注册
// filterChainDefinitionMap.put("/sys/user/phoneVerification", "anon");//用户忘记密码验证手机号 filterChainDefinitionMap.put("/sys/user/phoneVerification", "anon");//用户忘记密码验证手机号
// filterChainDefinitionMap.put("/sys/user/passwordChange", "anon");//用户更改密码 filterChainDefinitionMap.put("/sys/user/passwordChange", "anon");//用户更改密码
// filterChainDefinitionMap.put("/auth/2step-code", "anon");//登录验证码 filterChainDefinitionMap.put("/auth/2step-code", "anon");//登录验证码
// filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token
// filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览 filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览
// filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件 filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件
//
// filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //登录二维码 filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //登录二维码
// filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //监听扫码 filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //监听扫码
// filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //授权接口排除 filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //授权接口排除
//
//
// filterChainDefinitionMap.put("/", "anon"); filterChainDefinitionMap.put("/", "anon");
// filterChainDefinitionMap.put("/doc.html", "anon"); filterChainDefinitionMap.put("/doc.html", "anon");
// filterChainDefinitionMap.put("/**/*.js", "anon"); filterChainDefinitionMap.put("/**/*.js", "anon");
// filterChainDefinitionMap.put("/**/*.css", "anon"); filterChainDefinitionMap.put("/**/*.css", "anon");
// filterChainDefinitionMap.put("/**/*.html", "anon"); filterChainDefinitionMap.put("/**/*.html", "anon");
// filterChainDefinitionMap.put("/**/*.svg", "anon"); filterChainDefinitionMap.put("/**/*.svg", "anon");
// filterChainDefinitionMap.put("/**/*.pdf", "anon"); filterChainDefinitionMap.put("/**/*.pdf", "anon");
// filterChainDefinitionMap.put("/**/*.jpg", "anon"); filterChainDefinitionMap.put("/**/*.jpg", "anon");
// filterChainDefinitionMap.put("/**/*.png", "anon"); filterChainDefinitionMap.put("/**/*.png", "anon");
// filterChainDefinitionMap.put("/**/*.gif", "anon"); filterChainDefinitionMap.put("/**/*.gif", "anon");
// filterChainDefinitionMap.put("/**/*.ico", "anon"); filterChainDefinitionMap.put("/**/*.ico", "anon");
// filterChainDefinitionMap.put("/**/*.ttf", "anon"); filterChainDefinitionMap.put("/**/*.ttf", "anon");
// filterChainDefinitionMap.put("/**/*.woff", "anon"); filterChainDefinitionMap.put("/**/*.woff", "anon");
// filterChainDefinitionMap.put("/**/*.woff2", "anon"); filterChainDefinitionMap.put("/**/*.woff2", "anon");
//
// filterChainDefinitionMap.put("/druid/**", "anon"); filterChainDefinitionMap.put("/druid/**", "anon");
// filterChainDefinitionMap.put("/swagger-ui.html", "anon"); filterChainDefinitionMap.put("/swagger-ui.html", "anon");
// filterChainDefinitionMap.put("/swagger**/**", "anon"); filterChainDefinitionMap.put("/swagger**/**", "anon");
// filterChainDefinitionMap.put("/webjars/**", "anon"); filterChainDefinitionMap.put("/webjars/**", "anon");
// filterChainDefinitionMap.put("/v2/**", "anon"); filterChainDefinitionMap.put("/v2/**", "anon");
//
// filterChainDefinitionMap.put("/sys/annountCement/show/**", "anon"); filterChainDefinitionMap.put("/sys/annountCement/show/**", "anon");
//
// //积木报表排除 //积木报表排除
// filterChainDefinitionMap.put("/jmreport/**", "anon"); filterChainDefinitionMap.put("/jmreport/**", "anon");
// filterChainDefinitionMap.put("/**/*.js.map", "anon"); filterChainDefinitionMap.put("/**/*.js.map", "anon");
// filterChainDefinitionMap.put("/**/*.css.map", "anon"); filterChainDefinitionMap.put("/**/*.css.map", "anon");
//
// //大屏模板例子 //大屏模板例子
// filterChainDefinitionMap.put("/test/bigScreen/**", "anon"); filterChainDefinitionMap.put("/test/bigScreen/**", "anon");
// filterChainDefinitionMap.put("/bigscreen/template1/**", "anon"); filterChainDefinitionMap.put("/bigscreen/template1/**", "anon");
// filterChainDefinitionMap.put("/bigscreen/template1/**", "anon"); filterChainDefinitionMap.put("/bigscreen/template1/**", "anon");
//filterChainDefinitionMap.put("/test/jeecgDemo/rabbitMqClientTest/**", "anon"); //MQ测试 //filterChainDefinitionMap.put("/test/jeecgDemo/rabbitMqClientTest/**", "anon"); //MQ测试
//filterChainDefinitionMap.put("/test/jeecgDemo/html", "anon"); //模板页面 //filterChainDefinitionMap.put("/test/jeecgDemo/html", "anon"); //模板页面
//filterChainDefinitionMap.put("/test/jeecgDemo/redis/**", "anon"); //redis测试 //filterChainDefinitionMap.put("/test/jeecgDemo/redis/**", "anon"); //redis测试
//websocket排除 //websocket排除
// filterChainDefinitionMap.put("/websocket/**", "anon");//系统通知和公告 filterChainDefinitionMap.put("/websocket/**", "anon");//系统通知和公告
// filterChainDefinitionMap.put("/newsWebsocket/**", "anon");//CMS模块 filterChainDefinitionMap.put("/newsWebsocket/**", "anon");//CMS模块
// filterChainDefinitionMap.put("/vxeSocket/**", "anon");//JVxeTable无痕刷新示例 filterChainDefinitionMap.put("/vxeSocket/**", "anon");//JVxeTable无痕刷新示例
//性能监控——安全隐患泄露TOEKN(durid连接池也有) //性能监控——安全隐患泄露TOEKN(durid连接池也有)
//filterChainDefinitionMap.put("/actuator/**", "anon"); //filterChainDefinitionMap.put("/actuator/**", "anon");
//测试模块排除 //测试模块排除
// filterChainDefinitionMap.put("/test/seata/**", "anon"); filterChainDefinitionMap.put("/test/seata/**", "anon");
// update-begin--author:liusq Date:20230522 for:[issues/4829]访问不存在的url时会提示Token失效,请重新登录呢 // update-begin--author:liusq Date:20230522 for:[issues/4829]访问不存在的url时会提示Token失效,请重新登录呢
//错误路径排除 //错误路径排除
filterChainDefinitionMap.put("/**", "anon"); filterChainDefinitionMap.put("/error", "anon");
// update-end--author:liusq Date:20230522 for:[issues/4829]访问不存在的url时会提示Token失效,请重新登录呢 // update-end--author:liusq Date:20230522 for:[issues/4829]访问不存在的url时会提示Token失效,请重新登录呢
// 添加自己的过滤器并且取名为jwt // 添加自己的过滤器并且取名为jwt
...@@ -157,7 +157,7 @@ public class ShiroConfig { ...@@ -157,7 +157,7 @@ public class ShiroConfig {
filterMap.put("jwt", new JwtFilter(cloudServer==null)); filterMap.put("jwt", new JwtFilter(cloudServer==null));
shiroFilterFactoryBean.setFilters(filterMap); shiroFilterFactoryBean.setFilters(filterMap);
// <!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边 // <!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边
// filterChainDefinitionMap.put("/**", "jwt"); filterChainDefinitionMap.put("/**", "jwt");
// 未授权界面返回JSON // 未授权界面返回JSON
shiroFilterFactoryBean.setUnauthorizedUrl("/sys/common/403"); shiroFilterFactoryBean.setUnauthorizedUrl("/sys/common/403");
......
package org.jeecg.modules.subwayNetwork.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 线路车站-区间站点映射
* @Author: jeecg-boot
* @Date: 2023-06-15
* @Version: V1.0
*/
@Data
@TableName("t_sn_section_station_map")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="t_sn_section_station_map对象", description="线路车站-区间站点映射")
public class SectionStationMap implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**区间id*/
@Excel(name = "区间id", width = 15)
@ApiModelProperty(value = "区间id")
private java.lang.String sectionId;
/**车站id*/
@Excel(name = "车站id", width = 15)
@ApiModelProperty(value = "车站id")
private java.lang.String stationId;
}
...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.api.dto.PageSearch; import org.jeecg.common.api.dto.PageSearch;
import org.jeecg.modules.subwayNetwork.dto.LightRailQueryDTO; import org.jeecg.modules.subwayNetwork.dto.LightRailQueryDTO;
import org.jeecg.modules.subwayNetwork.entity.LightRail; import org.jeecg.modules.subwayNetwork.entity.LightRail;
import org.jeecg.modules.subwayNetwork.entity.SectionStationMap;
import org.jeecg.modules.subwayNetwork.mapper.LightRailMapper; import org.jeecg.modules.subwayNetwork.mapper.LightRailMapper;
import org.jeecg.modules.subwayNetwork.service.ILightRailService; import org.jeecg.modules.subwayNetwork.service.ILightRailService;
import org.jeecg.modules.subwayNetwork.vo.LightRailQueryVO; import org.jeecg.modules.subwayNetwork.vo.LightRailQueryVO;
......
package org.jeecg.modules.system.controller; package org.jeecg.modules.system.controller;
import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api;
import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.util.CommonUtils; import org.jeecg.common.util.CommonUtils;
import org.jeecg.common.util.RestUtil; import org.jeecg.common.util.RestDesformUtil;
import org.jeecg.common.util.TokenUtils;
import org.jeecg.common.util.filter.FileTypeFilter; import org.jeecg.common.util.filter.FileTypeFilter;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.util.AntPathMatcher; import org.springframework.util.AntPathMatcher;
import org.springframework.util.FileCopyUtils; import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.*; 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;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.HandlerMapping;
...@@ -28,10 +26,10 @@ import org.springframework.web.servlet.ModelAndView; ...@@ -28,10 +26,10 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URLDecoder;
/** /**
* <p> * <p>
* 用户表 前端控制器 * 系统公共 前端控制器
* </p> * </p>
* *
* @Author scott * @Author scott
...@@ -40,6 +38,7 @@ import java.net.URLDecoder; ...@@ -40,6 +38,7 @@ import java.net.URLDecoder;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/sys/common") @RequestMapping("/sys/common")
@Api(tags = "系统公共")
public class CommonController { public class CommonController {
@Value(value = "${jeecg.path.upload}") @Value(value = "${jeecg.path.upload}")
...@@ -48,12 +47,12 @@ public class CommonController { ...@@ -48,12 +47,12 @@ public class CommonController {
/** /**
* 本地:local minio:minio 阿里:alioss * 本地:local minio:minio 阿里:alioss
*/ */
@Value(value="${jeecg.uploadType}") @Value(value = "${jeecg.uploadType}")
private String uploadType; private String uploadType;
/** /**
* @Author 政辉
* @return * @return
* @Author 政辉
*/ */
@GetMapping("/403") @GetMapping("/403")
public Result<?> noauth() { public Result<?> noauth() {
...@@ -62,19 +61,21 @@ public class CommonController { ...@@ -62,19 +61,21 @@ public class CommonController {
/** /**
* 文件上传统一方法 * 文件上传统一方法
*
* @param request * @param request
* @param response * @param response
* @return * @return
*/ */
@PostMapping(value = "/upload") @PostMapping(value = "/upload")
@ApiOperation(value = "文件上传", notes = "文件上传")
public Result<?> upload(HttpServletRequest request, HttpServletResponse response) throws Exception { public Result<?> upload(HttpServletRequest request, HttpServletResponse response) throws Exception {
Result<?> result = new Result<>(); Result<String> result = new Result<>();
String savePath = ""; String savePath = "";
String bizPath = request.getParameter("biz"); String bizPath = request.getParameter("biz");
//LOWCOD-2580 sys/common/upload接口存在任意文件上传漏洞 //LOWCOD-2580 sys/common/upload接口存在任意文件上传漏洞
if (oConvertUtils.isNotEmpty(bizPath)) { if (oConvertUtils.isNotEmpty(bizPath)) {
if(bizPath.contains(SymbolConstant.SPOT_SINGLE_SLASH) || bizPath.contains(SymbolConstant.SPOT_DOUBLE_BACKSLASH)){ if (bizPath.contains(SymbolConstant.SPOT_SINGLE_SLASH) || bizPath.contains(SymbolConstant.SPOT_DOUBLE_BACKSLASH)) {
throw new JeecgBootException("上传目录bizPath,格式非法!"); throw new JeecgBootException("上传目录bizPath,格式非法!");
} }
} }
...@@ -82,23 +83,23 @@ public class CommonController { ...@@ -82,23 +83,23 @@ public class CommonController {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获取上传文件对象 // 获取上传文件对象
MultipartFile file = multipartRequest.getFile("file"); MultipartFile file = multipartRequest.getFile("file");
if(oConvertUtils.isEmpty(bizPath)){ if (oConvertUtils.isEmpty(bizPath)) {
if(CommonConstant.UPLOAD_TYPE_OSS.equals(uploadType)){ if (CommonConstant.UPLOAD_TYPE_OSS.equals(uploadType)) {
//未指定目录,则用阿里云默认目录 upload //未指定目录,则用阿里云默认目录 upload
bizPath = "upload"; bizPath = "upload";
//result.setMessage("使用阿里云文件上传时,必须添加目录!"); //result.setMessage("使用阿里云文件上传时,必须添加目录!");
//result.setSuccess(false); //result.setSuccess(false);
//return result; //return result;
}else{ } else {
bizPath = ""; bizPath = "";
} }
} }
if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){ if (CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)) {
//update-begin-author:liusq date:20221102 for: 过滤上传文件类型 //update-begin-author:liusq date:20221102 for: 过滤上传文件类型
FileTypeFilter.fileTypeFilter(file); FileTypeFilter.fileTypeFilter(file);
//update-end-author:liusq date:20221102 for: 过滤上传文件类型 //update-end-author:liusq date:20221102 for: 过滤上传文件类型
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传 //update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
savePath = this.uploadLocal(file,bizPath); savePath = this.uploadLocal(file, bizPath);
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传 //update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
/** 富文本编辑器及markdown本地上传时,采用返回链接方式 /** 富文本编辑器及markdown本地上传时,采用返回链接方式
//针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储 //针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储
...@@ -111,15 +112,16 @@ public class CommonController { ...@@ -111,15 +112,16 @@ public class CommonController {
savePath = this.uploadLocal(file,bizPath); savePath = this.uploadLocal(file,bizPath);
} }
*/ */
}else{ } else {
//update-begin-author:taoyan date:20200814 for:文件上传改造 //update-begin-author:taoyan date:20200814 for:文件上传改造
savePath = CommonUtils.upload(file, bizPath, uploadType); savePath = CommonUtils.upload(file, bizPath, uploadType);
//update-end-author:taoyan date:20200814 for:文件上传改造 //update-end-author:taoyan date:20200814 for:文件上传改造
} }
if(oConvertUtils.isNotEmpty(savePath)){ if (oConvertUtils.isNotEmpty(savePath)) {
result.setMessage(savePath); savePath = RestDesformUtil.path + "/sys/common/static/" + savePath;
result.setResult(savePath);
result.setSuccess(true); result.setSuccess(true);
}else { } else {
result.setMessage("上传失败!"); result.setMessage("上传失败!");
result.setSuccess(false); result.setSuccess(false);
} }
...@@ -128,15 +130,16 @@ public class CommonController { ...@@ -128,15 +130,16 @@ public class CommonController {
/** /**
* 本地文件上传 * 本地文件上传
*
* @param mf 文件 * @param mf 文件
* @param bizPath 自定义路径 * @param bizPath 自定义路径
* @return * @return
*/ */
private String uploadLocal(MultipartFile mf,String bizPath){ private String uploadLocal(MultipartFile mf, String bizPath) {
try { try {
String ctxPath = uploadpath; String ctxPath = uploadpath;
String fileName = null; String fileName = null;
File file = new File(ctxPath + File.separator + bizPath + File.separator ); File file = new File(ctxPath + File.separator + bizPath + File.separator);
if (!file.exists()) { if (!file.exists()) {
// 创建文件根目录 // 创建文件根目录
file.mkdirs(); file.mkdirs();
...@@ -144,18 +147,18 @@ public class CommonController { ...@@ -144,18 +147,18 @@ public class CommonController {
// 获取文件名 // 获取文件名
String orgName = mf.getOriginalFilename(); String orgName = mf.getOriginalFilename();
orgName = CommonUtils.getFileName(orgName); orgName = CommonUtils.getFileName(orgName);
if(orgName.indexOf(SymbolConstant.SPOT)!=-1){ if (orgName.indexOf(SymbolConstant.SPOT) != -1) {
fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.lastIndexOf(".")); fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.lastIndexOf("."));
}else{ } else {
fileName = orgName+ "_" + System.currentTimeMillis(); fileName = orgName + "_" + System.currentTimeMillis();
} }
String savePath = file.getPath() + File.separator + fileName; String savePath = file.getPath() + File.separator + fileName;
File savefile = new File(savePath); File savefile = new File(savePath);
FileCopyUtils.copy(mf.getBytes(), savefile); FileCopyUtils.copy(mf.getBytes(), savefile);
String dbpath = null; String dbpath = null;
if(oConvertUtils.isNotEmpty(bizPath)){ if (oConvertUtils.isNotEmpty(bizPath)) {
dbpath = bizPath + File.separator + fileName; dbpath = bizPath + File.separator + fileName;
}else{ } else {
dbpath = fileName; dbpath = fileName;
} }
if (dbpath.contains(SymbolConstant.DOUBLE_BACKSLASH)) { if (dbpath.contains(SymbolConstant.DOUBLE_BACKSLASH)) {
...@@ -213,29 +216,30 @@ public class CommonController { ...@@ -213,29 +216,30 @@ public class CommonController {
* @param response * @param response
*/ */
@GetMapping(value = "/static/**") @GetMapping(value = "/static/**")
@ApiOperation(value = "预览图片&下载文件", notes = "预览图片&下载文件")
public void view(HttpServletRequest request, HttpServletResponse response) { public void view(HttpServletRequest request, HttpServletResponse response) {
// ISO-8859-1 ==> UTF-8 进行编码转换 // ISO-8859-1 ==> UTF-8 进行编码转换
String imgPath = extractPathFromPattern(request); String imgPath = extractPathFromPattern(request);
if(oConvertUtils.isEmpty(imgPath) || CommonConstant.STRING_NULL.equals(imgPath)){ if (oConvertUtils.isEmpty(imgPath) || CommonConstant.STRING_NULL.equals(imgPath)) {
return; return;
} }
// 其余处理略 // 其余处理略
InputStream inputStream = null; InputStream inputStream = null;
OutputStream outputStream = null; OutputStream outputStream = null;
try { try {
imgPath = imgPath.replace("..", "").replace("../",""); imgPath = imgPath.replace("..", "").replace("../", "");
if (imgPath.endsWith(SymbolConstant.COMMA)) { if (imgPath.endsWith(SymbolConstant.COMMA)) {
imgPath = imgPath.substring(0, imgPath.length() - 1); imgPath = imgPath.substring(0, imgPath.length() - 1);
} }
String filePath = uploadpath + File.separator + imgPath; String filePath = uploadpath + File.separator + imgPath;
File file = new File(filePath); File file = new File(filePath);
if(!file.exists()){ if (!file.exists()) {
response.setStatus(404); response.setStatus(404);
throw new RuntimeException("文件["+imgPath+"]不存在.."); throw new RuntimeException("文件[" + imgPath + "]不存在..");
} }
// 设置强制下载不打开 // 设置强制下载不打开
response.setContentType("application/force-download"); response.setContentType("application/force-download");
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(file.getName().getBytes("UTF-8"),"iso-8859-1")); response.addHeader("Content-Disposition", "attachment;fileName=" + new String(file.getName().getBytes("UTF-8"), "iso-8859-1"));
inputStream = new BufferedInputStream(new FileInputStream(filePath)); inputStream = new BufferedInputStream(new FileInputStream(filePath));
outputStream = response.getOutputStream(); outputStream = response.getOutputStream();
byte[] buf = new byte[1024]; byte[] buf = new byte[1024];
...@@ -326,9 +330,9 @@ public class CommonController { ...@@ -326,9 +330,9 @@ public class CommonController {
// } // }
/** /**
* @功能:pdf预览Iframe
* @param modelAndView * @param modelAndView
* @return * @return
* @功能:pdf预览Iframe
*/ */
@RequestMapping("/pdf/pdfPreviewIframe") @RequestMapping("/pdf/pdfPreviewIframe")
public ModelAndView pdfPreviewIframe(ModelAndView modelAndView) { public ModelAndView pdfPreviewIframe(ModelAndView modelAndView) {
...@@ -339,6 +343,7 @@ public class CommonController { ...@@ -339,6 +343,7 @@ public class CommonController {
/** /**
* 把指定URL后的字符串全部截断当成参数 * 把指定URL后的字符串全部截断当成参数
* 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题 * 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
*
* @param request * @param request
* @return * @return
*/ */
......
...@@ -81,6 +81,7 @@ public class SysRoleController { ...@@ -81,6 +81,7 @@ public class SysRoleController {
/** /**
* 分页列表查询 【系统角色,不做租户隔离】 * 分页列表查询 【系统角色,不做租户隔离】
*
* @param role * @param role
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
...@@ -90,8 +91,8 @@ public class SysRoleController { ...@@ -90,8 +91,8 @@ public class SysRoleController {
//@RequiresPermissions("system:role:list") //@RequiresPermissions("system:role:list")
@RequestMapping(value = "/list", method = RequestMethod.GET) @RequestMapping(value = "/list", method = RequestMethod.GET)
public Result<IPage<SysRole>> queryPageList(SysRole role, public Result<IPage<SysRole>> queryPageList(SysRole role,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
Result<IPage<SysRole>> result = new Result<IPage<SysRole>>(); Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap()); QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
...@@ -104,6 +105,7 @@ public class SysRoleController { ...@@ -104,6 +105,7 @@ public class SysRoleController {
/** /**
* 分页列表查询【租户角色,做租户隔离】 * 分页列表查询【租户角色,做租户隔离】
*
* @param role * @param role
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
...@@ -112,14 +114,14 @@ public class SysRoleController { ...@@ -112,14 +114,14 @@ public class SysRoleController {
*/ */
@RequestMapping(value = "/listByTenant", method = RequestMethod.GET) @RequestMapping(value = "/listByTenant", method = RequestMethod.GET)
public Result<IPage<SysRole>> listByTenant(SysRole role, public Result<IPage<SysRole>> listByTenant(SysRole role,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
Result<IPage<SysRole>> result = new Result<IPage<SysRole>>(); Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
role.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(),0)); role.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0));
} }
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap()); QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
...@@ -132,6 +134,7 @@ public class SysRoleController { ...@@ -132,6 +134,7 @@ public class SysRoleController {
/** /**
* 添加 * 添加
*
* @param role * @param role
* @return * @return
*/ */
...@@ -152,21 +155,22 @@ public class SysRoleController { ...@@ -152,21 +155,22 @@ public class SysRoleController {
/** /**
* 编辑 * 编辑
*
* @param role * @param role
* @return * @return
*/ */
//@RequiresPermissions("system:role:edit") //@RequiresPermissions("system:role:edit")
@RequestMapping(value = "/edit",method = {RequestMethod.PUT,RequestMethod.POST}) @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<SysRole> edit(@RequestBody SysRole role) { public Result<SysRole> edit(@RequestBody SysRole role) {
Result<SysRole> result = new Result<SysRole>(); Result<SysRole> result = new Result<SysRole>();
SysRole sysrole = sysRoleService.getById(role.getId()); SysRole sysrole = sysRoleService.getById(role.getId());
if(sysrole==null) { if (sysrole == null) {
result.error500("未找到对应实体"); result.error500("未找到对应实体");
}else { } else {
role.setUpdateTime(new Date()); role.setUpdateTime(new Date());
boolean ok = sysRoleService.updateById(role); boolean ok = sysRoleService.updateById(role);
//TODO 返回false说明什么? //TODO 返回false说明什么?
if(ok) { if (ok) {
result.success("修改成功!"); result.success("修改成功!");
} }
} }
...@@ -176,28 +180,30 @@ public class SysRoleController { ...@@ -176,28 +180,30 @@ public class SysRoleController {
/** /**
* 通过id删除 * 通过id删除
*
* @param id * @param id
* @return * @return
*/ */
//@RequiresPermissions("system:role:delete") //@RequiresPermissions("system:role:delete")
@RequestMapping(value = "/delete", method = RequestMethod.DELETE) @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
public Result<?> delete(@RequestParam(name="id",required=true) String id) { public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
sysRoleService.deleteRole(id); sysRoleService.deleteRole(id);
return Result.ok("删除角色成功"); return Result.ok("删除角色成功");
} }
/** /**
* 批量删除 * 批量删除
*
* @param ids * @param ids
* @return * @return
*/ */
//@RequiresPermissions("system:role:deleteBatch") //@RequiresPermissions("system:role:deleteBatch")
@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE) @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
public Result<SysRole> deleteBatch(@RequestParam(name="ids",required=true) String ids) { public Result<SysRole> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
Result<SysRole> result = new Result<SysRole>(); Result<SysRole> result = new Result<SysRole>();
if(oConvertUtils.isEmpty(ids)) { if (oConvertUtils.isEmpty(ids)) {
result.error500("未选中角色!"); result.error500("未选中角色!");
}else { } else {
sysRoleService.deleteBatchRole(ids.split(",")); sysRoleService.deleteBatchRole(ids.split(","));
result.success("删除角色成功!"); result.success("删除角色成功!");
} }
...@@ -206,16 +212,17 @@ public class SysRoleController { ...@@ -206,16 +212,17 @@ public class SysRoleController {
/** /**
* 通过id查询 * 通过id查询
*
* @param id * @param id
* @return * @return
*/ */
@RequestMapping(value = "/queryById", method = RequestMethod.GET) @RequestMapping(value = "/queryById", method = RequestMethod.GET)
public Result<SysRole> queryById(@RequestParam(name="id",required=true) String id) { public Result<SysRole> queryById(@RequestParam(name = "id", required = true) String id) {
Result<SysRole> result = new Result<SysRole>(); Result<SysRole> result = new Result<SysRole>();
SysRole sysrole = sysRoleService.getById(id); SysRole sysrole = sysRoleService.getById(id);
if(sysrole==null) { if (sysrole == null) {
result.error500("未找到对应实体"); result.error500("未找到对应实体");
}else { } else {
result.setResult(sysrole); result.setResult(sysrole);
result.setSuccess(true); result.setSuccess(true);
} }
...@@ -233,14 +240,14 @@ public class SysRoleController { ...@@ -233,14 +240,14 @@ public class SysRoleController {
LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>(); LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>();
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
query.eq(SysRole::getTenantId, oConvertUtils.getInt(TenantContext.getTenant(), 0)); query.eq(SysRole::getTenantId, oConvertUtils.getInt(TenantContext.getTenant(), 0));
} }
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
List<SysRole> list = sysRoleService.list(query); List<SysRole> list = sysRoleService.list(query);
if(list==null||list.size()<=0) { if (list == null || list.size() <= 0) {
result.error500("未找到角色信息"); result.error500("未找到角色信息");
}else { } else {
result.setResult(list); result.setResult(list);
result.setSuccess(true); result.setSuccess(true);
} }
...@@ -258,9 +265,9 @@ public class SysRoleController { ...@@ -258,9 +265,9 @@ public class SysRoleController {
Result<List<SysRole>> result = new Result<>(); Result<List<SysRole>> result = new Result<>();
LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>(); LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>();
List<SysRole> list = sysRoleService.list(query); List<SysRole> list = sysRoleService.list(query);
if(list==null||list.size()<=0) { if (list == null || list.size() <= 0) {
result.error500("未找到角色信息"); result.error500("未找到角色信息");
}else { } else {
result.setResult(list); result.setResult(list);
result.setSuccess(true); result.setSuccess(true);
} }
...@@ -271,28 +278,26 @@ public class SysRoleController { ...@@ -271,28 +278,26 @@ public class SysRoleController {
* 校验角色编码唯一 * 校验角色编码唯一
*/ */
@RequestMapping(value = "/checkRoleCode", method = RequestMethod.GET) @RequestMapping(value = "/checkRoleCode", method = RequestMethod.GET)
public Result<Boolean> checkUsername(String id,String roleCode) { public Result<Boolean> checkRoleCode(String id, String roleCode) {
Result<Boolean> result = new Result<>(); Result<Boolean> result = new Result<>();
//如果此参数为false则程序发生异常 //如果此参数为false则程序发生异常
result.setResult(true); result.setResult(true);
log.info("--验证角色编码是否唯一---id:"+id+"--roleCode:"+roleCode); log.info("--验证角色编码是否唯一---id:" + id + "--roleCode:" + roleCode);
try { try {
SysRole role = null; SysRole role = null;
if(oConvertUtils.isNotEmpty(id)) { if (oConvertUtils.isNotEmpty(id)) {
role = sysRoleService.getById(id); role = sysRoleService.getById(id);
} }
SysRole newRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getRoleCode, roleCode)); SysRole newRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getRoleCode, roleCode));
if(newRole!=null) { if (newRole != null) {
//如果根据传入的roleCode查询到信息了,那么就需要做校验了。 //如果根据传入的roleCode查询到信息了,那么就需要做校验了。
if(role==null) { if (role == null) {
//role为空=>新增模式=>只要roleCode存在则返回false //role为空=>新增模式=>只要roleCode存在则返回false
result.setSuccess(false); result.error("角色编码已存在");
result.setMessage("角色编码已存在");
return result; return result;
}else if(!id.equals(newRole.getId())) { } else if (!id.equals(newRole.getId())) {
//否则=>编辑模式=>判断两者ID是否一致- //否则=>编辑模式=>判断两者ID是否一致-
result.setSuccess(false); result.error("角色编码已存在");
result.setMessage("角色编码已存在");
return result; return result;
} }
} }
...@@ -308,13 +313,14 @@ public class SysRoleController { ...@@ -308,13 +313,14 @@ public class SysRoleController {
/** /**
* 导出excel * 导出excel
*
* @param request * @param request
*/ */
@RequestMapping(value = "/exportXls") @RequestMapping(value = "/exportXls")
public ModelAndView exportXls(SysRole sysRole,HttpServletRequest request) { public ModelAndView exportXls(SysRole sysRole, HttpServletRequest request) {
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
sysRole.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0)); sysRole.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0));
} }
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
...@@ -325,16 +331,17 @@ public class SysRoleController { ...@@ -325,16 +331,17 @@ public class SysRoleController {
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<SysRole> pageList = sysRoleService.list(queryWrapper); List<SysRole> pageList = sysRoleService.list(queryWrapper);
//导出文件名称 //导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME,"角色列表"); mv.addObject(NormalExcelConstants.FILE_NAME, "角色列表");
mv.addObject(NormalExcelConstants.CLASS,SysRole.class); mv.addObject(NormalExcelConstants.CLASS, SysRole.class);
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("角色列表数据","导出人:"+user.getRealname(),"导出信息")); mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("角色列表数据", "导出人:" + user.getRealname(), "导出信息"));
mv.addObject(NormalExcelConstants.DATA_LIST,pageList); mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv; return mv;
} }
/** /**
* 通过excel导入数据 * 通过excel导入数据
*
* @param request * @param request
* @param response * @param response
* @return * @return
...@@ -370,24 +377,24 @@ public class SysRoleController { ...@@ -370,24 +377,24 @@ public class SysRoleController {
* 查询数据规则数据 * 查询数据规则数据
*/ */
@GetMapping(value = "/datarule/{permissionId}/{roleId}") @GetMapping(value = "/datarule/{permissionId}/{roleId}")
public Result<?> loadDatarule(@PathVariable("permissionId") String permissionId,@PathVariable("roleId") String roleId) { public Result<?> loadDatarule(@PathVariable("permissionId") String permissionId, @PathVariable("roleId") String roleId) {
List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId); List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId);
if(list==null || list.size()==0) { if (list == null || list.size() == 0) {
return Result.error("未找到权限配置信息"); return Result.error("未找到权限配置信息");
}else { } else {
Map<String,Object> map = new HashMap(5); Map<String, Object> map = new HashMap(5);
map.put("datarule", list); map.put("datarule", list);
LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>() LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
.eq(SysRolePermission::getPermissionId, permissionId) .eq(SysRolePermission::getPermissionId, permissionId)
.isNotNull(SysRolePermission::getDataRuleIds) .isNotNull(SysRolePermission::getDataRuleIds)
.eq(SysRolePermission::getRoleId,roleId); .eq(SysRolePermission::getRoleId, roleId);
SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query); SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
if(sysRolePermission==null) { if (sysRolePermission == null) {
//return Result.error("未找到角色菜单配置信息"); //return Result.error("未找到角色菜单配置信息");
}else { } else {
String drChecked = sysRolePermission.getDataRuleIds(); String drChecked = sysRolePermission.getDataRuleIds();
if(oConvertUtils.isNotEmpty(drChecked)) { if (oConvertUtils.isNotEmpty(drChecked)) {
map.put("drChecked", drChecked.endsWith(",")?drChecked.substring(0, drChecked.length()-1):drChecked); map.put("drChecked", drChecked.endsWith(",") ? drChecked.substring(0, drChecked.length() - 1) : drChecked);
} }
} }
return Result.ok(map); return Result.ok(map);
...@@ -404,19 +411,19 @@ public class SysRoleController { ...@@ -404,19 +411,19 @@ public class SysRoleController {
String permissionId = jsonObject.getString("permissionId"); String permissionId = jsonObject.getString("permissionId");
String roleId = jsonObject.getString("roleId"); String roleId = jsonObject.getString("roleId");
String dataRuleIds = jsonObject.getString("dataRuleIds"); String dataRuleIds = jsonObject.getString("dataRuleIds");
log.info("保存数据规则>>"+"菜单ID:"+permissionId+"角色ID:"+ roleId+"数据权限ID:"+dataRuleIds); log.info("保存数据规则>>" + "菜单ID:" + permissionId + "角色ID:" + roleId + "数据权限ID:" + dataRuleIds);
LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>() LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
.eq(SysRolePermission::getPermissionId, permissionId) .eq(SysRolePermission::getPermissionId, permissionId)
.eq(SysRolePermission::getRoleId,roleId); .eq(SysRolePermission::getRoleId, roleId);
SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query); SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
if(sysRolePermission==null) { if (sysRolePermission == null) {
return Result.error("请先保存角色菜单权限!"); return Result.error("请先保存角色菜单权限!");
}else { } else {
sysRolePermission.setDataRuleIds(dataRuleIds); sysRolePermission.setDataRuleIds(dataRuleIds);
this.sysRolePermissionService.updateById(sysRolePermission); this.sysRolePermissionService.updateById(sysRolePermission);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("SysRoleController.saveDatarule()发生异常:" + e.getMessage(),e); log.error("SysRoleController.saveDatarule()发生异常:" + e.getMessage(), e);
return Result.error("保存失败"); return Result.error("保存失败");
} }
return Result.ok("保存成功!"); return Result.ok("保存成功!");
...@@ -425,12 +432,13 @@ public class SysRoleController { ...@@ -425,12 +432,13 @@ public class SysRoleController {
/** /**
* 用户角色授权功能,查询菜单权限树 * 用户角色授权功能,查询菜单权限树
*
* @param request * @param request
* @return * @return
*/ */
@RequestMapping(value = "/queryTreeList", method = RequestMethod.GET) @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
public Result<Map<String,Object>> queryTreeList(HttpServletRequest request) { public Result<Map<String, Object>> queryTreeList(HttpServletRequest request) {
Result<Map<String,Object>> result = new Result<>(); Result<Map<String, Object>> result = new Result<>();
//全部权限ids //全部权限ids
List<String> ids = new ArrayList<>(); List<String> ids = new ArrayList<>();
try { try {
...@@ -438,12 +446,12 @@ public class SysRoleController { ...@@ -438,12 +446,12 @@ public class SysRoleController {
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0); query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.orderByAsc(SysPermission::getSortNo); query.orderByAsc(SysPermission::getSortNo);
List<SysPermission> list = sysPermissionService.list(query); List<SysPermission> list = sysPermissionService.list(query);
for(SysPermission sysPer : list) { for (SysPermission sysPer : list) {
ids.add(sysPer.getId()); ids.add(sysPer.getId());
} }
List<TreeModel> treeList = new ArrayList<>(); List<TreeModel> treeList = new ArrayList<>();
getTreeModelList(treeList, list, null); getTreeModelList(treeList, list, null);
Map<String,Object> resMap = new HashMap(5); Map<String, Object> resMap = new HashMap(5);
//全部树节点数据 //全部树节点数据
resMap.put("treeList", treeList); resMap.put("treeList", treeList);
//全部树ids //全部树ids
...@@ -456,18 +464,18 @@ public class SysRoleController { ...@@ -456,18 +464,18 @@ public class SysRoleController {
return result; return result;
} }
private void getTreeModelList(List<TreeModel> treeList,List<SysPermission> metaList,TreeModel temp) { private void getTreeModelList(List<TreeModel> treeList, List<SysPermission> metaList, TreeModel temp) {
for (SysPermission permission : metaList) { for (SysPermission permission : metaList) {
String tempPid = permission.getParentId(); String tempPid = permission.getParentId();
TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(),permission.getRuleFlag(), permission.isLeaf()); TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(), permission.getRuleFlag(), permission.isLeaf());
if(temp==null && oConvertUtils.isEmpty(tempPid)) { if (temp == null && oConvertUtils.isEmpty(tempPid)) {
treeList.add(tree); treeList.add(tree);
if(!tree.getIsLeaf()) { if (!tree.getIsLeaf()) {
getTreeModelList(treeList, metaList, tree); getTreeModelList(treeList, metaList, tree);
} }
}else if(temp!=null && tempPid!=null && tempPid.equals(temp.getKey())){ } else if (temp != null && tempPid != null && tempPid.equals(temp.getKey())) {
temp.getChildren().add(tree); temp.getChildren().add(tree);
if(!tree.getIsLeaf()) { if (!tree.getIsLeaf()) {
getTreeModelList(treeList, metaList, tree); getTreeModelList(treeList, metaList, tree);
} }
} }
......
...@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
...@@ -63,6 +65,7 @@ import java.util.stream.Collectors; ...@@ -63,6 +65,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/sys/user") @RequestMapping("/sys/user")
@Api(tags = "用户管理")
public class SysUserController { public class SysUserController {
@Autowired @Autowired
...@@ -103,16 +106,18 @@ public class SysUserController { ...@@ -103,16 +106,18 @@ public class SysUserController {
/** /**
* 获取租户下用户数据(支持租户隔离) * 获取租户下用户数据(支持租户隔离)
*
* @param user * @param user
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
* @param req * @param req
* @return * @return
*/ */
@ApiOperation("获取租户下用户数据")
@PermissionData(pageComponent = "system/UserList") @PermissionData(pageComponent = "system/UserList")
@RequestMapping(value = "/list", method = RequestMethod.GET) @RequestMapping(value = "/list", method = RequestMethod.GET)
public Result<IPage<SysUser>> queryPageList(SysUser user,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Result<IPage<SysUser>> queryPageList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
...@@ -122,7 +127,7 @@ public class SysUserController { ...@@ -122,7 +127,7 @@ public class SysUserController {
List<String> userIds = userTenantService.getUserIdsByTenantId(Integer.valueOf(tenantId)); List<String> userIds = userTenantService.getUserIdsByTenantId(Integer.valueOf(tenantId));
if (oConvertUtils.listIsNotEmpty(userIds)) { if (oConvertUtils.listIsNotEmpty(userIds)) {
queryWrapper.in("id", userIds); queryWrapper.in("id", userIds);
}else{ } else {
queryWrapper.eq("id", "通过租户查询不到任何用户"); queryWrapper.eq("id", "通过租户查询不到任何用户");
} }
//update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------ //update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
...@@ -140,7 +145,8 @@ public class SysUserController { ...@@ -140,7 +145,8 @@ public class SysUserController {
* @param req * @param req
* @return * @return
*/ */
//@RequiresPermissions("system:user:listAll") // @RequiresPermissions("system:user:listAll")
@ApiOperation("获取系统用户数据")
@RequestMapping(value = "/listAll", method = RequestMethod.GET) @RequestMapping(value = "/listAll", method = RequestMethod.GET)
public Result<IPage<SysUser>> queryAllPageList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, public Result<IPage<SysUser>> queryAllPageList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
...@@ -149,6 +155,7 @@ public class SysUserController { ...@@ -149,6 +155,7 @@ public class SysUserController {
} }
//@RequiresPermissions("system:user:add") //@RequiresPermissions("system:user:add")
@ApiOperation("新增用户")
@RequestMapping(value = "/add", method = RequestMethod.POST) @RequestMapping(value = "/add", method = RequestMethod.POST)
public Result<SysUser> add(@RequestBody JSONObject jsonObject) { public Result<SysUser> add(@RequestBody JSONObject jsonObject) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
...@@ -169,7 +176,7 @@ public class SysUserController { ...@@ -169,7 +176,7 @@ public class SysUserController {
//获取租户ids //获取租户ids
String relTenantIds = jsonObject.getString("relTenantIds"); String relTenantIds = jsonObject.getString("relTenantIds");
sysUserService.saveUser(user, selectedRoles, selectedDeparts, relTenantIds); sysUserService.saveUser(user, selectedRoles, selectedDeparts, relTenantIds);
baseCommonService.addLog("添加用户,username: " +user.getUsername() ,CommonConstant.LOG_TYPE_2, 2); baseCommonService.addLog("添加用户,username: " + user.getUsername(), CommonConstant.LOG_TYPE_2, 2);
result.success("添加成功!"); result.success("添加成功!");
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
...@@ -179,24 +186,25 @@ public class SysUserController { ...@@ -179,24 +186,25 @@ public class SysUserController {
} }
//@RequiresPermissions("system:user:edit") //@RequiresPermissions("system:user:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) @ApiOperation("编辑用户")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<SysUser> edit(@RequestBody JSONObject jsonObject) { public Result<SysUser> edit(@RequestBody JSONObject jsonObject) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
try { try {
SysUser sysUser = sysUserService.getById(jsonObject.getString("id")); SysUser sysUser = sysUserService.getById(jsonObject.getString("id"));
baseCommonService.addLog("编辑用户,username: " +sysUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2); baseCommonService.addLog("编辑用户,username: " + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, 2);
if(sysUser==null) { if (sysUser == null) {
result.error500("未找到对应实体"); result.error500("未找到对应实体");
}else { } else {
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class); SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
user.setUpdateTime(new Date()); user.setUpdateTime(new Date());
//String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt()); //String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt());
user.setPassword(sysUser.getPassword()); user.setPassword(sysUser.getPassword());
String roles = jsonObject.getString("selectedroles"); String roles = jsonObject.getString("selectedroles");
String departs = jsonObject.getString("selecteddeparts"); String departs = jsonObject.getString("selecteddeparts");
if(oConvertUtils.isEmpty(departs)){ if (oConvertUtils.isEmpty(departs)) {
//vue3.0前端只传递了departIds //vue3.0前端只传递了departIds
departs=user.getDepartIds(); departs = user.getDepartIds();
} }
//用户表字段org_code不能在这里设置他的值 //用户表字段org_code不能在这里设置他的值
user.setOrgCode(null); user.setOrgCode(null);
...@@ -217,9 +225,10 @@ public class SysUserController { ...@@ -217,9 +225,10 @@ public class SysUserController {
* 删除用户 * 删除用户
*/ */
//@RequiresPermissions("system:user:delete") //@RequiresPermissions("system:user:delete")
@ApiOperation("删除用户")
@RequestMapping(value = "/delete", method = RequestMethod.DELETE) @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
public Result<?> delete(@RequestParam(name="id",required=true) String id) { public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); baseCommonService.addLog("删除用户,id: " + id, CommonConstant.LOG_TYPE_2, 3);
this.sysUserService.deleteUser(id); this.sysUserService.deleteUser(id);
return Result.ok("删除用户成功"); return Result.ok("删除用户成功");
} }
...@@ -228,19 +237,22 @@ public class SysUserController { ...@@ -228,19 +237,22 @@ public class SysUserController {
* 批量删除用户 * 批量删除用户
*/ */
//@RequiresPermissions("system:user:deleteBatch") //@RequiresPermissions("system:user:deleteBatch")
@ApiOperation("批量删除用户")
@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE) @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
baseCommonService.addLog("批量删除用户, ids: " +ids ,CommonConstant.LOG_TYPE_2, 3); baseCommonService.addLog("批量删除用户, ids: " + ids, CommonConstant.LOG_TYPE_2, 3);
this.sysUserService.deleteBatchUsers(ids); this.sysUserService.deleteBatchUsers(ids);
return Result.ok("批量删除用户成功"); return Result.ok("批量删除用户成功");
} }
/** /**
* 冻结&解冻用户 * 冻结&解冻用户
*
* @param jsonObject * @param jsonObject
* @return * @return
*/ */
//@RequiresPermissions("system:user:frozenBatch") //@RequiresPermissions("system:user:frozenBatch")
@ApiOperation("冻结&解冻用户")
@RequestMapping(value = "/frozenBatch", method = RequestMethod.PUT) @RequestMapping(value = "/frozenBatch", method = RequestMethod.PUT)
public Result<SysUser> frozenBatch(@RequestBody JSONObject jsonObject) { public Result<SysUser> frozenBatch(@RequestBody JSONObject jsonObject) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
...@@ -249,14 +261,14 @@ public class SysUserController { ...@@ -249,14 +261,14 @@ public class SysUserController {
String status = jsonObject.getString("status"); String status = jsonObject.getString("status");
String[] arr = ids.split(","); String[] arr = ids.split(",");
for (String id : arr) { for (String id : arr) {
if(oConvertUtils.isNotEmpty(id)) { if (oConvertUtils.isNotEmpty(id)) {
this.sysUserService.update(new SysUser().setStatus(Integer.parseInt(status)), this.sysUserService.update(new SysUser().setStatus(Integer.parseInt(status)),
new UpdateWrapper<SysUser>().lambda().eq(SysUser::getId,id)); new UpdateWrapper<SysUser>().lambda().eq(SysUser::getId, id));
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.error500("操作失败"+e.getMessage()); result.error500("操作失败" + e.getMessage());
} }
result.success("操作成功!"); result.success("操作成功!");
return result; return result;
...@@ -264,6 +276,7 @@ public class SysUserController { ...@@ -264,6 +276,7 @@ public class SysUserController {
} }
//@RequiresPermissions("system:user:queryById") //@RequiresPermissions("system:user:queryById")
@ApiOperation("查询单个")
@RequestMapping(value = "/queryById", method = RequestMethod.GET) @RequestMapping(value = "/queryById", method = RequestMethod.GET)
public Result<SysUser> queryById(@RequestParam(name = "id", required = true) String id) { public Result<SysUser> queryById(@RequestParam(name = "id", required = true) String id) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
...@@ -278,6 +291,7 @@ public class SysUserController { ...@@ -278,6 +291,7 @@ public class SysUserController {
} }
//@RequiresPermissions("system:user:queryUserRole") //@RequiresPermissions("system:user:queryUserRole")
@ApiOperation("查询用户角色")
@RequestMapping(value = "/queryUserRole", method = RequestMethod.GET) @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) { public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {
Result<List<String>> result = new Result<>(); Result<List<String>> result = new Result<>();
...@@ -303,6 +317,7 @@ public class SysUserController { ...@@ -303,6 +317,7 @@ public class SysUserController {
* @param sysUser * @param sysUser
* @return * @return
*/ */
@ApiOperation("校验用户账号是否唯一")
@RequestMapping(value = "/checkOnlyUser", method = RequestMethod.GET) @RequestMapping(value = "/checkOnlyUser", method = RequestMethod.GET)
public Result<Boolean> checkOnlyUser(SysUser sysUser) { public Result<Boolean> checkOnlyUser(SysUser sysUser) {
Result<Boolean> result = new Result<>(); Result<Boolean> result = new Result<>();
...@@ -340,7 +355,7 @@ public class SysUserController { ...@@ -340,7 +355,7 @@ public class SysUserController {
sysUser.setId(u.getId()); sysUser.setId(u.getId());
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------ //update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
baseCommonService.addLog("修改用户 "+sysUser.getUsername()+" 的密码,操作人: " +loginUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2); baseCommonService.addLog("修改用户 " + sysUser.getUsername() + " 的密码,操作人: " + loginUser.getUsername(), CommonConstant.LOG_TYPE_2, 2);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------ //update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
return sysUserService.changePassword(sysUser); return sysUserService.changePassword(sysUser);
} }
...@@ -396,19 +411,19 @@ public class SysUserController { ...@@ -396,19 +411,19 @@ public class SysUserController {
* @return * @return
*/ */
@RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET) @RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET)
public Result<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id,@RequestParam(name="realname",required=false) String realname) { public Result<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id, @RequestParam(name = "realname", required = false) String realname) {
Result<List<SysUser>> result = new Result<>(); Result<List<SysUser>> result = new Result<>();
//List<SysUser> userList = sysUserDepartService.queryUserByDepId(id); //List<SysUser> userList = sysUserDepartService.queryUserByDepId(id);
SysDepart sysDepart = sysDepartService.getById(id); SysDepart sysDepart = sysDepartService.getById(id);
List<SysUser> userList = sysUserDepartService.queryUserByDepCode(sysDepart.getOrgCode(),realname); List<SysUser> userList = sysUserDepartService.queryUserByDepCode(sysDepart.getOrgCode(), realname);
//批量查询用户的所属部门 //批量查询用户的所属部门
//step.1 先拿到全部的 useids //step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字 //step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = userList.stream().map(SysUser::getId).collect(Collectors.toList()); List<String> userIds = userList.stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && userIds.size()>0){ if (userIds != null && userIds.size() > 0) {
Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
userList.forEach(item->{ userList.forEach(item -> {
//TODO 临时借用这个字段用于页面展示 //TODO 临时借用这个字段用于页面展示
item.setOrgCodeTxt(useDepNames.get(item.getId())); item.setOrgCodeTxt(useDepNames.get(item.getId()));
}); });
...@@ -427,23 +442,24 @@ public class SysUserController { ...@@ -427,23 +442,24 @@ public class SysUserController {
/** /**
* 用户选择组件 专用 根据用户账号或部门分页查询 * 用户选择组件 专用 根据用户账号或部门分页查询
*
* @param departId * @param departId
* @param username * @param username
* @return * @return
*/ */
@RequestMapping(value = "/queryUserComponentData", method = RequestMethod.GET) @RequestMapping(value = "/queryUserComponentData", method = RequestMethod.GET)
public Result<IPage<SysUser>> queryUserComponentData( public Result<IPage<SysUser>> queryUserComponentData(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "departId", required = false) String departId, @RequestParam(name = "departId", required = false) String departId,
@RequestParam(name="realname",required=false) String realname, @RequestParam(name = "realname", required = false) String realname,
@RequestParam(name="username",required=false) String username, @RequestParam(name = "username", required = false) String username,
@RequestParam(name="id",required = false) String id) { @RequestParam(name = "id", required = false) String id) {
//update-begin-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞 //update-begin-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞
String[] arr = new String[]{departId, realname, username, id}; String[] arr = new String[]{departId, realname, username, id};
SqlInjectionUtil.filterContent(arr, SymbolConstant.SINGLE_QUOTATION_MARK); SqlInjectionUtil.filterContent(arr, SymbolConstant.SINGLE_QUOTATION_MARK);
//update-end-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞 //update-end-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞
IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo,id); IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo, id);
return Result.OK(pageList); return Result.OK(pageList);
} }
...@@ -455,15 +471,15 @@ public class SysUserController { ...@@ -455,15 +471,15 @@ public class SysUserController {
*/ */
//@RequiresPermissions("system:user:export") //@RequiresPermissions("system:user:export")
@RequestMapping(value = "/exportXls") @RequestMapping(value = "/exportXls")
public ModelAndView exportXls(SysUser sysUser,HttpServletRequest request) { public ModelAndView exportXls(SysUser sysUser, HttpServletRequest request) {
// Step.1 组装查询条件 // Step.1 组装查询条件
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, request.getParameterMap()); QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, request.getParameterMap());
//Step.2 AutoPoi 导出Excel //Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//update-begin--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据-------------------- //update-begin--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据--------------------
String selections = request.getParameter("selections"); String selections = request.getParameter("selections");
if(!oConvertUtils.isEmpty(selections)){ if (!oConvertUtils.isEmpty(selections)) {
queryWrapper.in("id",selections.split(",")); queryWrapper.in("id", selections.split(","));
} }
//update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据---------------------- //update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
List<SysUser> pageList = sysUserService.list(queryWrapper); List<SysUser> pageList = sysUserService.list(queryWrapper);
...@@ -472,7 +488,7 @@ public class SysUserController { ...@@ -472,7 +488,7 @@ public class SysUserController {
mv.addObject(NormalExcelConstants.FILE_NAME, "用户列表"); mv.addObject(NormalExcelConstants.FILE_NAME, "用户列表");
mv.addObject(NormalExcelConstants.CLASS, SysUser.class); mv.addObject(NormalExcelConstants.CLASS, SysUser.class);
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ExportParams exportParams = new ExportParams("用户列表数据", "导出人:"+user.getRealname(), "导出信息"); ExportParams exportParams = new ExportParams("用户列表数据", "导出人:" + user.getRealname(), "导出信息");
exportParams.setImageBasePath(upLoadPath); exportParams.setImageBasePath(upLoadPath);
mv.addObject(NormalExcelConstants.PARAMS, exportParams); mv.addObject(NormalExcelConstants.PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, pageList); mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
...@@ -488,7 +504,7 @@ public class SysUserController { ...@@ -488,7 +504,7 @@ public class SysUserController {
*/ */
//@RequiresPermissions("system:user:import") //@RequiresPermissions("system:user:import")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST) @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException { public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
// 错误信息 // 错误信息
...@@ -560,13 +576,13 @@ public class SysUserController { ...@@ -560,13 +576,13 @@ public class SysUserController {
} }
} }
} }
return ImportExcelUtil.imporReturnRes(errorLines,successLines,errorMessage); return ImportExcelUtil.imporReturnRes(errorLines, successLines, errorMessage);
} }
/** /**
* @功能:根据id 批量查询
* @param userIds * @param userIds
* @return * @return
* @功能:根据id 批量查询
*/ */
@RequestMapping(value = "/queryByIds", method = RequestMethod.GET) @RequestMapping(value = "/queryByIds", method = RequestMethod.GET)
public Result<Collection<SysUser>> queryByIds(@RequestParam String userIds) { public Result<Collection<SysUser>> queryByIds(@RequestParam String userIds) {
...@@ -581,16 +597,16 @@ public class SysUserController { ...@@ -581,16 +597,16 @@ public class SysUserController {
/** /**
* @功能:根据id 批量查询
* @param userNames * @param userNames
* @return * @return
* @功能:根据id 批量查询
*/ */
@RequestMapping(value = "/queryByNames", method = RequestMethod.GET) @RequestMapping(value = "/queryByNames", method = RequestMethod.GET)
public Result<Collection<SysUser>> queryByNames(@RequestParam String userNames) { public Result<Collection<SysUser>> queryByNames(@RequestParam String userNames) {
Result<Collection<SysUser>> result = new Result<>(); Result<Collection<SysUser>> result = new Result<>();
String[] names = userNames.split(","); String[] names = userNames.split(",");
QueryWrapper<SysUser> queryWrapper=new QueryWrapper(); QueryWrapper<SysUser> queryWrapper = new QueryWrapper();
queryWrapper.lambda().in(true,SysUser::getUsername,names); queryWrapper.lambda().in(true, SysUser::getUsername, names);
Collection<SysUser> userRole = sysUserService.list(queryWrapper); Collection<SysUser> userRole = sysUserService.list(queryWrapper);
result.setSuccess(true); result.setSuccess(true);
result.setResult(userRole); result.setResult(userRole);
...@@ -607,29 +623,29 @@ public class SysUserController { ...@@ -607,29 +623,29 @@ public class SysUserController {
String oldpassword = json.getString("oldpassword"); String oldpassword = json.getString("oldpassword");
String password = json.getString("password"); String password = json.getString("password");
String confirmpassword = json.getString("confirmpassword"); String confirmpassword = json.getString("confirmpassword");
LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!sysUser.getUsername().equals(username)){ if (!sysUser.getUsername().equals(username)) {
return Result.error("只允许修改自己的密码!"); return Result.error("只允许修改自己的密码!");
} }
SysUser user = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username)); SysUser user = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username));
if(user==null) { if (user == null) {
return Result.error("用户不存在!"); return Result.error("用户不存在!");
} }
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------ //update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
baseCommonService.addLog("修改密码,username: " +loginUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2); baseCommonService.addLog("修改密码,username: " + loginUser.getUsername(), CommonConstant.LOG_TYPE_2, 2);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------ //update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
return sysUserService.resetPassword(username,oldpassword,password,confirmpassword); return sysUserService.resetPassword(username, oldpassword, password, confirmpassword);
} }
@RequestMapping(value = "/userRoleList", method = RequestMethod.GET) @RequestMapping(value = "/userRoleList", method = RequestMethod.GET)
public Result<IPage<SysUser>> userRoleList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Result<IPage<SysUser>> userRoleList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
Result<IPage<SysUser>> result = new Result<IPage<SysUser>>(); Result<IPage<SysUser>> result = new Result<IPage<SysUser>>();
Page<SysUser> page = new Page<SysUser>(pageNo, pageSize); Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
String roleId = req.getParameter("roleId"); String roleId = req.getParameter("roleId");
String username = req.getParameter("username"); String username = req.getParameter("username");
IPage<SysUser> pageList = sysUserService.getUserByRoleId(page,roleId,username); IPage<SysUser> pageList = sysUserService.getUserByRoleId(page, roleId, username);
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
return result; return result;
...@@ -647,12 +663,12 @@ public class SysUserController { ...@@ -647,12 +663,12 @@ public class SysUserController {
Result<String> result = new Result<String>(); Result<String> result = new Result<String>();
try { try {
String sysRoleId = sysUserRoleVO.getRoleId(); String sysRoleId = sysUserRoleVO.getRoleId();
for(String sysUserId:sysUserRoleVO.getUserIdList()) { for (String sysUserId : sysUserRoleVO.getUserIdList()) {
SysUserRole sysUserRole = new SysUserRole(sysUserId,sysRoleId); SysUserRole sysUserRole = new SysUserRole(sysUserId, sysRoleId);
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>(); QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
queryWrapper.eq("role_id", sysRoleId).eq("user_id",sysUserId); queryWrapper.eq("role_id", sysRoleId).eq("user_id", sysUserId);
SysUserRole one = sysUserRoleService.getOne(queryWrapper); SysUserRole one = sysUserRoleService.getOne(queryWrapper);
if(one==null){ if (one == null) {
sysUserRoleService.save(sysUserRole); sysUserRoleService.save(sysUserRole);
} }
...@@ -660,30 +676,32 @@ public class SysUserController { ...@@ -660,30 +676,32 @@ public class SysUserController {
result.setMessage("添加成功!"); result.setMessage("添加成功!");
result.setSuccess(true); result.setSuccess(true);
return result; return result;
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.setSuccess(false); result.setSuccess(false);
result.setMessage("出错了: " + e.getMessage()); result.setMessage("出错了: " + e.getMessage());
return result; return result;
} }
} }
/** /**
* 删除指定角色的用户关系 * 删除指定角色的用户关系
*
* @param * @param
* @return * @return
*/ */
//@RequiresPermissions("system:user:deleteRole") //@RequiresPermissions("system:user:deleteRole")
@RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE) @RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE)
public Result<SysUserRole> deleteUserRole(@RequestParam(name="roleId") String roleId, public Result<SysUserRole> deleteUserRole(@RequestParam(name = "roleId") String roleId,
@RequestParam(name="userId",required=true) String userId @RequestParam(name = "userId", required = true) String userId
) { ) {
Result<SysUserRole> result = new Result<SysUserRole>(); Result<SysUserRole> result = new Result<SysUserRole>();
try { try {
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>(); QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
queryWrapper.eq("role_id", roleId).eq("user_id",userId); queryWrapper.eq("role_id", roleId).eq("user_id", userId);
sysUserRoleService.remove(queryWrapper); sysUserRoleService.remove(queryWrapper);
result.success("删除成功!"); result.success("删除成功!");
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.error500("删除失败!"); result.error500("删除失败!");
} }
...@@ -699,15 +717,15 @@ public class SysUserController { ...@@ -699,15 +717,15 @@ public class SysUserController {
//@RequiresPermissions("system:user:deleteRoleBatch") //@RequiresPermissions("system:user:deleteRoleBatch")
@RequestMapping(value = "/deleteUserRoleBatch", method = RequestMethod.DELETE) @RequestMapping(value = "/deleteUserRoleBatch", method = RequestMethod.DELETE)
public Result<SysUserRole> deleteUserRoleBatch( public Result<SysUserRole> deleteUserRoleBatch(
@RequestParam(name="roleId") String roleId, @RequestParam(name = "roleId") String roleId,
@RequestParam(name="userIds",required=true) String userIds) { @RequestParam(name = "userIds", required = true) String userIds) {
Result<SysUserRole> result = new Result<SysUserRole>(); Result<SysUserRole> result = new Result<SysUserRole>();
try { try {
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>(); QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
queryWrapper.eq("role_id", roleId).in("user_id",Arrays.asList(userIds.split(","))); queryWrapper.eq("role_id", roleId).in("user_id", Arrays.asList(userIds.split(",")));
sysUserRoleService.remove(queryWrapper); sysUserRoleService.remove(queryWrapper);
result.success("删除成功!"); result.success("删除成功!");
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.error500("删除失败!"); result.error500("删除失败!");
} }
...@@ -718,8 +736,8 @@ public class SysUserController { ...@@ -718,8 +736,8 @@ public class SysUserController {
* 部门用户列表 * 部门用户列表
*/ */
@RequestMapping(value = "/departUserList", method = RequestMethod.GET) @RequestMapping(value = "/departUserList", method = RequestMethod.GET)
public Result<IPage<SysUser>> departUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Result<IPage<SysUser>> departUserList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
Result<IPage<SysUser>> result = new Result<IPage<SysUser>>(); Result<IPage<SysUser>> result = new Result<IPage<SysUser>>();
Page<SysUser> page = new Page<SysUser>(pageNo, pageSize); Page<SysUser> page = new Page<SysUser>(pageNo, pageSize);
String depId = req.getParameter("depId"); String depId = req.getParameter("depId");
...@@ -727,22 +745,22 @@ public class SysUserController { ...@@ -727,22 +745,22 @@ public class SysUserController {
//根据部门ID查询,当前和下级所有的部门IDS //根据部门ID查询,当前和下级所有的部门IDS
List<String> subDepids = new ArrayList<>(); List<String> subDepids = new ArrayList<>();
//部门id为空时,查询我的部门下所有用户 //部门id为空时,查询我的部门下所有用户
if(oConvertUtils.isEmpty(depId)){ if (oConvertUtils.isEmpty(depId)) {
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
int userIdentity = user.getUserIdentity() != null?user.getUserIdentity():CommonConstant.USER_IDENTITY_1; int userIdentity = user.getUserIdentity() != null ? user.getUserIdentity() : CommonConstant.USER_IDENTITY_1;
if(oConvertUtils.isNotEmpty(userIdentity) && userIdentity == CommonConstant.USER_IDENTITY_2 ){ if (oConvertUtils.isNotEmpty(userIdentity) && userIdentity == CommonConstant.USER_IDENTITY_2) {
subDepids = sysDepartService.getMySubDepIdsByDepId(user.getDepartIds()); subDepids = sysDepartService.getMySubDepIdsByDepId(user.getDepartIds());
} }
}else{ } else {
subDepids = sysDepartService.getSubDepIdsByDepId(depId); subDepids = sysDepartService.getSubDepIdsByDepId(depId);
} }
if(subDepids != null && subDepids.size()>0){ if (subDepids != null && subDepids.size() > 0) {
IPage<SysUser> pageList = sysUserService.getUserByDepIds(page,subDepids,username); IPage<SysUser> pageList = sysUserService.getUserByDepIds(page, subDepids, username);
//批量查询用户的所属部门 //批量查询用户的所属部门
//step.1 先拿到全部的 useids //step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字 //step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && userIds.size()>0){ if (userIds != null && userIds.size() > 0) {
Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
pageList.getRecords().forEach(item -> { pageList.getRecords().forEach(item -> {
//批量查询用户的所属部门 //批量查询用户的所属部门
...@@ -755,7 +773,7 @@ public class SysUserController { ...@@ -755,7 +773,7 @@ public class SysUserController {
//update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------ //update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
}else{ } else {
result.setSuccess(true); result.setSuccess(true);
result.setResult(null); result.setResult(null);
} }
...@@ -786,7 +804,7 @@ public class SysUserController { ...@@ -786,7 +804,7 @@ public class SysUserController {
public Result<?> queryByOrgCodeForAddressList( public Result<?> queryByOrgCodeForAddressList(
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "orgCode",required = false) String orgCode, @RequestParam(name = "orgCode", required = false) String orgCode,
SysUser userParams SysUser userParams
) { ) {
IPage page = new Page(pageNo, pageSize); IPage page = new Page(pageNo, pageSize);
...@@ -833,19 +851,19 @@ public class SysUserController { ...@@ -833,19 +851,19 @@ public class SysUserController {
Result<String> result = new Result<String>(); Result<String> result = new Result<String>();
try { try {
String sysDepId = sysDepartUsersVO.getDepId(); String sysDepId = sysDepartUsersVO.getDepId();
for(String sysUserId:sysDepartUsersVO.getUserIdList()) { for (String sysUserId : sysDepartUsersVO.getUserIdList()) {
SysUserDepart sysUserDepart = new SysUserDepart(null,sysUserId,sysDepId); SysUserDepart sysUserDepart = new SysUserDepart(null, sysUserId, sysDepId);
QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>(); QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>();
queryWrapper.eq("dep_id", sysDepId).eq("user_id",sysUserId); queryWrapper.eq("dep_id", sysDepId).eq("user_id", sysUserId);
SysUserDepart one = sysUserDepartService.getOne(queryWrapper); SysUserDepart one = sysUserDepartService.getOne(queryWrapper);
if(one==null){ if (one == null) {
sysUserDepartService.save(sysUserDepart); sysUserDepartService.save(sysUserDepart);
} }
} }
result.setMessage("添加成功!"); result.setMessage("添加成功!");
result.setSuccess(true); result.setSuccess(true);
return result; return result;
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.setSuccess(false); result.setSuccess(false);
result.setMessage("出错了: " + e.getMessage()); result.setMessage("出错了: " + e.getMessage());
...@@ -858,27 +876,27 @@ public class SysUserController { ...@@ -858,27 +876,27 @@ public class SysUserController {
*/ */
//@RequiresPermissions("system:user:deleteUserInDepart") //@RequiresPermissions("system:user:deleteUserInDepart")
@RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE) @RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE)
public Result<SysUserDepart> deleteUserInDepart(@RequestParam(name="depId") String depId, public Result<SysUserDepart> deleteUserInDepart(@RequestParam(name = "depId") String depId,
@RequestParam(name="userId",required=true) String userId @RequestParam(name = "userId", required = true) String userId
) { ) {
Result<SysUserDepart> result = new Result<SysUserDepart>(); Result<SysUserDepart> result = new Result<SysUserDepart>();
try { try {
QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>(); QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>();
queryWrapper.eq("dep_id", depId).eq("user_id",userId); queryWrapper.eq("dep_id", depId).eq("user_id", userId);
boolean b = sysUserDepartService.remove(queryWrapper); boolean b = sysUserDepartService.remove(queryWrapper);
if(b){ if (b) {
List<SysDepartRole> sysDepartRoleList = departRoleService.list(new QueryWrapper<SysDepartRole>().eq("depart_id",depId)); List<SysDepartRole> sysDepartRoleList = departRoleService.list(new QueryWrapper<SysDepartRole>().eq("depart_id", depId));
List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId).collect(Collectors.toList()); List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId).collect(Collectors.toList());
if(roleIds != null && roleIds.size()>0){ if (roleIds != null && roleIds.size() > 0) {
QueryWrapper<SysDepartRoleUser> query = new QueryWrapper<>(); QueryWrapper<SysDepartRoleUser> query = new QueryWrapper<>();
query.eq("user_id",userId).in("drole_id",roleIds); query.eq("user_id", userId).in("drole_id", roleIds);
departRoleUserService.remove(query); departRoleUserService.remove(query);
} }
result.success("删除成功!"); result.success("删除成功!");
}else{ } else {
result.error500("当前选中部门与用户无关联关系!"); result.error500("当前选中部门与用户无关联关系!");
} }
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.error500("删除失败!"); result.error500("删除失败!");
} }
...@@ -891,18 +909,18 @@ public class SysUserController { ...@@ -891,18 +909,18 @@ public class SysUserController {
//@RequiresPermissions("system:user:deleteUserInDepartBatch") //@RequiresPermissions("system:user:deleteUserInDepartBatch")
@RequestMapping(value = "/deleteUserInDepartBatch", method = RequestMethod.DELETE) @RequestMapping(value = "/deleteUserInDepartBatch", method = RequestMethod.DELETE)
public Result<SysUserDepart> deleteUserInDepartBatch( public Result<SysUserDepart> deleteUserInDepartBatch(
@RequestParam(name="depId") String depId, @RequestParam(name = "depId") String depId,
@RequestParam(name="userIds",required=true) String userIds) { @RequestParam(name = "userIds", required = true) String userIds) {
Result<SysUserDepart> result = new Result<SysUserDepart>(); Result<SysUserDepart> result = new Result<SysUserDepart>();
try { try {
QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>(); QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>();
queryWrapper.eq("dep_id", depId).in("user_id",Arrays.asList(userIds.split(","))); queryWrapper.eq("dep_id", depId).in("user_id", Arrays.asList(userIds.split(",")));
boolean b = sysUserDepartService.remove(queryWrapper); boolean b = sysUserDepartService.remove(queryWrapper);
if(b){ if (b) {
departRoleUserService.removeDeptRoleUser(Arrays.asList(userIds.split(",")),depId); departRoleUserService.removeDeptRoleUser(Arrays.asList(userIds.split(",")), depId);
} }
result.success("删除成功!"); result.success("删除成功!");
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.error500("删除失败!"); result.error500("删除失败!");
} }
...@@ -911,20 +929,21 @@ public class SysUserController { ...@@ -911,20 +929,21 @@ public class SysUserController {
/** /**
* 查询当前用户的所有部门/当前部门编码 * 查询当前用户的所有部门/当前部门编码
*
* @return * @return
*/ */
@RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET) @RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET)
public Result<Map<String,Object>> getCurrentUserDeparts() { public Result<Map<String, Object>> getCurrentUserDeparts() {
Result<Map<String,Object>> result = new Result<Map<String,Object>>(); Result<Map<String, Object>> result = new Result<Map<String, Object>>();
try { try {
LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<SysDepart> list = this.sysDepartService.queryUserDeparts(sysUser.getId()); List<SysDepart> list = this.sysDepartService.queryUserDeparts(sysUser.getId());
Map<String,Object> map = new HashMap(5); Map<String, Object> map = new HashMap(5);
map.put("list", list); map.put("list", list);
map.put("orgCode", sysUser.getOrgCode()); map.put("orgCode", sysUser.getOrgCode());
result.setSuccess(true); result.setSuccess(true);
result.setResult(map); result.setResult(map);
}catch(Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
result.error500("查询失败!"); result.error500("查询失败!");
} }
...@@ -932,8 +951,6 @@ public class SysUserController { ...@@ -932,8 +951,6 @@ public class SysUserController {
} }
/** /**
* 用户注册接口 * 用户注册接口
* *
...@@ -948,18 +965,18 @@ public class SysUserController { ...@@ -948,18 +965,18 @@ public class SysUserController {
String smscode = jsonObject.getString("smscode"); String smscode = jsonObject.getString("smscode");
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE+phone; String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone;
Object code = redisUtil.get(redisKey); Object code = redisUtil.get(redisKey);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String username = jsonObject.getString("username"); String username = jsonObject.getString("username");
//未设置用户名,则用手机号作为用户名 //未设置用户名,则用手机号作为用户名
if(oConvertUtils.isEmpty(username)){ if (oConvertUtils.isEmpty(username)) {
username = phone; username = phone;
} }
//未设置密码,则随机生成一个密码 //未设置密码,则随机生成一个密码
String password = jsonObject.getString("password"); String password = jsonObject.getString("password");
if(oConvertUtils.isEmpty(password)){ if (oConvertUtils.isEmpty(password)) {
password = RandomUtil.randomString(8); password = RandomUtil.randomString(8);
} }
String email = jsonObject.getString("email"); String email = jsonObject.getString("email");
...@@ -976,7 +993,7 @@ public class SysUserController { ...@@ -976,7 +993,7 @@ public class SysUserController {
return result; return result;
} }
if(oConvertUtils.isNotEmpty(email)){ if (oConvertUtils.isNotEmpty(email)) {
SysUser sysUser3 = sysUserService.getUserByEmail(email); SysUser sysUser3 = sysUserService.getUserByEmail(email);
if (sysUser3 != null) { if (sysUser3 != null) {
result.setMessage("邮箱已被注册"); result.setMessage("邮箱已被注册");
...@@ -984,7 +1001,7 @@ public class SysUserController { ...@@ -984,7 +1001,7 @@ public class SysUserController {
return result; return result;
} }
} }
if(null == code){ if (null == code) {
result.setMessage("手机验证码失效,请重新获取"); result.setMessage("手机验证码失效,请重新获取");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
...@@ -996,7 +1013,7 @@ public class SysUserController { ...@@ -996,7 +1013,7 @@ public class SysUserController {
} }
String realname = jsonObject.getString("realname"); String realname = jsonObject.getString("realname");
if(oConvertUtils.isEmpty(realname)){ if (oConvertUtils.isEmpty(realname)) {
realname = username; realname = username;
} }
...@@ -1013,7 +1030,7 @@ public class SysUserController { ...@@ -1013,7 +1030,7 @@ public class SysUserController {
user.setStatus(CommonConstant.USER_UNFREEZE); user.setStatus(CommonConstant.USER_UNFREEZE);
user.setDelFlag(CommonConstant.DEL_FLAG_0); user.setDelFlag(CommonConstant.DEL_FLAG_0);
user.setActivitiSync(CommonConstant.ACT_SYNC_0); user.setActivitiSync(CommonConstant.ACT_SYNC_0);
sysUserService.addUserWithRole(user,null); sysUserService.addUserWithRole(user, null);
result.success("注册成功"); result.success("注册成功");
} catch (Exception e) { } catch (Exception e) {
result.error500("注册失败"); result.error500("注册失败");
...@@ -1061,12 +1078,12 @@ public class SysUserController { ...@@ -1061,12 +1078,12 @@ public class SysUserController {
* 用户手机号验证 * 用户手机号验证
*/ */
@PostMapping("/phoneVerification") @PostMapping("/phoneVerification")
public Result<Map<String,String>> phoneVerification(@RequestBody JSONObject jsonObject) { public Result<Map<String, String>> phoneVerification(@RequestBody JSONObject jsonObject) {
Result<Map<String,String>> result = new Result<Map<String,String>>(); Result<Map<String, String>> result = new Result<Map<String, String>>();
String phone = jsonObject.getString("phone"); String phone = jsonObject.getString("phone");
String smscode = jsonObject.getString("smscode"); String smscode = jsonObject.getString("smscode");
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE+phone; String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone;
Object code = redisUtil.get(redisKey); Object code = redisUtil.get(redisKey);
if (!smscode.equals(code)) { if (!smscode.equals(code)) {
result.setMessage("手机验证码错误"); result.setMessage("手机验证码错误");
...@@ -1074,22 +1091,22 @@ public class SysUserController { ...@@ -1074,22 +1091,22 @@ public class SysUserController {
return result; return result;
} }
//设置有效时间 //设置有效时间
redisUtil.set(redisKey, smscode,600); redisUtil.set(redisKey, smscode, 600);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
//新增查询用户名 //新增查询用户名
LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>();
query.eq(SysUser::getPhone,phone); query.eq(SysUser::getPhone, phone);
SysUser user = sysUserService.getOne(query); SysUser user = sysUserService.getOne(query);
Map<String,String> map = new HashMap(5); Map<String, String> map = new HashMap(5);
map.put("smscode",smscode); map.put("smscode", smscode);
if(null == user){ if (null == user) {
//前端根据文字做判断用户是否存在判断,不能修改 //前端根据文字做判断用户是否存在判断,不能修改
result.setMessage("用户信息不存在"); result.setMessage("用户信息不存在");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
map.put("username",user.getUsername()); map.put("username", user.getUsername());
result.setResult(map); result.setResult(map);
result.setSuccess(true); result.setSuccess(true);
return result; return result;
...@@ -1099,33 +1116,33 @@ public class SysUserController { ...@@ -1099,33 +1116,33 @@ public class SysUserController {
* 用户更改密码 * 用户更改密码
*/ */
@GetMapping("/passwordChange") @GetMapping("/passwordChange")
public Result<SysUser> passwordChange(@RequestParam(name="username")String username, public Result<SysUser> passwordChange(@RequestParam(name = "username") String username,
@RequestParam(name="password")String password, @RequestParam(name = "password") String password,
@RequestParam(name="smscode")String smscode, @RequestParam(name = "smscode") String smscode,
@RequestParam(name="phone") String phone) { @RequestParam(name = "phone") String phone) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
if(oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(password) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone) ) { if (oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(password) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone)) {
result.setMessage("重置密码失败!"); result.setMessage("重置密码失败!");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
SysUser sysUser=new SysUser(); SysUser sysUser = new SysUser();
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE+phone; String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone;
Object object= redisUtil.get(redisKey); Object object = redisUtil.get(redisKey);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
if(null==object) { if (null == object) {
result.setMessage("短信验证码失效!"); result.setMessage("短信验证码失效!");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
if(!smscode.equals(object.toString())) { if (!smscode.equals(object.toString())) {
result.setMessage("短信验证码不匹配!"); result.setMessage("短信验证码不匹配!");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
sysUser = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername,username).eq(SysUser::getPhone,phone)); sysUser = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username).eq(SysUser::getPhone, phone));
if (sysUser == null) { if (sysUser == null) {
result.setMessage("未找到用户!"); result.setMessage("未找到用户!");
result.setSuccess(false); result.setSuccess(false);
...@@ -1137,7 +1154,7 @@ public class SysUserController { ...@@ -1137,7 +1154,7 @@ public class SysUserController {
sysUser.setPassword(passwordEncode); sysUser.setPassword(passwordEncode);
this.sysUserService.updateById(sysUser); this.sysUserService.updateById(sysUser);
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------ //update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
baseCommonService.addLog("重置 "+username+" 的密码,操作人: " +sysUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2); baseCommonService.addLog("重置 " + username + " 的密码,操作人: " + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, 2);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------ //update-end---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
result.setSuccess(true); result.setSuccess(true);
result.setMessage("密码重置完成!"); result.setMessage("密码重置完成!");
...@@ -1183,6 +1200,7 @@ public class SysUserController { ...@@ -1183,6 +1200,7 @@ public class SysUserController {
/** /**
* 【APP端接口】获取用户列表 根据用户名和真实名 模糊匹配 * 【APP端接口】获取用户列表 根据用户名和真实名 模糊匹配
*
* @param keyword * @param keyword
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
...@@ -1191,23 +1209,23 @@ public class SysUserController { ...@@ -1191,23 +1209,23 @@ public class SysUserController {
@GetMapping("/appUserList") @GetMapping("/appUserList")
public Result<?> appUserList(@RequestParam(name = "keyword", required = false) String keyword, public Result<?> appUserList(@RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name = "username", required = false) String username, @RequestParam(name = "username", required = false) String username,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "syncFlow", required = false) String syncFlow) { @RequestParam(name = "syncFlow", required = false) String syncFlow) {
try { try {
//TODO 从查询效率上将不要用mp的封装的page分页查询 建议自己写分页语句 //TODO 从查询效率上将不要用mp的封装的page分页查询 建议自己写分页语句
LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<SysUser>(); LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<SysUser>();
if(oConvertUtils.isNotEmpty(syncFlow)){ if (oConvertUtils.isNotEmpty(syncFlow)) {
query.eq(SysUser::getActivitiSync, CommonConstant.ACT_SYNC_1); query.eq(SysUser::getActivitiSync, CommonConstant.ACT_SYNC_1);
} }
query.eq(SysUser::getDelFlag,CommonConstant.DEL_FLAG_0); query.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
if(oConvertUtils.isNotEmpty(username)){ if (oConvertUtils.isNotEmpty(username)) {
if(username.contains(",")){ if (username.contains(",")) {
query.in(SysUser::getUsername,username.split(",")); query.in(SysUser::getUsername, username.split(","));
}else{ } else {
query.eq(SysUser::getUsername,username); query.eq(SysUser::getUsername, username);
} }
}else{ } else {
query.and(i -> i.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname, keyword)); query.and(i -> i.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname, keyword));
} }
Page<SysUser> page = new Page<>(pageNo, pageSize); Page<SysUser> page = new Page<>(pageNo, pageSize);
...@@ -1275,59 +1293,60 @@ public class SysUserController { ...@@ -1275,59 +1293,60 @@ public class SysUserController {
/** /**
* 移动端修改用户信息 * 移动端修改用户信息
*
* @param jsonObject * @param jsonObject
* @return * @return
*/ */
@RequiresRoles({"admin"}) @RequiresRoles({"admin"})
@RequestMapping(value = "/appEdit", method = {RequestMethod.PUT,RequestMethod.POST}) @RequestMapping(value = "/appEdit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<SysUser> appEdit(HttpServletRequest request,@RequestBody JSONObject jsonObject) { public Result<SysUser> appEdit(HttpServletRequest request, @RequestBody JSONObject jsonObject) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
try { try {
String username = JwtUtil.getUserNameByToken(request); String username = JwtUtil.getUserNameByToken(request);
SysUser sysUser = sysUserService.getUserByName(username); SysUser sysUser = sysUserService.getUserByName(username);
baseCommonService.addLog("移动端编辑用户,id: " +jsonObject.getString("id") ,CommonConstant.LOG_TYPE_2, 2); baseCommonService.addLog("移动端编辑用户,id: " + jsonObject.getString("id"), CommonConstant.LOG_TYPE_2, 2);
String realname=jsonObject.getString("realname"); String realname = jsonObject.getString("realname");
String avatar=jsonObject.getString("avatar"); String avatar = jsonObject.getString("avatar");
String sex=jsonObject.getString("sex"); String sex = jsonObject.getString("sex");
String phone=jsonObject.getString("phone"); String phone = jsonObject.getString("phone");
String email=jsonObject.getString("email"); String email = jsonObject.getString("email");
Date birthday=jsonObject.getDate("birthday"); Date birthday = jsonObject.getDate("birthday");
SysUser userPhone = sysUserService.getUserByPhone(phone); SysUser userPhone = sysUserService.getUserByPhone(phone);
if(sysUser==null) { if (sysUser == null) {
result.error500("未找到对应用户!"); result.error500("未找到对应用户!");
}else { } else {
if(userPhone!=null){ if (userPhone != null) {
String userPhonename = userPhone.getUsername(); String userPhonename = userPhone.getUsername();
if(!userPhonename.equals(username)){ if (!userPhonename.equals(username)) {
result.error500("手机号已存在!"); result.error500("手机号已存在!");
return result; return result;
} }
} }
if(StringUtils.isNotBlank(realname)){ if (StringUtils.isNotBlank(realname)) {
sysUser.setRealname(realname); sysUser.setRealname(realname);
} }
if(StringUtils.isNotBlank(avatar)){ if (StringUtils.isNotBlank(avatar)) {
sysUser.setAvatar(avatar); sysUser.setAvatar(avatar);
} }
if(StringUtils.isNotBlank(sex)){ if (StringUtils.isNotBlank(sex)) {
sysUser.setSex(Integer.parseInt(sex)); sysUser.setSex(Integer.parseInt(sex));
} }
if(StringUtils.isNotBlank(phone)){ if (StringUtils.isNotBlank(phone)) {
sysUser.setPhone(phone); sysUser.setPhone(phone);
} }
if(StringUtils.isNotBlank(email)){ if (StringUtils.isNotBlank(email)) {
//update-begin---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确------------ //update-begin---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确------------
LambdaQueryWrapper<SysUser> emailQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysUser> emailQuery = new LambdaQueryWrapper<>();
emailQuery.eq(SysUser::getEmail,email); emailQuery.eq(SysUser::getEmail, email);
long count = sysUserService.count(emailQuery); long count = sysUserService.count(emailQuery);
if (!email.equals(sysUser.getEmail()) && count!=0) { if (!email.equals(sysUser.getEmail()) && count != 0) {
result.error500("保存失败,邮箱已存在!"); result.error500("保存失败,邮箱已存在!");
return result; return result;
} }
//update-end---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确-------------- //update-end---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确--------------
sysUser.setEmail(email); sysUser.setEmail(email);
} }
if(null != birthday){ if (null != birthday) {
sysUser.setBirthday(birthday); sysUser.setBirthday(birthday);
} }
sysUser.setUpdateTime(new Date()); sysUser.setUpdateTime(new Date());
...@@ -1339,20 +1358,22 @@ public class SysUserController { ...@@ -1339,20 +1358,22 @@ public class SysUserController {
} }
return result; return result;
} }
/** /**
* 移动端保存设备信息 * 移动端保存设备信息
*
* @param clientId * @param clientId
* @return * @return
*/ */
@RequestMapping(value = "/saveClientId", method = RequestMethod.GET) @RequestMapping(value = "/saveClientId", method = RequestMethod.GET)
public Result<SysUser> saveClientId(HttpServletRequest request,@RequestParam("clientId")String clientId) { public Result<SysUser> saveClientId(HttpServletRequest request, @RequestParam("clientId") String clientId) {
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
try { try {
String username = JwtUtil.getUserNameByToken(request); String username = JwtUtil.getUserNameByToken(request);
SysUser sysUser = sysUserService.getUserByName(username); SysUser sysUser = sysUserService.getUserByName(username);
if(sysUser==null) { if (sysUser == null) {
result.error500("未找到对应用户!"); result.error500("未找到对应用户!");
}else { } else {
sysUser.setClientId(clientId); sysUser.setClientId(clientId);
sysUserService.updateById(sysUser); sysUserService.updateById(sysUser);
} }
...@@ -1362,6 +1383,7 @@ public class SysUserController { ...@@ -1362,6 +1383,7 @@ public class SysUserController {
} }
return result; return result;
} }
/** /**
* 根据userid获取用户信息和部门员工信息 * 根据userid获取用户信息和部门员工信息
* *
...@@ -1370,50 +1392,54 @@ public class SysUserController { ...@@ -1370,50 +1392,54 @@ public class SysUserController {
@GetMapping("/queryChildrenByUsername") @GetMapping("/queryChildrenByUsername")
public Result queryChildrenByUsername(@RequestParam("userId") String userId) { public Result queryChildrenByUsername(@RequestParam("userId") String userId) {
//获取用户信息 //获取用户信息
Map<String,Object> map=new HashMap(5); Map<String, Object> map = new HashMap(5);
SysUser sysUser = sysUserService.getById(userId); SysUser sysUser = sysUserService.getById(userId);
String username = sysUser.getUsername(); String username = sysUser.getUsername();
Integer identity = sysUser.getUserIdentity(); Integer identity = sysUser.getUserIdentity();
map.put("sysUser",sysUser); map.put("sysUser", sysUser);
if(identity!=null && identity==2){ if (identity != null && identity == 2) {
//获取部门用户信息 //获取部门用户信息
String departIds = sysUser.getDepartIds(); String departIds = sysUser.getDepartIds();
if(StringUtils.isNotBlank(departIds)){ if (StringUtils.isNotBlank(departIds)) {
List<String> departIdList = Arrays.asList(departIds.split(",")); List<String> departIdList = Arrays.asList(departIds.split(","));
List<SysUser> childrenUser = sysUserService.queryByDepIds(departIdList,username); List<SysUser> childrenUser = sysUserService.queryByDepIds(departIdList, username);
map.put("children",childrenUser); map.put("children", childrenUser);
} }
} }
return Result.ok(map); return Result.ok(map);
} }
/** /**
* 移动端查询部门用户信息 * 移动端查询部门用户信息
*
* @param departId * @param departId
* @return * @return
*/ */
@GetMapping("/appQueryByDepartId") @GetMapping("/appQueryByDepartId")
public Result<List<SysUser>> appQueryByDepartId(@RequestParam(name="departId", required = false) String departId) { public Result<List<SysUser>> appQueryByDepartId(@RequestParam(name = "departId", required = false) String departId) {
Result<List<SysUser>> result = new Result<List<SysUser>>(); Result<List<SysUser>> result = new Result<List<SysUser>>();
List<String> list=new ArrayList<String> (); List<String> list = new ArrayList<String>();
list.add(departId); list.add(departId);
List<SysUser> childrenUser = sysUserService.queryByDepIds(list,null); List<SysUser> childrenUser = sysUserService.queryByDepIds(list, null);
result.setResult(childrenUser); result.setResult(childrenUser);
return result; return result;
} }
/** /**
* 移动端查询用户信息(通过用户名模糊查询) * 移动端查询用户信息(通过用户名模糊查询)
*
* @param keyword * @param keyword
* @return * @return
*/ */
@GetMapping("/appQueryUser") @GetMapping("/appQueryUser")
public Result<List<SysUser>> appQueryUser(@RequestParam(name = "keyword", required = false) String keyword, public Result<List<SysUser>> appQueryUser(@RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
Result<List<SysUser>> result = new Result<List<SysUser>>(); Result<List<SysUser>> result = new Result<List<SysUser>>();
LambdaQueryWrapper<SysUser> queryWrapper =new LambdaQueryWrapper<SysUser>(); LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<SysUser>();
//TODO 外部模拟登陆临时账号,列表不显示 //TODO 外部模拟登陆临时账号,列表不显示
queryWrapper.ne(SysUser::getUsername,"_reserve_user_external"); queryWrapper.ne(SysUser::getUsername, "_reserve_user_external");
if(StringUtils.isNotBlank(keyword)){ if (StringUtils.isNotBlank(keyword)) {
queryWrapper.and(i -> i.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname, keyword)); queryWrapper.and(i -> i.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname, keyword));
} }
Page<SysUser> page = new Page<>(pageNo, pageSize); Page<SysUser> page = new Page<>(pageNo, pageSize);
...@@ -1422,9 +1448,9 @@ public class SysUserController { ...@@ -1422,9 +1448,9 @@ public class SysUserController {
//step.1 先拿到全部的 useids //step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字 //step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && userIds.size()>0){ if (userIds != null && userIds.size() > 0) {
Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
pageList.getRecords().forEach(item->{ pageList.getRecords().forEach(item -> {
item.setOrgCodeTxt(useDepNames.get(item.getId())); item.setOrgCodeTxt(useDepNames.get(item.getId()));
}); });
} }
...@@ -1434,37 +1460,38 @@ public class SysUserController { ...@@ -1434,37 +1460,38 @@ public class SysUserController {
/** /**
* 根据用户名修改手机号[该方法未使用] * 根据用户名修改手机号[该方法未使用]
*
* @param json * @param json
* @return * @return
*/ */
@RequestMapping(value = "/updateMobile", method = RequestMethod.PUT) @RequestMapping(value = "/updateMobile", method = RequestMethod.PUT)
public Result<?> changMobile(@RequestBody JSONObject json,HttpServletRequest request) { public Result<?> changMobile(@RequestBody JSONObject json, HttpServletRequest request) {
String smscode = json.getString("smscode"); String smscode = json.getString("smscode");
String phone = json.getString("phone"); String phone = json.getString("phone");
Result<SysUser> result = new Result<SysUser>(); Result<SysUser> result = new Result<SysUser>();
//获取登录用户名 //获取登录用户名
String username = JwtUtil.getUserNameByToken(request); String username = JwtUtil.getUserNameByToken(request);
if(oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone)) { if (oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone)) {
result.setMessage("修改手机号失败!"); result.setMessage("修改手机号失败!");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE+phone; String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone;
Object object= redisUtil.get(redisKey); Object object = redisUtil.get(redisKey);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
if(null==object) { if (null == object) {
result.setMessage("短信验证码失效!"); result.setMessage("短信验证码失效!");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
if(!smscode.equals(object.toString())) { if (!smscode.equals(object.toString())) {
result.setMessage("短信验证码不匹配!"); result.setMessage("短信验证码不匹配!");
result.setSuccess(false); result.setSuccess(false);
return result; return result;
} }
SysUser user = sysUserService.getUserByName(username); SysUser user = sysUserService.getUserByName(username);
if(user==null) { if (user == null) {
return Result.error("用户不存在!"); return Result.error("用户不存在!");
} }
user.setPhone(phone); user.setPhone(phone);
...@@ -1475,17 +1502,18 @@ public class SysUserController { ...@@ -1475,17 +1502,18 @@ public class SysUserController {
/** /**
* 根据对象里面的属性值作in查询 属性可能会变 用户组件用到 * 根据对象里面的属性值作in查询 属性可能会变 用户组件用到
*
* @param sysUser * @param sysUser
* @return * @return
*/ */
@GetMapping("/getMultiUser") @GetMapping("/getMultiUser")
public List<SysUser> getMultiUser(SysUser sysUser){ public List<SysUser> getMultiUser(SysUser sysUser) {
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, null); QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, null);
//update-begin---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------ //update-begin---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------
queryWrapper.eq("status",Integer.parseInt(CommonConstant.STATUS_1)); queryWrapper.eq("status", Integer.parseInt(CommonConstant.STATUS_1));
//update-end---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------ //update-end---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------
List<SysUser> ls = this.sysUserService.list(queryWrapper); List<SysUser> ls = this.sysUserService.list(queryWrapper);
for(SysUser user: ls){ for (SysUser user : ls) {
user.setPassword(null); user.setPassword(null);
user.setSalt(null); user.setSalt(null);
} }
...@@ -1494,29 +1522,31 @@ public class SysUserController { ...@@ -1494,29 +1522,31 @@ public class SysUserController {
/** /**
* 聊天 创建聊天组件专用 根据用户账号、用户姓名、部门id分页查询 * 聊天 创建聊天组件专用 根据用户账号、用户姓名、部门id分页查询
*
* @param departId 部门id * @param departId 部门id
* @param keyword 搜索值 * @param keyword 搜索值
* @return * @return
*/ */
@GetMapping(value = "/getUserInformation") @GetMapping(value = "/getUserInformation")
public Result<IPage<SysUser>> getUserInformation( public Result<IPage<SysUser>> getUserInformation(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "departId", required = false) String departId, @RequestParam(name = "departId", required = false) String departId,
@RequestParam(name="keyword",required=false) String keyword) { @RequestParam(name = "keyword", required = false) String keyword) {
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
Integer tenantId = null; Integer tenantId = null;
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
tenantId = oConvertUtils.getInt(TenantContext.getTenant(),0); tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0);
} }
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId,departId, keyword, pageSize, pageNo); IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId, departId, keyword, pageSize, pageNo);
return Result.OK(pageList); return Result.OK(pageList);
} }
/** /**
* 简版流程用户选择组件 * 简版流程用户选择组件
*
* @param departId 部门id * @param departId 部门id
* @param roleId 角色id * @param roleId 角色id
* @param keyword 搜索值 * @param keyword 搜索值
...@@ -1524,36 +1554,37 @@ public class SysUserController { ...@@ -1524,36 +1554,37 @@ public class SysUserController {
*/ */
@GetMapping(value = "/selectUserList") @GetMapping(value = "/selectUserList")
public Result<IPage<SysUser>> selectUserList( public Result<IPage<SysUser>> selectUserList(
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "departId", required = false) String departId, @RequestParam(name = "departId", required = false) String departId,
@RequestParam(name = "roleId", required = false) String roleId, @RequestParam(name = "roleId", required = false) String roleId,
@RequestParam(name="keyword",required=false) String keyword) { @RequestParam(name = "keyword", required = false) String keyword) {
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
Integer tenantId = null; Integer tenantId = null;
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
String tenantStr = TenantContext.getTenant(); String tenantStr = TenantContext.getTenant();
if(oConvertUtils.isNotEmpty(tenantStr)){ if (oConvertUtils.isNotEmpty(tenantStr)) {
tenantId = Integer.parseInt(tenantStr); tenantId = Integer.parseInt(tenantStr);
} }
} }
//------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------
IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId, departId,roleId, keyword, pageSize, pageNo); IPage<SysUser> pageList = sysUserDepartService.getUserInformation(tenantId, departId, roleId, keyword, pageSize, pageNo);
return Result.OK(pageList); return Result.OK(pageList);
} }
/** /**
* 用户离职(新增代理人和用户状态变更操作)【低代码应用专用接口】 * 用户离职(新增代理人和用户状态变更操作)【低代码应用专用接口】
*
* @param sysUserAgent * @param sysUserAgent
* @return * @return
*/ */
@PutMapping("/userQuitAgent") @PutMapping("/userQuitAgent")
public Result<String> userQuitAgent(@RequestBody SysUserAgent sysUserAgent){ public Result<String> userQuitAgent(@RequestBody SysUserAgent sysUserAgent) {
//判断id是否为空 //判断id是否为空
if(oConvertUtils.isNotEmpty(sysUserAgent.getId())){ if (oConvertUtils.isNotEmpty(sysUserAgent.getId())) {
sysUserAgentService.updateById(sysUserAgent); sysUserAgentService.updateById(sysUserAgent);
}else{ } else {
sysUserAgentService.save(sysUserAgent); sysUserAgentService.save(sysUserAgent);
} }
sysUserService.userQuit(sysUserAgent.getUserName()); sysUserService.userQuit(sysUserAgent.getUserName());
...@@ -1567,7 +1598,7 @@ public class SysUserController { ...@@ -1567,7 +1598,7 @@ public class SysUserController {
*/ */
@GetMapping("/getQuitList") @GetMapping("/getQuitList")
public Result<List<SysUser>> getQuitList(HttpServletRequest req) { public Result<List<SysUser>> getQuitList(HttpServletRequest req) {
Integer tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(req),0); Integer tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(req), 0);
List<SysUser> quitList = sysUserService.getQuitList(tenantId); List<SysUser> quitList = sysUserService.getQuitList(tenantId);
if (null != quitList && quitList.size() > 0) { if (null != quitList && quitList.size() > 0) {
// 批量查询用户的所属部门 // 批量查询用户的所属部门
...@@ -1582,22 +1613,23 @@ public class SysUserController { ...@@ -1582,22 +1613,23 @@ public class SysUserController {
/** /**
* 更新刪除状态和离职状态【低代码应用专用接口】 * 更新刪除状态和离职状态【低代码应用专用接口】
*
* @param jsonObject * @param jsonObject
* @return Result<String> * @return Result<String>
*/ */
@PutMapping("/putCancelQuit") @PutMapping("/putCancelQuit")
public Result<String> putCancelQuit(@RequestBody JSONObject jsonObject, HttpServletRequest request){ public Result<String> putCancelQuit(@RequestBody JSONObject jsonObject, HttpServletRequest request) {
String userIds = jsonObject.getString("userIds"); String userIds = jsonObject.getString("userIds");
String usernames = jsonObject.getString("usernames"); String usernames = jsonObject.getString("usernames");
Integer tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(request),0); Integer tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(request), 0);
//将状态改成未删除 //将状态改成未删除
if (StringUtils.isNotBlank(userIds)) { if (StringUtils.isNotBlank(userIds)) {
userTenantService.putCancelQuit(Arrays.asList(userIds.split(SymbolConstant.COMMA)),tenantId); userTenantService.putCancelQuit(Arrays.asList(userIds.split(SymbolConstant.COMMA)), tenantId);
} }
if(StringUtils.isNotEmpty(usernames)){ if (StringUtils.isNotEmpty(usernames)) {
//根据用户名删除代理人 //根据用户名删除代理人
LambdaQueryWrapper<SysUserAgent> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysUserAgent> query = new LambdaQueryWrapper<>();
query.in(SysUserAgent::getUserName,Arrays.asList(usernames.split(SymbolConstant.COMMA))); query.in(SysUserAgent::getUserName, Arrays.asList(usernames.split(SymbolConstant.COMMA)));
sysUserAgentService.remove(query); sysUserAgentService.remove(query);
} }
return Result.ok("取消离职成功"); return Result.ok("取消离职成功");
...@@ -1605,29 +1637,30 @@ public class SysUserController { ...@@ -1605,29 +1637,30 @@ public class SysUserController {
/** /**
* 获取用户信息(vue3用户设置专用)【低代码应用专用接口】 * 获取用户信息(vue3用户设置专用)【低代码应用专用接口】
*
* @return * @return
*/ */
@GetMapping("/login/setting/getUserData") @GetMapping("/login/setting/getUserData")
public Result<SysUser> getUserData(HttpServletRequest request) { public Result<SysUser> getUserData(HttpServletRequest request) {
String username = JwtUtil.getUserNameByToken(request); String username = JwtUtil.getUserNameByToken(request);
SysUser user = sysUserService.getUserByName(username); SysUser user = sysUserService.getUserByName(username);
if(user==null) { if (user == null) {
return Result.error("未找到该用户数据"); return Result.error("未找到该用户数据");
} }
if(oConvertUtils.isNotEmpty(user.getPost())){ if (oConvertUtils.isNotEmpty(user.getPost())) {
String post = user.getPost(); String post = user.getPost();
LambdaQueryWrapper<SysPosition> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysPosition> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysPosition::getCode,Arrays.asList(post.split(SymbolConstant.COMMA))); queryWrapper.in(SysPosition::getCode, Arrays.asList(post.split(SymbolConstant.COMMA)));
queryWrapper.select(SysPosition::getName); queryWrapper.select(SysPosition::getName);
List<SysPosition> sysPositionList = sysPositionService.list(queryWrapper); List<SysPosition> sysPositionList = sysPositionService.list(queryWrapper);
StringBuilder nameBuilder = new StringBuilder(); StringBuilder nameBuilder = new StringBuilder();
String verticalBar = " | "; String verticalBar = " | ";
for (SysPosition sysPosition:sysPositionList){ for (SysPosition sysPosition : sysPositionList) {
nameBuilder.append(sysPosition.getName()).append(verticalBar); nameBuilder.append(sysPosition.getName()).append(verticalBar);
} }
String names = nameBuilder.toString(); String names = nameBuilder.toString();
if(oConvertUtils.isNotEmpty(names)){ if (oConvertUtils.isNotEmpty(names)) {
names = names.substring(0,names.lastIndexOf(verticalBar)); names = names.substring(0, names.lastIndexOf(verticalBar));
user.setPostText(names); user.setPostText(names);
} }
} }
...@@ -1636,6 +1669,7 @@ public class SysUserController { ...@@ -1636,6 +1669,7 @@ public class SysUserController {
/** /**
* 用户编辑(vue3用户设置专用)【低代码应用专用接口】 * 用户编辑(vue3用户设置专用)【低代码应用专用接口】
*
* @param sysUser * @param sysUser
* @return * @return
*/ */
...@@ -1644,10 +1678,10 @@ public class SysUserController { ...@@ -1644,10 +1678,10 @@ public class SysUserController {
public Result<String> userEdit(@RequestBody SysUser sysUser, HttpServletRequest request) { public Result<String> userEdit(@RequestBody SysUser sysUser, HttpServletRequest request) {
String username = JwtUtil.getUserNameByToken(request); String username = JwtUtil.getUserNameByToken(request);
SysUser user = sysUserService.getById(sysUser.getId()); SysUser user = sysUserService.getById(sysUser.getId());
if(user==null) { if (user == null) {
return Result.error("未找到该用户数据"); return Result.error("未找到该用户数据");
} }
if(!username.equals(user.getUsername())){ if (!username.equals(user.getUsername())) {
return Result.error("只能修改自己的数据"); return Result.error("只能修改自己的数据");
} }
sysUserService.updateById(sysUser); sysUserService.updateById(sysUser);
...@@ -1656,6 +1690,7 @@ public class SysUserController { ...@@ -1656,6 +1690,7 @@ public class SysUserController {
/** /**
* 批量修改 【low-app】 * 批量修改 【low-app】
*
* @param jsonObject * @param jsonObject
* @return * @return
*/ */
...@@ -1675,28 +1710,31 @@ public class SysUserController { ...@@ -1675,28 +1710,31 @@ public class SysUserController {
/** /**
* 根据关键词搜索部门和用户【low-app】 * 根据关键词搜索部门和用户【low-app】
*
* @param keyword * @param keyword
* @return * @return
*/ */
@GetMapping("/searchByKeyword") @GetMapping("/searchByKeyword")
public Result<DepartAndUserInfo> searchByKeyword(@RequestParam(name="keyword",required=false) String keyword) { public Result<DepartAndUserInfo> searchByKeyword(@RequestParam(name = "keyword", required = false) String keyword) {
DepartAndUserInfo info = sysUserService.searchByKeyword(keyword); DepartAndUserInfo info = sysUserService.searchByKeyword(keyword);
return Result.ok(info); return Result.ok(info);
} }
/** /**
* 编辑部门前获取部门相关信息 【low-app】 * 编辑部门前获取部门相关信息 【low-app】
*
* @param id * @param id
* @return * @return
*/ */
@GetMapping("/getUpdateDepartInfo") @GetMapping("/getUpdateDepartInfo")
public Result<UpdateDepartInfo> getUpdateDepartInfo(@RequestParam(name="id",required=false) String id) { public Result<UpdateDepartInfo> getUpdateDepartInfo(@RequestParam(name = "id", required = false) String id) {
UpdateDepartInfo info = sysUserService.getUpdateDepartInfo(id); UpdateDepartInfo info = sysUserService.getUpdateDepartInfo(id);
return Result.ok(info); return Result.ok(info);
} }
/** /**
* 编辑部门 【low-app】 * 编辑部门 【low-app】
*
* @param updateDepartInfo * @param updateDepartInfo
* @return * @return
*/ */
...@@ -1708,6 +1746,7 @@ public class SysUserController { ...@@ -1708,6 +1746,7 @@ public class SysUserController {
/** /**
* 设置负责人 取消负责人 * 设置负责人 取消负责人
*
* @param json * @param json
* @return * @return
*/ */
...@@ -1719,27 +1758,28 @@ public class SysUserController { ...@@ -1719,27 +1758,28 @@ public class SysUserController {
/** /**
* 修改租户下的用户【低代码应用专用接口】 * 修改租户下的用户【低代码应用专用接口】
*
* @param sysUser * @param sysUser
* @param req * @param req
* @return * @return
*/ */
@RequestMapping(value = "/editTenantUser", method = {RequestMethod.PUT,RequestMethod.POST}) @RequestMapping(value = "/editTenantUser", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> editTenantUser(@RequestBody SysUser sysUser,HttpServletRequest req){ public Result<String> editTenantUser(@RequestBody SysUser sysUser, HttpServletRequest req) {
Result<String> result = new Result<>(); Result<String> result = new Result<>();
String tenantId = TokenUtils.getTenantIdByRequest(req); String tenantId = TokenUtils.getTenantIdByRequest(req);
if(oConvertUtils.isEmpty(tenantId)){ if (oConvertUtils.isEmpty(tenantId)) {
return result.error500("无权修改他人信息!"); return result.error500("无权修改他人信息!");
} }
LambdaQueryWrapper<SysUserTenant> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysUserTenant> query = new LambdaQueryWrapper<>();
query.eq(SysUserTenant::getTenantId,Integer.valueOf(tenantId)); query.eq(SysUserTenant::getTenantId, Integer.valueOf(tenantId));
query.eq(SysUserTenant::getUserId,sysUser.getId()); query.eq(SysUserTenant::getUserId, sysUser.getId());
SysUserTenant one = userTenantService.getOne(query); SysUserTenant one = userTenantService.getOne(query);
if(null == one){ if (null == one) {
return result.error500("非当前租户下的用户,不允许修改!"); return result.error500("非当前租户下的用户,不允许修改!");
} }
String departs = req.getParameter("selecteddeparts"); String departs = req.getParameter("selecteddeparts");
String roles = req.getParameter("selectedroles"); String roles = req.getParameter("selectedroles");
sysUserService.editTenantUser(sysUser,tenantId,departs,roles); sysUserService.editTenantUser(sysUser, tenantId, departs, roles);
return Result.ok("修改成功"); return Result.ok("修改成功");
} }
} }
...@@ -156,6 +156,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl ...@@ -156,6 +156,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
result.setCode(200);
//log.info(pageList.toString()); //log.info(pageList.toString());
return result; return result;
} }
......
...@@ -28,8 +28,10 @@ ...@@ -28,8 +28,10 @@
<xxl-job-core.version>2.2.0</xxl-job-core.version> <xxl-job-core.version>2.2.0</xxl-job-core.version>
<fastjson.version>1.2.83</fastjson.version> <fastjson.version>1.2.83</fastjson.version>
<pegdown.version>1.6.0</pegdown.version> <pegdown.version>1.6.0</pegdown.version>
<knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version> <knife4j-spring-boot-starter.version>2.0.2</knife4j-spring-boot-starter.version>
<knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version> <knife4j-spring-ui.version>2.0.2</knife4j-spring-ui.version>
<!-- <knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version>
<knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version>-->
<!-- 数据库驱动 --> <!-- 数据库驱动 -->
<postgresql.version>42.2.25</postgresql.version> <postgresql.version>42.2.25</postgresql.version>
<ojdbc6.version>11.2.0.3</ojdbc6.version> <ojdbc6.version>11.2.0.3</ojdbc6.version>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment