فهرست منبع

feat:"优化MQTT心跳上传,日志上传增加文件有效期"

soobin 2 ماه پیش
والد
کامیت
81250f1974

+ 1 - 0
src/main/java/com/szwl/constant/OperationType.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.IEnum;
  */
 public enum OperationType implements IEnum<String> {
 
+    HEART_BEAT("heart","心跳"),
     UPDATE_TAX_STATUS("updateTaxStatus","修改税费开关"),
     UPDATE_TAX_RATE("updateTaxRate","修改税率"),
     RETURN_COIN("returnCoin","退币申请"),

+ 6 - 2
src/main/java/com/szwl/controller/IndexController.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.gson.Gson;
 import com.qiniu.http.Response;
+import com.qiniu.storage.BucketManager;
 import com.qiniu.storage.Configuration;
 import com.qiniu.storage.Region;
 import com.qiniu.storage.UploadManager;
@@ -1219,8 +1220,11 @@ public class IndexController {
             Response responseMap = uploadManager.put(input, key, upToken, null, null);
             //解析上传成功的结果
             DefaultPutRet putRet = new Gson().fromJson(responseMap.bodyString(), DefaultPutRet.class);
-            System.out.println(putRet.key);
-            System.out.println(putRet.hash);
+            String result = "https://qiniuyun.sunzee.com.cn/" + key;
+            Configuration cfg0 = new Configuration(Region.region0());
+            int days = 7;
+            BucketManager bucketManager = new BucketManager(auth, cfg0);
+            bucketManager.deleteAfterDays(ConfigConsts.QINIU_CLOUD_BUCKET, key, days);
         } catch (Exception ex) {
             //响应信息 json字符串格式
             Map<String, Object> responseMap = new HashMap<String, Object>();

+ 3 - 0
src/main/java/com/szwl/controller/MaintenanceRecordController.java

@@ -117,6 +117,9 @@ public class MaintenanceRecordController {
         if (StringUtils.isNotEmpty(param.getManagerId())) {
             query.eq(MaintenanceRecord::getManagerId, param.getManagerId());
         }
+        if (param.getAdminId() != null) {
+            query.eq(MaintenanceRecord::getAdminId, param.getAdminId());
+        }
         if (StringUtils.isNotEmpty(param.getStartDate()) && StringUtils.isNotEmpty(param.getEndDate())) {
             param.setStartDate(param.getStartDate() + " 00:00:00");
             param.setEndDate(param.getEndDate() + " 23:59:59");

+ 28 - 24
src/main/java/com/szwl/handle/ResponseMessageHandler.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.RandomUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.constant.OperationType;
 import com.szwl.handle.response.ResponseProcessor;
 import com.szwl.model.entity.MessageLog;
 import com.szwl.service.MessageLogService;
@@ -43,32 +44,35 @@ public class ResponseMessageHandler implements MqttMessageHandler{
             String operationType = "";
             // 1. 解析基础响应
             MessageLog messageLog = JSON.parseObject(payload, MessageLog.class);
-            // 2. 确定是否为主动上报消息
-            Integer direction = messageLog.getDirection();
-            if (direction != null && direction == 2) {
-                // 3. 主动上报消息,直接添加消息日志
-                operationType = messageLog.getOperation();
-                messageLog.setMsgId(System.currentTimeMillis() + RandomUtil.randomNumbers(10));
-                messageLog.setCreatedAt(new Date());
-                messageLogService.save(messageLog);
-            } else {
-                // 3. 响应消息,查询原始消息记录
-                String msgId = messageLog.getMsgId();
-                LambdaQueryWrapper<MessageLog> query = Wrappers.lambdaQuery();
-                query.eq(MessageLog::getMsgId, msgId);
-                MessageLog message = messageLogService.getOne(query);
-                if (message != null) {
-                    operationType = message.getOperation();
-                    // 4. 更新消息日志
-                    message.setStatusCode(messageLog.getStatusCode());
-                    message.setResponseContent(messageLog.getResponseContent());
-                    message.setErrorInfo(messageLog.getErrorInfo());
-                    messageLogService.updateById(message);
+            operationType = messageLog.getOperation();
+            if (StringUtils.isNotEmpty(operationType)) {
+                // 2. 确定是否为主动上报消息
+                Integer direction = messageLog.getDirection();
+                if (direction != null && direction == 2) {
+                    // 3. 主动上报消息,直接添加消息日志
+                    if(!operationType.equals(OperationType.HEART_BEAT.getCode())) {
+                        // 心跳不需要保存消息日志
+                        messageLog.setMsgId(System.currentTimeMillis() + RandomUtil.randomNumbers(10));
+                        messageLog.setCreatedAt(new Date());
+                        messageLogService.save(messageLog);
+                    }
+                } else {
+                    // 3. 响应消息,查询原始消息记录
+                    String msgId = messageLog.getMsgId();
+                    LambdaQueryWrapper<MessageLog> query = Wrappers.lambdaQuery();
+                    query.eq(MessageLog::getMsgId, msgId);
+                    MessageLog message = messageLogService.getOne(query);
+                    if (message != null) {
+                        operationType = message.getOperation();
+                        // 4. 更新消息日志
+                        message.setStatusCode(messageLog.getStatusCode());
+                        message.setResponseContent(messageLog.getResponseContent());
+                        message.setErrorInfo(messageLog.getErrorInfo());
+                        messageLogService.updateById(message);
+                    }
                 }
-            }
 
-            // 5. 处理业务逻辑
-            if (StringUtils.isNotEmpty(operationType)) {
+                // 5. 处理业务逻辑
                 ResponseProcessor processor = processorMap.get(operationType);
                 if (processor != null) {
                     processor.process(messageLog);

+ 81 - 0
src/main/java/com/szwl/handle/response/HeartProcessor.java

@@ -0,0 +1,81 @@
+package com.szwl.handle.response;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.constant.OperationType;
+import com.szwl.model.entity.MessageLog;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TEquipmentDesc;
+import com.szwl.model.jsonParm.HeartParam;
+import com.szwl.service.TEquipmentDescService;
+import com.szwl.service.TEquipmentService;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+public class HeartProcessor implements ResponseProcessor {
+
+    @Resource
+    private TEquipmentService equipmentService;
+
+    @Resource
+    private TEquipmentDescService equipmentDescService;
+
+    @Override
+    public void process(MessageLog messageLog) {
+        Integer statusCode = messageLog.getStatusCode();
+        if (statusCode == 200) {
+            Integer direction = messageLog.getDirection();
+            String clientId = messageLog.getClientId();
+            String responseContent = messageLog.getResponseContent();
+
+            // 转换为对象
+            HeartParam heartParam = JSON.parseObject(responseContent, HeartParam.class);
+
+            // 查询设备
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId, clientId);
+            TEquipment equipment = equipmentService.getOne(query);
+            // 更新数据
+            if (equipment != null) {
+                equipment.setModifyDate(new Date());
+                equipment.setCabinetHd(heartParam.getCabinetHd());
+                equipment.setCabinetTm(heartParam.getCabinetTm());
+                equipment.setEqeStatus(heartParam.getEqeStatus());
+                equipment.setFurnaceSp(heartParam.getFurnaceSp());
+                equipment.setFurnaceTm(heartParam.getFurnaceTm());
+                equipment.setGtClientId(heartParam.getGtClientId());
+                equipment.setIsSleep(heartParam.isSleep());
+                equipment.setLastUpdateTime(heartParam.getLastUpdateTime());
+                equipment.setLatitude(heartParam.getLatitude());
+                equipment.setLongitude(heartParam.getLongitude());
+                equipment.setManagerId(heartParam.getManagerId());
+                equipment.setNetWorkingMode(heartParam.getNetWorkingMode());
+                equipment.setVolume(heartParam.getVolume());
+                equipmentService.updateById(equipment);
+                // 更新数据
+                TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+                if (equipmentDesc != null) {
+                    equipmentDesc.setBlueSugar(heartParam.getBlueSugar());
+                    equipmentDesc.setCandyGeneratorTm(heartParam.getCandyGeneratorTm());
+                    equipmentDesc.setNumberOne(heartParam.getNumberOne());
+                    equipmentDesc.setOutsideHd(heartParam.getOutsideHd());
+                    equipmentDesc.setOutsideTm(heartParam.getOutsideTm());
+                    equipmentDesc.setRedSugar(heartParam.getRedSugar());
+                    equipmentDesc.setStick(heartParam.getStick());
+                    equipmentDesc.setWater(heartParam.getWater());
+                    equipmentDesc.setWasteWater(heartParam.getWasteWater());
+                    equipmentDesc.setWhiteSugar(heartParam.getWhiteSugar());
+                    equipmentDesc.setYellowSugar(heartParam.getYellowSugar());
+                    equipmentDescService.updateById(equipmentDesc);
+                }
+            }
+        }
+    }
+
+    @Override
+    public String getSupportedOperationType() {
+        return OperationType.HEART_BEAT.getCode();
+    }
+}