From 3ea4aac18ce00e37ba2f6e7898d7e68f762b7282 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Mon, 8 Nov 2021 14:47:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20icform/items?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0redis=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisKeys.java | 10 ++++++++ .../epmet/service/impl/IcFormServiceImpl.java | 24 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 62557e2892..423ac83966 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -593,4 +593,14 @@ public class RedisKeys { public static String getIcFormKeyForExport(String formCode,String customerId) { return rootPrefix.concat("icform:").concat(formCode).concat(":export:").concat(customerId); } + + /** + * icd form items key + * @param customerId + * @param formCode + * @return + */ + public static String getIcFormItemsKey(String customerId, String formCode) { + return rootPrefix.concat("icform:").concat(formCode).concat(":items:").concat(customerId); + } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index 06da023015..1170a08309 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -17,6 +17,9 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -24,6 +27,8 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcFormDao; import com.epmet.dto.IcFormDTO; @@ -36,12 +41,15 @@ import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.IcFormService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Optional; /** * 配置表单 @@ -53,6 +61,9 @@ import java.util.Map; public class IcFormServiceImpl extends BaseServiceImpl implements IcFormService { @Autowired private CustomerFootBarRedis customerFootBarRedis; + + @Autowired + private RedisUtils redisUtils; @Override public PageData page(Map params) { @@ -134,6 +145,16 @@ public class IcFormServiceImpl extends BaseServiceImpl @Override public List listItems(String customerId, String formCode) { + // 从redis取 + String icFormItemsKey = RedisKeys.getIcFormItemsKey(customerId, formCode); + + Object objValue = redisUtils.get(icFormItemsKey); + if (objValue != null) { + return ((JSONArray) objValue).toJavaList(FormItem.class); + //return JSON.parseObject((String) objValue, type); + } + + // 从db取 CustomerFormResultDTO formResultDto=baseDao.selectByCode(customerId, formCode); if (null == formResultDto) { throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(),EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); @@ -143,6 +164,9 @@ public class IcFormServiceImpl extends BaseServiceImpl formItems.forEach(i -> { i.setOptions(baseDao.selectListOption(i.getItemId())); }); + + // 缓存 + redisUtils.set(icFormItemsKey, formItems); return formItems; }