update 移除 fastjson 增加 jackson 工具类 重写相关业务

This commit is contained in:
疯狂的狮子li 2021-06-13 15:39:35 +08:00
parent c2cf7ba16a
commit d98faaffee
12 changed files with 207 additions and 133 deletions

View File

@ -21,7 +21,6 @@
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<druid.version>1.2.6</druid.version> <druid.version>1.2.6</druid.version>
<knife4j.version>3.0.2</knife4j.version> <knife4j.version>3.0.2</knife4j.version>
<fastjson.version>1.2.76</fastjson.version>
<poi.version>4.1.2</poi.version> <poi.version>4.1.2</poi.version>
<velocity.version>1.7</velocity.version> <velocity.version>1.7</velocity.version>
<jwt.version>0.9.1</jwt.version> <jwt.version>0.9.1</jwt.version>
@ -73,13 +72,6 @@
<version>${velocity.version}</version> <version>${velocity.version}</version>
</dependency> </dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- Token生成与解析--> <!-- Token生成与解析-->
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>

View File

@ -11,7 +11,7 @@ ruoyi:
# 文件路径 # 文件路径
profile: ./ruoyi/uploadPath profile: ./ruoyi/uploadPath
# 获取ip地址开关 # 获取ip地址开关
addressEnabled: false addressEnabled: true
captcha: captcha:
# 验证码开关 # 验证码开关

View File

@ -53,12 +53,6 @@
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
</dependency> </dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- excel工具 --> <!-- excel工具 -->
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>

View File

