删除无用代码.

This commit is contained in:
wangzhijiang
2024-03-12 17:50:40 +08:00
parent 9adb064799
commit 1371f5c3f7
76 changed files with 17 additions and 5093 deletions
@@ -3,7 +3,7 @@ package com.jero.config.init;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.constant.CacheConstant;
import com.jero.config.JeroCloudCondition;
import com.jero.modules.system.service.ISysGatewayRouteService;
//import com.jero.modules.system.service.ISysGatewayRouteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
@@ -21,16 +21,16 @@ import org.springframework.stereotype.Component;
public class SystemInitListener implements ApplicationListener<ApplicationReadyEvent>, Ordered {
@Autowired
private ISysGatewayRouteService sysGatewayRouteService;
// @Autowired
// private ISysGatewayRouteService sysGatewayRouteService;
@Override
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
log.info(" 服务已启动,初始化路由配置 ###################");
if (applicationReadyEvent.getApplicationContext().getDisplayName().indexOf("AnnotationConfigServletWebServerApplicationContext") > -1) {
sysGatewayRouteService.addRoute2Redis(CacheConstant.GATEWAY_ROUTES);
}
// log.info(" 服务已启动,初始化路由配置 ###################");
// if (applicationReadyEvent.getApplicationContext().getDisplayName().indexOf("AnnotationConfigServletWebServerApplicationContext") > -1) {
// sysGatewayRouteService.addRoute2Redis(CacheConstant.GATEWAY_ROUTES);
// }
}
@@ -1,95 +0,0 @@
package com.jero.modules.system.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.SqlInjectionUtil;
import com.jero.modules.system.entity.SysConfusion;
import com.jero.modules.system.mapper.SysConfusionMapper;
import com.jero.modules.system.mapper.SysDictMapper;
import com.jero.modules.system.model.DuplicateCheckVo;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
/**
* @Title: DuplicateCheckAction
* @Description: 重复校验工具
* @Author 张代浩
* @Date 2019-03-25
* @Version V1.0
*/
@Slf4j
@RestController
@RequestMapping("/sys/duplicate")
@Api(tags="重复校验")
public class DuplicateCheckController {
@Resource
SysDictMapper sysDictMapper;
@Resource
SysConfusionMapper sysConfusionMapper;
/**
* 校验数据是否在系统中是否存在
*
* @return
*/
@GetMapping("/check")
@ApiOperation("重复校验接口")
public Result<Object> doDuplicateCheck(DuplicateCheckVo duplicateCheckVo, HttpServletRequest request) {
Long num = null;
SysConfusion sysConfusion = changeRealName(duplicateCheckVo.getConfusionCode());
duplicateCheckVo.setTableName(sysConfusion.getTableName());
duplicateCheckVo.setFieldName(sysConfusion.getFieldName());
//如果加密字段有值,则把校验数据进行加密后在判断
String encrypt = duplicateCheckVo.getEncrypt();
if (StrUtil.isNotBlank(encrypt)){
duplicateCheckVo.setFieldVal(PasswordUtil.encrypt(duplicateCheckVo.getFieldVal()));
}
log.info("----duplicate check------" + duplicateCheckVo.toString());
//关联表字典(举例:sys_user,realname,id
//SQL注入校验(只限制非法串改数据库)
final String[] sqlInjCheck = {duplicateCheckVo.getTableName(), duplicateCheckVo.getFieldName()};
SqlInjectionUtil.filterContent(sqlInjCheck);
if (StringUtils.isNotBlank(duplicateCheckVo.getDataId())) {
// [2].编辑页面校验
num = sysDictMapper.duplicateCheckCountSql(duplicateCheckVo);
} else {
// [1].添加页面校验
num = sysDictMapper.duplicateCheckCountSqlNoDataId(duplicateCheckVo);
}
if (num == null || num == 0) {
// 该值可用
return Result.OK("该值可用!");
} else {
// 该值不可用
log.info("该值不可用,系统中已存在!");
return Result.error("该值不可用,系统中已存在!");
}
}
/**
* 根据混淆code转换为真实表名和字段名
*
* @param confusionCode 混淆code
* @return 真实表名和字段名
*/
private SysConfusion changeRealName(String confusionCode) {
SysConfusion sysConfusion = sysConfusionMapper.selectOne(new QueryWrapper<SysConfusion>().lambda().eq(SysConfusion::getConfusionCode, confusionCode));
return sysConfusion;
}
}
@@ -1,198 +0,0 @@
package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.system.entity.SysCheckRule;
import com.jero.modules.system.service.ISysCheckRuleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.Map;
/**
* @Description: 编码校验规则
* @Author: jero-boot
* @Date: 2020-02-04
* @Version: V1.0
*/
@Slf4j
@Api(tags = "编码校验规则")
@RestController
@RequestMapping("/sys/checkRule")
public class SysCheckRuleController extends JeroController<SysCheckRule, ISysCheckRuleService> {
@Autowired
private ISysCheckRuleService sysCheckRuleService;
/**
* 分页列表查询
*
* @param sysCheckRule
* @param pageNo
* @param pageSize
* @param request
* @return
*/
@AutoLog(value = "编码校验规则-分页列表查询")
@ApiOperation(value = "编码校验规则-分页列表查询", notes = "编码校验规则-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<SysCheckRule>> queryPageList(
SysCheckRule sysCheckRule,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest request
) {
QueryWrapper<SysCheckRule> queryWrapper = QueryGenerator.initQueryWrapper(sysCheckRule, request.getParameterMap());
Page<SysCheckRule> page = new Page<>(pageNo, pageSize);
IPage<SysCheckRule> pageList = sysCheckRuleService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 通过id查询
*
* @param ruleCode
* @return
*/
@AutoLog(value = "编码校验规则-通过Code校验传入的值")
@ApiOperation(value = "编码校验规则-通过Code校验传入的值", notes = "编码校验规则-通过Code校验传入的值")
@GetMapping(value = "/checkByCode")
public Result<Object> checkByCode(
@RequestParam(name = "ruleCode") String ruleCode,
@RequestParam(name = "value") String value
) throws UnsupportedEncodingException {
SysCheckRule sysCheckRule = sysCheckRuleService.getByCode(ruleCode);
if (sysCheckRule == null) {
return Result.error("该编码不存在");
}
JSONObject errorResult = sysCheckRuleService.checkValue(sysCheckRule, URLDecoder.decode(value, "UTF-8"));
if (errorResult.isEmpty()) {
return Result.OK();
} else {
Result<Object> r = Result.error(errorResult.getString("message"));
r.setResult(errorResult);
return r;
}
}
/**
* 添加
*
* @param sysCheckRule
* @return
*/
@AutoLog(value = "编码校验规则-添加")
@ApiOperation(value = "编码校验规则-添加", notes = "编码校验规则-添加")
@PostMapping(value = "/add")
public Result<T> add(@RequestBody SysCheckRule sysCheckRule) {
sysCheckRuleService.save(sysCheckRule);
return Result.OK("操作成功!");
}
/**
* 编辑
*
* @param sysCheckRule
* @return
*/
@AutoLog(value = "编码校验规则-编辑")
@ApiOperation(value = "编码校验规则-编辑", notes = "编码校验规则-编辑")
@PostMapping(value = "/edit")
public Result<T> edit(@RequestBody SysCheckRule sysCheckRule) {
sysCheckRuleService.updateById(sysCheckRule);
return Result.OK("操作成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "编码校验规则-通过id删除")
@ApiOperation(value = "编码校验规则-通过id删除", notes = "编码校验规则-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody Map<String, String> map) {
String id = map.get("id");
if(StringUtils.isBlank(id)){
return Result.error("参数不识别!");
}
sysCheckRuleService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param map
* @return
*/
@AutoLog(value = "编码校验规则-批量删除")
@ApiOperation(value = "编码校验规则-批量删除", notes = "编码校验规则-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
String ids = map.get("ids");
if(StringUtils.isBlank(ids)){
return Result.error("参数不识别!");
}
this.sysCheckRuleService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "编码校验规则-通过id查询")
@ApiOperation(value = "编码校验规则-通过id查询", notes = "编码校验规则-通过id查询")
@GetMapping(value = "/queryById")
public Result<SysCheckRule> queryById(@RequestParam(name = "id", required = true) String id) {
SysCheckRule sysCheckRule = sysCheckRuleService.getById(id);
return Result.OK(sysCheckRule);
}
/**
* 导出excel
*
* @param request
* @param sysCheckRule
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, SysCheckRule sysCheckRule) {
return super.exportXls(request, sysCheckRule, SysCheckRule.class, "编码校验规则");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping("/importExcel")
public Result<SysCheckRule> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, SysCheckRule.class);
}
}
@@ -1,225 +0,0 @@
package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.FillRuleUtil;
import com.jero.modules.system.entity.SysFillRule;
import com.jero.modules.system.service.ISysFillRuleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Map;
/**
* @Description: 填值规则
* @Author: jero-boot
* @Date: 2019-11-07
* @Version: V1.0
*/
@Slf4j
@Api(tags = "填值规则")
@RestController
@RequestMapping("/sys/fillRule")
public class SysFillRuleController extends JeroController<SysFillRule, ISysFillRuleService> {
@Autowired
private ISysFillRuleService sysFillRuleService;
/**
* 分页列表查询
*
* @param sysFillRule
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "填值规则-分页列表查询")
@ApiOperation(value = "填值规则-分页列表查询", notes = "填值规则-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<SysFillRule>> queryPageList(SysFillRule sysFillRule,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SysFillRule> queryWrapper = QueryGenerator.initQueryWrapper(sysFillRule, req.getParameterMap());
Page<SysFillRule> page = new Page<>(pageNo, pageSize);
IPage<SysFillRule> pageList = sysFillRuleService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 测试 ruleCode
*
* @param ruleCode
* @return
*/
@GetMapping(value = "/testFillRule")
public Result<Object> testFillRule(@RequestParam("ruleCode") String ruleCode) {
Object result = FillRuleUtil.executeRule(ruleCode, new JSONObject());
return Result.OK(result);
}
/**
* 添加
*
* @param sysFillRule
* @return
*/
@AutoLog(value = "填值规则-添加")
@ApiOperation(value = "填值规则-添加", notes = "填值规则-添加")
@PostMapping(value = "/add")
public Result<T> add(@RequestBody SysFillRule sysFillRule) {
sysFillRuleService.save(sysFillRule);
return Result.OK("操作成功!");
}
/**
* 编辑
*
* @param sysFillRule
* @return
*/
@AutoLog(value = "填值规则-编辑")
@ApiOperation(value = "填值规则-编辑", notes = "填值规则-编辑")
@PostMapping(value = "/edit")
public Result<T> edit(@RequestBody SysFillRule sysFillRule) {
sysFillRuleService.updateById(sysFillRule);
return Result.OK("操作成功!");
}
/**
* 通过id删除
*
* @param map
* @return
*/
@AutoLog(value = "填值规则-通过id删除")
@ApiOperation(value = "填值规则-通过id删除", notes = "填值规则-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody Map<String, String> map) {
String id = map.get("id");
if(StringUtils.isBlank(id)){
return Result.error("参数不识别!");
}
sysFillRuleService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param map
* @return
*/
@AutoLog(value = "填值规则-批量删除")
@ApiOperation(value = "填值规则-批量删除", notes = "填值规则-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
String ids = map.get("ids");
if(StringUtils.isBlank(ids)){
return Result.error("参数不识别!");
}
this.sysFillRuleService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "填值规则-通过id查询")
@ApiOperation(value = "填值规则-通过id查询", notes = "填值规则-通过id查询")
@GetMapping(value = "/queryById")
public Result<SysFillRule> queryById(@RequestParam(name = "id", required = true) String id) {
SysFillRule sysFillRule = sysFillRuleService.getById(id);
return Result.OK(sysFillRule);
}
/**
* 导出excel
*
* @param request
* @param sysFillRule
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, SysFillRule sysFillRule) {
return super.exportXls(request, sysFillRule, SysFillRule.class, "填值规则");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping("/importExcel")
public Result<SysFillRule> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, SysFillRule.class);
}
/**
* 通过 ruleCode 执行自定义填值规则
*
* @param ruleCode 要执行的填值规则编码
* @param formData 表单数据,可根据表单数据的不同生成不同的填值结果
* @return 运行后的结果
*/
@PostMapping("/executeRuleByCode/{ruleCode}")
public Result<Object> executeByRuleCode(@PathVariable("ruleCode") String ruleCode, @RequestBody JSONObject formData) {
Object result = FillRuleUtil.executeRule(ruleCode, formData);
return Result.OK(result);
}
/**
* 批量通过 ruleCode 执行自定义填值规则
*
* @param ruleData 要执行的填值规则JSON数组:
* 示例: { "commonFormData": {}, rules: [ { "ruleCode": "xxx", "formData": null } ] }
* @return 运行后的结果,返回示例: [{"ruleCode": "order_num_rule", "result": "CN2019111117212984"}]
*
*/
@PostMapping("/executeRuleByCodeBatch")
public Result<JSONArray> executeByRuleCodeBatch(@RequestBody JSONObject ruleData) {
JSONObject commonFormData = ruleData.getJSONObject("commonFormData");
JSONArray rules = ruleData.getJSONArray("rules");
// 遍历 rules ,批量执行规则
JSONArray results = new JSONArray(rules.size());
for (int i = 0; i < rules.size(); i++) {
JSONObject rule = rules.getJSONObject(i);
String ruleCode = rule.getString("ruleCode");
JSONObject formData = rule.getJSONObject("formData");
// 如果没有传递 formData,就用common的
if (formData == null) {
formData = commonFormData;
}
// 执行填值规则
Object result = FillRuleUtil.executeRule(ruleCode, formData);
JSONObject obj = new JSONObject(rules.size());
obj.put("ruleCode", ruleCode);
obj.put("result", result);
results.add(obj);
}
return Result.OK(results);
}
}
@@ -1,85 +0,0 @@
package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.system.entity.SysGatewayRoute;
import com.jero.modules.system.service.ISysGatewayRouteService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* @Description: gateway路由管理
* @Author: jero-boot
* @Date: 2020-05-26
* @Version: V1.0
*/
@Api(tags = "gateway路由管理")
@RestController
@RequestMapping("/sys/gatewayRoute")
@Slf4j
public class SysGatewayRouteController extends JeroController<SysGatewayRoute, ISysGatewayRouteService> {
@Autowired
private ISysGatewayRouteService sysGatewayRouteService;
@PostMapping(value = "/updateAll")
public Result<T> updateAll(@RequestBody JSONObject json) {
sysGatewayRouteService.updateAll(json);
return Result.OK("操作成功!");
}
@GetMapping(value = "/page")
public Result<JSONArray> queryPageList(SysGatewayRoute sysGatewayRoute) {
LambdaQueryWrapper<SysGatewayRoute> query = new LambdaQueryWrapper<>();
List<SysGatewayRoute> ls = sysGatewayRouteService.list(query);
JSONArray array = new JSONArray();
for(SysGatewayRoute rt: ls){
JSONObject obj = (JSONObject) JSON.toJSON(rt);
if(oConvertUtils.isNotEmpty(rt.getPredicates())){
obj.put("predicates", JSON.parseArray(rt.getPredicates()));
}
if(oConvertUtils.isNotEmpty(rt.getFilters())){
obj.put("filters", JSON.parseArray(rt.getFilters()));
}
array.add(obj);
}
return Result.OK(array);
}
@GetMapping(value = "/clearRedis")
public Result<T> clearRedis() {
sysGatewayRouteService.clearRedis();
return Result.OK("清除成功!");
}
/**
* 通过id删除
*
* @param map
* @return
*/
//@RequiresRoles({"admin"})
// @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
@PostMapping("/delete")
public Result<T> delete(@RequestBody Map<String, String> map) {
String id = map.get("id");
if(StringUtils.isBlank(id)){
return Result.error("参数不识别!");
}
sysGatewayRouteService.deleteById(id);
return Result.OK("删除路由成功");
}
}
@@ -1,88 +0,0 @@
package com.jero.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Description: 编码校验规则
* @Author: jero-boot
* @Date: 2020-02-04
* @Version: V1.0
*/
@Data
@TableName("sys_check_rule")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "sys_check_rule对象", description = "编码校验规则")
public class SysCheckRule {
/**
* 主键id
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键id")
private String id;
/**
* 规则名称
*/
@Excel(name = "规则名称", width = 15)
@ApiModelProperty(value = "规则名称")
private String ruleName;
/**
* 规则Code
*/
@Excel(name = "规则Code", width = 15)
@ApiModelProperty(value = "规则Code")
private String ruleCode;
/**
* 规则JSON
*/
@Excel(name = "规则JSON", width = 15)
@ApiModelProperty(value = "规则JSON")
private String ruleJson;
/**
* 规则描述
*/
@Excel(name = "规则描述", width = 15)
@ApiModelProperty(value = "规则描述")
private String ruleDescription;
/**
* 更新人
*/
@Excel(name = "更新人", width = 15)
@ApiModelProperty(value = "更新人")
private String updateBy;
/**
* 更新时间
*/
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 创建人
*/
@Excel(name = "创建人", width = 15)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 创建时间
*/
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
@@ -1,101 +0,0 @@
package com.jero.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* @Description: 混淆表
* @Author: jero-boot
* @Date: 2021-08-05
* @Version: V1.0
*/
@Data
@TableName("sys_confusion")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "sys_confusion对象", description = "混淆表")
public class SysConfusion implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**
* 创建人
*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 创建日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**
* 更新日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**
* 所属部门
*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**
* 混淆类型
*/
@Excel(name = "表名", width = 15)
@ApiModelProperty(value = "表名")
private String tableName;
/**
* 表名或字段名
*/
@Excel(name = "字段名", width = 15)
@ApiModelProperty(value = "字段名")
private String fieldName;
/**
* 混淆code
*/
@Excel(name = "混淆code", width = 15)
@ApiModelProperty(value = "混淆code")
private String confusionCode;
}
@@ -1,86 +0,0 @@
package com.jero.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @Description: 填值规则
* @Author: jero-boot
* @Date: 2019-11-07
* @Version: V1.0
*/
@Data
@TableName("sys_fill_rule")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "sys_fill_rule对象", description = "填值规则")
public class SysFillRule {
/**
* 主键ID
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键ID")
private java.lang.String id;
/**
* 规则名称
*/
@Excel(name = "规则名称", width = 15)
@ApiModelProperty(value = "规则名称")
private java.lang.String ruleName;
/**
* 规则Code
*/
@Excel(name = "规则Code", width = 15)
@ApiModelProperty(value = "规则Code")
private java.lang.String ruleCode;
/**
* 规则实现类
*/
@Excel(name = "规则实现类", width = 15)
@ApiModelProperty(value = "规则实现类")
private java.lang.String ruleClass;
/**
* 规则参数
*/
@Excel(name = "规则参数", width = 15)
@ApiModelProperty(value = "规则参数")
private java.lang.String ruleParams;
/**
* 修改人
*/
@Excel(name = "修改人", width = 15)
@ApiModelProperty(value = "修改人")
private java.lang.String updateBy;
/**
* 修改时间
*/
@Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@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;
/**
* 创建人
*/
@Excel(name = "创建人", width = 15)
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**
* 创建时间
*/
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@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;
}
@@ -1,101 +0,0 @@
package com.jero.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.jero.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: gateway路由管理
* @Author: jero-boot
* @Date: 2020-05-26
* @Version: V1.0
*/
@Data
@TableName("sys_gateway_route")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="sys_gateway_route对象", description="gateway路由管理")
public class SysGatewayRoute implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**routerKEy*/
@ApiModelProperty(value = "路由ID")
private String routerId;
/**服务名*/
@Excel(name = "服务名", width = 15)
@ApiModelProperty(value = "服务名")
private String name;
/**服务地址*/
@Excel(name = "服务地址", width = 15)
@ApiModelProperty(value = "服务地址")
private String uri;
/**
* 断言配置
*/
private String predicates;
/**
* 过滤配置
*/
private String filters;
/**是否忽略前缀0-否 1-是*/
@Excel(name = "忽略前缀", width = 15)
@ApiModelProperty(value = "忽略前缀")
@Dict(dicCode = "yn")
private Integer stripPrefix;
/**是否重试0-否 1-是*/
@Excel(name = "是否重试", width = 15)
@ApiModelProperty(value = "是否重试")
@Dict(dicCode = "yn")
private Integer retryable;
/**是否为保留数据:0-否 1-是*/
@Excel(name = "保留数据", width = 15)
@ApiModelProperty(value = "保留数据")
@Dict(dicCode = "yn")
private Integer persistable;
/**是否在接口文档中展示:0-否 1-是*/
@Excel(name = "在接口文档中展示", width = 15)
@ApiModelProperty(value = "在接口文档中展示")
@Dict(dicCode = "yn")
private Integer showApi;
/**状态 1有效 0无效*/
@Excel(name = "状态", width = 15)
@ApiModelProperty(value = "状态")
@Dict(dicCode = "yn")
private Integer status;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
}
@@ -1,14 +0,0 @@
package com.jero.modules.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.system.entity.SysCheckRule;
/**
* @Description: 编码校验规则
* @Author: jero-boot
* @Date: 2020-02-04
* @Version: V1.0
*/
public interface SysCheckRuleMapper extends BaseMapper<SysCheckRule> {
}
@@ -1,14 +0,0 @@
package com.jero.modules.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.system.entity.SysConfusion;
/**
* @Description: 混淆表
* @Author: jero-boot
* @Date: 2021-08-05
* @Version: V1.0
*/
public interface SysConfusionMapper extends BaseMapper<SysConfusion> {
}
@@ -1,14 +0,0 @@
package com.jero.modules.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.system.entity.SysFillRule;
/**
* @Description: 填值规则
* @Author: jero-boot
* @Date: 2019-11-07
* @Version: V1.0
*/
public interface SysFillRuleMapper extends BaseMapper<SysFillRule> {
}
@@ -1,14 +0,0 @@
package com.jero.modules.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.system.entity.SysGatewayRoute;
/**
* @Description: gateway路由管理
* @Author: jero-boot
* @Date: 2020-05-26
* @Version: V1.0
*/
public interface SysGatewayRouteMapper extends BaseMapper<SysGatewayRoute> {
}
@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.system.mapper.SysCheckRuleMapper">
</mapper>
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.system.mapper.SysConfusionMapper">
<resultMap id="SysConfusionResultMap" type="com.jero.modules.system.entity.SysConfusion">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="table_name" property="tableName" />
<result column="field_name" property="fieldName" />
<result column="confusion_code" property="confusionCode" />
</resultMap>
</mapper>
@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.system.mapper.SysFillRuleMapper">
</mapper>
@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.system.mapper.SysGatewayRouteMapper">
</mapper>
@@ -1,33 +0,0 @@
package com.jero.modules.system.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.system.entity.SysCheckRule;
/**
* @Description: 编码校验规则
* @Author: jero-boot
* @Date: 2020-02-04
* @Version: V1.0
*/
public interface ISysCheckRuleService extends IService<SysCheckRule> {
/**
* 通过 code 获取规则
*
* @param ruleCode
* @return
*/
SysCheckRule getByCode(String ruleCode);
/**
* 通过用户设定的自定义校验规则校验传入的值
*
* @param checkRule
* @param value
* @return 返回 null代表通过校验,否则就是返回的错误提示文本
*/
JSONObject checkValue(SysCheckRule checkRule, String value);
}
@@ -1,14 +0,0 @@
package com.jero.modules.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.system.entity.SysFillRule;
/**
* @Description: 填值规则
* @Author: jero-boot
* @Date: 2019-11-07
* @Version: V1.0
*/
public interface ISysFillRuleService extends IService<SysFillRule> {
}
@@ -1,38 +0,0 @@
package com.jero.modules.system.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.system.entity.SysGatewayRoute;
/**
* @Description: gateway路由管理
* @Author: jero-boot
* @Date: 2020-05-26
* @Version: V1.0
*/
public interface ISysGatewayRouteService extends IService<SysGatewayRoute> {
/**
* 添加所有的路由信息到redis
* @param key
*/
void addRoute2Redis(String key);
/**
* 删除路由
* @param id
*/
void deleteById(String id);
/**
* 保存路由配置
* @param array
*/
void updateAll(JSONObject array);
/**
* 清空redis中的route信息
*/
void clearRedis();
}
@@ -1,106 +0,0 @@
package com.jero.modules.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import com.jero.modules.system.entity.SysCheckRule;
import com.jero.modules.system.mapper.SysCheckRuleMapper;
import com.jero.modules.system.service.ISysCheckRuleService;
import org.jetbrains.annotations.Nullable;
import org.springframework.stereotype.Service;
import java.util.regex.Pattern;
/**
* @Description: 编码校验规则
* @Author: jero-boot
* @Date: 2020-02-04
* @Version: V1.0
*/
@Service
public class SysCheckRuleServiceImpl extends ServiceImpl<SysCheckRuleMapper, SysCheckRule> implements ISysCheckRuleService {
/**
* 位数特殊符号,用于检查整个值,而不是裁剪某一段
*/
private static final String CHECK_ALL_SYMBOL = "*";
@Override
public SysCheckRule getByCode(String ruleCode) {
LambdaQueryWrapper<SysCheckRule> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysCheckRule::getRuleCode, ruleCode);
return super.getOne(queryWrapper);
}
/**
* 通过用户设定的自定义校验规则校验传入的值
*
* @param checkRule
* @param value
* @return 返回 null代表通过校验,否则就是返回的错误提示文本
*/
@Override
public JSONObject checkValue(SysCheckRule checkRule, String value) {
if (checkRule != null && StringUtils.isNotBlank(value)) {
String ruleJson = checkRule.getRuleJson();
if (StringUtils.isNotBlank(ruleJson)) {
JSONObject result = getJsonObject(value, ruleJson);
if (result != null) return result;
}
}
return new JSONObject();
}
@Nullable
private JSONObject getJsonObject(String value, String ruleJson) {
// 开始截取的下标,根据规则的顺序递增,但是 * 号不计入递增范围
int beginIndex = 0;
JSONArray rules = JSON.parseArray(ruleJson);
for (int i = 0; i < rules.size(); i++) {
JSONObject result = new JSONObject();
JSONObject rule = rules.getJSONObject(i);
// 位数
String digits = rule.getString("digits");
result.put("digits", digits);
// 验证规则
String pattern = rule.getString("pattern");
result.put("pattern", pattern);
// 未通过时的提示文本
String message = rule.getString("message");
result.put("message", message);
// 根据用户设定的区间,截取字符串进行验证
String checkValue;
// 是否检查整个值而不截取
if (CHECK_ALL_SYMBOL.equals(digits)) {
checkValue = value;
} else {
int num = Integer.parseInt(digits);
int endIndex = beginIndex + num;
// 如果结束下标大于给定的值的长度,则取到最后一位
endIndex = endIndex > value.length() ? value.length() : endIndex;
// 如果开始下标大于结束下标,则说明用户还尚未输入到该位置,直接赋空值
if (beginIndex > endIndex) {
checkValue = "";
} else {
checkValue = value.substring(beginIndex, endIndex);
}
result.put("beginIndex", beginIndex);
result.put("endIndex", endIndex);
beginIndex += num;
}
result.put("checkValue", checkValue);
boolean passed = Pattern.matches(pattern, checkValue);
result.put("passed", passed);
// 如果没有通过校验就返回错误信息
if (!passed) {
return result;
}
}
return null;
}
}
@@ -1,18 +0,0 @@
package com.jero.modules.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.system.entity.SysFillRule;
import com.jero.modules.system.mapper.SysFillRuleMapper;
import com.jero.modules.system.service.ISysFillRuleService;
import org.springframework.stereotype.Service;
/**
* @Description: 填值规则
* @Author: jero-boot
* @Date: 2019-11-07
* @Version: V1.0
*/
@Service("sysFillRuleServiceImpl")
public class SysFillRuleServiceImpl extends ServiceImpl<SysFillRuleMapper, SysFillRule> implements ISysFillRuleService {
}
@@ -1,98 +0,0 @@
package com.jero.modules.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.base.BaseMap;
import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.GlobalConstants;
import com.jero.modules.system.entity.SysGatewayRoute;
import com.jero.modules.system.mapper.SysGatewayRouteMapper;
import com.jero.modules.system.service.ISysGatewayRouteService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Description: gateway路由管理
* @Author: jero-boot
* @Date: 2020-05-26
* @Version: V1.0
*/
@Service
@Slf4j
public class SysGatewayRouteServiceImpl extends ServiceImpl<SysGatewayRouteMapper, SysGatewayRoute> implements ISysGatewayRouteService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Override
public void addRoute2Redis(String key) {
List<SysGatewayRoute> ls = this.list(new LambdaQueryWrapper<>());
redisTemplate.opsForValue().set(key, JSON.toJSONString(ls));
}
@Override
public void deleteById(String id) {
this.removeById(id);
this.resreshRouter();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateAll(JSONObject json) {
log.info("--gateway 路由配置修改--");
try {
json = json.getJSONObject("router");
String id = json.getString("id");
SysGatewayRoute route = getById(id);
if (ObjectUtil.isEmpty(route)) {
route = new SysGatewayRoute();
}
route.setRouterId(json.getString("routerId"));
route.setName(json.getString("name"));
route.setPredicates(json.getString("predicates"));
String filters = json.getString("filters");
if (ObjectUtil.isEmpty(filters)) {
filters = "[]";
}
route.setFilters(filters);
route.setUri(json.getString("uri"));
if (json.get("status") == null) {
route.setStatus(1);
} else {
route.setStatus(json.getInteger("status"));
}
this.saveOrUpdate(route);
resreshRouter();
} catch (Exception e) {
log.error("路由配置解析失败", e);
resreshRouter();
e.printStackTrace();
}
}
/**
* 更新redis路由缓存
*/
private void resreshRouter() {
//更新redis路由缓存
addRoute2Redis(CacheConstant.GATEWAY_ROUTES);
BaseMap params = new BaseMap();
params.put(GlobalConstants.HANDLER_NAME, "loderRouderHandler");
//刷新网关
redisTemplate.convertAndSend(GlobalConstants.REDIS_TOPIC_NAME, params);
}
@Override
public void clearRedis() {
redisTemplate.opsForValue().set(CacheConstant.GATEWAY_ROUTES, "");
}
}