Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
643258fecb
|
|
@ -56,7 +56,7 @@ public class SysUser extends BaseEntity
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
/** 密码 */
|
/** 密码 */
|
||||||
private String password;
|
private transient String password;
|
||||||
|
|
||||||
/** 帐号状态(0正常 1停用) */
|
/** 帐号状态(0正常 1停用) */
|
||||||
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
|
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import com.bonus.sgzb.system.api.RemoteUserService;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import com.bonus.sgzb.auth.service.SysLoginService;
|
import com.bonus.sgzb.auth.service.SysLoginService;
|
||||||
import com.bonus.sgzb.common.core.domain.R;
|
import com.bonus.sgzb.common.core.domain.R;
|
||||||
|
|
@ -36,9 +37,11 @@ import java.util.Map;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class TokenController {
|
public class TokenController {
|
||||||
|
|
||||||
private final String USER_PASSWORD = "NwCc@2024*";
|
@Value("${sgzb.userPassword}")
|
||||||
|
private String USER_PASSWORD;
|
||||||
|
|
||||||
private final String privateKey = "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKNPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gAkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWowcSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99EcvDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthhYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3UP8iWi1Qw0Y=";
|
@Value("${sgzb.privateKey}")
|
||||||
|
private String privateKey;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TokenService tokenService;
|
private TokenService tokenService;
|
||||||
|
|
@ -150,6 +153,8 @@ public class TokenController {
|
||||||
String captcha = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid).toString();
|
String captcha = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid).toString();
|
||||||
if (StringUtils.isBlank(captcha)) {
|
if (StringUtils.isBlank(captcha)) {
|
||||||
// 删除验证码缓存
|
// 删除验证码缓存
|
||||||
|
|
||||||
|
|
||||||
redisService.deleteObject(CacheConstants.CAPTCHA_CODE_KEY + uuid);
|
redisService.deleteObject(CacheConstants.CAPTCHA_CODE_KEY + uuid);
|
||||||
return R.fail("验证码超时,请重新刷新");
|
return R.fail("验证码超时,请重新刷新");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,12 @@ public class RegisterForms extends BaseEntity {
|
||||||
* 登录密码
|
* 登录密码
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(name = "userPassword", value = "登录密码")
|
@ApiModelProperty(name = "userPassword", value = "登录密码")
|
||||||
private String userPassword;
|
private transient String userPassword;
|
||||||
/**
|
/**
|
||||||
* 确认密码
|
* 确认密码
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(name = "againPassword", value = "确认密码")
|
@ApiModelProperty(name = "againPassword", value = "确认密码")
|
||||||
private String againPassword;
|
private transient String againPassword;
|
||||||
/**
|
/**
|
||||||
* 手机号码
|
* 手机号码
|
||||||
*/
|
*/
|
||||||
|
|
@ -83,13 +83,13 @@ public class RegisterForms extends BaseEntity {
|
||||||
/**
|
/**
|
||||||
* 是否原有用户
|
* 是否原有用户
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(name = "isOriginalUser",value = "是否原有用户")
|
@ApiModelProperty(name = "isOriginalUser", value = "是否原有用户")
|
||||||
private Integer isOriginalUser;
|
private Integer isOriginalUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 南网 外部关联Id(集成平台联调Id)
|
* 南网 外部关联Id(集成平台联调Id)
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(name = "externalId",value = "南网外部关联Id(集成平台联调Id)")
|
@ApiModelProperty(name = "externalId", value = "南网外部关联Id(集成平台联调Id)")
|
||||||
private String externalId;
|
private String externalId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ public class UserAccount extends BaseEntity {
|
||||||
/**
|
/**
|
||||||
* 密码
|
* 密码
|
||||||
*/
|
*/
|
||||||
private String password;
|
private transient String password;
|
||||||
/**
|
/**
|
||||||
* 电话
|
* 电话
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ spring:
|
||||||
nacos:
|
nacos:
|
||||||
discovery:
|
discovery:
|
||||||
# 服务注册地址
|
# 服务注册地址
|
||||||
server-addr: 192.168.0.62:8848
|
server-addr: 192.168.0.119:8848
|
||||||
namespace: sgzb_nwjj
|
namespace: sgzb_nwjj
|
||||||
config:
|
config:
|
||||||
# 配置中心地址
|
# 配置中心地址
|
||||||
server-addr: 192.168.0.62:8848
|
server-addr: 192.168.0.119:8848
|
||||||
namespace: sgzb_nwjj
|
namespace: sgzb_nwjj
|
||||||
# 配置文件格式
|
# 配置文件格式
|
||||||
file-extension: yml
|
file-extension: yml
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,16 @@
|
||||||
package com.bonus.sgzb.common.core.constant;
|
package com.bonus.sgzb.common.core.constant;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用常量信息
|
* 通用常量信息
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
@Component
|
||||||
public class Constants
|
public class Constants
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|
@ -139,11 +145,6 @@ public class Constants
|
||||||
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
|
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
|
||||||
"org.springframework", "org.apache", "com.bonus.sgzb.common.core.utils.file" };
|
"org.springframework", "org.apache", "com.bonus.sgzb.common.core.utils.file" };
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统初始密码
|
|
||||||
*/
|
|
||||||
public static final String USER_PASSWORD = "CqCc@2024*";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统初始密码
|
* 系统初始密码
|
||||||
*/
|
*/
|
||||||
|
|
@ -152,12 +153,17 @@ public class Constants
|
||||||
/**
|
/**
|
||||||
* 加密公钥
|
* 加密公钥
|
||||||
*/
|
*/
|
||||||
public static final String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==";
|
// public static final String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解密私钥
|
* 解密私钥
|
||||||
*/
|
*/
|
||||||
public static final String privateKey = "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKNPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gAkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWowcSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99EcvDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthhYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3UP8iWi1Qw0Y=";
|
public static String privateKey;
|
||||||
|
|
||||||
|
@Value("${sgzb.system.privateKey}")
|
||||||
|
public void setServerPort(String privateKey){
|
||||||
|
this.privateKey= privateKey;
|
||||||
|
}
|
||||||
|
|
||||||
public static final String INNER_PROTOCAL = "1"; //内部单位协议
|
public static final String INNER_PROTOCAL = "1"; //内部单位协议
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.bonus.sgzb.common.core.utils;
|
package com.bonus.sgzb.common.core.utils;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
|
||||||
import java.text.*;
|
import java.text.*;
|
||||||
|
|
@ -14,6 +15,7 @@ import java.util.*;
|
||||||
* 日期工具类
|
* 日期工具类
|
||||||
* @author bns
|
* @author bns
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class DateTimeHelper {
|
public class DateTimeHelper {
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -400,7 +402,7 @@ public class DateTimeHelper {
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
log.error("An error occurred", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -523,7 +525,7 @@ public class DateTimeHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
log.error("An error occurred", e);
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
@ -716,7 +718,7 @@ public class DateTimeHelper {
|
||||||
// 打印时间戳
|
// 打印时间戳
|
||||||
return timeStamp;
|
return timeStamp;
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
log.error("An error occurred", e);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -810,8 +812,8 @@ public class DateTimeHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.err.println(getTimeAfterThirtyDay());
|
log.error(getTimeAfterThirtyDay());
|
||||||
System.err.println(getNowTime());
|
log.error(getNowTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ public class ServletUtils
|
||||||
* @param response 渲染对象
|
* @param response 渲染对象
|
||||||
* @param string 待渲染的字符串
|
* @param string 待渲染的字符串
|
||||||
*/
|
*/
|
||||||
public static void renderString(HttpServletResponse response, String string)
|
/*public static void renderString(HttpServletResponse response, String string)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -207,7 +207,7 @@ public class ServletUtils
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是Ajax异步请求
|
* 是否是Ajax异步请求
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.bonus.sgzb.common.core.utils;
|
package com.bonus.sgzb.common.core.utils;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
@ -14,6 +15,7 @@ import java.util.regex.Pattern;
|
||||||
/**
|
/**
|
||||||
* @author bns
|
* @author bns
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class StringHelper {
|
public class StringHelper {
|
||||||
|
|
||||||
private static final String hexString = "0123456789ABCDEF";
|
private static final String hexString = "0123456789ABCDEF";
|
||||||
|
|
@ -74,7 +76,7 @@ public class StringHelper {
|
||||||
pfp.close();
|
pfp.close();
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
// TODO Auto-generated catch block
|
// TODO Auto-generated catch block
|
||||||
e.printStackTrace();
|
log.error("unicodeToString error", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -91,7 +93,7 @@ public class StringHelper {
|
||||||
String content = new String(b.getBytes((long) 1, (int) b.length()), "UTF-8");
|
String content = new String(b.getBytes((long) 1, (int) b.length()), "UTF-8");
|
||||||
return content;
|
return content;
|
||||||
} catch (SQLException | UnsupportedEncodingException e) {
|
} catch (SQLException | UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
log.error("unicodeToString error", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -107,7 +109,7 @@ public class StringHelper {
|
||||||
return new String(content.getBytes("ISO_8859_1"), "UTF-8");
|
return new String(content.getBytes("ISO_8859_1"), "UTF-8");
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
// TODO Auto-generated catch block
|
// TODO Auto-generated catch block
|
||||||
e.printStackTrace();
|
log.error("unicodeToString error", e);
|
||||||
}
|
}
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.bonus.sgzb.common.core.utils.bean;
|
package com.bonus.sgzb.common.core.utils.bean;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -8,46 +10,47 @@ import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean 工具类
|
* Bean 工具类
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class BeanUtils extends org.springframework.beans.BeanUtils
|
@Slf4j
|
||||||
{
|
public class BeanUtils extends org.springframework.beans.BeanUtils {
|
||||||
/** Bean方法名中属性名开始的下标 */
|
/**
|
||||||
|
* Bean方法名中属性名开始的下标
|
||||||
|
*/
|
||||||
private static final int BEAN_METHOD_PROP_INDEX = 3;
|
private static final int BEAN_METHOD_PROP_INDEX = 3;
|
||||||
|
|
||||||
/** * 匹配getter方法的正则表达式 */
|
/**
|
||||||
|
* 匹配getter方法的正则表达式
|
||||||
|
*/
|
||||||
private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)");
|
private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)");
|
||||||
|
|
||||||
/** * 匹配setter方法的正则表达式 */
|
/**
|
||||||
|
* 匹配setter方法的正则表达式
|
||||||
|
*/
|
||||||
private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)");
|
private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean属性复制工具方法。
|
* Bean属性复制工具方法。
|
||||||
*
|
*
|
||||||
* @param dest 目标对象
|
* @param dest 目标对象
|
||||||
* @param src 源对象
|
* @param src 源对象
|
||||||
*/
|
*/
|
||||||
public static void copyBeanProp(Object dest, Object src)
|
public static void copyBeanProp(Object dest, Object src) {
|
||||||
{
|
try {
|
||||||
try
|
|
||||||
{
|
|
||||||
copyProperties(src, dest);
|
copyProperties(src, dest);
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e)
|
log.error("An error occurred", e);
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取对象的setter方法。
|
* 获取对象的setter方法。
|
||||||
*
|
*
|
||||||
* @param obj 对象
|
* @param obj 对象
|
||||||
* @return 对象的setter方法列表
|
* @return 对象的setter方法列表
|
||||||
*/
|
*/
|
||||||
public static List<Method> getSetterMethods(Object obj)
|
public static List<Method> getSetterMethods(Object obj) {
|
||||||
{
|
|
||||||
// setter方法列表
|
// setter方法列表
|
||||||
List<Method> setterMethods = new ArrayList<Method>();
|
List<Method> setterMethods = new ArrayList<Method>();
|
||||||
|
|
||||||
|
|
@ -56,11 +59,9 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
|
||||||
|
|
||||||
// 查找setter方法
|
// 查找setter方法
|
||||||
|
|
||||||
for (Method method : methods)
|
for (Method method : methods) {
|
||||||
{
|
|
||||||
Matcher m = SET_PATTERN.matcher(method.getName());
|
Matcher m = SET_PATTERN.matcher(method.getName());
|
||||||
if (m.matches() && (method.getParameterTypes().length == 1))
|
if (m.matches() && (method.getParameterTypes().length == 1)) {
|
||||||
{
|
|
||||||
setterMethods.add(method);
|
setterMethods.add(method);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -70,23 +71,20 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取对象的getter方法。
|
* 获取对象的getter方法。
|
||||||
*
|
*
|
||||||
* @param obj 对象
|
* @param obj 对象
|
||||||
* @return 对象的getter方法列表
|
* @return 对象的getter方法列表
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static List<Method> getGetterMethods(Object obj)
|
public static List<Method> getGetterMethods(Object obj) {
|
||||||
{
|
|
||||||
// getter方法列表
|
// getter方法列表
|
||||||
List<Method> getterMethods = new ArrayList<Method>();
|
List<Method> getterMethods = new ArrayList<Method>();
|
||||||
// 获取所有方法
|
// 获取所有方法
|
||||||
Method[] methods = obj.getClass().getMethods();
|
Method[] methods = obj.getClass().getMethods();
|
||||||
// 查找getter方法
|
// 查找getter方法
|
||||||
for (Method method : methods)
|
for (Method method : methods) {
|
||||||
{
|
|
||||||
Matcher m = GET_PATTERN.matcher(method.getName());
|
Matcher m = GET_PATTERN.matcher(method.getName());
|
||||||
if (m.matches() && (method.getParameterTypes().length == 0))
|
if (m.matches() && (method.getParameterTypes().length == 0)) {
|
||||||
{
|
|
||||||
getterMethods.add(method);
|
getterMethods.add(method);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -97,14 +95,13 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
|
||||||
/**
|
/**
|
||||||
* 检查Bean方法名中的属性名是否相等。<br>
|
* 检查Bean方法名中的属性名是否相等。<br>
|
||||||
* 如getName()和setName()属性名一样,getName()和setAge()属性名不一样。
|
* 如getName()和setName()属性名一样,getName()和setAge()属性名不一样。
|
||||||
*
|
*
|
||||||
* @param m1 方法名1
|
* @param m1 方法名1
|
||||||
* @param m2 方法名2
|
* @param m2 方法名2
|
||||||
* @return 属性名一样返回true,否则返回false
|
* @return 属性名一样返回true,否则返回false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static boolean isMethodPropEquals(String m1, String m2)
|
public static boolean isMethodPropEquals(String m1, String m2) {
|
||||||
{
|
|
||||||
return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX));
|
return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.bonus.sgzb.common.core.utils.GlobalConstants;
|
import com.bonus.sgzb.common.core.utils.GlobalConstants;
|
||||||
import com.bonus.sgzb.common.core.utils.StringUtils;
|
import com.bonus.sgzb.common.core.utils.StringUtils;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -20,6 +21,7 @@ import org.apache.commons.lang3.ArrayUtils;
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class FileUtils
|
public class FileUtils
|
||||||
{
|
{
|
||||||
/** 字符常量:斜杠 {@code '/'} */
|
/** 字符常量:斜杠 {@code '/'} */
|
||||||
|
|
@ -69,7 +71,7 @@ public class FileUtils
|
||||||
}
|
}
|
||||||
catch (IOException e1)
|
catch (IOException e1)
|
||||||
{
|
{
|
||||||
e1.printStackTrace();
|
log.error("关闭文件输出流失败", e1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (fis != null)
|
if (fis != null)
|
||||||
|
|
@ -80,7 +82,7 @@ public class FileUtils
|
||||||
}
|
}
|
||||||
catch (IOException e1)
|
catch (IOException e1)
|
||||||
{
|
{
|
||||||
e1.printStackTrace();
|
log.error("关闭文件输入流失败", e1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ public class EscapeUtil
|
||||||
return tmp.toString();
|
return tmp.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args)
|
/* public static void main(String[] args)
|
||||||
{
|
{
|
||||||
String html = "<script>alert(1);</script>";
|
String html = "<script>alert(1);</script>";
|
||||||
String escape = EscapeUtil.escape(html);
|
String escape = EscapeUtil.escape(html);
|
||||||
|
|
@ -169,5 +169,5 @@ public class EscapeUtil
|
||||||
System.out.println("clean: " + EscapeUtil.clean(html));
|
System.out.println("clean: " + EscapeUtil.clean(html));
|
||||||
System.out.println("escape: " + escape);
|
System.out.println("escape: " + escape);
|
||||||
System.out.println("unescape: " + EscapeUtil.unescape(escape));
|
System.out.println("unescape: " + EscapeUtil.unescape(escape));
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,19 +40,22 @@ import com.bonus.sgzb.system.api.domain.SysOperLog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作日志记录处理
|
* 操作日志记录处理
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Aspect
|
@Aspect
|
||||||
@Component
|
@Component
|
||||||
public class LogAspect
|
public class LogAspect {
|
||||||
{
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(LogAspect.class);
|
private static final Logger log = LoggerFactory.getLogger(LogAspect.class);
|
||||||
|
|
||||||
/** 排除敏感属性字段 */
|
/**
|
||||||
public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" };
|
* 排除敏感属性字段
|
||||||
|
*/
|
||||||
|
public static final String[] EXCLUDE_PROPERTIES = {"password", "oldPassword", "newPassword", "confirmPassword"};
|
||||||
|
|
||||||
/** 计算操作消耗时间 */
|
/**
|
||||||
|
* 计算操作消耗时间
|
||||||
|
*/
|
||||||
private static final ThreadLocal<Long> TIME_THREADLOCAL = new NamedThreadLocal<Long>("Cost Time");
|
private static final ThreadLocal<Long> TIME_THREADLOCAL = new NamedThreadLocal<Long>("Cost Time");
|
||||||
|
|
||||||
private static ObjectMapper objectMapper = new ObjectMapper();
|
private static ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
@ -67,8 +70,7 @@ public class LogAspect
|
||||||
* 处理请求前执行
|
* 处理请求前执行
|
||||||
*/
|
*/
|
||||||
@Before(value = "@annotation(controllerLog)")
|
@Before(value = "@annotation(controllerLog)")
|
||||||
public void boBefore(JoinPoint joinPoint, Log controllerLog)
|
public void boBefore(JoinPoint joinPoint, Log controllerLog) {
|
||||||
{
|
|
||||||
TIME_THREADLOCAL.set(System.currentTimeMillis());
|
TIME_THREADLOCAL.set(System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,8 +80,7 @@ public class LogAspect
|
||||||
* @param joinPoint 切点
|
* @param joinPoint 切点
|
||||||
*/
|
*/
|
||||||
@AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult")
|
@AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult")
|
||||||
public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult)
|
public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) {
|
||||||
{
|
|
||||||
if (controllerLog.businessType() == BusinessType.MATERIAL) {
|
if (controllerLog.businessType() == BusinessType.MATERIAL) {
|
||||||
handleMaterialLog(joinPoint, controllerLog, null, jsonResult);
|
handleMaterialLog(joinPoint, controllerLog, null, jsonResult);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -89,20 +90,17 @@ public class LogAspect
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 拦截异常操作
|
* 拦截异常操作
|
||||||
*
|
*
|
||||||
* @param joinPoint 切点
|
* @param joinPoint 切点
|
||||||
* @param e 异常
|
* @param e 异常
|
||||||
*/
|
*/
|
||||||
@AfterThrowing(value = "@annotation(controllerLog)", throwing = "e")
|
@AfterThrowing(value = "@annotation(controllerLog)", throwing = "e")
|
||||||
public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e)
|
public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) {
|
||||||
{
|
|
||||||
handleLog(joinPoint, controllerLog, e, null);
|
handleLog(joinPoint, controllerLog, e, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult)
|
protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) {
|
||||||
{
|
try {
|
||||||
try
|
|
||||||
{
|
|
||||||
// *========数据库日志=========*//
|
// *========数据库日志=========*//
|
||||||
SysOperLog operLog = new SysOperLog();
|
SysOperLog operLog = new SysOperLog();
|
||||||
operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
|
operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
|
||||||
|
|
@ -111,13 +109,11 @@ public class LogAspect
|
||||||
operLog.setOperIp(ip);
|
operLog.setOperIp(ip);
|
||||||
operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255));
|
operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255));
|
||||||
String username = SecurityUtils.getUsername();
|
String username = SecurityUtils.getUsername();
|
||||||
if (StringUtils.isNotBlank(username))
|
if (StringUtils.isNotBlank(username)) {
|
||||||
{
|
|
||||||
operLog.setOperName(username);
|
operLog.setOperName(username);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e != null)
|
if (e != null) {
|
||||||
{
|
|
||||||
operLog.setStatus(BusinessStatus.FAIL.ordinal());
|
operLog.setStatus(BusinessStatus.FAIL.ordinal());
|
||||||
operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
|
operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
|
||||||
}
|
}
|
||||||
|
|
@ -133,22 +129,16 @@ public class LogAspect
|
||||||
operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get());
|
operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get());
|
||||||
// 保存数据库
|
// 保存数据库
|
||||||
asyncLogService.saveSysLog(operLog);
|
asyncLogService.saveSysLog(operLog);
|
||||||
}
|
} catch (Exception exp) {
|
||||||
catch (Exception exp)
|
|
||||||
{
|
|
||||||
// 记录本地异常日志
|
// 记录本地异常日志
|
||||||
log.error("异常信息:{}", exp.getMessage());
|
log.error("异常信息:{}", exp.getMessage());
|
||||||
exp.printStackTrace();
|
} finally {
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
TIME_THREADLOCAL.remove();
|
TIME_THREADLOCAL.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void handleMaterialLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) {
|
protected void handleMaterialLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) {
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
List<BmStorageLog> bmStorageLogList = new ArrayList<>();
|
List<BmStorageLog> bmStorageLogList = new ArrayList<>();
|
||||||
|
|
||||||
// 处理设置注解上的参数
|
// 处理设置注解上的参数
|
||||||
|
|
@ -161,8 +151,7 @@ public class LogAspect
|
||||||
bmStorageLog.setMethod(StringUtils.substring(Objects.requireNonNull(ServletUtils.getRequest()).getRequestURI(), 0, 255));
|
bmStorageLog.setMethod(StringUtils.substring(Objects.requireNonNull(ServletUtils.getRequest()).getRequestURI(), 0, 255));
|
||||||
String username = SecurityUtils.getUsername();
|
String username = SecurityUtils.getUsername();
|
||||||
R<LoginUser> userInfo = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
R<LoginUser> userInfo = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
||||||
if (ObjectUtils.isNotEmpty(userInfo))
|
if (ObjectUtils.isNotEmpty(userInfo)) {
|
||||||
{
|
|
||||||
bmStorageLog.setCreator(userInfo.getData().getSysUser().getNickName());
|
bmStorageLog.setCreator(userInfo.getData().getSysUser().getNickName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -183,35 +172,29 @@ public class LogAspect
|
||||||
bmStorageLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000));
|
bmStorageLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000));
|
||||||
HttpResult msgCode = objectMapper.readValue(bmStorageLog.getJsonResult(), HttpResult.class);
|
HttpResult msgCode = objectMapper.readValue(bmStorageLog.getJsonResult(), HttpResult.class);
|
||||||
bmStorageLog.setResultCode(msgCode.getCode());
|
bmStorageLog.setResultCode(msgCode.getCode());
|
||||||
bmStorageLog.setStatus(msgCode.getCode()==200 ? 0 : 1);
|
bmStorageLog.setStatus(msgCode.getCode() == 200 ? 0 : 1);
|
||||||
bmStorageLog.setResultMsg(msgCode.getMsg());
|
bmStorageLog.setResultMsg(msgCode.getMsg());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存数据库
|
// 保存数据库
|
||||||
asyncLogService.batchInsert(bmStorageLogList);
|
asyncLogService.batchInsert(bmStorageLogList);
|
||||||
}
|
} catch (Exception exp) {
|
||||||
catch (Exception exp)
|
|
||||||
{
|
|
||||||
// 记录本地异常日志
|
// 记录本地异常日志
|
||||||
log.error("异常信息:{}", exp.getMessage());
|
log.error("异常信息:{}", exp.getMessage());
|
||||||
exp.printStackTrace();
|
} finally {
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
TIME_THREADLOCAL.remove();
|
TIME_THREADLOCAL.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取注解中对方法的描述信息 用于Controller层注解
|
* 获取注解中对方法的描述信息 用于Controller层注解
|
||||||
*
|
*
|
||||||
* @param log 日志
|
* @param log 日志
|
||||||
* @param operLog 操作日志
|
* @param operLog 操作日志
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception
|
public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception {
|
||||||
{
|
|
||||||
// 设置action动作
|
// 设置action动作
|
||||||
operLog.setBusinessType(log.businessType().ordinal());
|
operLog.setBusinessType(log.businessType().ordinal());
|
||||||
// 设置标题
|
// 设置标题
|
||||||
|
|
@ -219,14 +202,12 @@ public class LogAspect
|
||||||
// 设置操作人类别
|
// 设置操作人类别
|
||||||
operLog.setOperatorType(log.operatorType().ordinal());
|
operLog.setOperatorType(log.operatorType().ordinal());
|
||||||
// 是否需要保存request,参数和值
|
// 是否需要保存request,参数和值
|
||||||
if (log.isSaveRequestData())
|
if (log.isSaveRequestData()) {
|
||||||
{
|
|
||||||
// 获取参数的信息,传入到数据库中。
|
// 获取参数的信息,传入到数据库中。
|
||||||
setRequestValue(joinPoint, operLog, log.excludeParamNames());
|
setRequestValue(joinPoint, operLog, log.excludeParamNames());
|
||||||
}
|
}
|
||||||
// 是否需要保存response,参数和值
|
// 是否需要保存response,参数和值
|
||||||
if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult))
|
if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) {
|
||||||
{
|
|
||||||
operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000));
|
operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -261,8 +242,8 @@ public class LogAspect
|
||||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||||
bmStorageLog.setTypeId(Objects.isNull(maInputRecord.getTypeId()) ? 0 : maInputRecord.getTypeId().intValue());
|
bmStorageLog.setTypeId(Objects.isNull(maInputRecord.getTypeId()) ? 0 : maInputRecord.getTypeId().intValue());
|
||||||
bmStorageLog.setTypeName(maInputRecord.getMaCode());
|
bmStorageLog.setTypeName(maInputRecord.getMaCode());
|
||||||
bmStorageLog.setPostStoreNum(Objects.isNull(maInputRecord.getNum()) ? 0: maInputRecord.getNum().intValue());
|
bmStorageLog.setPostStoreNum(Objects.isNull(maInputRecord.getNum()) ? 0 : maInputRecord.getNum().intValue());
|
||||||
bmStorageLog.setInNum(Objects.isNull(maInputRecord.getInputNum()) ? 0: maInputRecord.getInputNum().intValue());
|
bmStorageLog.setInNum(Objects.isNull(maInputRecord.getInputNum()) ? 0 : maInputRecord.getInputNum().intValue());
|
||||||
bmStorageLog.setPreStoreNum(bmStorageLog.getPostStoreNum() - bmStorageLog.getInNum());
|
bmStorageLog.setPreStoreNum(bmStorageLog.getPostStoreNum() - bmStorageLog.getInNum());
|
||||||
bmStorageLog.setTaskId(String.valueOf(maInputRecord.getTaskId()));
|
bmStorageLog.setTaskId(String.valueOf(maInputRecord.getTaskId()));
|
||||||
bmStorageLogList.add(bmStorageLog);
|
bmStorageLogList.add(bmStorageLog);
|
||||||
|
|
@ -285,7 +266,7 @@ public class LogAspect
|
||||||
// 领料出库
|
// 领料出库
|
||||||
if (joinPoint.getArgs()[0] instanceof List &&
|
if (joinPoint.getArgs()[0] instanceof List &&
|
||||||
((List) joinPoint.getArgs()[0]).stream().noneMatch((o -> !(o instanceof LeaseOutDetails)))) {
|
((List) joinPoint.getArgs()[0]).stream().noneMatch((o -> !(o instanceof LeaseOutDetails)))) {
|
||||||
List<LeaseOutDetails> leaseOutDetails = (List<LeaseOutDetails>)joinPoint.getArgs()[0];
|
List<LeaseOutDetails> leaseOutDetails = (List<LeaseOutDetails>) joinPoint.getArgs()[0];
|
||||||
for (LeaseOutDetails lod : leaseOutDetails) {
|
for (LeaseOutDetails lod : leaseOutDetails) {
|
||||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||||
bmStorageLog.setTaskId(String.valueOf(lod.getTaskId()));
|
bmStorageLog.setTaskId(String.valueOf(lod.getTaskId()));
|
||||||
|
|
@ -298,7 +279,7 @@ public class LogAspect
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (joinPoint.getArgs()[0] instanceof LeaseOutDetails) {
|
if (joinPoint.getArgs()[0] instanceof LeaseOutDetails) {
|
||||||
LeaseOutDetails lod = (LeaseOutDetails)joinPoint.getArgs()[0];
|
LeaseOutDetails lod = (LeaseOutDetails) joinPoint.getArgs()[0];
|
||||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||||
bmStorageLog.setTaskId(String.valueOf(lod.getTaskId()));
|
bmStorageLog.setTaskId(String.valueOf(lod.getTaskId()));
|
||||||
bmStorageLog.setTypeId(lod.getTypeId());
|
bmStorageLog.setTypeId(lod.getTypeId());
|
||||||
|
|
@ -310,7 +291,7 @@ public class LogAspect
|
||||||
}
|
}
|
||||||
// 退料接收-完成退料
|
// 退料接收-完成退料
|
||||||
if (joinPoint.getArgs()[0] instanceof BackApplyInfo) {
|
if (joinPoint.getArgs()[0] instanceof BackApplyInfo) {
|
||||||
BackApplyInfo bai = (BackApplyInfo)joinPoint.getArgs()[0];
|
BackApplyInfo bai = (BackApplyInfo) joinPoint.getArgs()[0];
|
||||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||||
bmStorageLog.setTaskId(String.valueOf(bai.getTaskId()));
|
bmStorageLog.setTaskId(String.valueOf(bai.getTaskId()));
|
||||||
bmStorageLog.setTypeId(Integer.parseInt(bai.getTypeId()));
|
bmStorageLog.setTypeId(Integer.parseInt(bai.getTypeId()));
|
||||||
|
|
@ -352,7 +333,7 @@ public class LogAspect
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取请求的参数,放到log中
|
* 获取请求的参数,放到log中
|
||||||
*
|
*
|
||||||
* @param operLog 操作日志
|
* @param operLog 操作日志
|
||||||
* @throws Exception 异常
|
* @throws Exception 异常
|
||||||
*/
|
*/
|
||||||
|
|
@ -360,7 +341,7 @@ public class LogAspect
|
||||||
String requestMethod = operLog.getRequestMethod();
|
String requestMethod = operLog.getRequestMethod();
|
||||||
Map<?, ?> paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest());
|
Map<?, ?> paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest());
|
||||||
if (StringUtils.isEmpty(paramsMap)) {
|
if (StringUtils.isEmpty(paramsMap)) {
|
||||||
if ((HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))){
|
if ((HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))) {
|
||||||
String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames);
|
String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames);
|
||||||
operLog.setOperParam(StringUtils.substring(params, 0, 2000));
|
operLog.setOperParam(StringUtils.substring(params, 0, 2000));
|
||||||
}
|
}
|
||||||
|
|
@ -372,22 +353,15 @@ public class LogAspect
|
||||||
/**
|
/**
|
||||||
* 参数拼装
|
* 参数拼装
|
||||||
*/
|
*/
|
||||||
private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames)
|
private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) {
|
||||||
{
|
|
||||||
String params = "";
|
String params = "";
|
||||||
if (paramsArray != null && paramsArray.length > 0)
|
if (paramsArray != null && paramsArray.length > 0) {
|
||||||
{
|
for (Object o : paramsArray) {
|
||||||
for (Object o : paramsArray)
|
if (StringUtils.isNotNull(o) && !isFilterObject(o)) {
|
||||||
{
|
try {
|
||||||
if (StringUtils.isNotNull(o) && !isFilterObject(o))
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames));
|
String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames));
|
||||||
params += jsonObj.toString() + " ";
|
params += jsonObj.toString() + " ";
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -398,38 +372,29 @@ public class LogAspect
|
||||||
/**
|
/**
|
||||||
* 忽略敏感属性
|
* 忽略敏感属性
|
||||||
*/
|
*/
|
||||||
public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames)
|
public PropertyPreExcludeFilter excludePropertyPreFilter(String[] excludeParamNames) {
|
||||||
{
|
|
||||||
return new PropertyPreExcludeFilter().addExcludes(ArrayUtils.addAll(EXCLUDE_PROPERTIES, excludeParamNames));
|
return new PropertyPreExcludeFilter().addExcludes(ArrayUtils.addAll(EXCLUDE_PROPERTIES, excludeParamNames));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否需要过滤的对象。
|
* 判断是否需要过滤的对象。
|
||||||
*
|
*
|
||||||
* @param o 对象信息。
|
* @param o 对象信息。
|
||||||
* @return 如果是需要过滤的对象,则返回true;否则返回false。
|
* @return 如果是需要过滤的对象,则返回true;否则返回false。
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public boolean isFilterObject(final Object o)
|
public boolean isFilterObject(final Object o) {
|
||||||
{
|
|
||||||
Class<?> clazz = o.getClass();
|
Class<?> clazz = o.getClass();
|
||||||
if (clazz.isArray())
|
if (clazz.isArray()) {
|
||||||
{
|
|
||||||
return clazz.getComponentType().isAssignableFrom(MultipartFile.class);
|
return clazz.getComponentType().isAssignableFrom(MultipartFile.class);
|
||||||
}
|
} else if (Collection.class.isAssignableFrom(clazz)) {
|
||||||
else if (Collection.class.isAssignableFrom(clazz))
|
|
||||||
{
|
|
||||||
Collection collection = (Collection) o;
|
Collection collection = (Collection) o;
|
||||||
for (Object value : collection)
|
for (Object value : collection) {
|
||||||
{
|
|
||||||
return value instanceof MultipartFile;
|
return value instanceof MultipartFile;
|
||||||
}
|
}
|
||||||
}
|
} else if (Map.class.isAssignableFrom(clazz)) {
|
||||||
else if (Map.class.isAssignableFrom(clazz))
|
|
||||||
{
|
|
||||||
Map map = (Map) o;
|
Map map = (Map) o;
|
||||||
for (Object value : map.entrySet())
|
for (Object value : map.entrySet()) {
|
||||||
{
|
|
||||||
Map.Entry entry = (Map.Entry) value;
|
Map.Entry entry = (Map.Entry) value;
|
||||||
return entry.getValue() instanceof MultipartFile;
|
return entry.getValue() instanceof MultipartFile;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ spring:
|
||||||
nacos:
|
nacos:
|
||||||
discovery:
|
discovery:
|
||||||
# 服务注册地址
|
# 服务注册地址
|
||||||
server-addr: 192.168.0.62:8848
|
server-addr: 192.168.0.119:8848
|
||||||
namespace: sgzb_nwjj
|
namespace: sgzb_nwjj
|
||||||
config:
|
config:
|
||||||
# 配置中心地址
|
# 配置中心地址
|
||||||
server-addr: 192.168.0.62:8848
|
server-addr: 192.168.0.119:8848
|
||||||
namespace: sgzb_nwjj
|
namespace: sgzb_nwjj
|
||||||
# 配置文件格式
|
# 配置文件格式
|
||||||
file-extension: yml
|
file-extension: yml
|
||||||
|
|
|
||||||
|
|
@ -2,20 +2,23 @@ package com.bonus.sgzb.system.config;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.cors.CorsConfiguration;
|
||||||
|
import org.springframework.web.cors.CorsConfigurationSource;
|
||||||
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用映射配置
|
* 通用映射配置
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ResourcesConfig implements WebMvcConfigurer
|
public class ResourcesConfig implements WebMvcConfigurer {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* 上传文件存储在本地的根路径
|
* 上传文件存储在本地的根路径
|
||||||
*/
|
*/
|
||||||
|
|
@ -29,13 +32,12 @@ public class ResourcesConfig implements WebMvcConfigurer
|
||||||
public String localFilePrefix;
|
public String localFilePrefix;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addResourceHandlers(ResourceHandlerRegistry registry)
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
{
|
|
||||||
/** 本地文件上传路径 */
|
/** 本地文件上传路径 */
|
||||||
registry.addResourceHandler("/**")
|
registry.addResourceHandler("/**")
|
||||||
.addResourceLocations("file:" + localFilePath + File.separator);
|
.addResourceLocations("file:" + localFilePath + File.separator);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启跨域
|
* 开启跨域
|
||||||
*/
|
*/
|
||||||
|
|
@ -46,6 +48,6 @@ public class ResourcesConfig implements WebMvcConfigurer
|
||||||
// 设置允许跨域请求的域名
|
// 设置允许跨域请求的域名
|
||||||
.allowedOrigins("*")
|
.allowedOrigins("*")
|
||||||
// 设置允许的方法
|
// 设置允许的方法
|
||||||
.allowedMethods("*");
|
.allowedMethods("GET", "POST", "PUT", "DELETE");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||||
import com.bonus.sgzb.common.core.utils.StringUtils;
|
import com.bonus.sgzb.common.core.utils.StringUtils;
|
||||||
import com.bonus.sgzb.system.config.RsaUtil;
|
import com.bonus.sgzb.system.config.RsaUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
|
@ -39,7 +40,8 @@ import com.bonus.sgzb.system.service.ISysConfigService;
|
||||||
@RequestMapping("/config")
|
@RequestMapping("/config")
|
||||||
public class SysConfigController extends BaseController
|
public class SysConfigController extends BaseController
|
||||||
{
|
{
|
||||||
private final String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==";
|
@Value("${sgzb.system.publicKey}")
|
||||||
|
private String publicKey;
|
||||||
private final String CONFIG_KEY = "sys.user.initPassword";
|
private final String CONFIG_KEY = "sys.user.initPassword";
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysConfigService configService;
|
private ISysConfigService configService;
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ public class SysFileController {
|
||||||
ErrorCode.ATTACHMENT_UPLOAD_FAILED.getMessage());
|
ErrorCode.ATTACHMENT_UPLOAD_FAILED.getMessage());
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
if (file != null && file.getId() != 0){
|
if (file != null && file.getId() != 0){
|
||||||
return AjaxResult.success(file);
|
return AjaxResult.success(file);
|
||||||
|
|
@ -91,7 +91,7 @@ public class SysFileController {
|
||||||
IOUtils.copy(inputStream, servletOutputStream);
|
IOUtils.copy(inputStream, servletOutputStream);
|
||||||
response.flushBuffer();
|
response.flushBuffer();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (servletOutputStream != null) {
|
if (servletOutputStream != null) {
|
||||||
|
|
@ -103,7 +103,7 @@ public class SysFileController {
|
||||||
// 召唤jvm的垃圾回收器
|
// 召唤jvm的垃圾回收器
|
||||||
System.gc();
|
System.gc();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ public class SysUserController extends BaseController {
|
||||||
util.exportExcel(response, list, "用户数据");
|
util.exportExcel(response, list, "用户数据");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log(title = "用户管理", businessType = BusinessType.IMPORT)
|
/* @Log(title = "用户管理", businessType = BusinessType.IMPORT)
|
||||||
@RequiresPermissions("system:user:import")
|
@RequiresPermissions("system:user:import")
|
||||||
@PostMapping("/importData")
|
@PostMapping("/importData")
|
||||||
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
|
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
|
||||||
|
|
@ -117,7 +117,7 @@ public class SysUserController extends BaseController {
|
||||||
String operName = SecurityUtils.getUsername();
|
String operName = SecurityUtils.getUsername();
|
||||||
String message = userService.importUser(userList, updateSupport, operName);
|
String message = userService.importUser(userList, updateSupport, operName);
|
||||||
return success(message);
|
return success(message);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
@PostMapping("/importTemplate")
|
@PostMapping("/importTemplate")
|
||||||
public void importTemplate(HttpServletResponse response) throws IOException {
|
public void importTemplate(HttpServletResponse response) throws IOException {
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
dao.insertFileInfo(file);
|
dao.insertFileInfo(file);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
@ -141,7 +141,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
// 返回上传文件路径:https://ggkt-atguigu-1310644373.cos.ap-beijing.myqcloud.com/01.jpg
|
// 返回上传文件路径:https://ggkt-atguigu-1310644373.cos.ap-beijing.myqcloud.com/01.jpg
|
||||||
return "https://" + bucketName + "." + "cos" + "." + ConstantPropertiesUtil.END_POINT+".myqcloud.com" + "/" + key;
|
return "https://" + bucketName + "." + "cos" + "." + ConstantPropertiesUtil.END_POINT+".myqcloud.com" + "/" + key;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -177,7 +177,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
dao.insertFileInfo(file);
|
dao.insertFileInfo(file);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
@ -194,7 +194,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
}
|
}
|
||||||
map.put("filePath", tmps);
|
map.put("filePath", tmps);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
@ -232,7 +232,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
fos.close();
|
fos.close();
|
||||||
in.close();
|
in.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return url;
|
return url;
|
||||||
|
|
@ -271,7 +271,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
fos.close();
|
fos.close();
|
||||||
in.close();
|
in.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return url;
|
return url;
|
||||||
|
|
@ -314,7 +314,7 @@ public class SysFileServiceImpl implements SysFileService {
|
||||||
}
|
}
|
||||||
length = cnWordsCount + noCnWordsCount;
|
length = cnWordsCount + noCnWordsCount;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
if (fileInputStream != null) {
|
if (fileInputStream != null) {
|
||||||
fileInputStream.close();
|
fileInputStream.close();
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,11 @@ spring:
|
||||||
nacos:
|
nacos:
|
||||||
discovery:
|
discovery:
|
||||||
# 服务注册地址
|
# 服务注册地址
|
||||||
server-addr: 192.168.0.62:8848
|
server-addr: 192.168.0.119:8848
|
||||||
namespace: sgzb_nwjj
|
namespace: sgzb_nwjj
|
||||||
config:
|
config:
|
||||||
# 配置中心地址
|
# 配置中心地址
|
||||||
server-addr: 192.168.0.62:8848
|
server-addr: 192.168.0.119:8848
|
||||||
namespace: sgzb_nwjj
|
namespace: sgzb_nwjj
|
||||||
# 配置文件格式
|
# 配置文件格式
|
||||||
file-extension: yml
|
file-extension: yml
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue