diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/Constants.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/Constants.java index d81a6b7..61c988f 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/Constants.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/Constants.java @@ -111,4 +111,14 @@ public class Constants { public static final String SM4_IV = "1234567890abcdef1234567890abcdef"; + /** + * 边带设备接入申请RedisKey + */ + public static final String TB_BD_RECORD_REDIS_KEY = "tb_bd_record"; + + /** + * 预警告警页面RedisKey + */ + public static final String TB_DEV_ATTRIBUTE_REDIS_KEY = "Tb_dev_Attribute"; + } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbBdRecordController.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbBdRecordController.java index ec9b50a..490c62d 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbBdRecordController.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbBdRecordController.java @@ -3,6 +3,7 @@ package com.bonus.base.controller; import com.bonus.base.domain.TbBdDeviceRecord; import com.bonus.base.domain.TbBdRecord; import com.bonus.base.service.TbBdRecordService; +import com.bonus.base.vo.PageResultVo; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.page.TableDataInfo; @@ -48,9 +49,8 @@ public class TbBdRecordController extends BaseController { @GetMapping("/list") public AjaxResult queryByPage(TbBdRecord tbBdRecord) { - startPage(); - List list = tbBdRecordService.getAll(tbBdRecord); - return AjaxResult.success(getDataTable(list)); + PageResultVo data = tbBdRecordService.getAll(tbBdRecord); + return AjaxResult.success(data); } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbDevAttributeController.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbDevAttributeController.java index 99300d1..650d82c 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbDevAttributeController.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbDevAttributeController.java @@ -4,6 +4,7 @@ import com.alibaba.nacos.common.utils.CollectionUtils; import com.bonus.base.domain.TbDevAttribute; import com.bonus.base.domain.TbDevDataRecord; import com.bonus.base.service.TbDevAttributeService; +import com.bonus.base.vo.PageResultVo; import com.bonus.base.vo.TbDevAttributeVo; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; @@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; import javax.servlet.http.HttpServletResponse; +import java.util.Collections; import java.util.List; /** @@ -39,9 +41,8 @@ public class TbDevAttributeController extends BaseController { @GetMapping("/list") public AjaxResult queryByPage(TbDevAttribute record) { - startPage(); - List list = tbDevAttributeService.queryAll(record); - return AjaxResult.success(getDataTable(list)); + PageResultVo data = tbDevAttributeService.queryAll(record); + return AjaxResult.success(data); } /** @@ -81,7 +82,8 @@ public class TbDevAttributeController extends BaseController { */ @PostMapping("/export") public void export(HttpServletResponse response, TbDevAttribute record) { - List list = tbDevAttributeService.queryAll(record); + PageResultVo pageResult = tbDevAttributeService.queryAll(record); + List list = pageResult != null ? pageResult.getRows() : Collections.emptyList(); if (CollectionUtils.isNotEmpty(list)) { for (TbDevAttributeVo attribute : list) { if (attribute.getWarnName() == null) { diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbBdRecord.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbBdRecord.java index bcd38bc..f8d717f 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbBdRecord.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbBdRecord.java @@ -156,4 +156,14 @@ public class TbBdRecord implements Serializable { private List recordList; private static final long serialVersionUID = 1L; + + /** + * 分页参数条数 + */ + private int pageNum; + + /** + * 分页参数页码 + */ + private int pageSize; } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbDevAttribute.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbDevAttribute.java index 05a0e27..7b5c75c 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbDevAttribute.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbDevAttribute.java @@ -109,5 +109,15 @@ public class TbDevAttribute implements Serializable { @ApiModelProperty(value="结束时间") private String endTime; + /** + * 分页参数条数 + */ + private int pageNum; + + /** + * 分页参数页码 + */ + private int pageSize; + private static final long serialVersionUID = 1L; } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbBdRecordService.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbBdRecordService.java index 12c094e..d32b0f2 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbBdRecordService.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbBdRecordService.java @@ -2,6 +2,7 @@ package com.bonus.base.service; import com.bonus.base.domain.TbBdDeviceRecord; import com.bonus.base.domain.TbBdRecord; +import com.bonus.base.vo.PageResultVo; import com.bonus.common.core.web.domain.AjaxResult; import java.util.List; @@ -53,7 +54,7 @@ public interface TbBdRecordService { * @param record * @return */ - List getAll(TbBdRecord record); + PageResultVo getAll(TbBdRecord record); /** * 审核 diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbDevAttributeService.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbDevAttributeService.java index 624ce49..455ce7e 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbDevAttributeService.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbDevAttributeService.java @@ -3,6 +3,7 @@ package com.bonus.base.service; import java.util.List; import com.bonus.base.domain.TbDevAttribute; import com.bonus.base.domain.TbDevDataRecord; +import com.bonus.base.vo.PageResultVo; import com.bonus.base.vo.TbDevAttributeVo; import com.bonus.common.core.web.domain.AjaxResult; @@ -25,7 +26,7 @@ public interface TbDevAttributeService{ int updateBatch(List list); - List queryAll(TbDevAttribute record); + PageResultVo queryAll(TbDevAttribute record); /** * 预警告警异常记录处理 diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbBdRecordServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbBdRecordServiceImpl.java index 726d216..7a5439e 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbBdRecordServiceImpl.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbBdRecordServiceImpl.java @@ -2,13 +2,18 @@ package com.bonus.base.service.impl; import cn.hutool.core.util.PhoneUtil; import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.base.config.Constants; import com.bonus.base.config.ExceptionEnum; import com.bonus.base.domain.TbBdDeviceRecord; import com.bonus.base.mapper.TbBdDeviceRecordMapper; +import com.bonus.base.vo.PageResultVo; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.redis.service.RedisService; import com.bonus.common.security.utils.SecurityUtils; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; @@ -17,12 +22,15 @@ import com.bonus.base.domain.TbBdRecord; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import com.bonus.base.mapper.TbBdRecordMapper; import com.bonus.base.service.TbBdRecordService; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** *@PackagePath: com.bonus.base.service.impl *@author : 阮世耀 @@ -39,6 +47,9 @@ public class TbBdRecordServiceImpl implements TbBdRecordService{ @Autowired private TbBdDeviceRecordMapper tbBdDeviceRecordMapper; + @Resource + private RedisService redisService; + @Override @Transactional(rollbackFor = Exception.class) public AjaxResult deleteByPrimaryKey(Long id) { @@ -174,16 +185,36 @@ public class TbBdRecordServiceImpl implements TbBdRecordService{ } @Override - public List getAll(TbBdRecord record){ - List list = tbBdRecordMapper.getAll(record); - if (list != null && list.size() > 0) { - List recordList = list.stream().filter(tbBdRecord -> tbBdRecord.getDepartName() != null).collect(Collectors.toList()); - for (TbBdRecord tbBdRecord : recordList) { - //对手机号进行解密处理 - tbBdRecord.setRelPhone(Sm4Utils.decode(tbBdRecord.getRelPhone())); - } + public PageResultVo getAll(TbBdRecord record){ + List list = redisService.getCacheObject(Constants.TB_BD_RECORD_REDIS_KEY); + if (list == null || list.isEmpty()) { + // 从数据库获取数据并缓存 + list = tbBdRecordMapper.getAll(record); + redisService.setCacheObject(Constants.TB_BD_RECORD_REDIS_KEY, list, 10L, TimeUnit.MINUTES); } - return list; + // 处理手机号解密 + if (list != null && list.size() > 0) { + list.stream() + .filter(tbBdRecord -> tbBdRecord.getDepartName() != null) + .forEach(tbBdRecord -> tbBdRecord.setRelPhone(Sm4Utils.decode(tbBdRecord.getRelPhone()))); + } + // 手动计算分页信息 + int pageNum = record.getPageNum() == 0 ? 1 : record.getPageNum(); + int pageSize = record.getPageSize() == 0 ? 10 : record.getPageSize(); + int total = list.size(); + int totalPages = (int) Math.ceil((double) total / pageSize); + // 手动分页,获取当前页的数据 + int startIndex = (pageNum - 1) * pageSize; + int endIndex = Math.min(startIndex + pageSize, total); + List currentPageData = list.subList(startIndex, endIndex); + // 构建返回结果对象 + PageResultVo pageResult = new PageResultVo<>(); + pageResult.setTotal(total); + pageResult.setTotalPageCount(totalPages); + pageResult.setRows(currentPageData); + pageResult.setPageNum(pageNum); + pageResult.setPageSize(pageSize); + return pageResult; } /** diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbDevAttributeServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbDevAttributeServiceImpl.java index d900dcb..bd8aa00 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbDevAttributeServiceImpl.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbDevAttributeServiceImpl.java @@ -1,17 +1,26 @@ package com.bonus.base.service.impl; import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.base.config.Constants; +import com.bonus.base.domain.TbBdRecord; import com.bonus.base.domain.TbDevDataRecord; +import com.bonus.base.vo.PageResultVo; import com.bonus.base.vo.TbDevAttributeVo; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.redis.service.RedisService; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; +import java.util.concurrent.TimeUnit; + import com.bonus.base.mapper.TbDevAttributeMapper; import com.bonus.base.domain.TbDevAttribute; import com.bonus.base.service.TbDevAttributeService; + +import javax.annotation.Resource; + /** *@PackagePath: com.bonus.base.service.impl *@author : 阮世耀 @@ -25,6 +34,9 @@ public class TbDevAttributeServiceImpl implements TbDevAttributeService{ @Autowired private TbDevAttributeMapper tbDevAttributeMapper; + @Resource + private RedisService redisService; + @Override public int deleteByPrimaryKey(Long id) { return tbDevAttributeMapper.deleteByPrimaryKey(id); @@ -61,19 +73,37 @@ public class TbDevAttributeServiceImpl implements TbDevAttributeService{ } @Override - public List queryAll(TbDevAttribute record){ - List list = tbDevAttributeMapper.queryAll(record); - if (CollectionUtils.isNotEmpty(list)) { - for (TbDevAttributeVo attribute : list) { - attribute.setWarnName(attribute.getDevName() + attribute.getJcName() + "检测异常"); - if ("0".equals(attribute.getStatus())) { - attribute.setStatus("未处置"); - } else if ("1".equals(attribute.getStatus())) { - attribute.setStatus("已处置"); - } - } + public PageResultVo queryAll(TbDevAttribute record) { + //先从缓存中查询 + List list = redisService.getCacheObject(Constants.TB_DEV_ATTRIBUTE_REDIS_KEY); + if (list == null || list.isEmpty()) { + // 从数据库获取数据并缓存 + list = tbDevAttributeMapper.queryAll(record); + redisService.setCacheObject(Constants.TB_DEV_ATTRIBUTE_REDIS_KEY, list, 10L, TimeUnit.MINUTES); } - return list; + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(attribute -> { + attribute.setWarnName(attribute.getDevName() + attribute.getJcName() + "检测异常"); + attribute.setStatus("0".equals(attribute.getStatus()) ? "未处置" : "1".equals(attribute.getStatus()) ? "已处置" : attribute.getStatus()); + }); + } + // 手动计算分页信息 + int pageNum = record.getPageNum() == 0 ? 1 : record.getPageNum(); + int pageSize = record.getPageSize() == 0 ? 10 : record.getPageSize(); + int total = list.size(); + int totalPages = (int) Math.ceil((double) total / pageSize); + // 手动分页,获取当前页的数据 + int startIndex = (pageNum - 1) * pageSize; + int endIndex = Math.min(startIndex + pageSize, total); + List currentPageData = list.subList(startIndex, endIndex); + // 构建返回结果对象 + PageResultVo pageResult = new PageResultVo<>(); + pageResult.setTotal(total); + pageResult.setTotalPageCount(totalPages); + pageResult.setRows(currentPageData); + pageResult.setPageNum(pageNum); + pageResult.setPageSize(pageSize); + return pageResult; } /** diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/vo/PageResultVo.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/vo/PageResultVo.java new file mode 100644 index 0000000..63b6339 --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/vo/PageResultVo.java @@ -0,0 +1,90 @@ +package com.bonus.base.vo; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/10/28 15:54 + */ +public class PageResultVo implements Serializable { + private static final long serialVersionUID = -3915666721968467471L; + private int pageNum; + private int pageSize; + private long total; + private int totalPageCount; + private List rows; + + public PageResultVo() { + } + + public PageResultVo(List rows, int total) { + this.rows = rows; + this.total = (long)total; + } + + public PageResultVo(int pageNum, int pageSize, long total, int totalPageCount, List rows) { + this.pageNum = pageNum; + this.pageSize = pageSize; + this.total = total; + this.totalPageCount = totalPageCount; + this.rows = rows; + } + + public boolean getFirstPage() { + return this.getPageNum() == 1; + } + + public long getPrevPage() { + return (long)Math.max(1, this.getPageNum() - 1); + } + + public long getNextPage() { + return (long)(this.getPageNum() + 1); + } + + public boolean getLastPage() { + return this.getPageNum() >= this.getTotalPageCount(); + } + + public int getPageNum() { + return this.pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public long getTotal() { + return this.total; + } + + public void setTotal(long total) { + this.total = total; + } + + public int getTotalPageCount() { + return this.totalPageCount; + } + + public void setTotalPageCount(int totalPageCount) { + this.totalPageCount = totalPageCount; + } + + public List getRows() { + return this.rows; + } + + public void setRows(List rows) { + this.rows = rows; + } +} +