diff --git a/jero-boot/README.md b/jero-boot/README.md index cedc775e..c37ba6b4 100644 --- a/jero-boot/README.md +++ b/jero-boot/README.md @@ -36,14 +36,9 @@ jero-boot 低代码开发平台 ## 技术文档 +- 在线文档: [http://doc.xxx.com](http://doc.xxx.com) -- 在线演示 : [http://boot.jeecg.com](http://boot.jeecg.com) - -- 在线文档: [http://doc.jeecg.com](http://doc.jeecg.com) - -- 常见问题: [http://jeecg.com/doc/qa](http://jeecg.com/doc/qa) - -- QQ交流群 : ③816531124、①284271917、②769925425 +- 常见问题: [http://xxx.com/doc/qa](http://xxx.com/doc/qa) ## 专项文档 @@ -89,18 +84,12 @@ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(?, req.getParamet | 多选字段模糊查询 | 上述4 有一个特例,若某一查询字段前后都带逗号 则会将其视为走这种查询方式 ,该查询方式是将查询条件以逗号分割再遍历数组 将每个元素作like查询 用or拼接,例如 现在name传入值 ,a,b,c, 那么结果sql就是 name like '%a%' or name like '%b%' or name like '%c%' | | -#### 二、AutoPoi(EXCEL工具类-EasyPOI衍变升级重构版本) - - [在线文档](https://github.com/zhangdaiscott/autopoi) - - - #### 三、代码生成器 > 功能说明: 一键生成的代码(包括:controller、service、dao、mapper、entity、vue) - 模板位置: src/main/resources/jero/code-template - - 技术文档: http://doc.jeecg.com/2043916 + - 技术文档: http://doc.xxx.com/ @@ -157,33 +146,6 @@ code: { }, ``` - -## docker镜像用法 - ``` -注意: 如果本地安装了mysql和redis,启动容器前先停掉本地服务,不然会端口冲突。 - net stop redis - net stop mysql - -# 1.修改项目配置文件 application.yml - active: docker - -# 2.先进JAVA项目根路径 maven打包 - mvn clean package - - -# 3.构建镜像__容器组(当你改变本地代码,也可重新构建镜像) - docker-compose build - -# 4.配置host - - # jeecgboot - 127.0.0.1 jero-boot-redis - 127.0.0.1 jero-boot-mysql - 127.0.0.1 jero-boot-system - -# 5.启动镜像__容器组(也可取代运行中的镜像) - docker-compose up -d - # 6.访问后台项目(注意要开启swagger) http://localhost:8080/jero-boot/doc.html ``` \ No newline at end of file diff --git a/jero-boot/db/jeroboot-mysql-5.7.sql b/jero-boot/db/jeroboot-mysql-5.7.sql index 4769175e..85841d54 100644 --- a/jero-boot/db/jeroboot-mysql-5.7.sql +++ b/jero-boot/db/jeroboot-mysql-5.7.sql @@ -1789,7 +1789,6 @@ CREATE TABLE `sys_depart` ( -- ---------------------------- -- Records of sys_depart -- ---------------------------- -INSERT INTO `sys_depart` VALUES ('743ba9dbdc114af8953a11022ef3096a', 'f28c6f53abd841ac87ead43afc483433', '财务部', null, null, '0', null, '1', '2', 'A03A01', null, null, null, null, null, '0', 'admin', '2019-03-22 16:45:43', null, null); INSERT INTO `sys_depart` VALUES ('c6d7cb4deeac411cb3384b1b31278596', '', '公司总部', null, null, '0', null, '1', '1', 'A01', null, null, null, null, null, '0', 'admin', '2019-02-11 14:21:51', 'admin', '2021-03-16 14:19:08'); -- ---------------------------- diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java index 4f9ad41d..9dc317b0 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java @@ -279,25 +279,42 @@ public class SysDictController { /** * 根据表名——显示字段-存储字段 pid 加载树形数据 */ - @SuppressWarnings("unchecked") - @ApiOperation(value = "字典控制器-根据表名——显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名——显示字段-存储字段 pid 加载树形数据") + @ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据") @RequestMapping(value = "/loadTreeData", method = RequestMethod.GET) public Result> loadTreeData(@RequestParam(name="pid") String pid, @RequestParam(name="pidField") String pidField, @RequestParam(name="tableName") String tbname, @RequestParam(name="text") String text, @RequestParam(name="code") String code, - @RequestParam(name="hasChildField") String hasChildField, - @RequestParam(name="condition") String condition, - @RequestParam(value = "sign",required = false) String sign, HttpServletRequest request) { + @RequestParam(name="hasChildField", required = false) String hasChildField, + @RequestParam(value = "sign", required = false) String sign, HttpServletRequest request) { Result> result = new Result>(); - Map query = null; - if(oConvertUtils.isNotEmpty(condition)) { - query = JSON.parseObject(condition, Map.class); - } + // SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件) - String dictCode = tbname+","+text+","+code+","+condition; + String dictCode = tbname +","+ text +","+ code; SqlInjectionUtil.filterContent(dictCode); - List ls = sysDictService.queryTreeList(query,tbname, text, code, pidField, pid,hasChildField); + List ls = sysDictService.queryTreeList(null, tbname, text, code, pidField, pid, hasChildField); + result.setSuccess(true); + result.setResult(ls); + return result; + } + + /** + * 查询后返回树型数据 + */ + @ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 查询数据 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据") + @RequestMapping(value = "/queryTreeDataByKeyword", method = RequestMethod.GET) + public Result> queryTreeDataByKeyword(@RequestParam(name="pidField") String pidField, + @RequestParam(name="tableName") String tbname, + @RequestParam(name="text") String text, + @RequestParam(name="code") String code, + @RequestParam(name="keyword") String keyword, + HttpServletRequest request) { + Result> result = new Result>(); + + // SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件) + String dictCode = tbname +","+ text +","+ code + "," + keyword; + SqlInjectionUtil.filterContent(dictCode); + List ls = sysDictService.queryTreeDataByKeyword(keyword, tbname, text, code, pidField); result.setSuccess(true); result.setResult(ls); return result; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java index 79b9ed68..558bff5b 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictMapper.java @@ -32,6 +32,7 @@ public interface SysDictMapper extends BaseMapper { * @return */ public Long duplicateCheckCountSql(DuplicateCheckVo duplicateCheckVo); + public Long duplicateCheckCountSqlNoDataId(DuplicateCheckVo duplicateCheckVo); public List queryDictItemsByCode(@Param("code") String code); @@ -98,8 +99,27 @@ public interface SysDictMapper extends BaseMapper { * @param hasChildField * @return */ - @Deprecated - List queryTreeList(@Param("query") Map query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField,@Param("pid") String pid,@Param("hasChildField") String hasChildField); + List queryTreeList(@Param("query") String query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField,@Param("pid") String pid,@Param("hasChildField") String hasChildField); + + /** + * 根据表名、显示字段名、存储字段名 和查询条件拼接树结构 + * @param query + * @param table + * @param text + * @param code + * @return + */ + List queryTreeDataByKeyword(@Param("query") String query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField); + + /** + * 根据表名、显示字段名、存储字段名、自身ID查询 + * @param id + * @param table + * @param text + * @param code + * @return + */ + TreeSelectModel queryTreeDataItemById(@Param("id") String id,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField); /** * 删除 diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml index 1cdb7ebd..068ffc88 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysDictMapper.xml @@ -87,12 +87,31 @@ - - and ${key} = #{value} - + and ${text} like concat(concat('%',#{query}),'%') + + + + +