TRX hace 1 año
padre
commit
5df666155c

+ 4 - 0
src/main/java/com/zswl/dataservice/domain/iot/IotMain.java

@@ -3,6 +3,7 @@ package com.zswl.dataservice.domain.iot;
 import com.zswl.dataservice.domain.base.SuperEntity;
 import com.zswl.dataservice.type.DataType;
 import com.zswl.dataservice.type.FunctionType;
+import com.zswl.dataservice.type.MainUnitType;
 import com.zswl.dataservice.type.OperationType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -50,4 +51,7 @@ public class IotMain extends SuperEntity {
     @Schema(description = "所属模版")
     @DBRef(lazy = true)
     IotTemplate iotTemplate;
+
+    @Schema(description = "单位")
+    private MainUnitType mainUnitType;
 }

+ 24 - 0
src/main/java/com/zswl/dataservice/domain/payment/RequestInfo.java

@@ -2,11 +2,15 @@ package com.zswl.dataservice.domain.payment;
 
 import com.zswl.dataservice.domain.base.SuperEntity;
 import com.zswl.dataservice.type.RequestType;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.index.Indexed;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.util.Date;
+
 /**
  * 请求数据
  *
@@ -18,9 +22,29 @@ import org.springframework.data.mongodb.core.mapping.Document;
 @NoArgsConstructor
 @AllArgsConstructor
 public class RequestInfo extends SuperEntity {
+
+    @Schema(description = "请求参数")
     private Object param;
+
+    @Schema(description = "校园参数")
     private Object response;
+
+    @Schema(description = "时间")
     private String timeStr;
+
+    @Schema(description = "是否成功")
     private Boolean isSuccess = Boolean.TRUE;
+
+    @Schema(description = "请求分类")
     private RequestType requestType = RequestType.Common;
+
+    @Schema(description = "错误信息")
+    private String msg = "";
+
+    @Schema(description = "请求耗时:毫秒")
+    private Long millis;
+
+    @Schema(description = "过期时间")
+    @Indexed(expireAfterSeconds = 0)
+    private Date TTL;
 }

+ 9 - 0
src/main/java/com/zswl/dataservice/httpRequest/ApiRequestService.java

@@ -2,11 +2,13 @@ package com.zswl.dataservice.httpRequest;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.json.JSONUtil;
+import com.zswl.dataservice.dao.payment.RequestInfoDao;
 import com.zswl.dataservice.httpRequest.apiConf.APIResponseModel;
 import com.zswl.dataservice.httpRequest.apiConf.ApiConfParam;
 import com.zswl.dataservice.httpRequest.conf.FullCardAPIConfig;
 import com.zswl.dataservice.httpRequest.conf.FullCardConf;
 import com.zswl.dataservice.service.base.SuperService;
+import com.zswl.dataservice.service.payment.RequestInfoService;
 import com.zswl.dataservice.utils.net.apache.HttpClientUtil;
 import com.zswl.dataservice.utils.net.apache.HttpModel;
 import com.zswl.dataservice.utils.net.apache.ResponseModel;
@@ -28,6 +30,12 @@ public class ApiRequestService extends SuperService {
     @Autowired
     FullCardConf fullCardConf;
 
+    @Autowired
+    RequestInfoDao requestInfoDao;
+
+    @Autowired
+    RequestInfoService requestInfoService;
+
     /**
      * 发送请求
      *
@@ -66,6 +74,7 @@ public class ApiRequestService extends SuperService {
             responseModel.setIsFailed(String.format("请求出错:%s", e.getMessage()));
             return responseModel;
         }
+        requestInfoService.addRequestInfo(data, responseModel);
         return responseModel;
     }
 

+ 3 - 1
src/main/java/com/zswl/dataservice/httpRequest/apiConf/APIResponseModel.java

@@ -24,6 +24,8 @@ public class APIResponseModel {
 
     private ApiConfParam param;
 
+    private Object data;
+
     @Schema(description = "请求耗时:毫秒")
     private Long millis;
 
@@ -43,7 +45,7 @@ public class APIResponseModel {
 
     public boolean isSuccess() {
         if (StringUtils.isNotEmpty(this.state) && "Fail".equals(state)) {
-            return failed;
+            return false;
         }
         return success;
     }

+ 9 - 2
src/main/java/com/zswl/dataservice/httpRequest/conf/FullCardAPIConfig.java

@@ -13,10 +13,15 @@ import java.util.HashMap;
  */
 public class FullCardAPIConfig {
 
+    public static final String api = "";
+
     // 测试发送消息
-    public static final String sendMessage = "/mqttMessage/sendMessage";
+    public static final String sendMessage = api + "/mqttMessage/sendMessage";
+
+    public static final String ping = api + "/test/free/ping";
 
-    public static final String ping = "/test/free/ping";
+    //-----------------------云版消费机 start -----------------------
+    public static final String ServerTime = api + "/hxz/v1/ServerTime";
 
     public static final HashMap<String, ApiConfParam> map = new HashMap<>();
 
@@ -24,6 +29,8 @@ public class FullCardAPIConfig {
         map.put(sendMessage, ApiConfParam.builder().apiName(sendMessage).methodType(MethodType.Json).build());
         map.put(ping, ApiConfParam.builder().apiName(ping).methodType(MethodType.Get).build());
 
+        // ----------------------------云版消费机 start -----------------
+        map.put(ServerTime, ApiConfParam.builder().apiName(ServerTime).methodType(MethodType.Json).build());
 
 
     }

+ 13 - 0
src/main/java/com/zswl/dataservice/model/iot/IotMainModel.java

@@ -4,6 +4,7 @@ import com.zswl.dataservice.domain.iot.IotTemplate;
 import com.zswl.dataservice.model.baseParam.SuperModel;
 import com.zswl.dataservice.type.DataType;
 import com.zswl.dataservice.type.FunctionType;
+import com.zswl.dataservice.type.MainUnitType;
 import com.zswl.dataservice.type.OperationType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotEmpty;
@@ -72,4 +73,16 @@ public class IotMainModel extends SuperModel {
         }
         return "";
     }
