From 48989d38c871957d33c58c9ac7f162bad7d9fb97 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期四, 01 六月 2023 15:22:00 +0800
Subject: [PATCH] 表单设计器--事件
---
src/main/java/com/product/face/service/FaceCacheService.java | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 170 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/product/face/service/FaceCacheService.java b/src/main/java/com/product/face/service/FaceCacheService.java
index 731c05c..4df8413 100644
--- a/src/main/java/com/product/face/service/FaceCacheService.java
+++ b/src/main/java/com/product/face/service/FaceCacheService.java
@@ -1,7 +1,23 @@
package com.product.face.service;
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
+import com.product.common.lang.StringUtils;
+import com.product.core.cache.util.RedisUtil;
+import com.product.core.entity.DataTableEntity;
+import com.product.core.entity.FieldSetEntity;
import com.product.core.service.support.AbstractBaseService;
+import com.product.face.config.FaceConst;
+import com.product.face.entity.FaceEntity;
+import com.product.face.entity.FaceListEntity;
+import com.product.face.entity.TableColumn;
+import com.product.face.util.FaceUtil;
+import com.product.util.BaseUtil;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* @Author cheng
@@ -11,13 +27,163 @@
@Service
public class FaceCacheService extends AbstractBaseService {
- public final static String FACE_CACHE_KEY = "system:face:";
-
+ /**
+ * 鍒锋柊琛ㄥ崟缂撳瓨(core璋冪敤锛�
+ */
public void refreshCache() {
-
+ this.loadingCache(null);
}
+ /**
+ * 鍒锋柊琛ㄥ崟缂撳瓨(core璋冪敤锛�
+ *
+ * @param uuid
+ */
public void refreshCache(String uuid) {
-
+ this.loadingCache(uuid);
}
+
+ /**
+ * 绯荤粺鍔犺浇琛ㄥ崟缂撳瓨
+ *
+ * @param uuid
+ */
+ private void loadingCache(String uuid) {
+ String filter = BaseUtil.ifNotNull(uuid, (val) -> "uuid=?");
+ Object[] objects = null;
+ if (!StringUtils.isEmpty(uuid)) {
+ objects = new Object[]{uuid};
+ }
+ DataTableEntity dt = getBaseDao().listTable(FaceConst.TABLE_FACE_CONFIG, filter, objects, null, null, Integer.MAX_VALUE, 1, true);
+ if (DataTableEntity.isEmpty(dt)) {
+ return;
+ }
+ for (FieldSetEntity fs : dt.getData()) {
+ String faceType = fs.getString(FaceConst.FIELD_FACE_TYPE);
+ if (StringUtils.isEmpty(faceType)) {
+ continue;
+ }
+ String faceNumber = fs.getString(FaceConst.FIELD_FACE_NUMBER);
+ if (StringUtils.isEmpty(faceNumber)) {
+ continue;
+ }
+ if ("2".equals(faceType)) {
+ //琛ㄥ崟
+ loadingFormCache(fs);
+ } else if ("1".equals(faceType)) {
+ //鍒楄〃
+ loadingListCache(fs);
+ }
+ }
+ }
+
+ /**
+ * 鑾峰彇鍒楄〃缂撳瓨
+ *
+ * @param faceNumber
+ * @return
+ */
+ public FaceListEntity getFaceListCache(String faceNumber) {
+ if (StringUtils.isEmpty(faceNumber)) {
+ return null;
+ }
+ final String faceListKey = FaceConst.FACE_LIST_KEY + ":face-number" + faceNumber;
+ return (FaceListEntity) RedisUtil.get(faceListKey);
+ }
+
+ /**
+ * 鑾峰彇琛ㄥ崟缂撳瓨
+ *
+ * @param faceNumber
+ * @return
+ */
+ public FaceEntity getFaceFormCache(String faceNumber) {
+ if (StringUtils.isEmpty(faceNumber)) {
+ return null;
+ }
+ return (FaceEntity) RedisUtil.get(FaceConst.FACE_FORM_CACHE_KEY + faceNumber);
+ }
+
+ /**
+ * 鍔犺浇琛ㄥ崟缂撳瓨
+ *
+ * @param fse
+ */
+ public void loadingFormCache(FieldSetEntity fse) {
+ DataTableEntity fieldPropertyDt = fse.getSubDataTable(FaceConst.TABLE_FACE_FIELD_CONTROL_PROPERTY);
+ if (DataTableEntity.isEmpty(fieldPropertyDt)) {
+ return;
+ }
+ fse.getSubData().clear();
+ String faceNumber = fse.getString(FaceConst.FIELD_FACE_NUMBER);
+ List<JSONObject> faceControlList = FaceUtil.getFaceControlList(fse,fieldPropertyDt);
+ if (faceControlList != null) {
+ FaceEntity face = new FaceEntity();
+ face.setData(BaseUtil.fieldSetEntityToJson(fse));
+ face.setDrawingList(faceControlList);
+ RedisUtil.set(FaceConst.FACE_FORM_CACHE_KEY + faceNumber, face);
+ }
+ }
+
+ /**
+ * 鍔犺浇鍒楄〃缂撳瓨
+ *
+ * @param fse
+ */
+ public void loadingListCache(FieldSetEntity fse) {
+ DataTableEntity fieldPropertyDt = fse.getSubDataTable(FaceConst.TABLE_FACE_FIELD_CONTROL_PROPERTY);
+ if (DataTableEntity.isEmpty(fieldPropertyDt)) {
+ return;
+ }
+ List<JSONObject> faceControlList = FaceUtil.getFaceControlList(fse,fieldPropertyDt);
+ JSONObject jsonObject = faceControlList.get(0);
+ if (jsonObject == null || jsonObject.isEmpty()) {
+ return;
+ }
+ //琛ㄦ牸鍒�
+ JSONArray tableColumns = jsonObject.getJSONObject(FaceConst.FIELD_PROPERTY_CONFIG).getJSONArray(FaceConst.CHILDREN);
+ if (tableColumns == null || tableColumns.isEmpty()) {
+ return;
+ }
+ String faceNumber = fse.getString(FaceConst.FIELD_FACE_NUMBER);
+ String tableUuid = fse.getString(FaceConst.FIELD_TABLE_UUID);
+ List<TableColumn> result = Lists.newArrayList();
+ FaceListEntity faceListEntity = new FaceListEntity();
+ faceListEntity.setFaceName(faceNumber);
+ faceListEntity.setTableUuid(tableUuid);
+ faceListEntity.setUuid(fse.getUUID());
+ for (int i = 0; i < tableColumns.size(); i++) {
+ TableColumn tableColumn = new TableColumn();
+ JSONObject columnJson = tableColumns.getJSONObject(i);
+ String fieldName = columnJson.getString(FaceConst.FIELD_PROPERTY_VMODEL);
+ if (StringUtils.isEmpty(fieldName)) {
+ continue;
+ }
+
+
+ JSONObject config = columnJson.getJSONObject(FaceConst.FIELD_PROPERTY_CONFIG);
+
+ Object setWidth = config.get("setWidth");
+ if (!StringUtils.isEmpty(setWidth)) {
+ tableColumn.setColumnWidth(setWidth + "%");
+ }
+ FieldSetEntity fieldInfo = BaseUtil.getSingleInfoByCache("琛ㄥ瓧娈典俊鎭�", new String[]{tableUuid, fieldName});
+ String label = config.getString(FaceConst.FIELD_PROPERTY_LABEL);
+ String fieldUuid = null;
+ String fieldReference = null;
+ if (!FieldSetEntity.isEmpty(fieldInfo)) {
+ fieldUuid = fieldInfo.getString(FaceConst.UUID);
+ fieldReference = fieldInfo.getString(FaceConst.FIELD_FIELD_REFERENCE);
+ }
+ faceListEntity.addField(fieldName, fieldUuid, label, tableColumn.getColumnWidth(), i, fieldReference);
+ tableColumn.setField(fieldName);
+ tableColumn.setTitle(config.getString(FaceConst.FIELD_PROPERTY_LABEL));
+ result.add(tableColumn);
+ }
+ //楠岃瘉琛ㄥ崟涓殑瀛楁鏄惁瀛樺湪
+ if (faceListEntity != null && !CollectionUtil.isEmpty(faceListEntity.getFaceFields())) {
+ RedisUtil.set(FaceConst.FACE_LIST_KEY + ":face-number" + faceNumber, faceListEntity);
+ }
+ }
+
}
--
Gitblit v1.9.2