@ -0,0 +1,91 @@
package com.ruoyi.common.utils;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* JSON 工具类
*
* @author 芋道源码
*/
public class JsonUtils {
private static ObjectMapper objectMapper = new ObjectMapper();
/**
* 初始化 objectMapper 属性
* <p>
* 通过这样的方式使用 Spring 创建的 ObjectMapper Bean
*
* @param objectMapper ObjectMapper 对象
*/
public static void init(ObjectMapper objectMapper) {
JsonUtils.objectMapper = objectMapper;
}
public static String toJsonString(Object object) {
try {
return objectMapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
public static <T> T parseObject(String text, Class<T> clazz) {
if (StrUtil.isEmpty(text)) {
return null;
}
try {
return objectMapper.readValue(text, clazz);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static <T> T parseObject(byte[] bytes, Class<T> clazz) {
if (ArrayUtil.isEmpty(bytes)) {
return null;
}
try {
return objectMapper.readValue(bytes, clazz);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static <T> T parseObject(String text, TypeReference<T> typeReference) {
try {
return objectMapper.readValue(text, typeReference);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static <T> Map<String, T> parseMap(String text) {
try {
return objectMapper.readValue(text, new TypeReference<Map<String, T>>() {});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static <T> List<T> parseArray(String text, Class<T> clazz) {
if (StrUtil.isEmpty(text)) {
return new ArrayList<>();
}
try {
return objectMapper.readValue(text, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

View File

@ -3,11 +3,13 @@ package com.ruoyi.common.utils.ip;
import cn.hutool.core.net.NetUtil; import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.JsonUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Map;
/** /**
* 获取地址类 * 获取地址类
* *
@ -38,9 +40,9 @@ public class AddressUtils {
log.error("获取地理位置异常 {}", ip); log.error("获取地理位置异常 {}", ip);
return UNKNOWN; return UNKNOWN;
} }
JSONObject obj = JSONObject.parseObject(rspStr); Map<String, String> obj = JsonUtils.parseMap(rspStr);
String region = obj.getString("pro"); String region = obj.get("pro");
String city = obj.getString("city"); String city = obj.get("city");
return String.format("%s %s", region, city); return String.format("%s %s", region, city);
} catch (Exception e) { } catch (Exception e) {
log.error("获取地理位置异常 {}", ip); log.error("获取地理位置异常 {}", ip);

View File

@ -2,11 +2,11 @@ package com.ruoyi.framework.aspectj;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessStatus; import com.ruoyi.common.enums.BusinessStatus;
import com.ruoyi.common.enums.HttpMethod; import com.ruoyi.common.enums.HttpMethod;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.web.service.AsyncService; import com.ruoyi.framework.web.service.AsyncService;
@ -30,7 +30,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator;
import java.util.Map; import java.util.Map;
/** /**
@ -94,7 +93,7 @@ public class LogAspect
String ip = ServletUtils.getClientIP(); String ip = ServletUtils.getClientIP();
operLog.setOperIp(ip); operLog.setOperIp(ip);
// 返回参数 // 返回参数
operLog.setJsonResult(JSON.toJSONString(jsonResult)); operLog.setJsonResult(JsonUtils.toJsonString(jsonResult));
operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); operLog.setOperUrl(ServletUtils.getRequest().getRequestURI());
if (loginUser != null) if (loginUser != null)
@ -192,19 +191,16 @@ public class LogAspect
*/ */
private String argsArrayToString(Object[] paramsArray) private String argsArrayToString(Object[] paramsArray)
{ {
String params = ""; StringBuilder params = new StringBuilder();
if (paramsArray != null && paramsArray.length > 0) if (paramsArray != null && paramsArray.length > 0)
{ {
for (int i = 0; i < paramsArray.length; i++) for (Object o : paramsArray) {
{ if (Validator.isNotNull(o) && !isFilterObject(o)) {
if (Validator.isNotNull(paramsArray[i]) && !isFilterObject(paramsArray[i])) params.append(JsonUtils.toJsonString(o)).append(" ");
{ }
Object jsonObj = JSON.toJSON(paramsArray[i]); }
params += jsonObj.toString() + " ";
}
}
} }
return params.trim(); return params.toString().trim();
} }
/** /**
@ -224,19 +220,17 @@ public class LogAspect
else if (Collection.class.isAssignableFrom(clazz)) else if (Collection.class.isAssignableFrom(clazz))
{ {
Collection collection = (Collection) o; Collection collection = (Collection) o;
for (Iterator iter = collection.iterator(); iter.hasNext();) for (Object value : collection) {
{ return value instanceof MultipartFile;
return iter.next() instanceof MultipartFile; }
}
} }
else if (Map.class.isAssignableFrom(clazz)) else if (Map.class.isAssignableFrom(clazz))
{ {
Map map = (Map) o; Map map = (Map) o;
for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) for (Object value : map.entrySet()) {
{ Map.Entry entry = (Map.Entry) value;
Map.Entry entry = (Map.Entry) iter.next(); return entry.getValue() instanceof MultipartFile;
return entry.getValue() instanceof MultipartFile; }
}
} }
return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse
|| o instanceof BindingResult; || o instanceof BindingResult;

View File

@ -1,55 +1,56 @@
package com.ruoyi.framework.interceptor; package com.ruoyi.framework.interceptor;
import java.lang.reflect.Method; import com.ruoyi.common.annotation.RepeatSubmit;
import javax.servlet.http.HttpServletRequest; import com.ruoyi.common.core.domain.AjaxResult;
import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.utils.JsonUtils;
import org.springframework.stereotype.Component; import com.ruoyi.common.utils.ServletUtils;
import org.springframework.web.method.HandlerMethod; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import org.springframework.web.method.HandlerMethod;
import com.alibaba.fastjson.JSONObject; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.domain.AjaxResult; import javax.servlet.http.HttpServletRequest;
import com.ruoyi.common.utils.ServletUtils; import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
/**
* 防止重复提交拦截器 /**
* * 防止重复提交拦截器
* @author ruoyi *
*/ * @author ruoyi
@Component */
public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter @Component
{ public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter
@Override {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception @Override
{ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
if (handler instanceof HandlerMethod) {
{ if (handler instanceof HandlerMethod)
HandlerMethod handlerMethod = (HandlerMethod) handler; {
Method method = handlerMethod.getMethod(); HandlerMethod handlerMethod = (HandlerMethod) handler;
RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class); Method method = handlerMethod.getMethod();
if (annotation != null) RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class);
{ if (annotation != null)
if (this.isRepeatSubmit(request)) {
{ if (this.isRepeatSubmit(request))
AjaxResult ajaxResult = AjaxResult.error("不允许重复提交,请稍后再试"); {
ServletUtils.renderString(response, JSONObject.toJSONString(ajaxResult)); AjaxResult ajaxResult = AjaxResult.error("不允许重复提交,请稍后再试");
return false; ServletUtils.renderString(response, JsonUtils.toJsonString(ajaxResult));
} return false;
} }
return true; }
} return true;
else }
{ else
return super.preHandle(request, response, handler); {
} return super.preHandle(request, response, handler);
} }
}
/**
* 验证是否重复提交由子类实现具体的防重复提交的规则 /**
* * 验证是否重复提交由子类实现具体的防重复提交的规则
* @param request *
* @return * @param request
* @throws Exception * @return
*/ * @throws Exception
public abstract boolean isRepeatSubmit(HttpServletRequest request); */
} public abstract boolean isRepeatSubmit(HttpServletRequest request);
}

View File

@ -2,10 +2,10 @@ package com.ruoyi.framework.interceptor.impl;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.filter.RepeatedlyRequestWrapper; import com.ruoyi.common.filter.RepeatedlyRequestWrapper;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -69,7 +69,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor
// body参数为空获取Parameter的数据 // body参数为空获取Parameter的数据
if (Validator.isEmpty(nowParams)) if (Validator.isEmpty(nowParams))
{ {
nowParams = JSONObject.toJSONString(request.getParameterMap()); nowParams = JsonUtils.toJsonString(request.getParameterMap());
} }
Map<String, Object> nowDataMap = new HashMap<String, Object>(); Map<String, Object> nowDataMap = new HashMap<String, Object>();
nowDataMap.put(REPEAT_PARAMS, nowParams); nowDataMap.put(REPEAT_PARAMS, nowParams);

View File

@ -2,8 +2,8 @@ package com.ruoyi.framework.security.handle;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.security.web.AuthenticationEntryPoint;
@ -16,7 +16,7 @@ import java.io.Serializable;
/** /**
* 认证失败处理类 返回未授权 * 认证失败处理类 返回未授权
* *
* @author ruoyi * @author ruoyi
*/ */
@Component @Component
@ -30,6 +30,6 @@ public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, S
{ {
int code = HttpStatus.HTTP_UNAUTHORIZED; int code = HttpStatus.HTTP_UNAUTHORIZED;
String msg = StrUtil.format("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI()); String msg = StrUtil.format("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI());
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg))); ServletUtils.renderString(response, JsonUtils.toJsonString(AjaxResult.error(code, msg)));
} }
} }

View File

@ -2,10 +2,10 @@ package com.ruoyi.framework.security.handle;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.framework.web.service.AsyncService; import com.ruoyi.framework.web.service.AsyncService;
import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.framework.web.service.TokenService;
@ -47,7 +47,7 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler {
// 记录用户退出日志 // 记录用户退出日志
asyncService.recordLogininfor(userName, Constants.LOGOUT, "退出成功", request); asyncService.recordLogininfor(userName, Constants.LOGOUT, "退出成功", request);
} }
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(HttpStatus.HTTP_OK, "退出成功"))); ServletUtils.renderString(response, JsonUtils.toJsonString(AjaxResult.error(HttpStatus.HTTP_OK, "退出成功")));
} }
} }

