TRX hace 1 año
padre
commit
7c3e2a1391

+ 38 - 0
src/main/java/com/zswl/dataservice/controller/payment/HxzController.java

@@ -0,0 +1,38 @@
+package com.zswl.dataservice.controller.payment;
+
+
+import com.zswl.dataservice.model.payment.ServerTimeModel;
+import com.zswl.dataservice.model.payment.ServerTimeResult;
+import com.zswl.dataservice.service.payment.HxzService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.text.SimpleDateFormat;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequestMapping("hxz/v1")
+public class HxzController {
+
+    @Autowired
+    private HxzService hxzService;
+
+    /**
+     * 系统时间
+     */
+    @PostMapping(value = "ServerTime", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public ServerTimeResult serverTime(@RequestBody ServerTimeModel serverTimeModel) {
+        return hxzService.serverTime(serverTimeModel);
+    }
+
+}

+ 5 - 0
src/main/java/com/zswl/dataservice/model/mqtt/GateWayBindDeviceParam.java

@@ -2,6 +2,7 @@ package com.zswl.dataservice.model.mqtt;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.DBRef;
 
 import java.util.List;
 
@@ -22,4 +23,8 @@ public class GateWayBindDeviceParam {
 
     @Schema(description = "网关连接账号")
     private String userName;
+
+    @Schema(description = "所属项目")
+    @DBRef(lazy = true)
+    private String projectInfoOid;
 }

+ 24 - 0
src/main/java/com/zswl/dataservice/model/payment/ServerTimeModel.java

@@ -0,0 +1,24 @@
+package com.zswl.dataservice.model.payment;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ *
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServerTimeModel {
+
+    @Schema(description = "设备中的总白名单数")
+    @JsonProperty("WLSum")
+    private Integer wLSum;
+
+    @Schema(description = "自定义机号")
+    @JsonProperty("DeviceID")
+    private Integer deviceID;
+}

+ 19 - 0
src/main/java/com/zswl/dataservice/model/payment/ServerTimeResult.java

@@ -0,0 +1,19 @@
+package com.zswl.dataservice.model.payment;
+
+import com.zswl.dataservice.model.payment.base.HxzBaseResult;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/6/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServerTimeResult extends HxzBaseResult {
+    private String Time;
+    private int WLUptate;
+    private int WLPage;
+}

+ 39 - 0
src/main/java/com/zswl/dataservice/model/payment/base/HxzBaseResult.java

@@ -0,0 +1,39 @@
+package com.zswl.dataservice.model.payment.base;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author TRX
+ * @date 2024/6/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class HxzBaseResult implements Serializable {
+    // 1:成功; 0:失败
+    private int Status = 1;
+    // 错误消息(Status为0时屏幕显示此内容,最多不超过8个汉字)
+    private String Msg;
+
+    public boolean isSuccess() {
+        return Status == 1;
+    }
+
+    public void setFailed(String msg) {
+        Status = 0;
+        this.Msg = msg;
+    }
+
+    public void setSuccess(String msg) {
+        Status = 1;
+        this.Msg = msg;
+    }
+
+    public void setSuccess() {
+        Status = 1;
+    }
+}

+ 6 - 7
src/main/java/com/zswl/dataservice/service/mqtt/GateWayInfoService.java

@@ -87,14 +87,13 @@ public class GateWayInfoService {
      * @return
      */
     public ResultContent gateWayBindDevice(GateWayBindDeviceParam param) {
+        GateWayInfoAddParam addParam = new GateWayInfoAddParam();
+        addParam.setGateWayId(param.getGateWayId());
+        addParam.setGateWayName(param.getGateWayName());
+        addParam.setOid(param.getProjectInfoOid());
+        addGateWayInfo(addParam);
+        // 网关信息
         GateWayInfo gateWayInfo = gateWayInfoDao.findTopByGateWayId(param.getGateWayId());
-        if (ObjectUtils.isEmpty(gateWayInfo)) {
-            // 如果网关不存在,则初始化
-            GateWayInfoAddParam addParam = new GateWayInfoAddParam();
-            addParam.setGateWayId(param.getGateWayId());
-            addParam.setGateWayName(param.getGateWayName());
-        }
-        gateWayInfo = gateWayInfoDao.findTopByGateWayId(param.getGateWayId());
 
         // 验证连接账号
         GateWayUserInfo gateWayUserInfo = gateWayUserInfoDao.findTopByUserName(param.getUserName());

+ 51 - 0
src/main/java/com/zswl/dataservice/service/payment/HxzService.java

@@ -0,0 +1,51 @@
+package com.zswl.dataservice.service.payment;
+
+import com.zswl.dataservice.dao.mqtt.DeviceInfoDao;
+import com.zswl.dataservice.domain.mqtt.DeviceInfo;
+import com.zswl.dataservice.model.payment.ServerTimeModel;
+import com.zswl.dataservice.model.payment.ServerTimeResult;
+import com.zswl.dataservice.service.base.SuperService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.text.SimpleDateFormat;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author TRX
+ * @date 2024/6/25
+ */
+@Slf4j
+@Service
+public class HxzService extends SuperService {
+
+    @Autowired
+    DeviceInfoDao deviceInfoDao;
+
+    public ServerTimeResult serverTime(ServerTimeModel param) {
+        String deviceId = param.getDeviceID().toString();
+        ServerTimeResult result = new ServerTimeResult();
+        DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(deviceId);
+        if (ObjectUtils.isEmpty(deviceInfo)){
+            result.setFailed("设备未绑定");
+            return result;
+        }
+
+        var nowTime = new Date(System.currentTimeMillis());
+        LocalDate date = LocalDate.now();
+        int week = Map.of(DayOfWeek.MONDAY, 1, DayOfWeek.TUESDAY, 2, DayOfWeek.WEDNESDAY, 3, DayOfWeek.THURSDAY, 4, DayOfWeek.FRIDAY, 5, DayOfWeek.SATURDAY, 6, DayOfWeek.SUNDAY, 0).get(date.getDayOfWeek());
+        result.setSuccess();
+        result.setTime(new SimpleDateFormat("yyyyMMddHHmmss").format(nowTime) + "" + week);
+        result.setWLPage(0);
+        result.setWLUptate(0);
+        log.info("ServerTime : {} - {}", result);
+        return result;
+    }
+}

+ 2 - 0
src/main/resources/application.yml

@@ -54,6 +54,8 @@ authsettings:
       method: POST,GET,OPTIONS
     - path: /v2/**
       method: POST,GET,OPTIONS
+    - path: /hxz/**
+      method: GET,POST,OPTIONS
   validateSsoSessionURL: http://114.55.105.47:8888/ylxs-pms/SsoLogin.action
   tokenExpirePeriod: 86400000 #单位 ms
   privateKey: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrt4Ygv761NfAG\