sinake
8 天以前 4a2244dc29d72e2a994d2288e3731d29ecb7fead
动态查询API接口修改
已修改2个文件
40 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ApiServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ApiController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.common;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.project.domain.BaseAnnextype;
@@ -26,20 +27,21 @@
    private IApiService  service;
    @ApiOperation("API->api查询列表")
    @PostMapping("/{path}")
    public AjaxResult getApiList(@PathVariable("path") String path, @RequestBody ApiDTO DTO){
        List<Map<String,Object>> lists=new ArrayList<>();
        if(ObjectUtils.isNotEmpty(path)) {
            GiApi tempSql= service.getCode(path);
            if(tempSql!=null&&ObjectUtils.isNotEmpty(tempSql.getApiSql())) {
    public AjaxResult getApiList(@PathVariable("path") String path, @RequestBody ApiDTO DTO) {
        List<Map<String, Object>> lists = new ArrayList<>();
        if (ObjectUtils.isNotEmpty(path)) {
            GiApi tempSql = service.getCode(path);
            if (tempSql != null && ObjectUtils.isNotEmpty(tempSql.getApiSql())) {
                String SQL_REG_EXP = ".*(\\b(insert|into|update|delete|trancate" +
                        "|drop|execute|grant|use)\\b).*";
                if (tempSql.getApiSql().toLowerCase().matches(SQL_REG_EXP)) {
                    return AjaxResult.error("sql中有非法字符,只应许select");
                }
                    return AjaxResult.success(service.getListSql(tempSql.getApiSql(),DTO));
            }else
                lists = service.getListSql(tempSql.getApiSql(), DTO);
                return AjaxResult.success(JSON.toJSON(lists));
            } else
                return AjaxResult.error("sql代码没有对应的sql请核对");
        }else {
        } else {
            return AjaxResult.error("表名不能为空");
        }
    }
@@ -65,4 +67,5 @@
            return AjaxResult.error("表名不能为空");
        }
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ApiServiceImpl.java
@@ -31,27 +31,6 @@
        return mapper.selectOne(wrapper);
    }
    public String buildSql(HttpServletRequest request, String sql) {
//        JSONArray requestParams = JSON.parseArray(config.getParams());
//        for (int i = 0; i < requestParams.size(); i++) {
//            JSONObject jo = requestParams.getJSONObject(i);
//            String name = jo.getString("name");
//            String type = jo.getString("type");
//            String old = '$' + name;
//
//            String value = request.getParameter(name);
//
//            //不是数字类型的值要加单引号
//            if (!"number".equals(type)) {
//                value = String.format("'%s'", value);
//            }
//
//            sql = sql.replace(old, value);
//        }
        return sql;
    }
    /**
     * 查询数据列表