View File

@ -3,8 +3,6 @@ package com.ruoyi.generator.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -12,6 +10,7 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.constant.GenConstants;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.exception.CustomException;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.FileUtils;
@ -130,7 +129,7 @@ public class GenTableServiceImpl extends ServiceImpl<GenTableMapper, GenTable> i
@Override @Override
@Transactional @Transactional
public void updateGenTable(GenTable genTable) { public void updateGenTable(GenTable genTable) {
String options = JSON.toJSONString(genTable.getParams()); String options = JsonUtils.toJsonString(genTable.getParams());
genTable.setOptions(options); genTable.setOptions(options);
int row = baseMapper.updateById(genTable); int row = baseMapper.updateById(genTable);
if (row > 0) { if (row > 0) {
@ -361,13 +360,12 @@ public class GenTableServiceImpl extends ServiceImpl<GenTableMapper, GenTable> i
@Override @Override
public void validateEdit(GenTable genTable) { public void validateEdit(GenTable genTable) {
if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) {
String options = JSON.toJSONString(genTable.getParams()); Map<String, Object> paramsObj = genTable.getParams();
JSONObject paramsObj = JSONObject.parseObject(options); if (Validator.isEmpty(paramsObj.get(GenConstants.TREE_CODE))) {
if (Validator.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) {
throw new CustomException("树编码字段不能为空"); throw new CustomException("树编码字段不能为空");
} else if (Validator.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) { } else if (Validator.isEmpty(paramsObj.get(GenConstants.TREE_PARENT_CODE))) {
throw new CustomException("树父编码字段不能为空"); throw new CustomException("树父编码字段不能为空");
} else if (Validator.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) { } else if (Validator.isEmpty(paramsObj.get(GenConstants.TREE_NAME))) {
throw new CustomException("树名称字段不能为空"); throw new CustomException("树名称字段不能为空");
} else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) {
if (Validator.isEmpty(genTable.getSubTableName())) { if (Validator.isEmpty(genTable.getSubTableName())) {
@ -425,13 +423,13 @@ public class GenTableServiceImpl extends ServiceImpl<GenTableMapper, GenTable> i
* @param genTable 设置后的生成对象 * @param genTable 设置后的生成对象
*/ */
public void setTableFromOptions(GenTable genTable) { public void setTableFromOptions(GenTable genTable) {
JSONObject paramsObj = JSONObject.parseObject(genTable.getOptions()); Map<String, String> paramsObj = JsonUtils.parseMap(genTable.getOptions());
if (Validator.isNotNull(paramsObj)) { if (Validator.isNotNull(paramsObj)) {
String treeCode = paramsObj.getString(GenConstants.TREE_CODE); String treeCode = paramsObj.get(GenConstants.TREE_CODE);
String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); String treeParentCode = paramsObj.get(GenConstants.TREE_PARENT_CODE);
String treeName = paramsObj.getString(GenConstants.TREE_NAME); String treeName = paramsObj.get(GenConstants.TREE_NAME);
String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID); String parentMenuId = paramsObj.get(GenConstants.PARENT_MENU_ID);
String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); String parentMenuName = paramsObj.get(GenConstants.PARENT_MENU_NAME);
genTable.setTreeCode(treeCode); genTable.setTreeCode(treeCode);
genTable.setTreeParentCode(treeParentCode); genTable.setTreeParentCode(treeParentCode);

View File

@ -1,10 +1,11 @@
package com.ruoyi.generator.util; package com.ruoyi.generator.util;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.constant.GenConstants;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn; import com.ruoyi.generator.domain.GenTableColumn;
import org.apache.velocity.VelocityContext; import org.apache.velocity.VelocityContext;
@ -12,10 +13,11 @@ import org.apache.velocity.VelocityContext;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 模板处理工具类 * 模板处理工具类
* *
* @author ruoyi * @author ruoyi
*/ */
public class VelocityUtils public class VelocityUtils
@ -75,7 +77,7 @@ public class VelocityUtils
public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) public static void setMenuVelocityContext(VelocityContext context, GenTable genTable)
{ {
String options = genTable.getOptions(); String options = genTable.getOptions();
JSONObject paramsObj = JSONObject.parseObject(options); Map<String, Object> paramsObj = JsonUtils.parseMap(options);
String parentMenuId = getParentMenuId(paramsObj); String parentMenuId = getParentMenuId(paramsObj);
context.put("parentMenuId", parentMenuId); context.put("parentMenuId", parentMenuId);
} }
@ -83,7 +85,7 @@ public class VelocityUtils
public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) public static void setTreeVelocityContext(VelocityContext context, GenTable genTable)
{ {
String options = genTable.getOptions(); String options = genTable.getOptions();
JSONObject paramsObj = JSONObject.parseObject(options); Map<String, Object> paramsObj = JsonUtils.parseMap(options);
String treeCode = getTreecode(paramsObj); String treeCode = getTreecode(paramsObj);
String treeParentCode = getTreeParentCode(paramsObj); String treeParentCode = getTreeParentCode(paramsObj);
String treeName = getTreeName(paramsObj); String treeName = getTreeName(paramsObj);
@ -94,11 +96,11 @@ public class VelocityUtils
context.put("expandColumn", getExpandColumn(genTable)); context.put("expandColumn", getExpandColumn(genTable));
if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE))
{ {
context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); context.put("tree_parent_code", paramsObj.get(GenConstants.TREE_PARENT_CODE));
} }
if (paramsObj.containsKey(GenConstants.TREE_NAME)) if (paramsObj.containsKey(GenConstants.TREE_NAME))
{ {
context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); context.put("tree_name", paramsObj.get(GenConstants.TREE_NAME));
} }
} }
@ -300,11 +302,11 @@ public class VelocityUtils
* @param paramsObj 生成其他选项 * @param paramsObj 生成其他选项
* @return 上级菜单ID字段 * @return 上级菜单ID字段
*/ */
public static String getParentMenuId(JSONObject paramsObj) public static String getParentMenuId(Map<String, Object> paramsObj)
{ {
if (Validator.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID)) if (Validator.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID))
{ {
return paramsObj.getString(GenConstants.PARENT_MENU_ID); return Convert.toStr(paramsObj.get(GenConstants.PARENT_MENU_ID));
} }
return DEFAULT_PARENT_MENU_ID; return DEFAULT_PARENT_MENU_ID;
} }
@ -315,11 +317,11 @@ public class VelocityUtils
* @param paramsObj 生成其他选项 * @param paramsObj 生成其他选项
* @return 树编码 * @return 树编码
*/ */
public static String getTreecode(JSONObject paramsObj) public static String getTreecode(Map<String, Object> paramsObj)
{ {
if (paramsObj.containsKey(GenConstants.TREE_CODE)) if (paramsObj.containsKey(GenConstants.TREE_CODE))
{ {
return StrUtil.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); return StrUtil.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_CODE)));
} }
return StrUtil.EMPTY; return StrUtil.EMPTY;
} }
@ -330,11 +332,11 @@ public class VelocityUtils
* @param paramsObj 生成其他选项 * @param paramsObj 生成其他选项
* @return 树父编码 * @return 树父编码
*/ */
public static String getTreeParentCode(JSONObject paramsObj) public static String getTreeParentCode(Map<String, Object> paramsObj)
{ {
if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE))
{ {
return StrUtil.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); return StrUtil.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_PARENT_CODE)));
} }
return StrUtil.EMPTY; return StrUtil.EMPTY;
} }
@ -345,11 +347,11 @@ public class VelocityUtils
* @param paramsObj 生成其他选项 * @param paramsObj 生成其他选项
* @return 树名称 * @return 树名称
*/ */
public static String getTreeName(JSONObject paramsObj) public static String getTreeName(Map<String, Object> paramsObj)
{ {
if (paramsObj.containsKey(GenConstants.TREE_NAME)) if (paramsObj.containsKey(GenConstants.TREE_NAME))
{ {
return StrUtil.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); return StrUtil.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_NAME)));
} }
return StrUtil.EMPTY; return StrUtil.EMPTY;
} }
@ -363,8 +365,8 @@ public class VelocityUtils
public static int getExpandColumn(GenTable genTable) public static int getExpandColumn(GenTable genTable)
{ {
String options = genTable.getOptions(); String options = genTable.getOptions();
JSONObject paramsObj = JSONObject.parseObject(options); Map<String, String> paramsObj = JsonUtils.parseMap(options);
String treeName = paramsObj.getString(GenConstants.TREE_NAME); String treeName = paramsObj.get(GenConstants.TREE_NAME);
int num = 0; int num = 0;
for (GenTableColumn column : genTable.getColumns()) for (GenTableColumn column : genTable.getColumns())
{ {