byd扫描漏洞。
This commit is contained in:
+12
-1
@@ -103,6 +103,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/queryDictItemsByCode")
|
||||
List<DictModel> queryDictItemsByCode(@RequestParam("code") String code);
|
||||
|
||||
@@ -111,6 +112,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/queryEnableDictItemsByCode")
|
||||
public List<DictModel> queryEnableDictItemsByCode(@RequestParam("code") String code);
|
||||
|
||||
@@ -132,6 +134,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/queryTableDictItemsByCode")
|
||||
List<DictModel> queryTableDictItemsByCode(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code);
|
||||
|
||||
@@ -314,6 +317,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param username
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/queryUserRoles")
|
||||
Set<String> queryUserRoles(@RequestParam("username") String username);
|
||||
|
||||
@@ -322,6 +326,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param username
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/queryUserAuths")
|
||||
Set<String> queryUserAuths(@RequestParam("username") String username);
|
||||
|
||||
@@ -331,6 +336,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param dbSourceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/getDynamicDbSourceById")
|
||||
DynamicDataSourceModel getDynamicDbSourceById(@RequestParam("dbSourceId") String dbSourceId);
|
||||
|
||||
@@ -340,6 +346,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param dbSourceCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/getDynamicDbSourceByCode")
|
||||
DynamicDataSourceModel getDynamicDbSourceByCode(@RequestParam("dbSourceCode") String dbSourceCode);
|
||||
|
||||
@@ -347,6 +354,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* 39根据用户账号查询用户信息 CommonAPI中定义
|
||||
* @param username
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/getUserByName")
|
||||
LoginUser getUserByName(@RequestParam("username") String username);
|
||||
|
||||
@@ -358,6 +366,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/translateDictFromTable")
|
||||
String translateDictFromTable(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("key") String key);
|
||||
|
||||
@@ -367,6 +376,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/translateDict")
|
||||
String translateDict(@RequestParam("code") String code, @RequestParam("key") String key);
|
||||
|
||||
@@ -374,6 +384,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* 42查询数据权限
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/queryPermissionDataRule")
|
||||
List<SysPermissionDataRuleModel> queryPermissionDataRule(@RequestParam("component") String component, @RequestParam("requestPath") String requestPath, @RequestParam("username") String username);
|
||||
|
||||
@@ -382,6 +393,7 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param username
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/getCacheUser")
|
||||
SysUserCacheInfo getCacheUser(@RequestParam("username") String username);
|
||||
|
||||
@@ -525,7 +537,6 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param keys 多个用逗号分割
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@GetMapping("/sys/api/translateDictFromTableByKeys")
|
||||
List<DictModel> translateDictFromTableByKeys(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("keys") String keys);
|
||||
|
||||
|
||||
-28
@@ -315,24 +315,6 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
*/
|
||||
List<String> loadCategoryDictItem(String ids);
|
||||
|
||||
/**
|
||||
* 根据字典code加载字典text
|
||||
*
|
||||
* @param dictCode 顺序:tableName,text,code
|
||||
* @param keys 要查询的key
|
||||
* @return
|
||||
*/
|
||||
List<String> loadDictItem(String dictCode, String keys);
|
||||
|
||||
/**
|
||||
* 根据字典code查询字典项
|
||||
*
|
||||
* @param dictCode 顺序:tableName,text,code
|
||||
* @param dictCode 要查询的key
|
||||
* @return
|
||||
*/
|
||||
List<DictModel> getDictItems(String dictCode);
|
||||
|
||||
/**
|
||||
* 根据多个字典code查询多个字典项
|
||||
* @param dictCodeList
|
||||
@@ -340,15 +322,5 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
*/
|
||||
Map<String, List<DictModel>> getManyDictItems(List<String> dictCodeList);
|
||||
|
||||
/**
|
||||
* 【JSearchSelectTag下拉搜索组件专用接口】
|
||||
* 大数据量的字典表 走异步加载 即前端输入内容过滤数据
|
||||
*
|
||||
* @param dictCode 字典code格式:table,text,code
|
||||
* @param keyword 过滤关键字
|
||||
* @return
|
||||
*/
|
||||
List<DictModel> loadDictItemByKeyword(String dictCode, String keyword, Integer pageSize);
|
||||
|
||||
String translateByDictMap(Map<String, String> dictMap, String keys);
|
||||
}
|
||||
|
||||
-10
@@ -110,16 +110,6 @@ public interface CommonAPI {
|
||||
*/
|
||||
Map<String, List<DictModel>> translateManyDict(String dictCodes, String keys);
|
||||
|
||||
/**
|
||||
* 15 字典表的 翻译,可批量
|
||||
* @param table
|
||||
* @param text
|
||||
* @param code
|
||||
* @param keys 多个用逗号分割
|
||||
* @return
|
||||
*/
|
||||
List<DictModel> translateDictFromTableByKeys(String table, String text, String code, String keys);
|
||||
|
||||
/**
|
||||
* 14获取全部字典
|
||||
* @author lqt
|
||||
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
package com.jero.common.constant.enums;
|
||||
|
||||
/**
|
||||
* 中英文切换标识
|
||||
* @description
|
||||
* @date 2022/1/21 15:22
|
||||
* @auth zhn
|
||||
*/
|
||||
public enum IsMustEnum {
|
||||
YES("是","1"),
|
||||
NO("否","0");
|
||||
|
||||
|
||||
String name;
|
||||
String value;
|
||||
|
||||
private IsMustEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
package com.jero.common.constant.enums;
|
||||
|
||||
public enum MessageType2Enum {
|
||||
|
||||
|
||||
SUBSCRIPTION_NOTIFICATION("Subscription Notification","订阅通知"),
|
||||
SHARE_FORWARD("Share Forward","转发推送"),
|
||||
REGULATION_EARLY_WARNING("Regulation Early Warning","法规预警"),
|
||||
REGULATION_LIST_CONFIRMATION("Regulation List Confirmation","法规清单确认"),
|
||||
REGULATION_TASK_CONFIRMATION("Regulation Task Confirmation","法规任务确认"),
|
||||
DESIGN_COMPLIANCE_CONFIRMATION("Design Compliance Confirmation","设计符合性确认"),
|
||||
PRE_HOMO_CONFIRMATION("Pre-Homo Confirmation","Pre-Homo确认"),
|
||||
VALIDATION_COMPLIANCE_CONFIRMATION("Validation Compliance Confirmation","验证符合性确认"),
|
||||
REGULATION_OPINION_COLLECTION("Regulation Opinion Collection","法规意见收集"),
|
||||
REGULATION_TECHNICAL_ASSESSMENT("Regulation Technical Assessment","法规技术评估"),
|
||||
HOMO_PARAMETER_COLLECTION("Homo Parameter Collection","认证参数收集"),
|
||||
CERTIFICATION_LIST_CONFIRMATION("Certification List Confirmation","认证清单确认");
|
||||
|
||||
String en;
|
||||
String cn;
|
||||
|
||||
MessageType2Enum(String en, String cn) {
|
||||
this.en = en;
|
||||
this.cn = cn;
|
||||
}
|
||||
|
||||
public String getEn() {
|
||||
return en;
|
||||
}
|
||||
|
||||
public void setEn(String en) {
|
||||
this.en = en;
|
||||
}
|
||||
|
||||
public String getCn() {
|
||||
return cn;
|
||||
}
|
||||
|
||||
public void setCn(String cn) {
|
||||
this.cn = cn;
|
||||
}
|
||||
}
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
package com.jero.common.constant.enums;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* @date 2022/1/21 15:22
|
||||
* @auth zhn
|
||||
*/
|
||||
public enum MessageTypeEnum {
|
||||
READ("Subscription Notification","订阅通知","1"),
|
||||
WARN("Regulation Early Warning","法规预警","2"),
|
||||
PUSH("Share / Forward","转发推送","3"),
|
||||
HOMO_TASK("Homo Parameter Task","","4"),
|
||||
TASK("Regulation Compliance Task","", "5"),
|
||||
//REGULATION_LIST_CONFIRMATION_TASK("Regulation List Confirmation Task", "6"), // 清单确认任务
|
||||
//REGULATION_LIST_CONFIRMATION_NOTIFICATION("Regulation List Confirmation Notification", "7"), // 清单确认通知
|
||||
//REGULATION_TASK_CONFIRMATION_TASK("Regulation Task Confirmation", "8"), // 任务确认任务
|
||||
//REGULATION_TASK_CONFIRMATION_NOTIFICATION("Regulation Task Confirmation Notification", "15"), // 任务确认通知
|
||||
//DESIGN_COMPLIANCE_TASK("Design Compliance Task", "9"), // 设计符合性任务
|
||||
//PRE_HOMO_TASK("Pre-Homo Task", "10"), // Pre-Homo任务
|
||||
//VALIDATION_TASK("Validation Compliance Task", "11"), // 验证符合性任务
|
||||
//DESIGN_COMPLIANCE_NOTIFICATION("Design Compliance Notification", "12"), // 设计符合性通知
|
||||
//PRE_HOMO_NOTIFICATION("Pre-Homo Notification", "13"), // Pre-Homo通知
|
||||
//VALIDATION_COMPLIANCE_NOTIFICATION("Validation Compliance Notification", "14"), // 验证符合性通知
|
||||
SYSTEMATIC_NOTIFICATION("Systematic Notification","系统通知", "15"), // 系统通知
|
||||
LIST_CONFIRMATION("List Confirmation", "","17"), // 清单确认
|
||||
TASK_CONFIRMATION("Task Confirmation", "","18"), // 任务确认
|
||||
COMPLIANCE_CONFIRMATION("Compliance Confirmation","", "19"), // 符合性确认
|
||||
COLLECTION_OF_LEGISLATIVE_COMMENTS("Collection of Legislative Comments","", "20"), // 法规意见收集
|
||||
REGULATORY_AND_TECHNICAL_ASSESSMENT("Regulatory and technical assessment", "","21"), // 法规技术评估
|
||||
;
|
||||
|
||||
String name;
|
||||
String nameCn;
|
||||
String value;
|
||||
|
||||
private MessageTypeEnum(String name,String nameCn, String value) {
|
||||
this.name = name;
|
||||
this.nameCn = nameCn;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getNameCn() {
|
||||
return nameCn;
|
||||
}
|
||||
|
||||
public void setNameCn(String nameCn) {
|
||||
this.nameCn = nameCn;
|
||||
}
|
||||
}
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
package com.jero.common.constant.enums;
|
||||
|
||||
public enum MsgColorEnum {
|
||||
|
||||
GREEN("其他","green"),
|
||||
RED("任务被拒绝","red"),
|
||||
YELLOW("任务逾期","yellow");
|
||||
|
||||
String label;
|
||||
String value;
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
MsgColorEnum(String label, String value) {
|
||||
this.label = label;
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
-302
@@ -1,302 +0,0 @@
|
||||
package com.jero.common.util.dynamic.db;
|
||||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.DynamicDataSourceModel;
|
||||
import com.jero.common.util.ReflectHelper;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Spring JDBC 实时数据库访问
|
||||
*
|
||||
* @author chenguobin
|
||||
* @version 1.0
|
||||
* @date 2014-09-05
|
||||
*/
|
||||
@Slf4j
|
||||
public class DynamicDBUtil {
|
||||
|
||||
private DynamicDBUtil(){
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据源【最底层方法,不要随便调用】
|
||||
*
|
||||
* @param dbSource
|
||||
* @return
|
||||
*/
|
||||
private static DruidDataSource getJdbcDataSource(final DynamicDataSourceModel dbSource) {
|
||||
DruidDataSource dataSource = new DruidDataSource();
|
||||
|
||||
String driverClassName = dbSource.getDbDriver();
|
||||
String url = dbSource.getDbUrl();
|
||||
String dbUser = dbSource.getDbUsername();
|
||||
String dbPassword = dbSource.getDbPassword();
|
||||
dataSource.setDriverClassName(driverClassName);
|
||||
dataSource.setUrl(url);
|
||||
dataSource.setTestWhileIdle(true);
|
||||
dataSource.setTestOnBorrow(false);
|
||||
dataSource.setTestOnReturn(false);
|
||||
dataSource.setBreakAfterAcquireFailure(true);
|
||||
dataSource.setConnectionErrorRetryAttempts(0);
|
||||
dataSource.setUsername(dbUser);
|
||||
dataSource.setMaxWait(30000);
|
||||
dataSource.setPassword(dbPassword);
|
||||
|
||||
log.info("******************************************");
|
||||
log.info("* *");
|
||||
log.info("*====【"+dbSource.getCode()+"】=====Druid连接池已启用 ====*");
|
||||
log.info("* *");
|
||||
log.info("******************************************");
|
||||
return dataSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过 dbKey ,获取数据源
|
||||
*
|
||||
* @param dbKey
|
||||
* @return
|
||||
*/
|
||||
public static DruidDataSource getDbSourceByDbKey(final String dbKey) {
|
||||
//获取多数据源配置
|
||||
DynamicDataSourceModel dbSource = DataSourceCachePool.getCacheDynamicDataSourceModel(dbKey);
|
||||
//先判断缓存中是否存在数据库链接
|
||||
DruidDataSource cacheDbSource = DataSourceCachePool.getCacheBasicDataSource(dbKey);
|
||||
if (cacheDbSource != null && !cacheDbSource.isClosed()) {
|
||||
log.debug("--------getDbSourceBydbKey------------------从缓存中获取DB连接-------------------");
|
||||
return cacheDbSource;
|
||||
} else {
|
||||
DruidDataSource dataSource = getJdbcDataSource(dbSource);
|
||||
if(dataSource.isEnable()){
|
||||
DataSourceCachePool.putCacheBasicDataSource(dbKey, dataSource);
|
||||
}else{
|
||||
throw new JeroBootException("动态数据源连接失败,dbKey:"+dbKey);
|
||||
}
|
||||
log.info("--------getDbSourceBydbKey------------------创建DB数据库连接-------------------");
|
||||
return dataSource;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭数据库连接池
|
||||
*
|
||||
* @param dbKey
|
||||
* @return
|
||||
*/
|
||||
public static void closeDbKey(final String dbKey) {
|
||||
DruidDataSource dataSource = getDbSourceByDbKey(dbKey);
|
||||
try {
|
||||
if (dataSource != null && !dataSource.isClosed()) {
|
||||
dataSource.getConnection().commit();
|
||||
dataSource.getConnection().close();
|
||||
dataSource.close();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static JdbcTemplate getJdbcTemplate(String dbKey) {
|
||||
DruidDataSource dataSource = getDbSourceByDbKey(dbKey);
|
||||
return new JdbcTemplate(dataSource);
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the SQL statement in this <code>PreparedStatement</code> object,
|
||||
* which must be an SQL Data Manipulation Language (DML) statement, such as <code>INSERT</code>, <code>UPDATE</code> or
|
||||
* <code>DELETE</code>; or an SQL statement that returns nothing,
|
||||
* such as a DDL statement.
|
||||
*/
|
||||
public static int update(final String dbKey, String sql, Object... param) {
|
||||
int effectCount;
|
||||
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
|
||||
if (ArrayUtils.isEmpty(param)) {
|
||||
effectCount = jdbcTemplate.update(sql);
|
||||
} else {
|
||||
effectCount = jdbcTemplate.update(sql, param);
|
||||
}
|
||||
return effectCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持miniDao语法操作的Update
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持minidao语法逻辑
|
||||
* @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
public static int updateByHash(final String dbKey, String sql, Map<String, Object> data) {
|
||||
int effectCount;
|
||||
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
|
||||
//根据模板获取sql
|
||||
sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
|
||||
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(Objects.requireNonNull(jdbcTemplate.getDataSource()));
|
||||
effectCount = namedParameterJdbcTemplate.update(sql, data);
|
||||
return effectCount;
|
||||
}
|
||||
|
||||
public static Object findOne(final String dbKey, String sql, Object... param) {
|
||||
List<Map<String, Object>> list;
|
||||
list = findList(dbKey, sql, param);
|
||||
if (oConvertUtils.listIsEmpty(list)) {
|
||||
log.error("Except one, but not find actually");
|
||||
return null;
|
||||
}
|
||||
if (list.size() > 1) {
|
||||
log.error("Except one, but more than one actually");
|
||||
}
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持miniDao语法操作的查询 返回HashMap
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持minidao语法逻辑
|
||||
* @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
public static Object findOneByHash(final String dbKey, String sql, Map<String, Object> data) {
|
||||
List<Map<String, Object>> list;
|
||||
list = findListByHash(dbKey, sql, data);
|
||||
if (oConvertUtils.listIsEmpty(list)) {
|
||||
log.error("Except one, but not find actually");
|
||||
}
|
||||
if (list.size() > 1) {
|
||||
log.error("Except one, but more than one actually");
|
||||
}
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 直接sql查询 根据clazz返回单个实例
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句
|
||||
* @param clazz 返回实例的Class
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> Object findOne(final String dbKey, String sql, Class<T> clazz, Object... param) {
|
||||
Map<String, Object> map = (Map<String, Object>) findOne(dbKey, sql, param);
|
||||
return ReflectHelper.setAll(clazz, map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持miniDao语法操作的查询 返回单个实例
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持minidao语法逻辑
|
||||
* @param clazz 返回实例的Class
|
||||
* @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> Object findOneByHash(final String dbKey, String sql, Class<T> clazz, Map<String, Object> data) {
|
||||
Map<String, Object> map = (Map<String, Object>) findOneByHash(dbKey, sql, data);
|
||||
return ReflectHelper.setAll(clazz, map);
|
||||
}
|
||||
|
||||
public static List<Map<String, Object>> findList(final String dbKey, String sql, Object... param) {
|
||||
List<Map<String, Object>> list;
|
||||
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
|
||||
|
||||
if (ArrayUtils.isEmpty(param)) {
|
||||
list = jdbcTemplate.queryForList(sql);
|
||||
} else {
|
||||
list = jdbcTemplate.queryForList(sql, param);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持miniDao语法操作的查询
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持minidao语法逻辑
|
||||
* @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
public static List<Map<String, Object>> findListByHash(final String dbKey, String sql, Map<String, Object> data) {
|
||||
List<Map<String, Object>> list;
|
||||
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
|
||||
//根据模板获取sql
|
||||
sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
|
||||
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(Objects.requireNonNull(jdbcTemplate.getDataSource()));
|
||||
list = namedParameterJdbcTemplate.queryForList(sql, data);
|
||||
return list;
|
||||
}
|
||||
|
||||
//此方法只能返回单列,不能返回实体类
|
||||
public static <T> List<T> findList(final String dbKey, String sql, Class<T> clazz, Object... param) {
|
||||
List<T> list;
|
||||
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
|
||||
|
||||
if (ArrayUtils.isEmpty(param)) {
|
||||
list = jdbcTemplate.queryForList(sql, clazz);
|
||||
} else {
|
||||
list = jdbcTemplate.queryForList(sql, clazz, param);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持miniDao语法操作的查询 返回单列数据list
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持minidao语法逻辑
|
||||
* @param clazz 类型Long、String等
|
||||
* @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
public static <T> List<T> findListByHash(final String dbKey, String sql, Class<T> clazz, Map<String, Object> data) {
|
||||
List<T> list;
|
||||
JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
|
||||
//根据模板获取sql
|
||||
sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
|
||||
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(Objects.requireNonNull(jdbcTemplate.getDataSource()));
|
||||
list = namedParameterJdbcTemplate.queryForList(sql, data, clazz);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 直接sql查询 返回实体类列表
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持 minidao 语法逻辑
|
||||
* @param clazz 返回实体类列表的class
|
||||
* @param param sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
public static <T> List<T> findListEntities(final String dbKey, String sql, Class<T> clazz, Object... param) {
|
||||
List<Map<String, Object>> queryList = findList(dbKey, sql, param);
|
||||
return ReflectHelper.transList2Entrys(queryList, clazz);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持miniDao语法操作的查询 返回实体类列表
|
||||
*
|
||||
* @param dbKey 数据源标识
|
||||
* @param sql 执行sql语句,sql支持minidao语法逻辑
|
||||
* @param clazz 返回实体类列表的class
|
||||
* @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
|
||||
* @return
|
||||
*/
|
||||
public static <T> List<T> findListEntitiesByHash(final String dbKey, String sql, Class<T> clazz, Map<String, Object> data) {
|
||||
List<Map<String, Object>> queryList = findListByHash(dbKey, sql, data);
|
||||
return ReflectHelper.transList2Entrys(queryList, clazz);
|
||||
}
|
||||
}
|
||||
-1201
File diff suppressed because it is too large
Load Diff
-127
@@ -1,127 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgform.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.system.query.QueryGenerator;
|
||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformButton;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformButtonService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController("onlCgformButtonController")
|
||||
@RequestMapping({"/online/cgform/button"})
|
||||
@Slf4j
|
||||
public class OnlCgformButtonController {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgformButtonService onlCgformButtonService;
|
||||
|
||||
private static final String OP_SUCCESS = "操作成功!";
|
||||
private static final String EN_IS_NULL = "未找到对应实体";
|
||||
|
||||
|
||||
@GetMapping({"/list/{code}"})
|
||||
public Result<IPage<OnlCgformButton>> list(OnlCgformButton var1, @RequestParam(name = "pageNo",defaultValue = "1") Integer var2, @RequestParam(name = "pageSize",defaultValue = "10") Integer var3, HttpServletRequest var4, @PathVariable("code") String var5) {
|
||||
Result<IPage<OnlCgformButton>> var6 = new Result<>();
|
||||
var1.setCgformHeadId(var5);
|
||||
QueryWrapper<OnlCgformButton> var7 = QueryGenerator.initQueryWrapper(var1, var4.getParameterMap());
|
||||
Page<OnlCgformButton> var8 = new Page<>(var2, var3);
|
||||
IPage<OnlCgformButton> var9 = this.onlCgformButtonService.page(var8, var7);
|
||||
var6.setSuccess(true);
|
||||
var6.setResult(var9);
|
||||
return var6;
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<Object> add(@RequestBody OnlCgformButton cgformButton) {
|
||||
try {
|
||||
this.onlCgformButtonService.save(cgformButton);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/aitest"})
|
||||
public Result<Object> aitest(@RequestBody JSONArray jsonArray) {
|
||||
try {
|
||||
for(int i = 0; i < jsonArray.size(); ++i) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
OnlCgformButton cgformButton = JSON.parseObject(jsonObject.toJSONString(), OnlCgformButton.class);
|
||||
this.onlCgformButtonService.saveButton(cgformButton);
|
||||
}
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/edit"})
|
||||
public Result<Object> edit(@RequestBody OnlCgformButton cgformButton) {
|
||||
OnlCgformButton existCgformButton = this.onlCgformButtonService.getById(cgformButton.getId());
|
||||
if (existCgformButton == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean flag = this.onlCgformButtonService.updateById(cgformButton);
|
||||
if (flag) {
|
||||
return Result.OK(OP_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<Object> delete(@RequestBody Map<String,String> map) {
|
||||
String id = map.get("id");
|
||||
if(StringUtils.isEmpty(id)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
OnlCgformButton cgformButton = this.onlCgformButtonService.getById(id);
|
||||
if (cgformButton == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean flag = this.onlCgformButtonService.removeById(id);
|
||||
if (flag) {
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<Object> deleteBatch(@RequestBody Map<String,String> map) {
|
||||
String ids = map.get("ids");
|
||||
if (ids != null && !"".equals(ids.trim())) {
|
||||
this.onlCgformButtonService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("删除成功!");
|
||||
} else {
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<OnlCgformButton> queryById(@RequestParam(name = "id",required = true) String id) {
|
||||
OnlCgformButton cgformButton = this.onlCgformButtonService.getById(id);
|
||||
if (cgformButton == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
return Result.OK(cgformButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
package com.jero.generater.modules.online.cgform.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.system.query.QueryGenerator;
|
||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
|
||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformHead;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformFieldService;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformHeadService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController("onlCgformFieldController")
|
||||
@RequestMapping({"/online/cgform/field"})
|
||||
@Slf4j
|
||||
public class OnlCgformFieldController {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgformHeadService onlCgformHeadService;
|
||||
@Autowired
|
||||
private IOnlCgformFieldService onlCgformFieldService;
|
||||
|
||||
private static final String EN_IS_NULL = "未找到对应实体";
|
||||
|
||||
@GetMapping({"/listByHeadCode"})
|
||||
public Result<List<OnlCgformField>> a(@RequestParam("headCode") String var1) {
|
||||
LambdaQueryWrapper<OnlCgformHead> var2 = new LambdaQueryWrapper<>();
|
||||
var2.eq(OnlCgformHead::getTableName, var1);
|
||||
OnlCgformHead var3 = this.onlCgformHeadService.getOne(var2);
|
||||
return var3 == null ? Result.error("不存在的code") : this.b(var3.getId());
|
||||
}
|
||||
|
||||
@GetMapping({"/listByHeadId"})
|
||||
public Result<List<OnlCgformField>> b(@RequestParam("headId") String var1) {
|
||||
QueryWrapper<OnlCgformField> var2 = new QueryWrapper<>();
|
||||
var2.eq("cgform_head_id", var1);
|
||||
var2.orderByAsc("order_num");
|
||||
List<OnlCgformField> var3 = this.onlCgformFieldService.list(var2);
|
||||
return Result.OK(var3);
|
||||
}
|
||||
|
||||
@GetMapping({"/list"})
|
||||
public Result<IPage<OnlCgformField>> a(OnlCgformField var1, @RequestParam(name = "pageNo",defaultValue = "1") Integer var2, @RequestParam(name = "pageSize",defaultValue = "10") Integer var3, HttpServletRequest var4) {
|
||||
Result<IPage<OnlCgformField>> var5 = new Result<>();
|
||||
QueryWrapper<OnlCgformField> var6 = QueryGenerator.initQueryWrapper(var1, var4.getParameterMap());
|
||||
Page<OnlCgformField> var7 = new Page<>(var2, var3);
|
||||
IPage<OnlCgformField> var8 = this.onlCgformFieldService.page(var7, var6);
|
||||
var5.setSuccess(true);
|
||||
var5.setResult(var8);
|
||||
return var5;
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<Object> add(@RequestBody OnlCgformField var1) {
|
||||
try {
|
||||
this.onlCgformFieldService.save(var1);
|
||||
return Result.OK("操作成功!");
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/edit"})
|
||||
public Result<Object> edit(@RequestBody OnlCgformField var1) {
|
||||
OnlCgformField var3 = this.onlCgformFieldService.getById(var1.getId());
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean var4 = this.onlCgformFieldService.updateById(var1);
|
||||
if (var4) {
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
}
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<Object> delete(@RequestBody Map<String,String> map) {
|
||||
String var1 = map.get("id");
|
||||
OnlCgformField var3 = this.onlCgformFieldService.getById(var1);
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean var4 = this.onlCgformFieldService.removeById(var1);
|
||||
if (var4) {
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<Object> deleteBatch(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("ids");
|
||||
if (var1 != null && !"".equals(var1.trim())) {
|
||||
this.onlCgformFieldService.removeByIds(Arrays.asList(var1.split(",")));
|
||||
return Result.OK("删除成功!");
|
||||
} else {
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<Object> queryById(@RequestParam(name = "id",required = true) String var1) {
|
||||
OnlCgformField var3 = this.onlCgformFieldService.getById(var1);
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
return Result.OK(var3);
|
||||
}
|
||||
}
|
||||
}
|
||||
-607
@@ -1,607 +0,0 @@
|
||||
package com.jero.generater.modules.online.cgform.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.codegenerate.database.DbReadTableUtil;
|
||||
import com.jero.codegenerate.properties.CodeConfigProperties;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.constant.enums.CgformEnum;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.util.JwtUtil;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.generater.modules.online.cgform.entity.*;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformEnhanceService;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformFieldService;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformHeadService;
|
||||
import com.jero.generater.modules.online.cgform.util.CgformUtil;
|
||||
import com.jero.generater.modules.online.config.exception.DBException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.authz.annotation.RequiresRoles;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.core.io.ResourceLoader;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
@RestController("onlCgformHeadController")
|
||||
@RequestMapping({"/online/cgform/head"})
|
||||
@Slf4j
|
||||
public class OnlCgformHeadController {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgformHeadService onlCgformHeadService;
|
||||
@Autowired
|
||||
private IOnlCgformFieldService onlCgformFieldService;
|
||||
@Autowired
|
||||
private IOnlCgformEnhanceService onlCgformEnhanceService;
|
||||
|
||||
private List<String> b = null;
|
||||
@Autowired
|
||||
ResourceLoader resourceLoader;
|
||||
|
||||
private String c;
|
||||
|
||||
private static final String OP_SUCCESS = "操作成功!";
|
||||
private static final String EN_IS_NULL = "未找到对应实体";
|
||||
private static final String SAVE_ERROR = "保存失败!";
|
||||
private static final String DEL_ERROR = "删除失败!";
|
||||
private static final String PARAM_ERROR = "参数不识别!";
|
||||
|
||||
|
||||
@GetMapping({"/list"})
|
||||
public Result<IPage<OnlCgformHead>> a(OnlCgformHead var1, @RequestParam(name = "pageNo", defaultValue = "1") Integer var2, @RequestParam(name = "pageSize", defaultValue = "10") Integer var3, HttpServletRequest var4) {
|
||||
Result<IPage<OnlCgformHead>> var5 = new Result<>();
|
||||
QueryWrapper<OnlCgformHead> var6 = QueryGenerator.initQueryWrapper(var1, var4.getParameterMap());
|
||||
Page<OnlCgformHead> var7 = new Page<>(var2, var3);
|
||||
IPage<OnlCgformHead> var8 = this.onlCgformHeadService.page(var7, var6);
|
||||
if (var1.getCopyType() != null && var1.getCopyType() == 0) {
|
||||
this.onlCgformHeadService.initCopyState(var8.getRecords());
|
||||
}
|
||||
|
||||
var5.setSuccess(true);
|
||||
var5.setResult(var8);
|
||||
return var5;
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<Object> add(@RequestBody OnlCgformHead var1) {
|
||||
try {
|
||||
this.onlCgformHeadService.save(var1);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/edit"})
|
||||
public Result<Object> edit(@RequestBody OnlCgformHead var1) {
|
||||
OnlCgformHead var3 = this.onlCgformHeadService.getById(var1.getId());
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean var4 = this.onlCgformHeadService.updateById(var1);
|
||||
if (var4) {
|
||||
return Result.OK(OP_SUCCESS);
|
||||
}
|
||||
}
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<T> delete(@RequestBody Map<String, String> map) {
|
||||
String id = map.get("id");
|
||||
if (id == null || "".equals(id.trim())) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
try {
|
||||
this.onlCgformHeadService.deleteRecordAndTable(id);
|
||||
} catch (DBException | SQLException e) {
|
||||
return Result.error("删除失败" + e.getMessage());
|
||||
}
|
||||
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/removeRecord"})
|
||||
public Result<T> removeRecord(@RequestBody Map<String, String> map) {
|
||||
String id = map.get("id");
|
||||
if (id == null || "".equals(id.trim())) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
try {
|
||||
this.onlCgformHeadService.deleteRecord(id);
|
||||
} catch (DBException | SQLException e) {
|
||||
return Result.error("移除失败" + e.getMessage());
|
||||
}
|
||||
|
||||
return Result.OK("移除成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<Object> deleteBatch(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("ids");
|
||||
String var2 = map.get("flag");
|
||||
if (var2 == null || "".equals(var2.trim())) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
if (var1 != null && !"".equals(var1.trim())) {
|
||||
this.onlCgformHeadService.deleteBatch(var1, var2);
|
||||
return Result.OK("删除成功!");
|
||||
} else {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<OnlCgformHead> queryById(@RequestParam(name = "id", required = true) String id) {
|
||||
OnlCgformHead cgformHead = this.onlCgformHeadService.getById(id);
|
||||
if (cgformHead == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
return Result.OK(cgformHead);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@GetMapping({"/queryByTableNames"})
|
||||
public Result<List<OnlCgformHead>> queryByTableNames(@RequestParam(name = "tableNames", required = true) String var1) {
|
||||
LambdaQueryWrapper<OnlCgformHead> var2 = new LambdaQueryWrapper<>();
|
||||
String[] var3 = var1.split(",");
|
||||
var2.in(OnlCgformHead::getTableName, Arrays.asList(var3));
|
||||
List<OnlCgformHead> var4 = this.onlCgformHeadService.list(var2);
|
||||
return var4 == null ? Result.error(EN_IS_NULL) : Result.OK(var4);
|
||||
}
|
||||
|
||||
@PostMapping({"/addEnhanceJs/{code}"})
|
||||
public Result<T> addEnhanceJs(@PathVariable("code") String var1, @RequestBody OnlCgformEnhanceJs var2) {
|
||||
try {
|
||||
var2.setCgformHeadId(var1);
|
||||
this.onlCgformHeadService.saveEnhance(var2);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error(SAVE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/enhanceJs/{code}"})
|
||||
public Result<OnlCgformEnhanceJs> getEnhanceJs(@PathVariable("code") String var1, HttpServletRequest var2) {
|
||||
try {
|
||||
String var3 = var2.getParameter("type");
|
||||
OnlCgformEnhanceJs var4 = this.onlCgformHeadService.queryEnhance(var1, var3);
|
||||
return var4 == null ? Result.error("查询为空") : Result.OK(var4);
|
||||
} catch (Exception var5) {
|
||||
log.error(var5.getMessage(), var5);
|
||||
return Result.error("查询失败!");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/enhanceJs/{code}"})
|
||||
public Result<T> editEnhanceJs(@PathVariable("code") String var1, @RequestBody OnlCgformEnhanceJs var2) {
|
||||
try {
|
||||
var2.setCgformHeadId(var1);
|
||||
this.onlCgformHeadService.editEnhance(var2);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error(SAVE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/enhanceButton/{formId}"})
|
||||
public Result<List<OnlCgformButton>> getEnhanceButton(@PathVariable("formId") String var1, HttpServletRequest var2) {
|
||||
try {
|
||||
List<OnlCgformButton> var3 = this.onlCgformHeadService.queryButtonList(var1);
|
||||
return var3 != null && !var3.isEmpty() ? Result.OK(var3) : Result.error("查询为空");
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error("查询失败!");
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/enhanceSql/{formId}"})
|
||||
public Result<List<OnlCgformEnhanceSql>> getEnhanceSql(@PathVariable("formId") String var1, HttpServletRequest var2) {
|
||||
List<OnlCgformEnhanceSql> var3 = this.onlCgformEnhanceService.queryEnhanceSqlList(var1);
|
||||
return Result.OK(var3);
|
||||
}
|
||||
|
||||
@RequiresRoles({"admin"})
|
||||
@PostMapping({"/addEnhanceSql/{formId}"})
|
||||
public Result<T> addEnhanceSql(@PathVariable("formId") String var1, @RequestBody OnlCgformEnhanceSql var2) {
|
||||
try {
|
||||
var2.setCgformHeadId(var1);
|
||||
if (this.onlCgformEnhanceService.checkOnlyEnhance(var2)) {
|
||||
this.onlCgformEnhanceService.saveEnhanceSql(var2);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} else {
|
||||
return Result.error("保存失败,该按钮已存在增强配置!");
|
||||
}
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error(SAVE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresRoles({"admin"})
|
||||
@PostMapping({"/enhanceSql/{formId}"})
|
||||
public Result<T> editEnhanceSql(@PathVariable("formId") String var1, @RequestBody OnlCgformEnhanceSql var2) {
|
||||
try {
|
||||
var2.setCgformHeadId(var1);
|
||||
if (this.onlCgformEnhanceService.checkOnlyEnhance(var2)) {
|
||||
this.onlCgformEnhanceService.updateEnhanceSql(var2);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} else {
|
||||
return Result.error("保存失败,该按钮已存在增强配置!");
|
||||
}
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error(SAVE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/enhanceSql"})
|
||||
public Result<T> deletenhanceSql(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("id");
|
||||
if (StringUtils.isBlank(var1)) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
try {
|
||||
this.onlCgformEnhanceService.deleteEnhanceSql(var1);
|
||||
return Result.OK("删除成功");
|
||||
} catch (Exception var3) {
|
||||
log.error(var3.getMessage(), var3);
|
||||
return Result.error(DEL_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/deletebatchEnhanceSql"})
|
||||
public Result<T> deletebatchEnhanceSql(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("ids");
|
||||
if (StringUtils.isBlank(var1)) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
try {
|
||||
List<String> var2 = Arrays.asList(var1.split(","));
|
||||
this.onlCgformEnhanceService.deleteBatchEnhanceSql(var2);
|
||||
return Result.OK("删除成功");
|
||||
} catch (Exception var3) {
|
||||
log.error(var3.getMessage(), var3);
|
||||
return Result.error(DEL_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/enhanceJava/{formId}"})
|
||||
public Result<List<OnlCgformEnhanceJava>> getEnhanceJava(@PathVariable("formId") String formId, OnlCgformEnhanceJava var2) {
|
||||
List<OnlCgformEnhanceJava> var3 = this.onlCgformEnhanceService.queryEnhanceJavaList(formId);
|
||||
return Result.OK(var3);
|
||||
}
|
||||
|
||||
@PostMapping({"/addEnhanceJava/{formId}"})
|
||||
public Result<T> addEnhanceJava(@PathVariable("formId") String formId, @RequestBody OnlCgformEnhanceJava var2) {
|
||||
try {
|
||||
if (!CgformUtil.a(var2)) {
|
||||
return Result.error("类实例化失败,请检查!");
|
||||
} else {
|
||||
var2.setCgformHeadId(formId);
|
||||
if (this.onlCgformEnhanceService.checkOnlyEnhance(var2)) {
|
||||
this.onlCgformEnhanceService.saveEnhanceJava(var2);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} else {
|
||||
return Result.error("保存失败,配置重复了!");
|
||||
}
|
||||
}
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error(SAVE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/enhanceJava/{formId}"})
|
||||
public Result<T> c(@PathVariable("formId") String var1, @RequestBody OnlCgformEnhanceJava var2) {
|
||||
try {
|
||||
if (!CgformUtil.a(var2)) {
|
||||
return Result.error("类实例化失败,请检查!");
|
||||
} else {
|
||||
var2.setCgformHeadId(var1);
|
||||
if (this.onlCgformEnhanceService.checkOnlyEnhance(var2)) {
|
||||
this.onlCgformEnhanceService.updateEnhanceJava(var2);
|
||||
return Result.OK(OP_SUCCESS);
|
||||
} else {
|
||||
return Result.error("保存失败,配置重复了!");
|
||||
}
|
||||
}
|
||||
} catch (Exception var4) {
|
||||
log.error(var4.getMessage(), var4);
|
||||
return Result.error(SAVE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/enhanceJava"})
|
||||
public Result<T> g(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("id");
|
||||
if (StringUtils.isBlank(var1)) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
try {
|
||||
this.onlCgformEnhanceService.deleteEnhanceJava(var1);
|
||||
return Result.OK("删除成功");
|
||||
} catch (Exception var3) {
|
||||
log.error(var3.getMessage(), var3);
|
||||
return Result.error(DEL_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatchEnhanceJava"})
|
||||
public Result<T> h(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("ids");
|
||||
if (StringUtils.isBlank(var1)) {
|
||||
return Result.error(PARAM_ERROR);
|
||||
}
|
||||
try {
|
||||
List<String> var2 = Arrays.asList(var1.split(","));
|
||||
this.onlCgformEnhanceService.deleteBatchEnhanceJava(var2);
|
||||
return Result.OK("删除成功");
|
||||
} catch (Exception var3) {
|
||||
log.error(var3.getMessage(), var3);
|
||||
return Result.error(DEL_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/queryTables"})
|
||||
public Result<ArrayList<HashMap<String,String>>> a(@RequestParam(name = "tableName", required = false) String var1, @RequestParam(name = "pageNo", defaultValue = "1") Integer var2, @RequestParam(name = "pageSize", defaultValue = "10") Integer var3, HttpServletRequest var4) {
|
||||
String var5 = JwtUtil.getUserNameByToken(var4);
|
||||
if (!"admin".equals(var5)) {
|
||||
return Result.error("noadminauth");
|
||||
} else {
|
||||
new ArrayList<>();
|
||||
|
||||
List<String> var6;
|
||||
try {
|
||||
var6 = DbReadTableUtil.listTableName();
|
||||
} catch (SQLException var12) {
|
||||
log.error(var12.getMessage(), var12);
|
||||
return Result.error("同步失败,未获取数据库表信息");
|
||||
}
|
||||
|
||||
CgformUtil.b(var6);
|
||||
var6 = CgformUtil.f(var6);
|
||||
List<String> var7 = this.onlCgformHeadService.queryOnlinetables();
|
||||
this.b();
|
||||
var6.removeAll(var7);
|
||||
ArrayList<HashMap<String,String>> var8 = new ArrayList<>();
|
||||
|
||||
for (String var10 : var6) {
|
||||
if (!this.l(var10)) {
|
||||
HashMap<String,String> var11 = new HashMap<>();
|
||||
var11.put("id", var10);
|
||||
var8.add(var11);
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK(var8);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/transTables/{tbnames}"})
|
||||
@RequiresRoles({"admin"})
|
||||
public Result<T> d(@PathVariable("tbnames") String var1, HttpServletRequest var2) {
|
||||
String var3 = JwtUtil.getUserNameByToken(var2);
|
||||
if (!"admin".equals(var3)) {
|
||||
return Result.error("noadminauth");
|
||||
} else if (oConvertUtils.isEmpty(var1)) {
|
||||
return Result.error("未识别的表名信息");
|
||||
} else if (c != null && c.equals(var1)) {
|
||||
return Result.error("不允许重复生成!");
|
||||
} else {
|
||||
c = var1;
|
||||
String[] var4 = var1.split(",");
|
||||
|
||||
for (int var5 = 0; var5 < var4.length; ++var5) {
|
||||
if (oConvertUtils.isNotEmpty(var4[var5])) {
|
||||
int var6 = this.onlCgformHeadService.count(new LambdaQueryWrapper<OnlCgformHead>().eq(OnlCgformHead::getTableName, var4[var5]));
|
||||
if (var6 <= 0) {
|
||||
log.info("[IP] [online数据库导入表] --表名:" + var4[var5]);
|
||||
this.onlCgformHeadService.saveDbTable2Online(var4[var5]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
c = null;
|
||||
return Result.OK("同步完成!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取磁盘根目录
|
||||
*
|
||||
* @param
|
||||
* @return com.jero.common.api.vo.Result
|
||||
* @date 2021/4/6 11:20
|
||||
*/
|
||||
@GetMapping({"/rootFile"})
|
||||
public Result<JSONArray> rootFile() {
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
File[] files = File.listRoots();
|
||||
int var4 = files.length;
|
||||
|
||||
for (int i = 0; i < var4; ++i) {
|
||||
File file = files[i];
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
if (file.isDirectory()) {
|
||||
jsonObject.put("key", file.getAbsolutePath());
|
||||
jsonObject.put("title", file.getPath());
|
||||
jsonObject.put("opened", false);
|
||||
JSONObject jsonObject1 = new JSONObject();
|
||||
jsonObject1.put("icon", "custom");
|
||||
jsonObject.put("scopedSlots", jsonObject1);
|
||||
jsonObject.put("isLeaf", file.listFiles() == null || file.listFiles().length == 0);
|
||||
}
|
||||
|
||||
jsonArray.add(jsonObject);
|
||||
}
|
||||
|
||||
return Result.OK(jsonArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取磁盘文件树
|
||||
*
|
||||
* @param parentPath
|
||||
* @return com.jero.common.api.vo.Result
|
||||
* @date 2021/4/6 11:20
|
||||
*/
|
||||
@GetMapping({"/fileTree"})
|
||||
public Result<JSONArray> fileTree(@RequestParam(name = "parentPath", required = true) String parentPath) {
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
File file = new File(parentPath);
|
||||
File[] files = file.listFiles();
|
||||
int length = files.length;
|
||||
|
||||
for (int i = 0; i < length; ++i) {
|
||||
File file1 = files[i];
|
||||
if (file1.isDirectory() && oConvertUtils.isNotEmpty(file1.getPath())) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
log.info(file1.getPath());
|
||||
jsonObject.put("key", file1.getAbsolutePath());
|
||||
jsonObject.put("title", file1.getPath().substring(file1.getPath().lastIndexOf(File.separator) + 1));
|
||||
jsonObject.put("isLeaf", file1.listFiles() == null || file1.listFiles().length == 0);
|
||||
jsonObject.put("opened", false);
|
||||
JSONObject jsonObject1 = new JSONObject();
|
||||
jsonObject1.put("icon", "custom");
|
||||
jsonObject.put("scopedSlots", jsonObject1);
|
||||
jsonArray.add(jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK(jsonArray);
|
||||
}
|
||||
|
||||
@GetMapping({"/tableInfo"})
|
||||
public Result<HashMap<String, Object>> tableInfo(@RequestParam(name = "code", required = true) String code) {
|
||||
OnlCgformHead onlCgformHead = this.onlCgformHeadService.getById(code);
|
||||
if (onlCgformHead == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("main", onlCgformHead);
|
||||
getTableType(onlCgformHead, map);
|
||||
|
||||
Integer tableType = onlCgformHead.getTableType();
|
||||
if ("Y".equals(onlCgformHead.getIsTree())) {
|
||||
tableType = 3;
|
||||
}
|
||||
|
||||
List<Map<String, Object>> jspModelList = CgformEnum.getJspModelList(tableType);
|
||||
map.put("jspModeList", jspModelList);
|
||||
map.put("projectPath", CodeConfigProperties.getProjectPath());
|
||||
return Result.OK(map);
|
||||
}
|
||||
}
|
||||
|
||||
private void getTableType(OnlCgformHead onlCgformHead, HashMap<String, Object> map) {
|
||||
if (onlCgformHead.getTableType() == 2) {
|
||||
String subTableStr = onlCgformHead.getSubTableStr();
|
||||
if (oConvertUtils.isNotEmpty(subTableStr)) {
|
||||
ArrayList<OnlCgformHead> list = new ArrayList<>();
|
||||
String[] subTableArray = subTableStr.split(",");
|
||||
int length = subTableArray.length;
|
||||
|
||||
for (int i = 0; i < length; ++i) {
|
||||
String subTable = subTableArray[i];
|
||||
LambdaQueryWrapper<OnlCgformHead> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(OnlCgformHead::getTableName, subTable);
|
||||
OnlCgformHead onlCgformHead1 = this.onlCgformHeadService.getOne(lambdaQueryWrapper);
|
||||
list.add(onlCgformHead1);
|
||||
}
|
||||
|
||||
Collections.sort(list, (onlCgformHead1, onlCgformHead2) -> {
|
||||
Integer tabOrderNum = onlCgformHead1.getTabOrderNum();
|
||||
if (tabOrderNum == null) {
|
||||
tabOrderNum = 0;
|
||||
}
|
||||
|
||||
Integer tabOrderNum1 = onlCgformHead2.getTabOrderNum();
|
||||
if (tabOrderNum1 == null) {
|
||||
tabOrderNum1 = 0;
|
||||
}
|
||||
|
||||
return tabOrderNum.compareTo(tabOrderNum1);
|
||||
});
|
||||
map.put("sub", list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/copyOnline"})
|
||||
public Result<T> k(@RequestParam(name = "code", required = true) String var1) {
|
||||
try {
|
||||
OnlCgformHead var2 = this.onlCgformHeadService.getById(var1);
|
||||
if (var2 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
}
|
||||
|
||||
this.onlCgformHeadService.copyOnlineTableConfig(var2);
|
||||
} catch (Exception var3) {
|
||||
var3.printStackTrace();
|
||||
}
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
private boolean l(String var1) {
|
||||
Iterator<String> var2 = b.iterator();
|
||||
|
||||
String var3;
|
||||
do {
|
||||
if (!var2.hasNext()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var3 = var2.next();
|
||||
} while (!var1.startsWith(var3) && !var1.startsWith(var3.toUpperCase()));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void b() {
|
||||
if (b == null) {
|
||||
Resource var1 = this.resourceLoader.getResource("classpath:jero" + File.separator + "jero_config.properties");
|
||||
InputStream var2 = null;
|
||||
|
||||
try {
|
||||
var2 = var1.getInputStream();
|
||||
Properties var3 = new Properties();
|
||||
var3.load(var2);
|
||||
String var4 = var3.getProperty("exclude_table");
|
||||
if (var4 != null) {
|
||||
b = Arrays.asList(var4.split(","));
|
||||
}
|
||||
} catch (IOException var13) {
|
||||
var13.printStackTrace();
|
||||
} finally {
|
||||
if (var2 != null) {
|
||||
try {
|
||||
var2.close();
|
||||
} catch (IOException var12) {
|
||||
var12.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-117
@@ -1,117 +0,0 @@
|
||||
package com.jero.generater.modules.online.cgform.controller;
|
||||
|
||||
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.constant.CommonConstant;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformIndex;
|
||||
import com.jero.generater.modules.online.cgform.service.IOnlCgformIndexService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController("onlCgformIndexController")
|
||||
@RequestMapping({"/online/cgform/index"})
|
||||
@Slf4j
|
||||
public class OnlCgformIndexController {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgformIndexService onlCgformIndexService;
|
||||
|
||||
private static final String EN_IS_NULL = "未找到对应实体";
|
||||
|
||||
@GetMapping({"/listByHeadId"})
|
||||
public Result<List<OnlCgformIndex>> listByHeadId(@RequestParam("headId") String headId) {
|
||||
QueryWrapper<OnlCgformIndex> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("cgform_head_id", headId);
|
||||
queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
List<OnlCgformIndex> cgformIndexList = this.onlCgformIndexService.list(queryWrapper);
|
||||
return Result.OK(cgformIndexList);
|
||||
}
|
||||
|
||||
@GetMapping({"/list"})
|
||||
public Result<IPage<OnlCgformIndex>> list(OnlCgformIndex cgformIndex,
|
||||
@RequestParam(name = "pageNo",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize",defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest request) {
|
||||
QueryWrapper<OnlCgformIndex> queryWrapper = QueryGenerator.initQueryWrapper(cgformIndex, request.getParameterMap());
|
||||
Page<OnlCgformIndex> page = new Page<>(pageNo, pageSize);
|
||||
IPage<OnlCgformIndex> cgformIndexPage = this.onlCgformIndexService.page(page, queryWrapper);
|
||||
return Result.OK(cgformIndexPage);
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<Object> add(@RequestBody OnlCgformIndex cgformIndex) {
|
||||
try {
|
||||
this.onlCgformIndexService.save(cgformIndex);
|
||||
return Result.OK("操作成功!");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/edit"})
|
||||
public Result<Object> edit(@RequestBody OnlCgformIndex cgformIndex) {
|
||||
OnlCgformIndex existCgformIndex = this.onlCgformIndexService.getById(cgformIndex.getId());
|
||||
if (existCgformIndex == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean flag = this.onlCgformIndexService.updateById(cgformIndex);
|
||||
if (flag) {
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<Object> delete(@RequestBody Map<String,String> map) {
|
||||
String id = map.get("id");
|
||||
if(StringUtils.isBlank(id)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
OnlCgformIndex cgformIndex = this.onlCgformIndexService.getById(id);
|
||||
if (cgformIndex == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
boolean flag = this.onlCgformIndexService.removeById(id);
|
||||
if (flag) {
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<Object> deleteBatch(@RequestBody Map<String,String> map) {
|
||||
String ids = map.get("ids");
|
||||
if (ids != null && !"".equals(ids.trim())) {
|
||||
this.onlCgformIndexService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("删除成功!");
|
||||
} else {
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<OnlCgformIndex> queryById(@RequestParam(name = "id",required = true) String var1) {
|
||||
OnlCgformIndex cgformIndex = this.onlCgformIndexService.getById(var1);
|
||||
if (cgformIndex == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
return Result.OK(cgformIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
-51
@@ -14,35 +14,6 @@ public class ConvertUtil {
|
||||
private ConvertUtil() {
|
||||
}
|
||||
|
||||
public static void a(int var0, List<Map<String, Object>> var1, List<OnlCgformField> var2) {
|
||||
Map<String, FieldCommentConverter> var3 = ConvertFactory.a(var2);
|
||||
|
||||
for (Map<String, Object> stringObjectMap : var1) {
|
||||
Map<String, Object> var5 = stringObjectMap;
|
||||
Iterator<Entry<String, Object>> var6 = var5.entrySet().iterator();
|
||||
HashMap<String, Object> var7 = new HashMap<>();
|
||||
|
||||
while (var6.hasNext()) {
|
||||
Entry<String, Object> var8 = var6.next();
|
||||
Object var9 = var8.getValue();
|
||||
if (var9 != null) {
|
||||
String var10 = var8.getKey();
|
||||
FieldCommentConverter var11 = var3.get(var10.toLowerCase());
|
||||
if (var11 != null) {
|
||||
String var12 = var9.toString();
|
||||
String var13 = var0 == 1 ? var11.converterToTxt(var12) : var11.converterToVal(var12);
|
||||
a(var11, var5, var0);
|
||||
a(var11, var7, var12);
|
||||
var5.put(var10, var13);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
putVar(var5, var7);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void putVar(Map<String, Object> var5, HashMap<String, Object> var7) {
|
||||
for (String o : var7.keySet()) {
|
||||
String var15 = o;
|
||||
@@ -50,28 +21,6 @@ public class ConvertUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static void a(FieldCommentConverter var0, Map<String, Object> var1, int var2) {
|
||||
Map<String, String> var3 = var0.getConfig();
|
||||
if (var3 != null) {
|
||||
String var4 = var3.get("linkField");
|
||||
if (oConvertUtils.isNotEmpty(var4)) {
|
||||
String[] var5 = var4.split(",");
|
||||
int var6 = var5.length;
|
||||
|
||||
for(int var7 = 0; var7 < var6; ++var7) {
|
||||
String var8 = var5[var7];
|
||||
Object var9 = var1.get(var8);
|
||||
if (var9 != null) {
|
||||
String var10 = var9.toString();
|
||||
String var11 = var2 == 1 ? var0.converterToTxt(var10) : var0.converterToVal(var10);
|
||||
var1.put(var8, var11);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void a(FieldCommentConverter var0, Map<String, Object> var1, String var2) {
|
||||
Map<String, String> var3 = var0.getConfig();
|
||||
if (var3 != null) {
|
||||
|
||||
-2
@@ -8,7 +8,5 @@ import com.jero.generater.modules.online.cgform.entity.OnlCgformHead;
|
||||
import com.jero.generater.modules.online.config.exception.BusinessException;
|
||||
|
||||
public interface IOnlCgformSqlService {
|
||||
void saveBatchOnlineTable(OnlCgformHead var1, List<OnlCgformField> var2, List<Map<String, Object>> var3) throws BusinessException;
|
||||
|
||||
void saveOrUpdateSubData(String var1, OnlCgformHead var2, List<OnlCgformField> var3) throws BusinessException;
|
||||
}
|
||||
|
||||
-38
@@ -27,44 +27,6 @@ public class OnlCgformSqlServiceImpl implements IOnlCgformSqlService {
|
||||
@Autowired
|
||||
private IOnlCgformHeadService onlCgformHeadService;
|
||||
|
||||
|
||||
@Override
|
||||
public void saveBatchOnlineTable(OnlCgformHead head, List<OnlCgformField> fieldList, List<Map<String, Object>> dataList) throws BusinessException {
|
||||
|
||||
try(SqlSession var4 = this.sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false)) {
|
||||
ConvertUtil.a(2, dataList, fieldList);
|
||||
OnlCgformFieldMapper var5 = var4.getMapper(OnlCgformFieldMapper.class);
|
||||
short var6 = 1000;
|
||||
int var7;
|
||||
String var8;
|
||||
if (var6 >= dataList.size()) {
|
||||
for(var7 = 0; var7 < dataList.size(); ++var7) {
|
||||
var8 = JSON.toJSONString(dataList.get(var7));
|
||||
this.a(var8, head, fieldList, var5);
|
||||
}
|
||||
} else {
|
||||
for(var7 = 0; var7 < dataList.size(); ++var7) {
|
||||
var8 = JSON.toJSONString(dataList.get(var7));
|
||||
this.a(var8, head, fieldList, var5);
|
||||
if (var7 % var6 == 0) {
|
||||
var4.commit();
|
||||
var4.clearCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var4.commit();
|
||||
} catch (Exception var12) {
|
||||
throw new BusinessException(var12.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveOrUpdateSubData(String subDataJsonStr, OnlCgformHead head, List<OnlCgformField> subFiledList) throws BusinessException {
|
||||
OnlCgformFieldMapper var4 = SpringContextUtils.getBean(OnlCgformFieldMapper.class);
|
||||
this.a(subDataJsonStr, head, subFiledList, var4);
|
||||
}
|
||||
|
||||
private void a(String var1, OnlCgformHead var2, List<OnlCgformField> var3, OnlCgformFieldMapper var4) throws BusinessException {
|
||||
JSONObject var5 = JSON.parseObject(var1);
|
||||
int var6 = this.onlCgformHeadService.executeEnhanceJava("import", "start", var2, var5);
|
||||
|
||||
-551
@@ -1,551 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.PermissionData;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.DictModel;
|
||||
import com.jero.common.system.vo.DynamicDataSourceModel;
|
||||
import com.jero.common.util.BrowserUtils;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportHead;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportItem;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportParam;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportItemService;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportParamService;
|
||||
import com.jero.generater.modules.online.cgreport.service.a.OnlCgreportHeadServiceImpl;
|
||||
import com.jero.generater.modules.online.cgreport.util.SqlUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@RestController("onlCgreportAPI")
|
||||
@RequestMapping({"/online/cgreport/api"})
|
||||
@Slf4j
|
||||
public class OnlCgreportAPI {
|
||||
|
||||
@Autowired
|
||||
private OnlCgreportHeadServiceImpl onlCgreportHeadService;
|
||||
@Autowired
|
||||
private IOnlCgreportItemService onlCgreportItemService;
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Autowired
|
||||
private IOnlCgreportParamService onlCgreportParamService;
|
||||
|
||||
private static final String EN_IS_NULL = "实体不存在";
|
||||
private static final String CGR_HEAD_ID = "cgrhead_id";
|
||||
private static final String IS_SHOW = "is_show";
|
||||
private static final String ORDER_NUM = "order_num";
|
||||
private static final String TITLE = "title";
|
||||
private static final String DATA_INDEX = "dataIndex";
|
||||
private static final String ALIGN = "align";
|
||||
private static final String CENTER = "center";
|
||||
private static final String SORTER = "sorter";
|
||||
private static final String CUSTOM_RENDER = "customRender";
|
||||
private static final String COLUMNS = "columns";
|
||||
private static final String DICT_OPTIONS = "dictOptions";
|
||||
private static final String GET_ALL = "getAll";
|
||||
|
||||
|
||||
|
||||
@GetMapping({"/getColumnsAndData/{code}"})
|
||||
@PermissionData
|
||||
public Result<Map<String, Object>> a(@PathVariable("code") String var1, HttpServletRequest var2) {
|
||||
OnlCgreportHead var3 = this.onlCgreportHeadService.getById(var1);
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
return getMapResult(var1, var2, var3);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Result<Map<String, Object>> getMapResult(@PathVariable("code") String var1, HttpServletRequest var2, OnlCgreportHead var3) {
|
||||
Result<Map<String, Object>> var4 = this.b(var1, var2);
|
||||
if (var4.getCode().equals(200)) {
|
||||
JSONObject var5 = JSON.parseObject(JSON.toJSONString(var4.getResult()));
|
||||
JSONArray var6 = var5.getJSONArray("records");
|
||||
QueryWrapper<OnlCgreportItem> var7 = new QueryWrapper<>();
|
||||
var7.eq(CGR_HEAD_ID, var1).eq(IS_SHOW, 1).orderByAsc(ORDER_NUM);
|
||||
List<OnlCgreportItem> var8 = this.onlCgreportItemService.list(var7);
|
||||
HashMap<String, Object> var9 = new HashMap<>();
|
||||
JSONArray var10 = new JSONArray();
|
||||
JSONArray var11 = new JSONArray();
|
||||
boolean var12 = false;
|
||||
|
||||
for (OnlCgreportItem var14 : var8) {
|
||||
JSONObject var15 = new JSONObject(4);
|
||||
var15.put(TITLE, var14.getFieldTxt());
|
||||
var15.put(DATA_INDEX, var14.getFieldName());
|
||||
var15.put(ALIGN, CENTER);
|
||||
var15.put(SORTER, "true");
|
||||
var15.put("isTotal", var14.getIsTotal());
|
||||
var15.put("groupTitle", var14.getGroupTitle());
|
||||
if (oConvertUtils.isNotEmpty(var14.getGroupTitle())) {
|
||||
var12 = true;
|
||||
}
|
||||
|
||||
String var16;
|
||||
if (StringUtils.isNotBlank(var14.getFieldHref())) {
|
||||
var16 = "fieldHref_" + var14.getFieldName();
|
||||
JSONObject var17 = new JSONObject();
|
||||
var17.put(CUSTOM_RENDER, var16);
|
||||
var15.put("scopedSlots", var17);
|
||||
JSONObject var18 = new JSONObject();
|
||||
var18.put("slotName", var16);
|
||||
var18.put("href", var14.getFieldHref());
|
||||
var10.add(var18);
|
||||
}
|
||||
|
||||
var11.add(var15);
|
||||
var16 = var14.getDictCode();
|
||||
List<DictModel> var20 = this.a(var16, var6, var14.getFieldName());
|
||||
if (var20 != null) {
|
||||
var9.put(var14.getFieldName(), var20);
|
||||
var15.put(CUSTOM_RENDER, var14.getFieldName());
|
||||
}
|
||||
}
|
||||
|
||||
HashMap<String, Object> var19 = new HashMap<>(3);
|
||||
var19.put("data", var4.getResult());
|
||||
var19.put(COLUMNS, var11);
|
||||
var19.put(DICT_OPTIONS, var9);
|
||||
var19.put("fieldHrefSlots", var10);
|
||||
var19.put("cgreportHeadName", var3.getName());
|
||||
var19.put("isGroupTitle", var12);
|
||||
return Result.OK(var19);
|
||||
} else {
|
||||
return var4;
|
||||
}
|
||||
}
|
||||
|
||||
private List<DictModel> a(String var1, JSONArray var2, String var3) {
|
||||
List<DictModel> var4 = null;
|
||||
if (oConvertUtils.isNotEmpty(var1)) {
|
||||
if (var1.trim().toLowerCase().indexOf("select ") == 0 && (var3 == null || !var2.isEmpty())) {
|
||||
var1 = var1.trim();
|
||||
int var5 = var1.lastIndexOf(";");
|
||||
var1 = getString(var1, var5);
|
||||
|
||||
String var6 = "SELECT * FROM (" + var1 + ") temp ";
|
||||
String var12;
|
||||
if (var2 != null) {
|
||||
ArrayList<String> var7 = new ArrayList<>();
|
||||
|
||||
addVar7(var2, var3, var7);
|
||||
|
||||
var12 = "'" + StringUtils.join(var7, "','") + "'";
|
||||
var6 = var6 + "WHERE temp.value IN (" + var12 + ")";
|
||||
}
|
||||
|
||||
List<Map<String,Object>> var11 = this.onlCgreportHeadService.getBaseMapper().executeSelete(var6);
|
||||
if (var11 != null && !var11.isEmpty()) {
|
||||
var12 = JSON.toJSONString(var11);
|
||||
var4 = JSON.parseArray(var12, DictModel.class);
|
||||
}
|
||||
} else {
|
||||
var4 = this.sysBaseAPI.queryDictItemsByCode(var1);
|
||||
}
|
||||
}
|
||||
|
||||
return var4;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String getString(String var1, int var5) {
|
||||
if (var5 == var1.length() - 1) {
|
||||
var1 = var1.substring(0, var5);
|
||||
}
|
||||
return var1;
|
||||
}
|
||||
|
||||
private void addVar7(JSONArray var2, String var3, ArrayList<String> var7) {
|
||||
for(int var8 = 0; var8 < var2.size(); ++var8) {
|
||||
JSONObject var9 = var2.getJSONObject(var8);
|
||||
String var10 = var9.getString(var3);
|
||||
if (StringUtils.isNotBlank(var10)) {
|
||||
var7.add(var10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
@Deprecated
|
||||
@GetMapping({"/getColumns/{code}"})
|
||||
public Result<Map<String,Object>> a(@PathVariable("code") String var1) {
|
||||
OnlCgreportHead var2 = this.onlCgreportHeadService.getById(var1);
|
||||
if (var2 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
QueryWrapper<OnlCgreportItem> var3 = new QueryWrapper<>();
|
||||
var3.eq(CGR_HEAD_ID, var1);
|
||||
var3.eq(IS_SHOW, 1);
|
||||
var3.orderByAsc(ORDER_NUM);
|
||||
List<OnlCgreportItem> var4 = this.onlCgreportItemService.list(var3);
|
||||
ArrayList<Map<String,Object>> var5 = new ArrayList<>();
|
||||
HashMap<String,Object> var6 = new HashMap<>();
|
||||
|
||||
for (OnlCgreportItem var8 : var4) {
|
||||
HashMap<String,Object> var9 = new HashMap<>(3);
|
||||
var9.put(TITLE, var8.getFieldTxt());
|
||||
var9.put(DATA_INDEX, var8.getFieldName());
|
||||
var9.put(ALIGN, CENTER);
|
||||
var9.put(SORTER, "true");
|
||||
var5.add(var9);
|
||||
String var10 = var8.getDictCode();
|
||||
if (oConvertUtils.isNotEmpty(var10)) {
|
||||
List<DictModel> var11 = getDictModels(var10);
|
||||
|
||||
if (var11 != null) {
|
||||
var6.put(var8.getFieldName(), var11);
|
||||
var9.put(CUSTOM_RENDER, var8.getFieldName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
HashMap<String,Object> var14 = new HashMap<>(1);
|
||||
var14.put(COLUMNS, var5);
|
||||
var14.put(DICT_OPTIONS, var6);
|
||||
var14.put("cgreportHeadName", var2.getName());
|
||||
return Result.OK(var14);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private List<DictModel> getDictModels(String var10) {
|
||||
List<DictModel> var11 = null;
|
||||
if (var10.toLowerCase().indexOf("select ") == 0) {
|
||||
List<Map<String,Object>> var12 = this.onlCgreportHeadService.getBaseMapper().executeSelete(var10);
|
||||
if (var12 != null && !var12.isEmpty()) {
|
||||
String var13 = JSON.toJSONString(var12);
|
||||
var11 = JSON.parseArray(var13, DictModel.class);
|
||||
}
|
||||
} else {
|
||||
var11 = this.sysBaseAPI.queryDictItemsByCode(var10);
|
||||
}
|
||||
return var11;
|
||||
}
|
||||
|
||||
@GetMapping({"/getData/{code}"})
|
||||
@PermissionData
|
||||
public Result<Map<String, Object>> b(@PathVariable("code") String var1, HttpServletRequest var2) {
|
||||
OnlCgreportHead var3 = this.onlCgreportHeadService.getById(var1);
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
String var4 = var3.getCgrSql().trim();
|
||||
String var5 = var3.getDbSource();
|
||||
|
||||
try {
|
||||
Map<String, Object> var6 = SqlUtil.a(var2);
|
||||
var6.put(GET_ALL, var2.getAttribute(GET_ALL));
|
||||
Map<String, Object> var7;
|
||||
if (StringUtils.isNotBlank(var5)) {
|
||||
log.debug("Online报表: 走了多数据源逻辑");
|
||||
var7 = this.onlCgreportHeadService.executeSelectSqlDynamic(var5, var4, var6, var3.getId());
|
||||
} else {
|
||||
log.debug("Online报表: 走了稳定逻辑");
|
||||
var7 = this.onlCgreportHeadService.executeSelectSql(var4, var3.getId(), var6);
|
||||
}
|
||||
|
||||
return Result.OK(var7);
|
||||
} catch (Exception var8) {
|
||||
log.error(var8.getMessage(), var8);
|
||||
return Result.error("SQL执行失败:" + var8.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/getQueryInfo/{code}"})
|
||||
public Result<List<Map<String, String>>> b(@PathVariable("code") String var1) {
|
||||
try {
|
||||
List<Map<String, String>> var2 = this.onlCgreportItemService.getAutoListQueryInfo(var1);
|
||||
return Result.OK(var2);
|
||||
} catch (Exception var3) {
|
||||
log.info(var3.getMessage(), var3);
|
||||
return Result.error("查询失败");
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/getParamsInfo/{code}"})
|
||||
public Result<List<OnlCgreportParam>> c(@PathVariable("code") String var1) {
|
||||
try {
|
||||
LambdaQueryWrapper<OnlCgreportParam> var2 = new LambdaQueryWrapper<>();
|
||||
var2.eq(OnlCgreportParam::getCgrheadId, var1);
|
||||
List<OnlCgreportParam> var3 = this.onlCgreportParamService.list(var2);
|
||||
return Result.OK(var3);
|
||||
} catch (Exception var4) {
|
||||
log.info(var4.getMessage(), var4);
|
||||
return Result.error("查询失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PermissionData
|
||||
@RequestMapping({"/exportXls/{reportId}"})
|
||||
public void a(@PathVariable("reportId") String var1, HttpServletRequest var2, HttpServletResponse var3) {
|
||||
String var4 = "报表";
|
||||
String var5 = "导出信息";
|
||||
if (!oConvertUtils.isNotEmpty(var1)) {
|
||||
throw new JeroBootException("参数错误");
|
||||
} else {
|
||||
getVar6(var1, var2, var3, var4, var5);
|
||||
}
|
||||
}
|
||||
|
||||
private void getVar6(@PathVariable("reportId") String var1, HttpServletRequest var2, HttpServletResponse var3, String var4, String var5) {
|
||||
Map<String, Object> var6 = null;
|
||||
|
||||
try {
|
||||
var6 = this.onlCgreportHeadService.queryCgReportConfig(var1);
|
||||
} catch (Exception var35) {
|
||||
throw new JeroBootException("动态报表配置不存在!");
|
||||
}
|
||||
|
||||
List<Map<String, Object>> var7 = (List)var6.get("items");
|
||||
var2.setAttribute(GET_ALL, true);
|
||||
Result<Map<String, Object>> var8 = this.b(var1, var2);
|
||||
List<Map<String, Object>> var9 = null;
|
||||
if (var8.getCode().equals(200)) {
|
||||
Map<String, Object> var10 = var8.getResult();
|
||||
var9 = (List)var10.get("records");
|
||||
}
|
||||
|
||||
ArrayList<String> var36 = new ArrayList<>();
|
||||
HashMap<String, Object> var11 = new HashMap<>();
|
||||
HashMap<String, Object> var12 = new HashMap<>();
|
||||
ArrayList<ExcelExportEntity> var13 = new ArrayList<>();
|
||||
|
||||
String var15;
|
||||
for(int var14 = 0; var14 < var7.size(); ++var14) {
|
||||
if ("1".equals(oConvertUtils.getString((var7.get(var14)).get(IS_SHOW)))) {
|
||||
var15 = (var7.get(var14)).get("field_name").toString();
|
||||
ExcelExportEntity var16 = new ExcelExportEntity((var7.get(var14)).get("field_txt").toString(), var15, 15);
|
||||
Object var17 = (var7.get(var14)).get("dict_code");
|
||||
JSONArray var18 = JSON.parseArray(JSON.toJSONString(var9));
|
||||
List<DictModel> var19 = this.a(oConvertUtils.getString(var17), var18, var15);
|
||||
getVar16(var16, var19);
|
||||
|
||||
Object var50 = (var7.get(var14)).get("replace_val");
|
||||
getVar16(var16, var50);
|
||||
|
||||
if (oConvertUtils.isNotEmpty((var7.get(var14)).get("group_title"))) {
|
||||
String var52 = (var7.get(var14)).get("group_title").toString();
|
||||
Object var53 = new ArrayList<>();
|
||||
if (var12.containsKey(var52)) {
|
||||
var53 = var12.get(var52);
|
||||
((List)var53).add(var15);
|
||||
} else {
|
||||
ExcelExportEntity var23 = new ExcelExportEntity(var52, var52, true);
|
||||
var13.add(var23);
|
||||
((List)var53).add(var15);
|
||||
}
|
||||
|
||||
var12.put(var52, var53);
|
||||
var16.setColspan(true);
|
||||
}
|
||||
|
||||
var13.add(var16);
|
||||
}
|
||||
|
||||
getVar36(var7, var36, var14);
|
||||
}
|
||||
|
||||
Iterator<Entry<String, Object>> var37 = var12.entrySet().iterator();
|
||||
|
||||
String var42;
|
||||
while(var37.hasNext()) {
|
||||
Entry<String, Object> var39 = var37.next();
|
||||
var42 = var39.getKey();
|
||||
List<String> var43 = (List)var39.getValue();
|
||||
|
||||
getVar48(var13, var42, var43);
|
||||
}
|
||||
|
||||
if (!var36.isEmpty()) {
|
||||
getVar38(var9, var36, var11);
|
||||
var9.add(var11);
|
||||
}
|
||||
|
||||
var3.setContentType("application/vnd.ms-excel");
|
||||
getVar41(var2, var3, var4, var5, var9, var13);
|
||||
}
|
||||
|
||||
private void getVar36(List<Map<String, Object>> var7, ArrayList<String> var36, int var14) {
|
||||
if ("1".equals(oConvertUtils.getString((var7.get(var14)).get("is_total")))) {
|
||||
var36.add((var7.get(var14)).get("field_name").toString());
|
||||
}
|
||||
}
|
||||
|
||||
private void getVar16(ExcelExportEntity var16, Object var50) {
|
||||
if (oConvertUtils.isNotEmpty(var50)) {
|
||||
var16.setReplace(var50.toString().split(","));
|
||||
}
|
||||
}
|
||||
|
||||
private void getVar38(List<Map<String, Object>> var9, ArrayList<String> var36, HashMap<String, Object> var11) {
|
||||
String var42;
|
||||
BigDecimal var38 = BigDecimal.valueOf(0.0D);
|
||||
|
||||
for (String o : var36) {
|
||||
var42 = o;
|
||||
var38 = getBigDecimal(var9, var42, var38);
|
||||
var11.put(var42, var38);
|
||||
}
|
||||
}
|
||||
|
||||
private void getVar48(ArrayList<ExcelExportEntity> var13, String var42, List<String> var43) {
|
||||
for (ExcelExportEntity o : var13) {
|
||||
ExcelExportEntity var48 = o;
|
||||
if (var42.equals(var48.getName()) && var48.isColspan()) {
|
||||
var48.setSubColumnList(var43);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void getVar16(ExcelExportEntity var16, List<DictModel> var19) {
|
||||
if (var19 != null && !var19.isEmpty()) {
|
||||
ArrayList<String> var20 = new ArrayList<>();
|
||||
|
||||
for (DictModel o : var19) {
|
||||
var20.add(o.getText() + "_" + o.getValue());
|
||||
}
|
||||
|
||||
var16.setReplace(var20.toArray(new String[var20.size()]));
|
||||
}
|
||||
}
|
||||
|
||||
private BigDecimal getBigDecimal(List<Map<String, Object>> var9, String var42, BigDecimal var38) {
|
||||
for (Map<String, Object> value : var9) {
|
||||
Map<String, Object> var47 = value;
|
||||
String var49 = var47.get(var42).toString();
|
||||
if (var49.matches("\\d+(.\\d+)?")) {
|
||||
BigDecimal var51 = new BigDecimal(var49);
|
||||
var38 = var38.add(var51);
|
||||
}
|
||||
}
|
||||
return var38;
|
||||
}
|
||||
|
||||
private void getVar41(HttpServletRequest var2, HttpServletResponse var3, String var4, String var5, List<Map<String, Object>> var9, ArrayList<ExcelExportEntity> var13) {
|
||||
String var15;
|
||||
String var42;
|
||||
ServletOutputStream var41 = null;
|
||||
|
||||
try {
|
||||
var15 = BrowserUtils.checkBrowse(var2);
|
||||
if ("MSIE".equalsIgnoreCase(var15.substring(0, 4))) {
|
||||
var3.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(var4, "UTF-8") + ".xls");
|
||||
} else {
|
||||
var42 = new String(var4.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
|
||||
var3.setHeader("content-disposition", "attachment;filename=" + var42 + ".xls");
|
||||
}
|
||||
|
||||
Workbook var44 = ExcelExportUtil.exportExcel(new ExportParams(null, var5), var13, var9);
|
||||
var41 = var3.getOutputStream();
|
||||
var44.write(var41);
|
||||
} catch (Exception var33) {
|
||||
log.error("异常",var33);
|
||||
} finally {
|
||||
try {
|
||||
if(var41 != null){var41.flush();var41.close();}
|
||||
} catch (Exception var32) {
|
||||
log.error("异常",var32);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/getRpColumns/{code}"})
|
||||
public Result<Map<String,Object>> d(@PathVariable("code") String var1) {
|
||||
LambdaQueryWrapper<OnlCgreportHead> var2 = new LambdaQueryWrapper<>();
|
||||
var2.eq(OnlCgreportHead::getCode, var1);
|
||||
OnlCgreportHead var3 = this.onlCgreportHeadService.getOne(var2);
|
||||
if (var3 == null) {
|
||||
return Result.error(EN_IS_NULL);
|
||||
} else {
|
||||
QueryWrapper<OnlCgreportItem> var4 = new QueryWrapper<>();
|
||||
var4.eq(CGR_HEAD_ID, var3.getId());
|
||||
var4.eq(IS_SHOW, 1);
|
||||
var4.orderByAsc(ORDER_NUM);
|
||||
List<OnlCgreportItem> var5 = this.onlCgreportItemService.list(var4);
|
||||
ArrayList<Map<String,Object>> var6 = new ArrayList<>();
|
||||
HashMap<String,Object> var7 = new HashMap<>();
|
||||
|
||||
HashMap<String,Object> var10;
|
||||
for(Iterator<OnlCgreportItem> var8 = var5.iterator(); var8.hasNext(); var6.add(var10)) {
|
||||
OnlCgreportItem var9 = var8.next();
|
||||
var10 = new HashMap<>(3);
|
||||
var10.put(TITLE, var9.getFieldTxt());
|
||||
var10.put(DATA_INDEX, var9.getFieldName());
|
||||
var10.put(ALIGN, CENTER);
|
||||
String var11 = var9.getFieldType();
|
||||
if ("Integer".equals(var11) || "Date".equals(var11) || "Long".equals(var11)) {
|
||||
var10.put(SORTER, "true");
|
||||
}
|
||||
|
||||
String var12 = var9.getDictCode();
|
||||
if (oConvertUtils.isNotEmpty(var12)) {
|
||||
List<DictModel> var13 = this.a(var9.getDictCode(), (JSONArray)null, (String)null);
|
||||
var7.put(var9.getFieldName(), var13);
|
||||
var10.put(CUSTOM_RENDER, var9.getFieldName());
|
||||
}
|
||||
}
|
||||
|
||||
HashMap<String,Object> var14 = new HashMap<>(1);
|
||||
var14.put(COLUMNS, var6);
|
||||
var14.put(DICT_OPTIONS, var7);
|
||||
var14.put("cgRpConfigId", var3.getId());
|
||||
var14.put("cgRpConfigName", var3.getName());
|
||||
return Result.OK(var14);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/testConnection"})
|
||||
public Result<String> a(@RequestBody DynamicDataSourceModel var1) {
|
||||
Result<String> var4;
|
||||
try (Connection var2 = DriverManager.getConnection(var1.getDbUrl(), var1.getDbUsername(), var1.getDbPassword())){
|
||||
Class.forName(var1.getDbDriver());
|
||||
Result<String> var3;
|
||||
if (var2 == null) {
|
||||
var3 = Result.OK("数据库连接失败:错误未知");
|
||||
return var3;
|
||||
}
|
||||
|
||||
var3 = Result.OK("数据库连接成功");
|
||||
return var3;
|
||||
} catch (ClassNotFoundException var17) {
|
||||
log.error(var17.toString());
|
||||
var4 = Result.error("数据库连接失败:驱动类不存在");
|
||||
} catch (Exception var18) {
|
||||
log.error(var18.toString());
|
||||
var4 = Result.error("数据库连接失败:" + var18.getMessage());
|
||||
return var4;
|
||||
}
|
||||
return var4;
|
||||
}
|
||||
}
|
||||
-195
@@ -1,195 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.controller;
|
||||
|
||||
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.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.DynamicDataSourceModel;
|
||||
import com.jero.common.util.SqlInjectionUtil;
|
||||
import com.jero.generater.modules.online.cgform.util.CgformUtil;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportHead;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportItem;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportParam;
|
||||
import com.jero.generater.modules.online.cgreport.model.OnlCgreportModel;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportHeadService;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportItemService;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportParamService;
|
||||
import com.jero.modules.base.service.BaseCommonService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.*;
|
||||
|
||||
@RestController("onlCgreportHeadController")
|
||||
@RequestMapping({"/online/cgreport/head"})
|
||||
@Slf4j
|
||||
public class OnlCgreportHeadController {
|
||||
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Autowired
|
||||
private IOnlCgreportHeadService onlCgreportHeadService;
|
||||
@Autowired
|
||||
private IOnlCgreportParamService onlCgreportParamService;
|
||||
@Autowired
|
||||
private IOnlCgreportItemService onlCgreportItemService;
|
||||
@Autowired
|
||||
private BaseCommonService baseCommonService;
|
||||
|
||||
@GetMapping({"/parseSql"})
|
||||
public Result<Map<String, Object>> a(@RequestParam(name = "sql") String var1, @RequestParam(name = "dbKey",required = false) String var2) {
|
||||
if (StringUtils.isNotBlank(var2)) {
|
||||
DynamicDataSourceModel var3 = this.sysBaseAPI.getDynamicDbSourceByCode(var2);
|
||||
if (var3 == null) {
|
||||
return Result.error("数据源不存在");
|
||||
}
|
||||
}
|
||||
|
||||
HashMap<String, Object> var13 = new HashMap<>();
|
||||
ArrayList<OnlCgreportItem> var4 = new ArrayList<>();
|
||||
ArrayList<OnlCgreportParam> var5 = new ArrayList<>();
|
||||
List<String> var6;
|
||||
List<String> var7;
|
||||
|
||||
try {
|
||||
log.info("Online报表,sql解析:" + var1);
|
||||
this.baseCommonService.addLog("Online报表,sql解析:" + var1, 2, 2);
|
||||
SqlInjectionUtil.specialFilterContentForOnlineReport(var1);
|
||||
var6 = this.onlCgreportHeadService.getSqlFields(var1, var2);
|
||||
var7 = this.onlCgreportHeadService.getSqlParams(var1);
|
||||
int var8 = 1;
|
||||
|
||||
String var14;
|
||||
Iterator<String> var15;
|
||||
for(var15 = var6.iterator(); var15.hasNext(); ++var8) {
|
||||
var14 = var15.next();
|
||||
OnlCgreportItem var11 = new OnlCgreportItem();
|
||||
var11.setFieldName(var14.toLowerCase());
|
||||
var11.setFieldTxt(var14);
|
||||
var11.setIsShow(1);
|
||||
var11.setOrderNum(var8);
|
||||
var11.setId(CgformUtil.a());
|
||||
var11.setFieldType("String");
|
||||
var4.add(var11);
|
||||
}
|
||||
|
||||
var15 = var7.iterator();
|
||||
|
||||
while(var15.hasNext()) {
|
||||
var14 = var15.next();
|
||||
OnlCgreportParam var16 = new OnlCgreportParam();
|
||||
var16.setParamName(var14);
|
||||
var16.setParamTxt(var14);
|
||||
var5.add(var16);
|
||||
}
|
||||
|
||||
var13.put("fields", var4);
|
||||
var13.put("params", var5);
|
||||
return Result.OK(var13);
|
||||
} catch (Exception var12) {
|
||||
log.error(var12.getMessage(), var12);
|
||||
String var9 = "解析失败,";
|
||||
int var10 = var12.getMessage().indexOf("Connection refused: connect");
|
||||
if (var10 != -1) {
|
||||
var9 = var9 + "数据源连接失败.";
|
||||
} else if (var12.getMessage().contains("值可能存在SQL注入风险")) {
|
||||
var9 = var9 + "SQL可能存在SQL注入风险.";
|
||||
} else if (var12.getMessage().contains("该报表sql没有数据")) {
|
||||
var9 = var9 + "报表sql查询数据为空,无法解析字段.";
|
||||
} else if (var12.getMessage().contains("SqlServer不支持SQL内排序")) {
|
||||
var9 = var9 + "SqlServer不支持SQL内排序.";
|
||||
} else {
|
||||
var9 = var9 + "SQL语法错误.";
|
||||
}
|
||||
|
||||
return Result.error(var9);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping({"/list"})
|
||||
public Result<IPage<OnlCgreportHead>> a(OnlCgreportHead var1, @RequestParam(name = "pageNo",defaultValue = "1") Integer var2, @RequestParam(name = "pageSize",defaultValue = "10") Integer var3, HttpServletRequest var4) {
|
||||
Result<IPage<OnlCgreportHead>> var5 = new Result<>();
|
||||
QueryWrapper<OnlCgreportHead> var6 = QueryGenerator.initQueryWrapper(var1, var4.getParameterMap());
|
||||
Page<OnlCgreportHead> var7 = new Page<>(var2, var3);
|
||||
IPage<OnlCgreportHead> var8 = this.onlCgreportHeadService.page(var7, var6);
|
||||
var5.setSuccess(true);
|
||||
var5.setResult(var8);
|
||||
return var5;
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<String> add(@RequestBody OnlCgreportModel var1) {
|
||||
try {
|
||||
String var3 = CgformUtil.a();
|
||||
OnlCgreportHead var4 = var1.getHead();
|
||||
List<OnlCgreportParam> var5 = var1.getParams();
|
||||
List<OnlCgreportItem> var6 = var1.getItems();
|
||||
var4.setId(var3);
|
||||
Iterator<OnlCgreportParam> var7 = var5.iterator();
|
||||
Iterator<OnlCgreportItem> var9 = var6.iterator();
|
||||
|
||||
while(var7.hasNext()) {
|
||||
OnlCgreportParam var8 = var7.next();
|
||||
var8.setId(null);
|
||||
var8.setCgrheadId(var3);
|
||||
}
|
||||
|
||||
while(var9.hasNext()) {
|
||||
OnlCgreportItem var10 = var9.next();
|
||||
var10.setId(null);
|
||||
var10.setFieldName(var10.getFieldName().trim().toLowerCase());
|
||||
var10.setCgrheadId(var3);
|
||||
}
|
||||
|
||||
this.onlCgreportHeadService.save(var4);
|
||||
this.onlCgreportParamService.saveBatch(var5);
|
||||
this.onlCgreportItemService.saveBatch(var6);
|
||||
return Result.OK("操作成功!");
|
||||
} catch (Exception var9) {
|
||||
log.error(var9.getMessage(), var9);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/editAll"})
|
||||
public Result<String> editAll(@RequestBody OnlCgreportModel cgreportModel) {
|
||||
try {
|
||||
return this.onlCgreportHeadService.editAll(cgreportModel);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.error("操作失败");
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<String> delete(@RequestBody Map<String,String> map) {
|
||||
String id = map.get("id");
|
||||
if(StringUtils.isBlank(id)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
return this.onlCgreportHeadService.delete(id);
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<String> deleteBatch(@RequestBody Map<String,String> map) {
|
||||
String ids = map.get("ids");
|
||||
if(StringUtils.isBlank(ids)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
return this.onlCgreportHeadService.bathDelete(ids.split(","));
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<OnlCgreportHead> queryById(@RequestParam(name = "id",required = true) String id) {
|
||||
Result<OnlCgreportHead> result = new Result<>();
|
||||
OnlCgreportHead cgreportHead = this.onlCgreportHeadService.getById(id);
|
||||
result.setResult(cgreportHead);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
-92
@@ -1,92 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.controller;
|
||||
|
||||
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.system.query.QueryGenerator;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportItem;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportItemService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController("onlCgreportItemController")
|
||||
@RequestMapping({"/online/cgreport/item"})
|
||||
@Slf4j
|
||||
public class OnlCgreportItemController {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgreportItemService onlCgreportItemService;
|
||||
|
||||
@GetMapping({"/listByHeadId"})
|
||||
public Result<List<OnlCgreportItem>> a(@RequestParam("headId") String var1) {
|
||||
QueryWrapper<OnlCgreportItem> var2 = new QueryWrapper<>();
|
||||
var2.eq("cgrhead_id", var1);
|
||||
var2.orderByAsc("order_num");
|
||||
List<OnlCgreportItem> var3 = this.onlCgreportItemService.list(var2);
|
||||
Result<List<OnlCgreportItem>> var4 = new Result<>();
|
||||
var4.setSuccess(true);
|
||||
var4.setResult(var3);
|
||||
return var4;
|
||||
}
|
||||
|
||||
@GetMapping({"/list"})
|
||||
public Result<IPage<OnlCgreportItem>> a(OnlCgreportItem var1, @RequestParam(name = "pageNo",defaultValue = "1") Integer var2, @RequestParam(name = "pageSize",defaultValue = "10") Integer var3, HttpServletRequest var4) {
|
||||
Result<IPage<OnlCgreportItem>> var5 = new Result<>();
|
||||
QueryWrapper<OnlCgreportItem> var6 = QueryGenerator.initQueryWrapper(var1, var4.getParameterMap());
|
||||
Page<OnlCgreportItem> var7 = new Page<>(var2, var3);
|
||||
IPage<OnlCgreportItem> var8 = this.onlCgreportItemService.page(var7, var6);
|
||||
var5.setSuccess(true);
|
||||
var5.setResult(var8);
|
||||
return var5;
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<String> a(@RequestBody OnlCgreportItem var1) {
|
||||
this.onlCgreportItemService.save(var1);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/edit"})
|
||||
public Result<String> b(@RequestBody OnlCgreportItem var1) {
|
||||
this.onlCgreportItemService.updateById(var1);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<String> b(@RequestBody Map<String,String> map) {
|
||||
String var1 = map.get("id");
|
||||
if(StringUtils.isEmpty(var1)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
this.onlCgreportItemService.removeById(var1);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<String> c(@RequestBody Map<String,String> map) {
|
||||
String var1 = map.get("ids");
|
||||
if(StringUtils.isBlank(var1)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
this.onlCgreportItemService.removeByIds(Arrays.asList(var1.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<OnlCgreportItem> d(@RequestParam(name = "id",required = true) String var1) {
|
||||
Result<OnlCgreportItem> var2 = new Result<>();
|
||||
OnlCgreportItem var3 = this.onlCgreportItemService.getById(var1);
|
||||
var2.setResult(var3);
|
||||
var2.setSuccess(true);
|
||||
return var2;
|
||||
}
|
||||
}
|
||||
-92
@@ -1,92 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.controller;
|
||||
|
||||
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.system.query.QueryGenerator;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportParam;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportParamService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController("onlCgreportParamController")
|
||||
@RequestMapping({"/online/cgreport/param"})
|
||||
@Slf4j
|
||||
public class OnlCgreportParamController {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgreportParamService onlCgreportParamService;
|
||||
|
||||
|
||||
@GetMapping({"/listByHeadId"})
|
||||
public Result<List<OnlCgreportParam>> a(@RequestParam("headId") String var1) {
|
||||
QueryWrapper<OnlCgreportParam> var2 = new QueryWrapper<>();
|
||||
var2.eq("cgrhead_id", var1);
|
||||
var2.orderByAsc("order_num");
|
||||
List<OnlCgreportParam> var3 = this.onlCgreportParamService.list(var2);
|
||||
Result<List<OnlCgreportParam>> var4 = new Result<>();
|
||||
var4.setSuccess(true);
|
||||
var4.setResult(var3);
|
||||
return var4;
|
||||
}
|
||||
|
||||
@GetMapping({"/list"})
|
||||
public Result<IPage<OnlCgreportParam>> a(OnlCgreportParam var1, @RequestParam(name = "pageNo", defaultValue = "1") Integer var2, @RequestParam(name = "pageSize", defaultValue = "10") Integer var3, HttpServletRequest var4) {
|
||||
Result<IPage<OnlCgreportParam>> var5 = new Result<>();
|
||||
QueryWrapper<OnlCgreportParam> var6 = QueryGenerator.initQueryWrapper(var1, var4.getParameterMap());
|
||||
Page<OnlCgreportParam> var7 = new Page<>(var2, var3);
|
||||
IPage<OnlCgreportParam> var8 = this.onlCgreportParamService.page(var7, var6);
|
||||
var5.setSuccess(true);
|
||||
var5.setResult(var8);
|
||||
return var5;
|
||||
}
|
||||
|
||||
@PostMapping({"/add"})
|
||||
public Result<String> a(@RequestBody OnlCgreportParam var1) {
|
||||
this.onlCgreportParamService.save(var1);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/edit"})
|
||||
public Result<String> b(@RequestBody OnlCgreportParam var1) {
|
||||
this.onlCgreportParamService.updateById(var1);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/delete"})
|
||||
public Result<Object> b(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("id");
|
||||
if(StringUtils.isBlank(var1)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
this.onlCgreportParamService.removeById(var1);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
@PostMapping({"/deleteBatch"})
|
||||
public Result<Object> deleteBatch(@RequestBody Map<String, String> map) {
|
||||
String var1 = map.get("ids");
|
||||
if(StringUtils.isBlank(var1)){
|
||||
return Result.error("参数不识别!");
|
||||
}
|
||||
this.onlCgreportParamService.removeByIds(Arrays.asList(var1.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
@GetMapping({"/queryById"})
|
||||
public Result<OnlCgreportParam> d(@RequestParam(name = "id", required = true) String var1) {
|
||||
Result<OnlCgreportParam> var2 = new Result<>();
|
||||
OnlCgreportParam var3 = this.onlCgreportParamService.getById(var1);
|
||||
var2.setResult(var3);
|
||||
return var2;
|
||||
}
|
||||
}
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportHead;
|
||||
import com.jero.generater.modules.online.cgreport.model.OnlCgreportModel;
|
||||
|
||||
public interface IOnlCgreportHeadService extends IService<OnlCgreportHead> {
|
||||
Result<String> editAll(OnlCgreportModel var1);
|
||||
|
||||
Result<String> delete(String var1);
|
||||
|
||||
Result<String> bathDelete(String[] var1);
|
||||
|
||||
Map<String, Object> executeSelectSql(String var1, String var2, Map<String, Object> var3) throws SQLException;
|
||||
|
||||
Map<String, Object> executeSelectSqlDynamic(String var1, String var2, Map<String, Object> var3, String var4);
|
||||
|
||||
List<String> getSqlFields(String var1, String var2) throws SQLException;
|
||||
|
||||
List<String> getSqlParams(String var1);
|
||||
|
||||
Map<String, Object> queryCgReportConfig(String var1);
|
||||
}
|
||||
-411
@@ -1,411 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.service.a;
|
||||
|
||||
import cn.hutool.core.util.ReUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.DynamicDataSourceModel;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.common.util.dynamic.db.DataSourceCachePool;
|
||||
import com.jero.common.util.dynamic.db.DynamicDBUtil;
|
||||
import com.jero.common.util.dynamic.db.SqlUtils;
|
||||
import com.jero.generater.modules.online.cgform.enums.DataBaseEnum;
|
||||
import com.jero.generater.modules.online.cgform.util.CgformUtil;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportHead;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportItem;
|
||||
import com.jero.generater.modules.online.cgreport.entity.OnlCgreportParam;
|
||||
import com.jero.generater.modules.online.cgreport.mapper.OnlCgreportHeadMapper;
|
||||
import com.jero.generater.modules.online.cgreport.model.OnlCgreportModel;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportHeadService;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportItemService;
|
||||
import com.jero.generater.modules.online.cgreport.service.IOnlCgreportParamService;
|
||||
import com.jero.generater.modules.online.cgreport.util.CgReportQueryParamUtil;
|
||||
import com.jero.generater.modules.online.cgreport.util.SqlUtil;
|
||||
import com.jero.generater.modules.online.config.util.DbTableUtil;
|
||||
import com.jero.generater.modules.online.config.exception.DBException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service("onlCgreportHeadServiceImpl")
|
||||
@Slf4j
|
||||
public class OnlCgreportHeadServiceImpl extends ServiceImpl<OnlCgreportHeadMapper, OnlCgreportHead> implements IOnlCgreportHeadService {
|
||||
|
||||
@Autowired
|
||||
private IOnlCgreportParamService onlCgreportParamService;
|
||||
@Autowired
|
||||
private IOnlCgreportItemService onlCgreportItemService;
|
||||
@Autowired
|
||||
private OnlCgreportHeadMapper mapper;
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
private static final String ORDER_S_BY = " order\\s+by ";
|
||||
private static final String SQL_SERVER_NOT_ORDER = "SqlServer不支持SQL内排序!";
|
||||
private static final String COLUMN = "column";
|
||||
private static final String ORDER = "order";
|
||||
private static final String TOTAL = "total";
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> executeSelectSql(String sql, String onlCgreportHeadId, Map<String, Object> params) throws SQLException {
|
||||
String var4 = null;
|
||||
|
||||
try {
|
||||
var4 = DbTableUtil.getDatabaseType();
|
||||
} catch (DBException var19) {
|
||||
var19.printStackTrace();
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<OnlCgreportParam> var5 = new LambdaQueryWrapper<>();
|
||||
var5.eq(OnlCgreportParam::getCgrheadId, onlCgreportHeadId);
|
||||
List<OnlCgreportParam> var6 = this.onlCgreportParamService.list(var5);
|
||||
if (var6 != null && !var6.isEmpty()) {
|
||||
|
||||
for (OnlCgreportParam var8 : var6) {
|
||||
Object var9 = params.get("self_" + var8.getParamName());
|
||||
String var10 = "";
|
||||
var10 = getString(var8, var9, var10);
|
||||
|
||||
String var11 = "${" + var8.getParamName() + "}";
|
||||
if (sql.contains(var11)) {
|
||||
if (var10 != null && var10.startsWith("'") && var10.endsWith("'")) {
|
||||
var10 = var10.substring(1, var10.length() - 1);
|
||||
}
|
||||
|
||||
sql = sql.replace(var11, var10);
|
||||
} else if (oConvertUtils.isNotEmpty(var10)) {
|
||||
params.put("popup_param_pre__" + var8.getParamName(), var10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return getStringObjectMap(sql, onlCgreportHeadId, params, var4);
|
||||
}
|
||||
|
||||
private String getString(OnlCgreportParam var8, Object var9, String var10) {
|
||||
if (var9 != null) {
|
||||
var10 = var9.toString();
|
||||
} else if (oConvertUtils.isNotEmpty(var8.getParamValue())) {
|
||||
var10 = var8.getParamValue();
|
||||
}
|
||||
return var10;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Map<String, Object> getStringObjectMap(String sql, String onlCgreportHeadId, Map<String, Object> params, String var4) {
|
||||
HashMap<String, Object> var20 = new HashMap<>();
|
||||
int var21 = oConvertUtils.getInt(params.get("pageSize"), 10);
|
||||
int var22 = oConvertUtils.getInt(params.get("pageNo"), 1);
|
||||
Page<Map<String, Object>> var24 = new Page<>(var22, var21);
|
||||
LambdaQueryWrapper<OnlCgreportItem> var23 = new LambdaQueryWrapper<>();
|
||||
var23.eq(OnlCgreportItem::getCgrheadId, onlCgreportHeadId);
|
||||
var23.eq(OnlCgreportItem::getIsSearch, 1);
|
||||
List<OnlCgreportItem> var12 = this.onlCgreportItemService.list(var23);
|
||||
String var13 = "jero_rp_temp.";
|
||||
String var14 = CgReportQueryParamUtil.a(var12, params, var13, null);
|
||||
if (ReUtil.contains(ORDER_S_BY, sql.toLowerCase()) && "SQLSERVER".equalsIgnoreCase(var4)) {
|
||||
throw new JeroBootException(SQL_SERVER_NOT_ORDER);
|
||||
} else {
|
||||
String var15 = "select * from (" + sql + ") jero_rp_temp where 1=1 " + var14;
|
||||
var15 = SqlUtil.b(var15);
|
||||
Object var16 = params.get(COLUMN);
|
||||
if (var16 != null) {
|
||||
var15 = var15 + " order by jero_rp_temp." + var16.toString() + " " + params.get(ORDER).toString();
|
||||
}
|
||||
|
||||
log.info("报表查询sql=>\r\n" + var15);
|
||||
Object var17;
|
||||
if (Boolean.TRUE.equals(Boolean.valueOf(String.valueOf(params.get("getAll"))))) {
|
||||
List<Map<String, Object>> var18 = this.mapper.executeSelect(var15);
|
||||
var17 = new Page<>();
|
||||
((IPage)var17).setRecords(var18);
|
||||
((IPage)var17).setTotal(var18.size());
|
||||
} else {
|
||||
var17 = this.mapper.selectPageBySql(var24, var15);
|
||||
}
|
||||
|
||||
var20.put(TOTAL, ((IPage)var17).getTotal());
|
||||
var20.put("records", CgformUtil.d(((IPage)var17).getRecords()));
|
||||
return var20;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> executeSelectSqlDynamic(String dbKey, String sql, Map<String, Object> params, String onlCgreportHeadId) {
|
||||
DynamicDataSourceModel var5 = DataSourceCachePool.getCacheDynamicDataSourceModel(dbKey);
|
||||
int var8 = oConvertUtils.getInt(params.get("pageNo"), 1);
|
||||
int var9 = oConvertUtils.getInt(params.get("pageSize"), 10);
|
||||
log.info("【Online多数据源逻辑】报表查询参数params: " + JSON.toJSONString(params));
|
||||
LambdaQueryWrapper<OnlCgreportParam> var10 = new LambdaQueryWrapper<>();
|
||||
var10.eq(OnlCgreportParam::getCgrheadId, onlCgreportHeadId);
|
||||
List<OnlCgreportParam> var11 = this.onlCgreportParamService.list(var10);
|
||||
OnlCgreportParam var13;
|
||||
String var15;
|
||||
if (var11 != null && !var11.isEmpty()) {
|
||||
for(Iterator<OnlCgreportParam> var12 = var11.iterator(); var12.hasNext(); sql = sql.replace("${" + var13.getParamName() + "}", var15)) {
|
||||
var13 = var12.next();
|
||||
Object var14 = params.get("self_" + var13.getParamName());
|
||||
var15 = "";
|
||||
if (var14 != null) {
|
||||
var15 = var14.toString();
|
||||
} else if (oConvertUtils.isNotEmpty(var13.getParamValue())) {
|
||||
var15 = var13.getParamValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<OnlCgreportItem> var24 = new LambdaQueryWrapper<>();
|
||||
var24.eq(OnlCgreportItem::getCgrheadId, onlCgreportHeadId);
|
||||
var24.eq(OnlCgreportItem::getIsSearch, 1);
|
||||
List<OnlCgreportItem> var25 = this.onlCgreportItemService.list(var24);
|
||||
if (ReUtil.contains(ORDER_S_BY, sql.toLowerCase()) && "3".equalsIgnoreCase(var5.getDbType())) {
|
||||
throw new JeroBootException(SQL_SERVER_NOT_ORDER);
|
||||
} else {
|
||||
String var26 = "jero_rp_temp.";
|
||||
var15 = DataBaseEnum.getDataBaseNameByValue(var5.getDbType());
|
||||
String var16 = CgReportQueryParamUtil.a(var25, params, var26, var15);
|
||||
String var17 = "select * from (" + sql + ") jero_rp_temp where 1=1 " + var16;
|
||||
var17 = SqlUtil.b(var17);
|
||||
String var18 = SqlUtils.getCountSql(var17);
|
||||
Object var19 = params.get(COLUMN);
|
||||
if (var19 != null) {
|
||||
var17 = var17 + " order by jero_rp_temp." + var19.toString() + " " + params.get(ORDER).toString();
|
||||
}
|
||||
|
||||
String var20 = var17;
|
||||
if (Boolean.FALSE.equals(Boolean.valueOf(String.valueOf(params.get("getAll"))))) {
|
||||
var20 = SqlUtils.createPageSqlByDBType(var5.getDbType(), var17, var8, var9);
|
||||
}
|
||||
|
||||
log.info("多数据源 报表查询sql=>querySql: " + var17);
|
||||
log.info("多数据源 报表查询sql=>pageSQL: " + var20);
|
||||
log.info("多数据源 报表查询sql=>countSql: " + var18);
|
||||
HashMap<String, Object> var21 = new HashMap<>();
|
||||
Map<String, Object> var22 = (Map)DynamicDBUtil.findOne(dbKey, var18);
|
||||
var21.put(TOTAL, var22.get(TOTAL));
|
||||
List<Map<String, Object>> var23 = DynamicDBUtil.findList(dbKey, var20);
|
||||
var21.put("records", CgformUtil.d(var23));
|
||||
return var21;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(
|
||||
rollbackFor = {Exception.class}
|
||||
)
|
||||
public Result<String> editAll(OnlCgreportModel values) {
|
||||
OnlCgreportHead var2 = values.getHead();
|
||||
OnlCgreportHead var3 = super.getById(var2.getId());
|
||||
if (var3 == null) {
|
||||
return Result.error("未找到对应实体");
|
||||
} else {
|
||||
super.updateById(var2);
|
||||
LambdaQueryWrapper<OnlCgreportItem> var4 = new LambdaQueryWrapper<>();
|
||||
var4.eq(OnlCgreportItem::getCgrheadId, var2.getId());
|
||||
this.onlCgreportItemService.remove(var4);
|
||||
LambdaQueryWrapper<OnlCgreportParam> var5 = new LambdaQueryWrapper<>();
|
||||
var5.eq(OnlCgreportParam::getCgrheadId, var2.getId());
|
||||
this.onlCgreportParamService.remove(var5);
|
||||
Iterator<OnlCgreportParam> var6 = values.getParams().iterator();
|
||||
Iterator<OnlCgreportItem> var9 = values.getItems().iterator();
|
||||
while(var6.hasNext()) {
|
||||
OnlCgreportParam var7 = var6.next();
|
||||
var7.setCgrheadId(var2.getId());
|
||||
}
|
||||
|
||||
|
||||
while(var9.hasNext()) {
|
||||
OnlCgreportItem var8 = var9.next();
|
||||
var8.setFieldName(var8.getFieldName().trim().toLowerCase());
|
||||
var8.setCgrheadId(var2.getId());
|
||||
}
|
||||
|
||||
this.onlCgreportItemService.saveBatch(values.getItems());
|
||||
this.onlCgreportParamService.saveBatch(values.getParams());
|
||||
return Result.OK("全部修改成功");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(
|
||||
rollbackFor = {Exception.class}
|
||||
)
|
||||
public Result<String> delete(String id) {
|
||||
boolean var2 = super.removeById(id);
|
||||
if (var2) {
|
||||
LambdaQueryWrapper<OnlCgreportItem> var3 = new LambdaQueryWrapper<>();
|
||||
var3.eq(OnlCgreportItem::getCgrheadId, id);
|
||||
this.onlCgreportItemService.remove(var3);
|
||||
LambdaQueryWrapper<OnlCgreportParam> var4 = new LambdaQueryWrapper<>();
|
||||
var4.eq(OnlCgreportParam::getCgrheadId, id);
|
||||
this.onlCgreportParamService.remove(var4);
|
||||
}
|
||||
|
||||
return Result.OK("删除成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(
|
||||
rollbackFor = {Exception.class}
|
||||
)
|
||||
public Result<String> bathDelete(String[] ids) {
|
||||
String[] var2 = ids;
|
||||
int var3 = ids.length;
|
||||
|
||||
for(int var4 = 0; var4 < var3; ++var4) {
|
||||
String var5 = var2[var4];
|
||||
boolean var6 = super.removeById(var5);
|
||||
if (var6) {
|
||||
LambdaQueryWrapper<OnlCgreportItem> var7 = new LambdaQueryWrapper<>();
|
||||
var7.eq(OnlCgreportItem::getCgrheadId, var5);
|
||||
this.onlCgreportItemService.remove(var7);
|
||||
LambdaQueryWrapper<OnlCgreportParam> var8 = new LambdaQueryWrapper<>();
|
||||
var8.eq(OnlCgreportParam::getCgrheadId, var5);
|
||||
this.onlCgreportParamService.remove(var8);
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK("删除成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSqlFields(String sql, String dbKey) throws SQLException {
|
||||
List<String> var3;
|
||||
if (StringUtils.isNotBlank(dbKey)) {
|
||||
var3 = this.a(sql, dbKey);
|
||||
} else {
|
||||
var3 = this.a(sql, (String)null);
|
||||
}
|
||||
|
||||
return var3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSqlParams(String sql) {
|
||||
if (oConvertUtils.isEmpty(sql)) {
|
||||
return Collections.emptyList();
|
||||
} else {
|
||||
ArrayList<String> var2 = new ArrayList<>();
|
||||
String var3 = "\\$\\{\\w+\\}";
|
||||
Pattern var4 = Pattern.compile(var3);
|
||||
Matcher var5 = var4.matcher(sql);
|
||||
|
||||
while(var5.find()) {
|
||||
String var6 = var5.group();
|
||||
var2.add(var6.substring(var6.indexOf("{") + 1, var6.indexOf("}")));
|
||||
}
|
||||
|
||||
return var2;
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> a(String var1, String var2) throws SQLException {
|
||||
if (oConvertUtils.isEmpty(var1)) {
|
||||
return Collections.emptyList();
|
||||
} else {
|
||||
return getStrings(var1, var2);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<String> getStrings(String var1, String var2) throws SQLException {
|
||||
var1 = var1.trim();
|
||||
if (var1.endsWith(";")) {
|
||||
var1 = var1.substring(0, var1.length() - 1);
|
||||
}
|
||||
|
||||
var1 = QueryGenerator.convertSystemVariables(var1);
|
||||
var1 = SqlUtil.a(var1);
|
||||
Set<String> var3;
|
||||
if (StringUtils.isNotBlank(var2)) {
|
||||
log.info("parse sql : " + var1);
|
||||
DynamicDataSourceModel var4 = DataSourceCachePool.getCacheDynamicDataSourceModel(var2);
|
||||
var1 = getString(var1, var4);
|
||||
|
||||
log.info("parse sql with page : " + var1);
|
||||
Map<String, Object> var5 = (Map) DynamicDBUtil.findOne(var2, var1);
|
||||
if (var5 == null) {
|
||||
throw new JeroBootException("该报表sql没有数据");
|
||||
}
|
||||
|
||||
var3 = var5.keySet();
|
||||
} else {
|
||||
log.info("parse sql: " + var1);
|
||||
String var8 = null;
|
||||
|
||||
try {
|
||||
var8 = DbTableUtil.getDatabaseType();
|
||||
} catch (DBException var7) {
|
||||
var7.printStackTrace();
|
||||
}
|
||||
|
||||
if (ReUtil.contains(ORDER_S_BY, var1.toLowerCase()) && "SQLSERVER".equalsIgnoreCase(var8)) {
|
||||
throw new JeroBootException(SQL_SERVER_NOT_ORDER);
|
||||
}
|
||||
|
||||
IPage<Map<String, Object>> var9 = this.mapper.selectPageBySql(new Page<>(1L, 1L), var1);
|
||||
List<Map<String, Object>> var6 = var9.getRecords();
|
||||
if (var6.isEmpty()) {
|
||||
throw new JeroBootException("该报表sql没有数据");
|
||||
}
|
||||
|
||||
var3 = ((Map)var6.get(0)).keySet();
|
||||
}
|
||||
|
||||
if (var3 != null) {
|
||||
var3.remove("ROW_ID");
|
||||
}
|
||||
|
||||
return new ArrayList<>(var3);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String getString(String var1, DynamicDataSourceModel var4) {
|
||||
if (ReUtil.contains(ORDER_S_BY, var1.toLowerCase()) && "3".equalsIgnoreCase(var4.getDbType())) {
|
||||
throw new JeroBootException(SQL_SERVER_NOT_ORDER);
|
||||
}
|
||||
|
||||
if ("1".equals(var4.getDbType())) {
|
||||
var1 = "SELECT * FROM (" + var1 + ") temp LIMIT 1";
|
||||
} else if ("2".equals(var4.getDbType())) {
|
||||
var1 = "SELECT * FROM (" + var1 + ") temp WHERE ROWNUM <= 1";
|
||||
} else if ("3".equals(var4.getDbType())) {
|
||||
var1 = "SELECT TOP 1 * FROM (" + var1 + ") temp";
|
||||
}
|
||||
return var1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryCgReportConfig(String reportId) {
|
||||
HashMap<String,Object> var2 = new HashMap<>(0);
|
||||
Map<String, Object> var3 = this.mapper.queryCgReportMainConfig(reportId);
|
||||
List<Map<String, Object>> var4 = this.mapper.queryCgReportItems(reportId);
|
||||
List<OnlCgreportParam> var5 = this.mapper.queryCgReportParams(reportId);
|
||||
if (DbTableUtil.a()) {
|
||||
var2.put("main", CgformUtil.b(var3));
|
||||
var2.put("items", CgformUtil.d(var4));
|
||||
} else {
|
||||
var2.put("main", var3);
|
||||
var2.put("items", var4);
|
||||
}
|
||||
|
||||
var2.put("params", var5);
|
||||
return var2;
|
||||
}
|
||||
}
|
||||
-205
@@ -1,205 +0,0 @@
|
||||
|
||||
package com.jero.generater.modules.online.cgreport.util;
|
||||
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Slf4j
|
||||
public class SqlUtil {
|
||||
|
||||
public static final String A_SQL = "select * from ( {0}) sel_tab00 limit {1},{2}";
|
||||
public static final String B_SQL = "select * from ( {0}) sel_tab00 limit {2} offset {1}";
|
||||
public static final String C_SQL = "select * from (select row_.*,rownum rownum_ from ({0}) row_ where rownum <= {1}) where rownum_>{2}";
|
||||
public static final String D_SQL = "select * from ( select row_number() over(order by tempColumn) tempRowNumber, * from (select top {1} tempColumn = 0, {0}) t ) tt where tempRowNumber > {2}";
|
||||
public static final String E_SQL = "select distinct table_name from information_schema.columns where table_schema = {0}";
|
||||
public static final String F_SQL = "SELECT distinct c.relname AS table_name FROM pg_class c";
|
||||
public static final String G_SQL = "select distinct colstable.table_name as table_name from user_tab_cols colstable";
|
||||
public static final String H_SQL = "select distinct c.name as table_name from sys.objects c";
|
||||
public static final String I_SQL = "select column_name from information_schema.columns where table_name = {0} and table_schema = {1}";
|
||||
public static final String J_SQL = "select table_name from information_schema.columns where table_name = {0}";
|
||||
public static final String K_SQL = "select column_name from all_tab_columns where table_name ={0}";
|
||||
public static final String L_SQL = "select name from syscolumns where id={0}";
|
||||
|
||||
public static final String MYSQL = "MYSQL";
|
||||
public static final String POST_GRE_SQL = "POSTGRESQL";
|
||||
public static final String ORACLE = "ORACLE";
|
||||
public static final String SQL_SERVER = "SQLSERVER";
|
||||
|
||||
private SqlUtil() {
|
||||
|
||||
}
|
||||
|
||||
public static String a(String var0, Map<String, Object> var1) {
|
||||
StringBuilder var2 = new StringBuilder();
|
||||
var2.append("SELECT t.* FROM ( ");
|
||||
var2.append(var0).append(" ");
|
||||
var2.append(") t ");
|
||||
if (var1 != null && var1.size() >= 1) {
|
||||
var2.append("WHERE 1=1 ");
|
||||
|
||||
for (String s : var1.keySet()) {
|
||||
String var4 = String.valueOf(s);
|
||||
String var5 = String.valueOf(var1.get(var4));
|
||||
if (oConvertUtils.isNotEmpty(var5)) {
|
||||
var2.append(" AND ");
|
||||
var2.append(" ").append(var4).append(var5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return var2.toString();
|
||||
}
|
||||
|
||||
public static String b(String var0, Map<String,Object> var1) {
|
||||
String var2 = a(var0, var1);
|
||||
var2 = "SELECT COUNT(*) COUNT FROM (" + var2 + ") t2";
|
||||
return var2;
|
||||
}
|
||||
|
||||
public static String a(String var0, String var1, String var2, Map<String, Object> var3, int var4, int var5) {
|
||||
var2 = a(var2, var3);
|
||||
int var6 = (var4 - 1) * var5;
|
||||
String[] var7 = new String[]{var2, var6 + "", var5 + ""};
|
||||
String var8 = "";
|
||||
if (MYSQL.equalsIgnoreCase(var8)) {
|
||||
var2 = MessageFormat.format(A_SQL, var7);
|
||||
} else if (POST_GRE_SQL.equalsIgnoreCase(var8)) {
|
||||
var2 = MessageFormat.format(B_SQL, var7);
|
||||
} else {
|
||||
int var9 = (var4 - 1) * var5;
|
||||
int var10 = var9 + var5;
|
||||
var7[2] = Integer.toString(var9);
|
||||
var7[1] = Integer.toString(var10);
|
||||
if (ORACLE.equalsIgnoreCase(var8)) {
|
||||
var2 = MessageFormat.format(C_SQL, var7);
|
||||
} else if (SQL_SERVER.equalsIgnoreCase(var8)) {
|
||||
var7[0] = var2.substring(c(var2));
|
||||
var2 = MessageFormat.format(D_SQL, var7);
|
||||
}
|
||||
}
|
||||
log.info(var0 + var1);
|
||||
return var2;
|
||||
}
|
||||
|
||||
private static int c(String var0) {
|
||||
int var1 = var0.toLowerCase().indexOf("select");
|
||||
int var2 = var0.toLowerCase().indexOf("select distinct");
|
||||
return var1 + (var2 == var1 ? 15 : 6);
|
||||
}
|
||||
|
||||
public static String a(String var0, String... var1) {
|
||||
if (oConvertUtils.isNotEmpty(var0)) {
|
||||
if (MYSQL.equals(var0)) {
|
||||
return MessageFormat.format(E_SQL, var1);
|
||||
}
|
||||
|
||||
if (ORACLE.equals(var0)) {
|
||||
return G_SQL;
|
||||
}
|
||||
|
||||
if (POST_GRE_SQL.equals(var0)) {
|
||||
return F_SQL;
|
||||
}
|
||||
|
||||
if (SQL_SERVER.equals(var0)) {
|
||||
return H_SQL;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String b(String var0, String... var1) {
|
||||
if (oConvertUtils.isNotEmpty(var0)) {
|
||||
if (MYSQL.equals(var0)) {
|
||||
return MessageFormat.format(I_SQL, var1);
|
||||
}
|
||||
|
||||
if (ORACLE.equals(var0)) {
|
||||
return MessageFormat.format(K_SQL, var1);
|
||||
}
|
||||
|
||||
if (POST_GRE_SQL.equals(var0)) {
|
||||
return MessageFormat.format(J_SQL, var1);
|
||||
}
|
||||
|
||||
if (SQL_SERVER.equals(var0)) {
|
||||
return MessageFormat.format(L_SQL, var1);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String a(String var0) {
|
||||
var0 = var0.toLowerCase();
|
||||
String var1 = "[\\w.]*+ *\\S+ *\\S*\\$\\{\\w+}\\S*";
|
||||
Pattern var2 = Pattern.compile(var1);
|
||||
|
||||
for(Matcher var3 = var2.matcher(var0); var3.find();) {
|
||||
String var4 = var3.group();
|
||||
log.info("${}匹配带参SQL片段 ==>" + var4);
|
||||
if (var4.contains("where")) {
|
||||
var0 = var0.replace(var4, "where 1=1");
|
||||
} else if (var4.contains("and")) {
|
||||
var0 = var0.replace(var4, "and 1=1");
|
||||
} else if (var4.contains("or")) {
|
||||
var0 = var0.replace(var4, "or 1=1");
|
||||
} else {
|
||||
var0 = var0.replace(var4, "1=1");
|
||||
}
|
||||
log.info("${}替换后结果 ==>" + var0);
|
||||
}
|
||||
|
||||
var0 = var0.replaceAll("(?i)AND *1=1", "");
|
||||
return var0;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String var1 = "select * from sys_user where id ='${id}' and del_flag= ${flag}";
|
||||
log.info(a(var1));
|
||||
}
|
||||
|
||||
public static Map<String, Object> a(HttpServletRequest var0) {
|
||||
Map<String, String[]> var1 = var0.getParameterMap();
|
||||
HashMap<String, Object> var2 = new HashMap<>();
|
||||
|
||||
for(Map.Entry<String, String[]> entry: var1.entrySet()) {
|
||||
String var5 = entry.getKey();
|
||||
String[] var7 = entry.getValue();
|
||||
String var6 = "";
|
||||
if (!"_t".equals(var5) && null != var7) {
|
||||
if (!(var7 instanceof String[])) {
|
||||
var6 = Arrays.toString(var7);
|
||||
} else {
|
||||
String[] var8 = var7;
|
||||
for(int var9 = 0; var9 < var8.length; ++var9) {
|
||||
var6 = var8[var9] + ",";
|
||||
}
|
||||
|
||||
var6 = var6.substring(0, var6.length() - 1);
|
||||
}
|
||||
} else {
|
||||
var6 = "";
|
||||
}
|
||||
var2.put(var5, var6);
|
||||
}
|
||||
|
||||
return var2;
|
||||
}
|
||||
|
||||
public static String b(String var0) {
|
||||
String var1 = QueryGenerator.convertSystemVariables(var0);
|
||||
String var2 = QueryGenerator.getAllConfigAuth();
|
||||
return var0.toLowerCase().contains("where") ? var1 + var2 : var1 + " where 1=1 " + var2;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user