+
+    @Schema(description = "单位")
+    private MainUnitType mainUnitType;
+
+    private String mainUnitTypeStr;
+
+    public String getMainUnitTypeStr() {
+        if (mainUnitType != null) {
+            return mainUnitType.getRemark();
+        }
+        return "";
+    }
 }

+ 4 - 0
src/main/java/com/zswl/dataservice/model/iot/IotMainParam.java

@@ -3,6 +3,7 @@ package com.zswl.dataservice.model.iot;
 import com.zswl.dataservice.model.baseParam.SuperParam;
 import com.zswl.dataservice.type.DataType;
 import com.zswl.dataservice.type.FunctionType;
+import com.zswl.dataservice.type.MainUnitType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -38,4 +39,7 @@ public class IotMainParam extends SuperParam {
 
     @Schema(description = "模版ID")
     private String iotTemplateId;
+
+    @Schema(description = "单位")
+    private MainUnitType mainUnitType;
 }

+ 30 - 12
src/main/java/com/zswl/dataservice/service/payment/HxzService.java

@@ -2,6 +2,9 @@ package com.zswl.dataservice.service.payment;
 
 import com.zswl.dataservice.dao.mqtt.DeviceInfoDao;
 import com.zswl.dataservice.domain.mqtt.DeviceInfo;
+import com.zswl.dataservice.httpRequest.ApiRequestService;
+import com.zswl.dataservice.httpRequest.apiConf.APIResponseModel;
+import com.zswl.dataservice.httpRequest.conf.FullCardAPIConfig;
 import com.zswl.dataservice.model.payment.ServerTimeModel;
 import com.zswl.dataservice.model.payment.ServerTimeResult;
 import com.zswl.dataservice.service.base.SuperService;
