mirror of
https://gitee.com/jeelowcode/JeeLowCode.git
synced 2026-09-03 05:13:46 +08:00
1.SQL增强出错BUG修复
2.视图、报表数据源加上占位符功能 3.登录成功后清除cache缓存
This commit is contained in:
@@ -16,6 +16,7 @@ package com.jeelowcode.core.framework.config.aspect.enhance;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.jeelowcode.core.framework.config.aspect.enhance.model.BuildSqlEnhanceContext;
|
||||
import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceParam;
|
||||
import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult;
|
||||
import com.jeelowcode.core.framework.entity.EnhanceSqlEntity;
|
||||
import com.jeelowcode.core.framework.mapper.JeeLowCodeMapper;
|
||||
@@ -75,31 +76,31 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
|
||||
|
||||
@AfterReturning(value = EXPRESSION, returning = "returnVal")
|
||||
public Object afterReturingAdvice(JoinPoint joinPoint, Object returnVal){
|
||||
public Object afterReturingAdvice(JoinPoint joinPoint, Object returnVal) {
|
||||
BuildSqlEnhanceContext contextAndPlugins = getContextAndPlugins(joinPoint, returnVal);
|
||||
if (FuncBase.isEmpty(contextAndPlugins)){
|
||||
if (FuncBase.isEmpty(contextAndPlugins)) {
|
||||
return returnVal;
|
||||
}
|
||||
EnhanceContext context = contextAndPlugins.getContext();
|
||||
//判断结果类型
|
||||
ExecuteEnhanceModel formModel =null; //表单类
|
||||
ResultDataModel listModel =null; //查询类
|
||||
ExecuteEnhanceModel formModel = null; //表单类
|
||||
ResultDataModel listModel = null; //查询类
|
||||
|
||||
Boolean resultFlag = false;
|
||||
if(Func.isNotEmpty(returnVal) && returnVal instanceof ExecuteEnhanceModel){//表单类
|
||||
if (Func.isNotEmpty(returnVal) && returnVal instanceof ExecuteEnhanceModel) {//表单类
|
||||
formModel = (ExecuteEnhanceModel) returnVal;
|
||||
resultFlag = true;
|
||||
}
|
||||
if(Func.isNotEmpty(returnVal) && returnVal instanceof ResultDataModel){//列表类
|
||||
if (Func.isNotEmpty(returnVal) && returnVal instanceof ResultDataModel) {//列表类
|
||||
listModel = (ResultDataModel) returnVal;
|
||||
}
|
||||
|
||||
//把结果放到上下文中再执行插件
|
||||
if(resultFlag){
|
||||
if (resultFlag) {
|
||||
String id = formModel.getId();
|
||||
context.getResult().setId(id);
|
||||
context.getResult().setExitFlag(formModel.isExitFlag());
|
||||
}else {
|
||||
} else {
|
||||
context.getResult().setRecords(listModel.getRecords());
|
||||
context.getResult().setTotal(listModel.getTotal());
|
||||
context.getResult().setExitFlag(listModel.isExitFlag());
|
||||
@@ -107,9 +108,9 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
|
||||
//集合操作的插件
|
||||
List<EnhanceSqlEntity> setOperations = contextAndPlugins.getSetOperations();
|
||||
if(CollectionUtils.isNotEmpty(setOperations)){
|
||||
if (CollectionUtils.isNotEmpty(setOperations)) {
|
||||
//执行
|
||||
executeEnhanceSetOperation(context,setOperations);
|
||||
executeEnhanceSetOperation(context, setOperations);
|
||||
listModel.setTotal(context.getResult().getTotal());
|
||||
listModel.setRecords(context.getResult().getRecords());
|
||||
}
|
||||
@@ -118,11 +119,11 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
List<EnhanceSqlEntity> enhanceSqlEntityList = contextAndPlugins.getEntitys();
|
||||
|
||||
for (EnhanceSqlEntity enhanceSqlEntity : enhanceSqlEntityList) {
|
||||
if (setOperations.contains(enhanceSqlEntity)){
|
||||
if (setOperations.contains(enhanceSqlEntity)) {
|
||||
continue;
|
||||
}
|
||||
this.executSQLPlugin(context,enhanceSqlEntity);
|
||||
if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()){
|
||||
this.executSQLPlugin(context, enhanceSqlEntity);
|
||||
if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()) {
|
||||
listModel.setTotal(context.getResult().getTotal());
|
||||
listModel.setRecords(context.getResult().getRecords());
|
||||
return listModel;
|
||||
@@ -130,18 +131,18 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
|
||||
}
|
||||
|
||||
if(resultFlag){//结果类型
|
||||
ExecuteEnhanceModel executeEnhanceModel=new ExecuteEnhanceModel();
|
||||
if (resultFlag) {//结果类型
|
||||
ExecuteEnhanceModel executeEnhanceModel = new ExecuteEnhanceModel();
|
||||
executeEnhanceModel.setId(context.getResult().getId());
|
||||
return executeEnhanceModel;
|
||||
}else {
|
||||
} else {
|
||||
listModel.setTotal(context.getResult().getTotal());
|
||||
listModel.setRecords(context.getResult().getRecords());
|
||||
}
|
||||
return listModel;
|
||||
}
|
||||
|
||||
public BuildSqlEnhanceContext getContextAndPlugins(JoinPoint joinPoint,Object returnVal){
|
||||
public BuildSqlEnhanceContext getContextAndPlugins(JoinPoint joinPoint, Object returnVal) {
|
||||
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
|
||||
// 获取方法名称
|
||||
String methodName = methodSignature.getName();
|
||||
@@ -157,9 +158,9 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
}
|
||||
|
||||
Long dbFormId = (Long) paramMap.getOrDefault("dbFormId", null);
|
||||
Long dataId = (Long)paramMap.getOrDefault("id",null);
|
||||
Page page = (Page)paramMap.getOrDefault("page", null);
|
||||
List<Long> dataIdList =(List)paramMap.getOrDefault("dataIdList",null);
|
||||
Long dataId = (Long) paramMap.getOrDefault("id", null);
|
||||
Page page = (Page) paramMap.getOrDefault("page", null);
|
||||
|
||||
String buttonCode = aspectMethodNameMap.get(methodName);
|
||||
String key = dbFormId + "_" + buttonCode;
|
||||
List<EnhanceSqlEntity> allPlugins = sqlPlugins.getOrDefault(key, null);
|
||||
@@ -177,15 +178,15 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
setOperation.clear();
|
||||
}
|
||||
}
|
||||
List<Map<String,Object>> dataList = new ArrayList<>();
|
||||
if(returnVal instanceof ResultDataModel){
|
||||
List<Map<String, Object>> dataList = new ArrayList<>();
|
||||
if (returnVal instanceof ResultDataModel) {
|
||||
dataList = ((ResultDataModel) returnVal).getRecords();
|
||||
}
|
||||
EnhanceContext context = new EnhanceContext();
|
||||
Map<String, Object> params = JeeLowCodeUtils.getMap2Map(paramMap, "params");
|
||||
context.setParam(dbFormId, params, dataList, dataId, page, dataIdList);
|
||||
context.setParam(dbFormId, params, dataList, dataId, page);
|
||||
context.setResult(new EnhanceResult());
|
||||
return new BuildSqlEnhanceContext(context, allPlugins,setOperation);
|
||||
return new BuildSqlEnhanceContext(context, allPlugins, setOperation);
|
||||
}
|
||||
|
||||
public static void initSqlPlugins(Map<String, List<EnhanceSqlEntity>> initSQLPlugins) {
|
||||
@@ -194,7 +195,7 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
|
||||
public void executSQLPlugin(EnhanceContext context, EnhanceSqlEntity enhanceSqlEntity) {
|
||||
|
||||
switch (enhanceSqlEntity.getButtonCode()){
|
||||
switch (enhanceSqlEntity.getButtonCode()) {
|
||||
case ENHANCE_ADD:
|
||||
//新增
|
||||
this.executeEnhanceAfterAdd(context, enhanceSqlEntity);
|
||||
@@ -219,9 +220,9 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
//列表 前端只保留了一个
|
||||
Map<String, Object> params = context.getParam().getParams();
|
||||
Integer pageSize = JeeLowCodeUtils.getMap2Integer(params, "pageSize");
|
||||
if(Func.isEmpty(pageSize) || pageSize==-1 || Func.equals(pageSize, JeeLowCodeConstant.NOT_PAGE)){
|
||||
if (Func.isEmpty(pageSize) || pageSize == -1 || Func.equals(pageSize, JeeLowCodeConstant.NOT_PAGE)) {
|
||||
this.executeEnhanceAfterList(context, enhanceSqlEntity);
|
||||
}else{
|
||||
} else {
|
||||
this.executeEnhanceAfterPage(context, enhanceSqlEntity);
|
||||
}
|
||||
break;
|
||||
@@ -235,75 +236,78 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//新增
|
||||
public void executeEnhanceAfterAdd(EnhanceContext context,EnhanceSqlEntity sqlEntity) {
|
||||
public void executeEnhanceAfterAdd(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
Long dbFormId = context.getParam().getDbFormId();
|
||||
Map<String,Object> paramMap = context.getParam().getParams();
|
||||
if(FuncBase.isNotEmpty(context.getParam().getDataId())){//把id放入到参数
|
||||
paramMap.put("id",context.getParam().getDataId());
|
||||
Map<String, Object> paramMap = context.getParam().getParams();
|
||||
if (FuncBase.isNotEmpty(context.getParam().getDataId())) {//把id放入到参数
|
||||
paramMap.put("id", context.getParam().getDataId());
|
||||
}
|
||||
|
||||
this.executeSql(sqlEntity.getExecuteSql(), paramMap);
|
||||
|
||||
}
|
||||
|
||||
//删除
|
||||
public void executeEnhanceAfterDelete(EnhanceContext context,EnhanceSqlEntity sqlEntity){
|
||||
List<Long> dataIdList = context.getParam().getDataIdList();
|
||||
public void executeEnhanceAfterDelete(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
EnhanceParam param = context.getParam();
|
||||
Map<String, Object> params = param.getParams();
|
||||
List<Long> dataIdList = (List<Long>) params.getOrDefault("dataIdList", null);
|
||||
|
||||
String executeSql = sqlEntity.getExecuteSql();
|
||||
if (FuncBase.isEmpty(executeSql)) {
|
||||
return;
|
||||
}
|
||||
//因为是批量删除的,需要拆分出来
|
||||
for (Long dataId : dataIdList) {
|
||||
Map<String, Object> dataMap = new HashMap<>();
|
||||
dataMap.put("id", dataId);
|
||||
|
||||
String executeSql = sqlEntity.getExecuteSql();
|
||||
if(FuncBase.isEmpty(executeSql)){
|
||||
return ;
|
||||
}
|
||||
//因为是批量删除的,需要拆分出来
|
||||
for(Long dataId:dataIdList){
|
||||
Map<String,Object> dataMap =new HashMap<>();
|
||||
dataMap.put("id",dataId);
|
||||
|
||||
//执行sql
|
||||
this.executeSql(executeSql,dataMap);
|
||||
}
|
||||
//执行sql
|
||||
this.executeSql(executeSql, dataMap);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//编辑
|
||||
public void executeEnhanceAfterEdit(EnhanceContext context,EnhanceSqlEntity sqlEntity){
|
||||
public void executeEnhanceAfterEdit(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
Long dataId = context.getParam().getDataId();
|
||||
Map<String,Object> paramMap = context.getParam().getParams();
|
||||
Map<String, Object> paramMap = context.getParam().getParams();
|
||||
|
||||
paramMap.put("id", dataId);//把id放到json里面传递
|
||||
|
||||
this.executeSql(sqlEntity.getExecuteSql(),paramMap);
|
||||
this.executeSql(sqlEntity.getExecuteSql(), paramMap);
|
||||
|
||||
}
|
||||
|
||||
//详情
|
||||
public void executeEnhanceAfterDetail(EnhanceContext context,EnhanceSqlEntity sqlEntity){
|
||||
public void executeEnhanceAfterDetail(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
|
||||
Long dbFormId = context.getParam().getDbFormId();
|
||||
Long id = (Long) context.getParam().getDataId();
|
||||
Map<String, Object> params = context.getParam().getParams();
|
||||
params.put("id",id);//把id放入参数集
|
||||
|
||||
params.put("id", id);//把id放入参数集
|
||||
|
||||
String autoWhereSql = this.getAutoWhereSql(dbFormId, params);
|
||||
|
||||
String executeSql = sqlEntity.getExecuteSql();
|
||||
List<Map<String, Object>> dataMapList = this.executeSelectListSql(executeSql, params, autoWhereSql);
|
||||
context.setResult( ResultDataModel.fomatList(dataMapList));
|
||||
context.setResult(ResultDataModel.fomatList(dataMapList));
|
||||
|
||||
}
|
||||
|
||||
//导入
|
||||
public void executeEnhanceAfterImport(EnhanceContext context,EnhanceSqlEntity sqlEntity){
|
||||
public void executeEnhanceAfterImport(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
|
||||
Map<String,Object> paramMap = context.getParam().getParams();
|
||||
Map<String, Object> paramMap = context.getParam().getParams();
|
||||
|
||||
this.executeSql(sqlEntity.getExecuteSql(),paramMap);
|
||||
this.executeSql(sqlEntity.getExecuteSql(), paramMap);
|
||||
}
|
||||
|
||||
//列表
|
||||
public void executeEnhanceAfterList(EnhanceContext context,EnhanceSqlEntity sqlEntity){
|
||||
public void executeEnhanceAfterList(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
Long dbFormId = context.getParam().getDbFormId();
|
||||
Map<String, Object> params = context.getParam().getParams();
|
||||
String executeSql = sqlEntity.getExecuteSql();
|
||||
@@ -315,7 +319,7 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
}
|
||||
|
||||
// 分页
|
||||
public void executeEnhanceAfterPage(EnhanceContext context,EnhanceSqlEntity sqlEntity){
|
||||
public void executeEnhanceAfterPage(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
Long dbFormId = context.getParam().getDbFormId();
|
||||
Map<String, Object> params = context.getParam().getParams();
|
||||
Integer pageNo = JeeLowCodeUtils.getMap2Integer(params, "pageNo");
|
||||
@@ -328,21 +332,24 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
}
|
||||
|
||||
//导出
|
||||
public void executeEnhanceAfterExport(EnhanceContext context, EnhanceSqlEntity sqlEntity){
|
||||
public void executeEnhanceAfterExport(EnhanceContext context, EnhanceSqlEntity sqlEntity) {
|
||||
Long dbFormId = context.getParam().getDbFormId();
|
||||
Map<String, Object> params = context.getParam().getParams();
|
||||
String executeSql = sqlEntity.getExecuteSql();
|
||||
|
||||
String autoWhereSql = this.getAutoWhereSql(dbFormId, params);
|
||||
List<Map<String, Object>> dataMapList = this.executeSelectListSql(executeSql, params, autoWhereSql);
|
||||
if (FuncBase.isEmpty(dataMapList)) {
|
||||
dataMapList = new ArrayList<>();
|
||||
}
|
||||
context.getResult().setRecords(dataMapList);
|
||||
context.getResult().setExitFlag(true);
|
||||
}
|
||||
|
||||
//执行集合操作
|
||||
public void executeEnhanceSetOperation(EnhanceContext context,List<EnhanceSqlEntity> sqlEntitys){
|
||||
sqlEntitys.sort(Comparator.comparing(EnhanceSqlEntity::getSort,Comparator.nullsLast(Integer::compareTo)));
|
||||
for (int i = 0; i < sqlEntitys.size()-1; i++) {
|
||||
public void executeEnhanceSetOperation(EnhanceContext context, List<EnhanceSqlEntity> sqlEntitys) {
|
||||
sqlEntitys.sort(Comparator.comparing(EnhanceSqlEntity::getSort, Comparator.nullsLast(Integer::compareTo)));
|
||||
for (int i = 0; i < sqlEntitys.size() - 1; i++) {
|
||||
EnhanceSqlEntity leftEntity = null;
|
||||
EnhanceSqlEntity rightEntity = null;
|
||||
if (i == 0) {
|
||||
@@ -382,30 +389,30 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
|
||||
//执行合集操作
|
||||
private void executSetOperationOr(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context) {
|
||||
List<Map<String, Object>> leftRecords ;
|
||||
if(FuncBase.isNotEmpty(leftEntity)){
|
||||
EnhanceContext leftContext = context.clone();
|
||||
executSQLPlugin(leftContext, leftEntity);
|
||||
leftRecords = leftContext.getResult().getRecords();
|
||||
}else {
|
||||
leftRecords = context.getResult().getRecords();
|
||||
}
|
||||
List<Map<String, Object>> leftRecords;
|
||||
if (FuncBase.isNotEmpty(leftEntity)) {
|
||||
EnhanceContext leftContext = context.clone();
|
||||
executSQLPlugin(leftContext, leftEntity);
|
||||
leftRecords = leftContext.getResult().getRecords();
|
||||
} else {
|
||||
leftRecords = context.getResult().getRecords();
|
||||
}
|
||||
EnhanceContext rightContext = context.clone();
|
||||
executSQLPlugin(rightContext, rightEntity);
|
||||
List<Map<String, Object>> rightRecords = rightContext.getResult().getRecords();
|
||||
CollectionUtils.addAll(leftRecords,rightRecords);
|
||||
CollectionUtils.addAll(leftRecords, rightRecords);
|
||||
context.getResult().setRecords(leftRecords);
|
||||
|
||||
}
|
||||
|
||||
private void executSetOperationDiffer(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){
|
||||
List<Map<String,Object>> differ;
|
||||
List<Map<String, Object>> leftRecords ;
|
||||
if(FuncBase.isNotEmpty(leftEntity)){
|
||||
private void executSetOperationDiffer(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context) {
|
||||
List<Map<String, Object>> differ;
|
||||
List<Map<String, Object>> leftRecords;
|
||||
if (FuncBase.isNotEmpty(leftEntity)) {
|
||||
EnhanceContext leftContext = context.clone();
|
||||
executSQLPlugin(leftContext, leftEntity);
|
||||
leftRecords = leftContext.getResult().getRecords();
|
||||
}else {
|
||||
} else {
|
||||
leftRecords = context.getResult().getRecords();
|
||||
}
|
||||
EnhanceContext rightContext = context.clone();
|
||||
@@ -415,17 +422,19 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
context.getResult().setRecords(differ);
|
||||
|
||||
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
};
|
||||
//并集
|
||||
public void executSetOperationUnion(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){
|
||||
List<Map<String,Object>> union;
|
||||
List<Map<String, Object>> leftRecords ;
|
||||
if(FuncBase.isNotEmpty(leftEntity)){
|
||||
public void executSetOperationUnion(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context) {
|
||||
List<Map<String, Object>> union;
|
||||
List<Map<String, Object>> leftRecords;
|
||||
if (FuncBase.isNotEmpty(leftEntity)) {
|
||||
EnhanceContext leftContext = context.clone();
|
||||
executSQLPlugin(leftContext, leftEntity);
|
||||
leftRecords = leftContext.getResult().getRecords();
|
||||
}else {
|
||||
} else {
|
||||
leftRecords = context.getResult().getRecords();
|
||||
}
|
||||
EnhanceContext rightContext = context.clone();
|
||||
@@ -436,14 +445,14 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
}
|
||||
|
||||
//交集
|
||||
public void executSetOperationInterSerction(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){
|
||||
List<Map<String,Object>> intersection;
|
||||
List<Map<String, Object>> leftRecords ;
|
||||
if(FuncBase.isNotEmpty(leftEntity)){
|
||||
public void executSetOperationInterSerction(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context) {
|
||||
List<Map<String, Object>> intersection;
|
||||
List<Map<String, Object>> leftRecords;
|
||||
if (FuncBase.isNotEmpty(leftEntity)) {
|
||||
EnhanceContext leftContext = context.clone();
|
||||
executSQLPlugin(leftContext, leftEntity);
|
||||
leftRecords = leftContext.getResult().getRecords();
|
||||
}else {
|
||||
} else {
|
||||
leftRecords = context.getResult().getRecords();
|
||||
}
|
||||
EnhanceContext rightContext = context.clone();
|
||||
@@ -454,17 +463,18 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
}
|
||||
|
||||
//串行
|
||||
public void executSetOperationAnd(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){
|
||||
public void executSetOperationAnd(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context) {
|
||||
executSQLPlugin(context, leftEntity);
|
||||
executSQLPlugin(context, rightEntity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取自动构建where的语句
|
||||
*
|
||||
* @param dbFormId
|
||||
* @return
|
||||
*/
|
||||
public String getAutoWhereSql(Long dbFormId, Map<String, Object> params){
|
||||
public String getAutoWhereSql(Long dbFormId, Map<String, Object> params) {
|
||||
SqlInfoQueryWrapper.Wrapper queryWrapper = SqlHelper.getQueryWrapper();
|
||||
|
||||
List<Map<String, String>> whereFieldMapList = jeeLowCodeMapper.getDbWhereFieldList(dbFormId);
|
||||
@@ -474,17 +484,17 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
SqlFormatModel sqlFormatModel = queryWrapper.buildSql();
|
||||
String whereSql = sqlFormatModel.getSql();
|
||||
Map<String, Object> paramMap = sqlFormatModel.getDataMap();
|
||||
if(Func.isNotEmpty(paramMap)){
|
||||
if (Func.isNotEmpty(paramMap)) {
|
||||
params.putAll(paramMap);
|
||||
}
|
||||
whereSql=whereSql.substring(6);//因为是where开头要去掉
|
||||
whereSql = whereSql.substring(6);//因为是where开头要去掉
|
||||
return whereSql;
|
||||
}
|
||||
|
||||
//如果是多选的时候,要做特殊处理,因为多选的时候 ,数据库存储的是 11,22,33
|
||||
String moreSelectFieldListStr = (String)params.get(ParamEnum.MORE_SELECT_FIELD.getCode());
|
||||
List<String> moreSelectFieldList=null;
|
||||
if(FuncBase.isNotEmpty(moreSelectFieldListStr)){
|
||||
String moreSelectFieldListStr = (String) params.get(ParamEnum.MORE_SELECT_FIELD.getCode());
|
||||
List<String> moreSelectFieldList = null;
|
||||
if (FuncBase.isNotEmpty(moreSelectFieldListStr)) {
|
||||
moreSelectFieldList = FuncBase.toStrList(moreSelectFieldListStr);
|
||||
}
|
||||
|
||||
@@ -511,16 +521,16 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
Object finalObj = obj;
|
||||
//类型转换 111,22,33
|
||||
if (FuncBase.equals(query_mode, QueryModelEnum.EQ.getCode())) {//精确
|
||||
if(FuncBase.isNotEmpty(moreSelectFieldList) && moreSelectFieldList.contains(field_code)){//在多选里面
|
||||
if (FuncBase.isNotEmpty(moreSelectFieldList) && moreSelectFieldList.contains(field_code)) {//在多选里面
|
||||
|
||||
queryWrapper.setWhere(where->{
|
||||
where.and(w->w.eq(field_code, finalObj)
|
||||
.or().likeLeft(field_code,","+ finalObj)
|
||||
.or().likeRight(field_code, finalObj +",")
|
||||
.or().like(field_code,","+ finalObj +","));
|
||||
queryWrapper.setWhere(where -> {
|
||||
where.and(w -> w.eq(field_code, finalObj)
|
||||
.or().likeLeft(field_code, "," + finalObj)
|
||||
.or().likeRight(field_code, finalObj + ",")
|
||||
.or().like(field_code, "," + finalObj + ","));
|
||||
});
|
||||
}else{
|
||||
queryWrapper.setWhere(where->{
|
||||
} else {
|
||||
queryWrapper.setWhere(where -> {
|
||||
where.eq(field_code, finalObj);
|
||||
});
|
||||
}
|
||||
@@ -537,22 +547,22 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
if (FuncBase.isNotEmpty(leftVal) && FuncBase.isNotEmpty(rightVal)) {
|
||||
Object finalLeftVal = leftVal;
|
||||
Object finalRightVal = rightVal;
|
||||
queryWrapper.setWhere(where->{
|
||||
queryWrapper.setWhere(where -> {
|
||||
where.between(field_code, finalLeftVal, finalRightVal);//区间
|
||||
});
|
||||
} else if (FuncBase.isNotEmpty(leftVal)) {//>=
|
||||
Object finalLeftVal1 = leftVal;
|
||||
queryWrapper.setWhere(where->{
|
||||
queryWrapper.setWhere(where -> {
|
||||
where.ge(field_code, finalLeftVal1);
|
||||
});
|
||||
} else if (FuncBase.isNotEmpty(rightVal)) {//<=
|
||||
Object finalRightVal1 = rightVal;
|
||||
queryWrapper.setWhere(where->{
|
||||
queryWrapper.setWhere(where -> {
|
||||
where.le(field_code, finalRightVal1);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
queryWrapper.setWhere(where->{
|
||||
queryWrapper.setWhere(where -> {
|
||||
where.like(field_code, finalObj);
|
||||
});
|
||||
}
|
||||
@@ -564,22 +574,23 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
return whereSql;
|
||||
}
|
||||
Map<String, Object> paramMap = sqlFormatModel.getDataMap();
|
||||
if(Func.isNotEmpty(paramMap)){
|
||||
if (Func.isNotEmpty(paramMap)) {
|
||||
params.putAll(paramMap);
|
||||
}
|
||||
whereSql=whereSql.substring(6);//因为是where开头要去掉
|
||||
whereSql = whereSql.substring(6);//因为是where开头要去掉
|
||||
return whereSql;
|
||||
}
|
||||
|
||||
/**
|
||||
* 运行增删改
|
||||
*
|
||||
* @param executeSql
|
||||
* @param paramMap
|
||||
* @throws Throwable
|
||||
*/
|
||||
public void executeSql(String executeSql, Map<String, Object> paramMap) {
|
||||
public void executeSql(String executeSql, Map<String, Object> paramMap) {
|
||||
String sql = this.getSql(executeSql, paramMap);
|
||||
this.execute(sql,paramMap);
|
||||
this.execute(sql, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -592,64 +603,67 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
*/
|
||||
public List<Map<String, Object>> executeSelectListSql(String executeSql, Map<String, Object> paramMap, String autoWhereSql) {
|
||||
String sql = this.getSql(executeSql, paramMap, autoWhereSql);
|
||||
Object obj = this.execute(sql,paramMap);
|
||||
return (List<Map<String, Object>>)obj;
|
||||
Object obj = this.execute(sql, paramMap);
|
||||
return (List<Map<String, Object>>) obj;
|
||||
}
|
||||
|
||||
//分页
|
||||
public IPage<Map<String, Object>> executeSelectPageSql(String executeSql, Map<String, Object> paramMap, String autoWhereSql, Page page) {
|
||||
String sql = this.getSql(executeSql, paramMap, autoWhereSql);
|
||||
Object obj = this.execute(sql, paramMap,page);
|
||||
return (IPage<Map<String, Object>>)obj;
|
||||
Object obj = this.execute(sql, paramMap, page);
|
||||
return (IPage<Map<String, Object>>) obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取执行sql
|
||||
*
|
||||
* @param executeSql
|
||||
* @param paramMap
|
||||
* @return
|
||||
*/
|
||||
private String getSql(String executeSql, Map<String, Object> paramMap){
|
||||
return this.getSql(executeSql,paramMap,null);
|
||||
private String getSql(String executeSql, Map<String, Object> paramMap) {
|
||||
return this.getSql(executeSql, paramMap, null);
|
||||
}
|
||||
private String getSql(String executeSql, Map<String, Object> paramMap, String autoWhereSql){
|
||||
|
||||
private String getSql(String executeSql, Map<String, Object> paramMap, String autoWhereSql) {
|
||||
|
||||
//替换参数
|
||||
executeSql = Func.replaceParam(executeSql,paramMap,autoWhereSql,jeeLowCodeAdapter);
|
||||
executeSql = Func.replaceParam(executeSql, paramMap, autoWhereSql, jeeLowCodeAdapter);
|
||||
|
||||
return executeSql.trim();
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行sql
|
||||
*
|
||||
* @param sql
|
||||
* @return
|
||||
*/
|
||||
private Object execute(String sql,Map<String,Object> dataMap){
|
||||
return execute(sql,dataMap,null);
|
||||
private Object execute(String sql, Map<String, Object> dataMap) {
|
||||
return execute(sql, dataMap, null);
|
||||
}
|
||||
|
||||
private Object execute(String sql,Map<String,Object> dataMap, Page page){
|
||||
sql=sql.trim();
|
||||
private Object execute(String sql, Map<String, Object> dataMap, Page page) {
|
||||
sql = sql.trim();
|
||||
//执行sql
|
||||
if (sql.startsWith("insert") || sql.startsWith("INSERT")) {
|
||||
sqlMapper.insertData(sql,dataMap);
|
||||
sqlMapper.insertData(sql, dataMap);
|
||||
} else if (sql.startsWith("update") || sql.startsWith("UPDATE")) {
|
||||
sqlMapper.updateData(sql,dataMap);
|
||||
sqlMapper.updateData(sql, dataMap);
|
||||
} else if (sql.startsWith("delete") || sql.startsWith("DELETE")) {
|
||||
sqlMapper.deleteData(sql,dataMap);
|
||||
sqlMapper.deleteData(sql, dataMap);
|
||||
} else if (sql.startsWith("select") || sql.startsWith("SELECT")) {
|
||||
if(FuncBase.isNotEmpty(page)){
|
||||
return sqlMapper.selectPageData(page, sql,dataMap);
|
||||
if (FuncBase.isNotEmpty(page)) {
|
||||
return sqlMapper.selectPageData(page, sql, dataMap);
|
||||
}
|
||||
return sqlMapper.selectData(sql,dataMap);
|
||||
return sqlMapper.selectData(sql, dataMap);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// 新增增强
|
||||
public static void addPlugin(EnhanceSqlEntity sqlEntity){
|
||||
String key = sqlEntity.getDbformId()+"_"+sqlEntity.getButtonCode();
|
||||
public static void addPlugin(EnhanceSqlEntity sqlEntity) {
|
||||
String key = sqlEntity.getDbformId() + "_" + sqlEntity.getButtonCode();
|
||||
sqlPlugins.merge(key, new ArrayList<>(Collections.singletonList(sqlEntity)), (oldValue, newValue) -> {
|
||||
oldValue.addAll(newValue);
|
||||
return oldValue;
|
||||
@@ -668,7 +682,7 @@ public class JeeLowCodeAnnoaionAspectjSQL {
|
||||
}
|
||||
|
||||
// 删除增强
|
||||
public static void removePlugin(EnhanceSqlEntity sqlEntity){
|
||||
public static void removePlugin(EnhanceSqlEntity sqlEntity) {
|
||||
String key = sqlEntity.getDbformId() + "_" + sqlEntity.getButtonCode();
|
||||
List<EnhanceSqlEntity> sqlEntityList = sqlPlugins.getOrDefault(key, new ArrayList<>());
|
||||
// id相同则删除
|
||||
|
||||
@@ -298,6 +298,7 @@ public class JeeLowCodeAnnotationAspectjJAVA {
|
||||
|
||||
EnhanceParam param = new EnhanceParam();
|
||||
param.setDbFormId(dbFormId);
|
||||
param.setDataId((Long)paramMap.getOrDefault("id", null));
|
||||
param.setList((ArrayList) paramMap.getOrDefault("dataList", null));
|
||||
param.setParams((Map<String, Object>) paramMap.getOrDefault("params", null));
|
||||
Object importDataParam = paramMap.get("param");
|
||||
|
||||
@@ -78,8 +78,8 @@ public class EnhanceContext extends BaseEnhanceContext implements Serializable{
|
||||
this.result = new EnhanceResult(exitFlag,id,total,records);
|
||||
}
|
||||
|
||||
public void setParam(Long dbFormId, Map<String, Object> params, List<Map<String, Object>> list, Long dataId, Page page, List<Long> dataIdList){
|
||||
this.param = new EnhanceParam(dbFormId,params,list,dataId,page,dataIdList);
|
||||
public void setParam(Long dbFormId, Map<String, Object> params, List<Map<String, Object>> list, Long dataId, Page page){
|
||||
this.param = new EnhanceParam(dbFormId,params,list,dataId,page);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,8 +37,6 @@ public class EnhanceParam implements Serializable {
|
||||
|
||||
private Page page;
|
||||
|
||||
private List<Long> dataIdList;
|
||||
|
||||
private SaveImportDataParam importDataParam;
|
||||
|
||||
public Long getDbFormId() {
|
||||
@@ -84,14 +82,6 @@ public class EnhanceParam implements Serializable {
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
public List<Long> getDataIdList() {
|
||||
return dataIdList;
|
||||
}
|
||||
|
||||
public void setDataIdList(List<Long> dataIdList) {
|
||||
this.dataIdList = dataIdList;
|
||||
}
|
||||
|
||||
public SaveImportDataParam getImportDataParam() {
|
||||
return importDataParam;
|
||||
}
|
||||
@@ -106,12 +96,11 @@ public class EnhanceParam implements Serializable {
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
public EnhanceParam(Long dbFormId, Map<String, Object> params, List<Map<String, Object>> list, Long dataId, Page page, List<Long> dataIdList) {
|
||||
public EnhanceParam(Long dbFormId, Map<String, Object> params, List<Map<String, Object>> list, Long dataId, Page page) {
|
||||
this.dbFormId = dbFormId;
|
||||
this.params = params;
|
||||
this.list = list;
|
||||
this.dataId = dataId;
|
||||
this.page = page;
|
||||
this.dataIdList = dataIdList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,9 @@ http://www.apache.org/licenses/
|
||||
*/
|
||||
package com.jeelowcode.core.framework.config.btncommand.receiver;
|
||||
|
||||
import com.jeelowcode.core.framework.entity.FormFieldEntity;
|
||||
import com.jeelowcode.core.framework.entity.ReportEntity;
|
||||
import com.jeelowcode.core.framework.mapper.FormFieldMapper;
|
||||
import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo;
|
||||
import com.jeelowcode.framework.excel.model.ExcelTitleModel;
|
||||
import com.jeelowcode.framework.exception.JeeLowCodeException;
|
||||
@@ -107,11 +109,15 @@ public class ButtonReceiverBase {
|
||||
*/
|
||||
public void webViewAppend(Long dbFormId, List<Map<String, Object>> records) {
|
||||
FormFieldWebMapper fieldWebMapper = SpringUtils.getBean(FormFieldWebMapper.class);
|
||||
FormFieldMapper fieldMapper = SpringUtils.getBean(FormFieldMapper.class);
|
||||
|
||||
// 获取表单的字段对应的字典
|
||||
IFormService formService = SpringUtils.getBean(IFormService.class);
|
||||
Map<String, Map<String, Object>> fieldDictMap = formService.getFieldDict(dbFormId);
|
||||
|
||||
//表单map
|
||||
Map<String, FormFieldEntity> dbFormMap = fieldMapper.getByDbFormMap(dbFormId);
|
||||
|
||||
List<FormFieldWebEntity> webEntityList = fieldWebMapper.webEntityListAndFormatConfigIsNotNull(dbFormId);
|
||||
webEntityList.stream().forEach(web->{
|
||||
String fieldCode = web.getFieldCode();
|
||||
@@ -119,6 +125,16 @@ public class ButtonReceiverBase {
|
||||
if(Func.isEmpty(formatConfig)){
|
||||
return;
|
||||
}
|
||||
FormFieldEntity formFieldEntity = dbFormMap.get(fieldCode);
|
||||
if(Func.isEmpty(formFieldEntity)){
|
||||
return;
|
||||
}
|
||||
String isDb = formFieldEntity.getIsDb();
|
||||
if(Func.equals(isDb,YNEnum.Y.getCode())){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
WebFormatConfigModel webFormatConfigModel = Func.json2Bean(formatConfig, WebFormatConfigModel.class);
|
||||
if(Func.isEmpty(webFormatConfigModel)){
|
||||
return;
|
||||
|
||||
@@ -330,10 +330,13 @@ public class DbFormController extends BaseController {
|
||||
@Operation(tags = "表单开发",summary = "解释数据源SQL的运行结果")
|
||||
public BaseWebResult explainDatasourceSql(@RequestBody ExplainDatasourceSqlModel model) {
|
||||
Page page = FuncWeb.getPage(1, 10);
|
||||
Map<String, Object> params=new HashMap<>();
|
||||
SqlInfoQueryWrapper.Wrapper queryWrapper = SqlHelper.getQueryWrapper();
|
||||
queryWrapper.setTableSql(model.getExplainSql());
|
||||
//处理占位符参数
|
||||
Func.replaceParam(model.getExplainSql(), params, null, jeeLowCodeAdapter);
|
||||
queryWrapper.setTableSql(model.getExplainSql());//sql
|
||||
try{
|
||||
IPage<Map<String, Object>> pages = sqlService.getDataIPageByPlus(page, queryWrapper);
|
||||
IPage<Map<String, Object>> pages = sqlService.getDataIPageByPlus(page, queryWrapper,params);
|
||||
return BaseWebResult.success(pages);
|
||||
}catch (Exception e){
|
||||
throw new JeeLowCodeMoreException("SQL执行错误",e.getMessage());
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jeelowcode.framework.utils.enums.YNEnum;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -35,6 +36,17 @@ public interface FormFieldMapper extends BaseMapper<FormFieldEntity> {
|
||||
return formFieldList;
|
||||
}
|
||||
|
||||
default Map<String,FormFieldEntity> getByDbFormMap(Long dbFormId){
|
||||
LambdaQueryWrapper<FormFieldEntity> formWrapper = new LambdaQueryWrapper<>();
|
||||
formWrapper.eq(FormFieldEntity::getDbformId, dbFormId);
|
||||
formWrapper.orderByAsc(FormFieldEntity::getSortNum);
|
||||
List<FormFieldEntity> formFieldList = this.selectList(formWrapper);
|
||||
|
||||
Map<String, FormFieldEntity> map = formFieldList.stream()
|
||||
.collect(Collectors.toMap(FormFieldEntity::getFieldCode, entity -> entity));
|
||||
return map;
|
||||
}
|
||||
|
||||
default List<FormFieldEntity> getAllList(){
|
||||
LambdaQueryWrapper<FormFieldEntity> fieldWrapper = new LambdaQueryWrapper<>();
|
||||
fieldWrapper.select(FormFieldEntity::getDbformId, FormFieldEntity::getFieldCode, FormFieldEntity::getFieldName,FormFieldEntity::getFieldType);
|
||||
|
||||
@@ -74,7 +74,7 @@ public interface IFrameService {
|
||||
List<String> saveBatchData(Long dbformId, List<JSONObject> dataMapList);
|
||||
|
||||
//编辑数据
|
||||
ExecuteEnhanceModel editData(Long dbformId, Long dataId, Map<String,Object> params);
|
||||
ExecuteEnhanceModel editData(Long dbformId, Long id, Map<String,Object> params);
|
||||
|
||||
//编辑数据-批量
|
||||
void editBatchData(Long dbformId,List<JSONObject> jsonObjectList);
|
||||
|
||||
@@ -1094,7 +1094,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
entity.setSortNum(++sortNum);
|
||||
if (FuncBase.isEmpty(vo.getId())) {//新增
|
||||
addList.add(entity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(entity);
|
||||
}
|
||||
|
||||
@@ -1157,7 +1157,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
saveOrUpdateEntity.setDictTextFormatter(vo.getDictTextFormatter());
|
||||
if (Func.isEmpty(vo.getId())) {//新增
|
||||
addList.add(saveOrUpdateEntity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(saveOrUpdateEntity);
|
||||
}
|
||||
});
|
||||
@@ -1197,7 +1197,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
|
||||
if (Func.isEmpty(vo.getId())) {//新增
|
||||
addList.add(saveOrUpdateEntity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(saveOrUpdateEntity);
|
||||
}
|
||||
});
|
||||
@@ -1233,7 +1233,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
saveOrUpdateEntity.setMainField(vo.getMainField());
|
||||
if (Func.isEmpty(vo.getId())) {//新增
|
||||
addList.add(saveOrUpdateEntity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(saveOrUpdateEntity);
|
||||
}
|
||||
});
|
||||
@@ -1281,7 +1281,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
saveOrUpdateEntity.setFormatConfig(vo.getFormatConfig());
|
||||
if (Func.isEmpty(vo.getId())) {//新增
|
||||
addList.add(saveOrUpdateEntity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(saveOrUpdateEntity);
|
||||
}
|
||||
|
||||
@@ -1361,7 +1361,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
saveOrUpdateEntity.setSummaryJson(vo.getSummaryJson());
|
||||
if (Func.isEmpty(vo.getId())) {//新增
|
||||
addList.add(saveOrUpdateEntity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(saveOrUpdateEntity);
|
||||
}
|
||||
|
||||
@@ -1402,7 +1402,7 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
saveOrUpdateEntity.setIndexType(vo.getIndexType());
|
||||
if (Func.isEmpty(vo.getId())) {//新增
|
||||
addList.add(saveOrUpdateEntity);
|
||||
} else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
} else if (Func.isEmpty(vo.getIsModify()) || Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改
|
||||
updateList.add(saveOrUpdateEntity);
|
||||
}
|
||||
});
|
||||
@@ -1752,10 +1752,15 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
for (ExplainSqlFieldModel model : modelList) {
|
||||
String fieldCode = model.getValue();//字段 nj_name
|
||||
String alias = model.getAlias();
|
||||
String finaiFieldCode=Func.isNotEmpty(alias)?alias.toLowerCase():fieldCode.toLowerCase();
|
||||
String tableName = model.getTableName();//表名称
|
||||
String type = model.getType();//field=表字段
|
||||
String controlType = model.getControlType();//控件类型 //text控件 custom=自定义
|
||||
String value = model.getValue();
|
||||
DefaultDbFieldEnum defaultDbFieldEnum = DefaultDbFieldEnum.getByFieldCode(fieldCode.toLowerCase());
|
||||
if(Func.isNotEmpty(defaultDbFieldEnum)){
|
||||
continue;
|
||||
}
|
||||
|
||||
//控件类型
|
||||
if (Func.equals(controlType, "text") && Func.equals("field", type)) {
|
||||
@@ -1763,19 +1768,19 @@ public class FormServiceImpl extends ServiceImpl<FormMapper, FormEntity> impleme
|
||||
if (Func.isEmpty(dbFormId)) {
|
||||
//构建空的
|
||||
FormFieldEntity fieldEntity = new FormFieldEntity();
|
||||
fieldEntity.setFieldCode(fieldCode);
|
||||
fieldEntity.setFieldCode(finaiFieldCode);
|
||||
fieldList.add(fieldEntity);
|
||||
|
||||
FormFieldDictEntity fieldDictEntity = new FormFieldDictEntity();
|
||||
fieldDictEntity.setFieldCode(fieldCode);
|
||||
fieldDictEntity.setFieldCode(finaiFieldCode);
|
||||
dictList.add(fieldDictEntity);
|
||||
|
||||
FormFieldQueryEntity formFieldQueryEntity = new FormFieldQueryEntity();
|
||||
formFieldQueryEntity.setFieldCode(fieldCode);
|
||||
formFieldQueryEntity.setFieldCode(finaiFieldCode);
|
||||
queryList.add(formFieldQueryEntity);
|
||||
|
||||
FormFieldWebEntity formFieldWebEntity = new FormFieldWebEntity();
|
||||
formFieldWebEntity.setFieldCode(fieldCode);
|
||||
formFieldWebEntity.setFieldCode(finaiFieldCode);
|
||||
webList.add(formFieldWebEntity);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.jeelowcode.core.framework.config.btncommand.receiver.ButtonReceiverBase;
|
||||
import com.jeelowcode.framework.plus.component.DbManager;
|
||||
import com.jeelowcode.core.framework.entity.*;
|
||||
import com.jeelowcode.core.framework.mapper.FormFieldForeignkeyMapper;
|
||||
@@ -448,6 +449,9 @@ public class FrameServiceImpl implements IFrameService {
|
||||
|
||||
//查所有
|
||||
SqlInfoQueryWrapper.Wrapper wrapper = this.getDataQueryWrapper(formEntity, params);
|
||||
if (Func.isEmpty(wrapper)) {
|
||||
return new ResultDataModel();
|
||||
}
|
||||
Map<String, Object> dataMap = sqlService.getDataOneByPlus(wrapper);
|
||||
if (FuncBase.isEmpty(dataMap)) {
|
||||
return new ResultDataModel();
|
||||
@@ -489,6 +493,7 @@ public class FrameServiceImpl implements IFrameService {
|
||||
ResultDataModel subDataModel = proxyService.getDataList(subDbFormId,subParamMap);
|
||||
|
||||
List<Map<String, Object>> subDataList = subDataModel.getRecords();
|
||||
new ButtonReceiverBase().webViewAppend(subDbFormId,subDataList);
|
||||
subTableDataMap.put(subTable, subDataList);
|
||||
}
|
||||
}
|
||||
@@ -651,10 +656,10 @@ public class FrameServiceImpl implements IFrameService {
|
||||
|
||||
long size = Func.isEmpty(page)?JeeLowCodeConstant.NOT_PAGE: page.getSize();
|
||||
if (size == JeeLowCodeConstant.NOT_PAGE) {//列表
|
||||
dataList = sqlService.getDataListByPlus(wrapper);
|
||||
dataList = sqlService.getDataListByPlus(wrapper,params);
|
||||
total = (long) dataList.size();
|
||||
} else {//分页
|
||||
IPage<Map<String, Object>> pages = sqlService.getDataIPageByPlus(page, wrapper);
|
||||
IPage<Map<String, Object>> pages = sqlService.getDataIPageByPlus(page, wrapper,params);
|
||||
//处理字典回显
|
||||
dataList = pages.getRecords();
|
||||
total = pages.getTotal();
|
||||
@@ -692,10 +697,10 @@ public class FrameServiceImpl implements IFrameService {
|
||||
//编辑数据
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public ExecuteEnhanceModel editData(Long dbFormId, Long dataId, Map<String, Object> params) {
|
||||
public ExecuteEnhanceModel editData(Long dbFormId, Long id, Map<String, Object> params) {
|
||||
FrameServiceImpl proxyService = SpringUtils.getBean(FrameServiceImpl.class);
|
||||
//编辑主表
|
||||
ExecuteEnhanceModel enhanceModel = proxyService.editPublicData(dbFormId, dataId, params);
|
||||
ExecuteEnhanceModel enhanceModel = proxyService.editPublicData(dbFormId, id, params);
|
||||
|
||||
List<String> allSubTableNameList = dbFormService.getAllSubTableNameList(dbFormId);
|
||||
if (Func.isEmpty(allSubTableNameList)) {//当前不是主表
|
||||
@@ -703,7 +708,7 @@ public class FrameServiceImpl implements IFrameService {
|
||||
}
|
||||
|
||||
//保存子表数据-新增或者修改
|
||||
this.saveOrUpdateSubTableData(dbFormId, dataId, params);
|
||||
this.saveOrUpdateSubTableData(dbFormId, id, params);
|
||||
return enhanceModel;
|
||||
|
||||
}
|
||||
@@ -730,7 +735,7 @@ public class FrameServiceImpl implements IFrameService {
|
||||
|
||||
boolean serviceTableFlag = dbFormService.isServiceTable(dbFormId);
|
||||
if (!serviceTableFlag) {//当前不是业务表
|
||||
return null;
|
||||
return new ExecuteEnhanceModel();
|
||||
}
|
||||
String tableName = dbFormService.getTableName(dbFormId);//获取表名
|
||||
|
||||
@@ -797,7 +802,7 @@ public class FrameServiceImpl implements IFrameService {
|
||||
public ExecuteEnhanceModel savePublicData(Long dbFormId, Map<String, Object> params) {
|
||||
boolean serviceTableFlag = dbFormService.isServiceTable(dbFormId);
|
||||
if (!serviceTableFlag) {//当前不是业务表
|
||||
return null;
|
||||
return new ExecuteEnhanceModel();
|
||||
}
|
||||
|
||||
String tableName = dbFormService.getTableName(dbFormId);//获取表名
|
||||
@@ -816,11 +821,11 @@ public class FrameServiceImpl implements IFrameService {
|
||||
|
||||
|
||||
//公共编辑
|
||||
public ExecuteEnhanceModel editPublicData(Long dbFormId, Long dataId, Map<String, Object> params) {
|
||||
public ExecuteEnhanceModel editPublicData(Long dbFormId, Long id, Map<String, Object> params) {
|
||||
|
||||
boolean serviceTableFlag = dbFormService.isServiceTable(dbFormId);
|
||||
if (!serviceTableFlag) {//当前不是业务表
|
||||
return null;
|
||||
return new ExecuteEnhanceModel();
|
||||
}
|
||||
|
||||
String tableName = dbFormService.getTableName(dbFormId);//获取表名
|
||||
@@ -834,13 +839,13 @@ public class FrameServiceImpl implements IFrameService {
|
||||
.setTableName(tableName)
|
||||
.setMap(dataMap)
|
||||
.setWhere(where -> {
|
||||
where.eq("id", dataId);
|
||||
where.eq("id", id);
|
||||
}).build();
|
||||
|
||||
sqlService.updateDataByPlus(wrapper);
|
||||
|
||||
ExecuteEnhanceModel saveDataModel = new ExecuteEnhanceModel();
|
||||
saveDataModel.setId(FuncBase.toStr(dataId));
|
||||
saveDataModel.setId(FuncBase.toStr(id));
|
||||
return saveDataModel;
|
||||
}
|
||||
|
||||
@@ -1008,6 +1013,8 @@ public class FrameServiceImpl implements IFrameService {
|
||||
}
|
||||
//直接执行数据源
|
||||
queryWrapper.setTableSql(dataSourceConfigModel.getExecuteSql());
|
||||
//处理占位符参数
|
||||
Func.replaceParam(dataSourceConfigModel.getExecuteSql(), params, null, jeeLowCodeAdapter);
|
||||
}
|
||||
|
||||
//处理排序排序================
|
||||
@@ -1046,6 +1053,9 @@ public class FrameServiceImpl implements IFrameService {
|
||||
//直接执行数据源
|
||||
queryWrapper.setTableSql(dataSourceConfigModel.getExecuteSql());
|
||||
|
||||
//处理占位符参数
|
||||
Func.replaceParam(dataSourceConfigModel.getExecuteSql(), params, null, jeeLowCodeAdapter);
|
||||
|
||||
//处理排序排序================
|
||||
this.handleOrderBy(queryWrapper, params, null);
|
||||
|
||||
|
||||
@@ -36,4 +36,6 @@ public interface EnhanceConstant {
|
||||
|
||||
String ENHANCE_EVENT_START = "start";//开始
|
||||
String ENHANCE_EVENT_END = "end";//结束
|
||||
|
||||
|
||||
}
|
||||
@@ -14,6 +14,11 @@ http://www.apache.org/licenses/
|
||||
package com.jeelowcode.framework.utils.enums;
|
||||
|
||||
|
||||
import com.jeelowcode.framework.utils.utils.FuncBase;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 数据库默认字段
|
||||
*/
|
||||
@@ -47,4 +52,16 @@ public enum DefaultDbFieldEnum {
|
||||
this.fieldCode = fieldCode;
|
||||
this.fieldName = fieldName;
|
||||
}
|
||||
|
||||
public static DefaultDbFieldEnum getByFieldCode(String fieldCode) {
|
||||
Optional<DefaultDbFieldEnum> matchingEnum = Arrays.stream(DefaultDbFieldEnum.values())
|
||||
.filter(DefaultDbFieldEnum -> FuncBase.equals(DefaultDbFieldEnum.getFieldCode(), fieldCode))
|
||||
.findFirst(); // findFirst()会返回第一个匹配的元素,或者如果找不到则返回一个空的Optional
|
||||
// 检查是否找到了匹配的枚举项
|
||||
if (matchingEnum.isPresent()) {
|
||||
return matchingEnum.get();
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
|
||||
}
|
||||
//清空缓存
|
||||
permissionService.clearCache(user.getId());
|
||||
permissionService.clearCacheIgnoreTenant(user.getId());
|
||||
try{
|
||||
Thread.sleep(2000L);
|
||||
}catch (Exception e){
|
||||
|
||||
@@ -146,4 +146,6 @@ public interface PermissionService {
|
||||
//清除缓存
|
||||
Boolean clearCache(Long userId);
|
||||
|
||||
//清除缓存忽略租户
|
||||
Boolean clearCacheIgnoreTenant(Long userId);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||
import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||
@@ -359,6 +360,19 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
return true;
|
||||
}
|
||||
|
||||
//清除缓存忽略租户
|
||||
@TenantIgnore
|
||||
public Boolean clearCacheIgnoreTenant(Long userId){
|
||||
try{
|
||||
PermissionServiceImpl bean = SpringUtil.getBean(PermissionServiceImpl.class);
|
||||
bean.clearCache(userId);
|
||||
Thread.sleep(500L);
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得自身的代理对象,解决 AOP 生效问题
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user