Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
28554bf0a2
  1. 17
      src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java
  2. 53
      src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java

17
src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.exl.common;
import com.alibaba.fastjson.JSONObject;
import com.qs.serve.modules.exl.entity.ExlColumnConf;
import java.util.HashMap;
@ -41,4 +42,20 @@ public class TableCreateSqlUtil {
return result.append(") COMMENT = '"+tableRemark+"' ").toString();
}
public static String buildUnionId(List<ExlColumnConf> columnList, JSONObject jsonObject ){
StringBuilder unionId = new StringBuilder();
for (ExlColumnConf columnConf : columnList) {
if(columnConf.getKeyFlag().equals(1)){
String val = jsonObject.getString(columnConf.getColumnName());
val = val == null||val.length()<1? "null_":val+"_";
unionId.append(val);
}
}
String tmp = unionId.toString().replace("null_","");
if(tmp.length()<1){
return null;
}
return unionId.toString();
}
}

53
src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java

@ -1,14 +1,19 @@
package com.qs.serve.modules.exl.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.exl.common.ExlConst;
import com.qs.serve.modules.exl.common.QsSqlSessionUtil;
import com.qs.serve.modules.exl.common.TableCreateSqlUtil;
import com.qs.serve.modules.exl.entity.ExlColumnConf;
import com.qs.serve.modules.exl.entity.ExlTableConf;
import com.qs.serve.modules.exl.entity.dto.ExlConditionDto;
@ -19,6 +24,7 @@ import com.qs.serve.modules.exl.service.ExlColumnConfService;
import com.qs.serve.modules.exl.service.ExlTableConfService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@ -42,7 +48,7 @@ public class ExlTableDataController {
private ExlTableConfService exlTableConfService;
private ExlColumnConfService exlColumnConfService;
private SqlSessionTemplate sqlSessionTemplate;
private ExlTableConfMapper exlTableConfMapper;
/**
@ -109,11 +115,48 @@ public class ExlTableDataController {
* @return
*/
@PostMapping("/batchSave/{tableConfigId}")
public R<?> batchSave(@RequestBody List<Object> param){
for (Object obj : param) {
public R<?> batchSave(@PathVariable Long tableConfigId, @RequestBody List<Object> param){
// table
ExlTableConf tableConf = exlTableConfService.getById(tableConfigId);
// columns
LambdaQueryWrapper<ExlColumnConf> columnLqw = new LambdaQueryWrapper<>();
columnLqw.eq(ExlColumnConf::getTableConfId,tableConfigId);
List<ExlColumnConf> columnList = exlColumnConfService.list(columnLqw);
String targetTableName = ExlConst.TABLE_NAME_PRE + tableConf.getTableName();
//insert into table (cloumns) values (vals),(vals)
StringBuilder insertSql = new StringBuilder("insert into "+targetTableName +"( `union_row_id`,");
for (int i = 0; i < columnList.size(); i++) {
insertSql.append(" `"+columnList.get(i).getColumnName()+"` ");
if(i+1<columnList.size()){
insertSql.append(",");
}
}
insertSql.append(")values");
for (int k = 0; k < param.size(); k++) {
Object obj = param.get(k);
insertSql.append("(");
JSONObject jsonObject = JSONObject.parseObject(JsonUtil.objectToJson(obj));
String unionId = TableCreateSqlUtil.buildUnionId(columnList,jsonObject);
if(unionId==null){
unionId = IdUtil.nanoId();
}
insertSql.append("'"+unionId+"',");
for (int i = 0; i < columnList.size(); i++) {
ExlColumnConf columnConf = columnList.get(i);
String string = jsonObject.getString(columnConf.getColumnName());
insertSql.append("'"+string+"'");
if(i+1<columnList.size()){
insertSql.append(", ");
}
}
insertSql.append(")");
if(k+1<param.size()){
insertSql.append(", ");
}
}
return R.ok(param);
QsSqlSessionUtil.executeSql(insertSql.toString(),sqlSessionTemplate);
return R.ok(insertSql);
}

Loading…
Cancel
Save