From 0f2fc0872069f0a5099cc535e6ff885b13937153 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期三, 10 十二月 2025 18:12:04 +0800
Subject: [PATCH] 网关配置页面
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java | 248 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 248 insertions(+), 0 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
new file mode 100644
index 0000000..0c67c5d
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
@@ -0,0 +1,248 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.RedisConst;
+import com.fzzy.igds.domain.GatewaySer;
+import com.fzzy.igds.mapper.GatewaySerMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysDeptService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/10 16:48
+ */
+@Slf4j
+@Service
+public class GatewaySerService {
+ @Resource
+ private GatewaySerMapper gatewaySerMapper;
+ @Resource
+ private ISysDeptService iSysDeptService;
+ @Resource
+ private RedisCache redisCache;
+
+ /**
+ * 鏍规嵁鏉′欢鏌ヨ鍒嗘満淇℃伅
+ *
+ * @param companyId
+ * @param deptId
+ * @param parentId
+ * @return
+ */
+ public List<GatewaySer> listDeviceSer(String companyId, String deptId, String parentId) {
+
+ QueryWrapper<GatewaySer> queryWrapper = new QueryWrapper<>();
+
+ if (StringUtils.isNotBlank(companyId)) {
+ queryWrapper.eq("company_id", companyId);
+ }
+ if (StringUtils.isNotBlank(deptId)) {
+ queryWrapper.eq("dept_id", deptId);
+ }
+ if (StringUtils.isNotBlank(parentId)) {
+ queryWrapper.likeRight("dept_id", parentId);
+ }
+
+ return gatewaySerMapper.selectList(queryWrapper);
+ }
+
+ /**
+ * 鏌ヨ鍒嗘満鍒楄〃
+ *
+ * @return
+ */
+ public List<GatewaySer> getAllSer() {
+ SysUser user = ContextUtil.getLoginUser();
+ SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
+ if (Constant.DEPT_TYPE_20.equals(userDept.getType())) {
+ return this.listDeviceSer(null, user.getDeptId() + "", null);
+ } else {
+ return this.listDeviceSer(null, null, user.getDeptId() + "");
+ }
+ }
+
+ /**
+ * 鏍规嵁鏉′欢鏌ヨ鍒嗘満淇℃伅
+ *
+ * @param id
+ * @return
+ */
+ public GatewaySer getById(String id) {
+ if(StringUtils.isBlank( id)){
+ return null;
+ }
+ return gatewaySerMapper.selectById(id);
+ }
+
+ /**
+ * 鏇存柊淇濆瓨鍒嗘満
+ *
+ * @param ser
+ */
+ public void saveSer(GatewaySer ser) {
+ if (null == ser.getSn()) {
+ ser.setSn(ser.getId());
+ }
+ if(null == ser.getOrderNum()){
+ ser.setOrderNum(1);
+ }
+ if (StringUtils.isEmpty(ser.getCompanyId())) {
+ ser.setCompanyId(ContextUtil.getCompanyId());
+ }
+ if (StringUtils.isEmpty(ser.getDeptId())) {
+ ser.setDeptId(ContextUtil.subDeptId(null));
+ }
+ if (StringUtils.isBlank(ser.getUpdateBy())) {
+ ser.setCreateBy(ContextUtil.getLoginUserName());
+ ser.setCreateTime(new Date());
+ ser.setUpdateBy(ContextUtil.getLoginUserName());
+ ser.setUpdateTime(new Date());
+ gatewaySerMapper.insert(ser);
+ } else {
+ ser.setUpdateBy(ContextUtil.getLoginUserName());
+ ser.setUpdateTime(new Date());
+ gatewaySerMapper.updateById(ser);
+ }
+
+ refreshCache(ser.getCompanyId());
+ }
+
+ /**
+ * 鏇存柊淇濆瓨鍒嗘満
+ *
+ * @param ser
+ */
+ public void delSer(GatewaySer ser) {
+ gatewaySerMapper.deleteById(ser);
+
+ //鍒犻櫎缂撳瓨
+ delCache(ser);
+
+ }
+
+ /**
+ * 鏍规嵁鍒嗘満ID鑾峰彇鍒嗘満淇℃伅
+ *
+ * @param companyId
+ * @param deptId
+ * @return
+ */
+ public List<GatewaySer> getCacheSerByDeptId(String companyId, String deptId) {
+ if (StringUtils.isEmpty(deptId)) {
+ return null;
+ }
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEVICE_SER_LIST, deptId) + "*";
+ Collection<String> keys = redisCache.keys(patten);
+ if (null == keys) {
+ return null;
+ }
+
+ List<GatewaySer> list = new ArrayList<>();
+ for (String key : keys) {
+ list.add((GatewaySer) redisCache.getCacheObject(key));
+ }
+
+ return list;
+ }
+
+ /**
+ * 鏍规嵁鍒嗘満ID鑾峰彇鍒嗘満淇℃伅
+ *
+ * @param companyId
+ * @param id
+ * @return
+ */
+ public GatewaySer getCacheSerById(String companyId, String id) {
+ if (StringUtils.isEmpty(id)) {
+ return null;
+ }
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ String patten = RedisConst.buildKey(companyId, RedisConst.KEY_DEVICE_SER_LIST) + "*";
+ Collection<String> keys = redisCache.keys(patten);
+ if (null == keys) {
+ return null;
+ }
+
+ List<GatewaySer> list = new ArrayList<>();
+ GatewaySer ser = null;
+ for (String key : keys) {
+ ser = (GatewaySer) redisCache.getCacheObject(key);
+ if(id.equals(ser.getId())){
+ break;
+ }
+ }
+
+ if(null == ser){
+ ser = getById(id);
+ this.setCacheSer(ser);
+ }
+
+ return ser;
+ }
+
+ /**
+ * 鍒锋柊缂撳瓨
+ *
+ * @param companyId
+ */
+ public void refreshCache(String companyId) {
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ List<GatewaySer> list = this.listDeviceSer(companyId, null, null);
+ this.setCacheSer(list);
+ }
+
+ /**
+ * 璁剧疆缂撳瓨
+ * @param data
+ */
+ public void setCacheSer(GatewaySer data) {
+ if (null == data) {
+ return;
+ }
+ String key = RedisConst.buildKey(data.getCompanyId(), RedisConst.KEY_GATEWAY_SER_LIST, data.getDeptId(), data.getId());
+ redisCache.setCacheObject(key, data);
+ }
+
+ /**
+ * 璁剧疆缂撳瓨
+ * @param data
+ */
+ public void setCacheSer(List<GatewaySer> data) {
+ if (null == data) {
+ return;
+ }
+ for (GatewaySer ser : data) {
+ this.setCacheSer( ser);
+ }
+ }
+
+ /**
+ * 鍒犻櫎缂撳瓨淇℃伅
+ * @param ser
+ */
+ public void delCache(GatewaySer ser) {
+ if (null == ser) {
+ return;
+ }
+ String key = RedisConst.buildKey(ser.getCompanyId(), RedisConst.KEY_GATEWAY_SER_LIST, ser.getDeptId(), ser.getId());
+ redisCache.deleteObject(key);
+ }
+
+}
--
Gitblit v1.9.3