Browse Source

项目看板接口速度优化

master
gjh 2 months ago
parent
commit
ec6198edc5
  1. 23
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

23
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

@ -3,6 +3,7 @@ package com.easy.admin.modules.huzhou.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -41,6 +42,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@ -54,10 +56,7 @@ import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service
@ -121,6 +120,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Autowired
private HuzhouInformationMaterialMapper informationMaterialMapper;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Override
public void submitProject(MultipartFile[] multipartFile, HuzhouProjectinfo info) throws IOException {
@ -2701,6 +2702,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
public List<HuzhouProjectinfo> queryBoardInfo() {
// 记录开始时间
long startTime = System.currentTimeMillis();
String redisKey = "huzhou_board_info";
// 如果存在缓存数据,则直接返回缓存数据
String cacheData = stringRedisTemplate.opsForValue().get(redisKey);
log.info("***查询晾晒看板,缓存键:{}", redisKey);
if (StringUtils.isNotBlank(cacheData)){
List<HuzhouProjectinfo> projectInfoList = JSON.parseArray(cacheData, HuzhouProjectinfo.class);
long endTime = System.currentTimeMillis();
log.info("查询出{}条数据,查询Redis缓存耗时:{}ms",projectInfoList.size(), endTime-startTime);
return projectInfoList;
}
// 获取所有项目信息
List<HuzhouProjectinfo> projectInfoList = this.list();
@ -2760,6 +2772,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
.thenComparing(p -> Optional.ofNullable(p.getCurrentStage()).orElse("")))
.collect(Collectors.toList());
stringRedisTemplate.opsForValue().set(redisKey, JSON.toJSONString(projectInfoList));
stringRedisTemplate.expire(redisKey, 30, TimeUnit.MINUTES);
// 记录结束时间并计算耗时
long endTime = System.currentTimeMillis();
long duration = endTime - startTime;

Loading…
Cancel
Save