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