316c65310cabf091afd8033d6928d96b42d1b092.svn-base 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package org.jeecg.modules.system.controller;
  2. import javax.servlet.http.HttpServletRequest;
  3. import org.apache.commons.lang.StringUtils;
  4. import org.jeecg.common.api.vo.Result;
  5. import org.jeecg.common.util.SqlInjectionUtil;
  6. import org.jeecg.modules.system.mapper.SysDictMapper;
  7. import org.jeecg.modules.system.model.DuplicateCheckVo;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11. import org.springframework.web.bind.annotation.RestController;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.extern.slf4j.Slf4j;
  15. /**
  16. * @Title: DuplicateCheckAction
  17. * @Description: 重复校验工具
  18. * @Author 张代浩
  19. * @Date 2019-03-25
  20. * @Version V1.0
  21. */
  22. @Slf4j
  23. @RestController
  24. @RequestMapping("/sys/duplicate")
  25. @Api(tags="重复校验")
  26. public class DuplicateCheckController {
  27. @Autowired
  28. SysDictMapper sysDictMapper;
  29. /**
  30. * 校验数据是否在系统中是否存在
  31. *
  32. * @return
  33. */
  34. @RequestMapping(value = "/check", method = RequestMethod.GET)
  35. @ApiOperation("重复校验接口")
  36. public Result<Object> doDuplicateCheck(DuplicateCheckVo duplicateCheckVo, HttpServletRequest request) {
  37. Long num = null;
  38. log.info("----duplicate check------:"+ duplicateCheckVo.toString());
  39. //关联表字典(举例:sys_user,realname,id)
  40. //SQL注入校验(只限制非法串改数据库)
  41. final String[] sqlInjCheck = {duplicateCheckVo.getTableName(),duplicateCheckVo.getFieldName()};
  42. SqlInjectionUtil.filterContent(sqlInjCheck);
  43. if (StringUtils.isNotBlank(duplicateCheckVo.getDataId())) {
  44. // [2].编辑页面校验
  45. num = sysDictMapper.duplicateCheckCountSql(duplicateCheckVo);
  46. } else {
  47. // [1].添加页面校验
  48. num = sysDictMapper.duplicateCheckCountSqlNoDataId(duplicateCheckVo);
  49. }
  50. if (num == null || num == 0) {
  51. // 该值可用
  52. return Result.ok("该值可用!");
  53. } else {
  54. // 该值不可用
  55. log.info("该值不可用,系统中已存在!");
  56. return Result.error("该值不可用,系统中已存在!");
  57. }
  58. }
  59. }