From b119f3a31de2a459b56e7fde5dbd02d58a148f72 Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期二, 06 六月 2023 18:08:39 +0800 Subject: [PATCH] 表单bug --- src/main/java/com/product/face/service/FaceCacheService.java | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 171 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..5b0b933 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,164 @@ @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; + } + FaceEntity face = (FaceEntity) RedisUtil.get(FaceConst.FACE_FORM_CACHE_KEY + faceNumber); + return face; + } + + /** + * 鍔犺浇琛ㄥ崟缂撳瓨 + * + * @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