|
@@ -4,11 +4,13 @@ import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.boman.common.core.utils.DateUtils;
|
|
import com.boman.common.core.utils.DateUtils;
|
|
|
|
+import com.boman.common.core.utils.SecurityUtils;
|
|
import com.boman.common.core.utils.collection.CollectionUtils;
|
|
import com.boman.common.core.utils.collection.CollectionUtils;
|
|
import com.boman.common.core.utils.obj.ObjectUtils;
|
|
import com.boman.common.core.utils.obj.ObjectUtils;
|
|
import com.boman.common.core.web.domain.AjaxResult;
|
|
import com.boman.common.core.web.domain.AjaxResult;
|
|
import com.boman.common.redis.RedisKey;
|
|
import com.boman.common.redis.RedisKey;
|
|
import com.boman.common.redis.service.RedisService;
|
|
import com.boman.common.redis.service.RedisService;
|
|
|
|
+import com.boman.gen.api.RemoteGenTableService;
|
|
import com.boman.gen.controller.MyController;
|
|
import com.boman.gen.controller.MyController;
|
|
import com.boman.gen.domain.GenTable;
|
|
import com.boman.gen.domain.GenTable;
|
|
import com.boman.gen.domain.GenTableColumn;
|
|
import com.boman.gen.domain.GenTableColumn;
|
|
@@ -26,6 +28,7 @@ import org.springframework.web.client.RestTemplate;
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.sql.Timestamp;
|
|
import java.sql.Timestamp;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.boman.common.core.utils.obj.ObjectUtils.*;
|
|
import static com.boman.common.core.utils.obj.ObjectUtils.*;
|
|
@@ -56,6 +59,8 @@ public class TableServiceCmdService {
|
|
private RestTemplate restTemplate;
|
|
private RestTemplate restTemplate;
|
|
@Resource
|
|
@Resource
|
|
private ISysDictTypeService dictTypeService;
|
|
private ISysDictTypeService dictTypeService;
|
|
|
|
+ @Resource
|
|
|
|
+ private RemoteGenTableService remoteGenTableService;
|
|
|
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(TableServiceCmdService.class);
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(TableServiceCmdService.class);
|
|
|
|
|
|
@@ -118,7 +123,7 @@ public class TableServiceCmdService {
|
|
public AjaxResult objectDelete(BaseTableSaveDTO dto) {
|
|
public AjaxResult objectDelete(BaseTableSaveDTO dto) {
|
|
requireNonNull(dto.getTable());
|
|
requireNonNull(dto.getTable());
|
|
Long[] idArr = CollectionUtils.listToArray(dto.getIdList());
|
|
Long[] idArr = CollectionUtils.listToArray(dto.getIdList());
|
|
- requiredNonNull(idArr);
|
|
|
|
|
|
+ requireNonNull(idArr);
|
|
// 拿到pkName
|
|
// 拿到pkName
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, dto.getTable());
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, dto.getTable());
|
|
String pkName = IdUtils.getPkName(genTable.getColumns());
|
|
String pkName = IdUtils.getPkName(genTable.getColumns());
|
|
@@ -145,7 +150,7 @@ public class TableServiceCmdService {
|
|
public AjaxResult objectLogicDelete(BaseTableSaveDTO dto) {
|
|
public AjaxResult objectLogicDelete(BaseTableSaveDTO dto) {
|
|
requireNonNull(dto.getTable());
|
|
requireNonNull(dto.getTable());
|
|
Long[] idArr = CollectionUtils.listToArray(dto.getIdList());
|
|
Long[] idArr = CollectionUtils.listToArray(dto.getIdList());
|
|
- requiredNonNull(idArr);
|
|
|
|
|
|
+ requireNonNull(idArr);
|
|
|
|
|
|
// 拿到pkName
|
|
// 拿到pkName
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, dto.getTable());
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, dto.getTable());
|
|
@@ -404,34 +409,38 @@ public class TableServiceCmdService {
|
|
if (!SubmitConstant.NOT_SUBMIT.equals(dbStatus)) {
|
|
if (!SubmitConstant.NOT_SUBMIT.equals(dbStatus)) {
|
|
commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.NOT_ALLOWED);
|
|
commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.NOT_ALLOWED);
|
|
} else {
|
|
} else {
|
|
- commitDatum.put(SubmitConstant.SUBMIT_USERID, 123);
|
|
|
|
- commitDatum.put(SubmitConstant.SUBMIT_TIME, new Timestamp(System.currentTimeMillis()));
|
|
|
|
- int effective = submitService.handlerSubmit(tableName, pkName, commitDatum, commitDatum.getLong(FormDataConstant.ID));
|
|
|
|
- if (effective > 0) {
|
|
|
|
- commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.SUCCESS);
|
|
|
|
- } else {
|
|
|
|
- commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.FAIL);
|
|
|
|
- }
|
|
|
|
|
|
+ handlerSubmit(tableName, pkName, commitDatum);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
// 只有在已提交的情况下才能反提交, 下面是不允许
|
|
// 只有在已提交的情况下才能反提交, 下面是不允许
|
|
if (!SubmitConstant.SUBMITTED.equals(dbStatus)) {
|
|
if (!SubmitConstant.SUBMITTED.equals(dbStatus)) {
|
|
commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.NOT_ALLOWED);
|
|
commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.NOT_ALLOWED);
|
|
} else {
|
|
} else {
|
|
- commitDatum.put(SubmitConstant.SUBMIT_USERID, 123);
|
|
|
|
- commitDatum.put(SubmitConstant.SUBMIT_TIME, new Timestamp(System.currentTimeMillis()));
|
|
|
|
- int effective = submitService.handlerSubmit(tableName, pkName, commitDatum, commitDatum.getLong(FormDataConstant.ID));
|
|
|
|
- if (effective > 0) {
|
|
|
|
- commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.SUCCESS);
|
|
|
|
- } else {
|
|
|
|
- commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.FAIL);
|
|
|
|
- }
|
|
|
|
|
|
+ handlerSubmit(tableName, pkName, commitDatum);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return AjaxResult.success(commitData);
|
|
return AjaxResult.success(commitData);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 功能描述: 处理提交和反提交
|
|
|
|
+ *
|
|
|
|
+ * @param tableName tableName
|
|
|
|
+ * @param pkName pkName
|
|
|
|
+ * @param commitDatum 返回给前台的数据
|
|
|
|
+ */
|
|
|
|
+ private void handlerSubmit(String tableName, String pkName, JSONObject commitDatum) {
|
|
|
|
+ commitDatum.put(FormDataConstant.CREATE_BY, SecurityUtils.getUserId());
|
|
|
|
+ commitDatum.put(FormDataConstant.CREATE_TIME, new Timestamp(System.currentTimeMillis()));
|
|
|
|
+ int effective = submitService.handlerSubmit(tableName, pkName, commitDatum, commitDatum.getLong(FormDataConstant.ID));
|
|
|
|
+ if (effective > 0) {
|
|
|
|
+ commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.SUCCESS);
|
|
|
|
+ } else {
|
|
|
|
+ commitDatum.put(SubmitConstant.SUBMIT_RESULT, SubmitConstant.FAIL);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
private String getStatusFromFormData(JSONObject next, List<JSONObject> commitData) {
|
|
private String getStatusFromFormData(JSONObject next, List<JSONObject> commitData) {
|
|
for (JSONObject jsonObject : commitData) {
|
|
for (JSONObject jsonObject : commitData) {
|
|
if (jsonObject.getLong(FormDataConstant.ID).equals(next.getLong(FormDataConstant.ID))) {
|
|
if (jsonObject.getLong(FormDataConstant.ID).equals(next.getLong(FormDataConstant.ID))) {
|
|
@@ -486,10 +495,25 @@ public class TableServiceCmdService {
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- // todo redis中未找到,要去查数据库,然后再塞进去
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 功能描述: 查询表从redis中
|
|
|
|
+ *
|
|
|
|
+ * @param redisKeyPrefix 前缀
|
|
|
|
+ * @param tableName 表名
|
|
|
|
+ * @return com.boman.gen.domain.GenTable
|
|
|
|
+ */
|
|
private GenTable getTableFromRedisByTableName(String redisKeyPrefix, String tableName) {
|
|
private GenTable getTableFromRedisByTableName(String redisKeyPrefix, String tableName) {
|
|
- GenTable genTable = redisService.getCacheObject(redisKeyPrefix + requireNonNull(tableName));
|
|
|
|
- return requireNonNull(genTable, "未找到表对应的信息");
|
|
|
|
|
|
+ String key = requireNonNull(redisKeyPrefix) + requireNonNull(tableName);
|
|
|
|
+ GenTable genTable = redisService.getCacheObject(key);
|
|
|
|
+ if (ObjectUtils.isEmpty(genTable)) {
|
|
|
|
+ genTable = remoteGenTableService.getByTableName(tableName);
|
|
|
|
+ requireNonNull(genTable, "未找到表对应的信息");
|
|
|
|
+ // {@link com.boman.gen.controller.MyController.packTableAndInsertToRedis} 失效时间
|
|
|
|
+ redisService.setCacheObject(key, genTable, 12L, TimeUnit.DAYS);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return genTable;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -503,7 +527,7 @@ public class TableServiceCmdService {
|
|
* @return com.boman.common.core.web.domain.AjaxResult
|
|
* @return com.boman.common.core.web.domain.AjaxResult
|
|
*/
|
|
*/
|
|
public AjaxResult getByTableName(BaseTableSaveDTO condition) {
|
|
public AjaxResult getByTableName(BaseTableSaveDTO condition) {
|
|
-// requiredNonNull(condition.getTable(), "表名为空");
|
|
|
|
|
|
+ requireNonNull(condition.getTable(), "表名为空");
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, condition.getTable());
|
|
GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, condition.getTable());
|
|
List<GenTableColumn> columns = genTable.getColumns();
|
|
List<GenTableColumn> columns = genTable.getColumns();
|
|
for (GenTableColumn column : columns) {
|
|
for (GenTableColumn column : columns) {
|