@@ -32,24 +35,39 @@ public class HxzService extends SuperService {
     @Autowired
     RequestInfoService requestInfoService;
 
+    @Autowired
+    ApiRequestService apiRequestService;
+
     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("设备未注册");
-            requestInfoService.addRequestInfo(param, result);
-            return result;
+//            result.setFailed("设备未注册");
+//            requestInfoService.addRequestInfo(param, result);
+//            return result;
+        }
+
+        // 业务验证
+        APIResponseModel resultContent = apiRequestService.sendFullCardAPI(
+                FullCardAPIConfig.ServerTime, param);
+        if (resultContent.isSuccess()) {
+            ServerTimeResult timeResult = resultContent.toBean(ServerTimeResult.class);
+            if (timeResult.isSuccess()) {
+                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);
+            }else {
+                result.setFailed(timeResult.getMsg());
+            }
+        }else {
+            result.setFailed(resultContent.getMsg());
         }
-        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);
-        requestInfoService.addRequestInfo(param, result);
         return result;
     }
 }

+ 22 - 1
src/main/java/com/zswl/dataservice/service/payment/RequestInfoService.java

@@ -2,6 +2,7 @@ package com.zswl.dataservice.service.payment;
 
 import com.zswl.dataservice.dao.payment.RequestInfoDao;
 import com.zswl.dataservice.domain.payment.RequestInfo;
+import com.zswl.dataservice.httpRequest.apiConf.APIResponseModel;
 import com.zswl.dataservice.model.payment.base.HxzBaseResult;
 import com.zswl.dataservice.type.RequestType;
 import com.zswl.dataservice.utils.DateUtils;
@@ -9,6 +10,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+
 /**
  * @author TRX
  * @date 2024/6/25
@@ -27,13 +30,31 @@ public class RequestInfoService {
      * @param response
      * @return
      */
-    public boolean addRequestInfo(Object param, HxzBaseResult response) {
+    public boolean addHXZRequestInfo(Object param, HxzBaseResult response) {
         RequestInfo requestInfo = new RequestInfo();
         requestInfo.setParam(param);
         requestInfo.setResponse(response);
         requestInfo.setIsSuccess(response.isSuccess());
+        requestInfo.setMsg(requestInfo.getMsg());
         requestInfo.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
         requestInfo.setRequestType(RequestType.HXZ);
+        // 保存30天
+        requestInfo.setTTL(new Date(System.currentTimeMillis() + 30 * 24 * 60 * 60 * 1000L));
+        requestInfoDao.save(requestInfo);
+        return true;
+    }
+
+    public boolean addRequestInfo(Object param, APIResponseModel response) {
+        RequestInfo requestInfo = new RequestInfo();
+        requestInfo.setParam(param);
+        requestInfo.setResponse(response);
+        requestInfo.setIsSuccess(response.isSuccess());
+        requestInfo.setMsg(response.getMsg());
+        requestInfo.setTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
+        requestInfo.setRequestType(RequestType.FullCard);
+        requestInfo.setMillis(response.getMillis());
+        // 保存30天
+        requestInfo.setTTL(new Date(System.currentTimeMillis() + 30 * 24 * 60 * 60 * 1000L));
         requestInfoDao.save(requestInfo);
         return true;
     }

+ 18 - 0
src/main/java/com/zswl/dataservice/type/MainUnitType.java

@@ -0,0 +1,18 @@
+package com.zswl.dataservice.type;
+
+import lombok.Getter;
+
+/**
+ */
+public enum MainUnitType {
+    RW("读写"),
+    R("只读"),
+    ;
+
+    @Getter
+    private String remark;
+
+    MainUnitType(String remark) {
+        this.remark = remark;
+    }
+}

+ 1 - 0
src/main/java/com/zswl/dataservice/type/RequestType.java

@@ -7,6 +7,7 @@ import lombok.Getter;
  */
 public enum RequestType {
     HXZ("云版消费机"),
+    FullCard("全卡业务端"),
     Common("普通"),
     ;