TRX 1 год назад
Родитель
Сommit
abc8d25dd3

+ 1 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/type/payment/RequestType.java

@@ -8,6 +8,7 @@ import lombok.Getter;
 public enum RequestType {
     HXZ("云版消费机"),
     IotCenter("物联网"),
+    GateDoor("闸机"),
     Common("普通"),
     UnionFrictionlessPay("银联无感支付请求");
 

+ 40 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/gateDoor/GateDoorController.java

@@ -0,0 +1,40 @@
+package com.zhongshu.card.server.core.controller.gateDoor;
+
+
+import com.github.microservice.models.gateDoor.OnLineParam;
+import com.github.microservice.models.hxz.*;
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.server.core.service.gateDoor.GateDoorService;
+import com.zhongshu.card.server.core.service.hxz.HxzService;
+import io.swagger.v3.oas.annotations.Hidden;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+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;
+
+@Slf4j
+@RestController
+@RequestMapping("gateDoor/v1")
+@Tag(name = "门闸")
+@Hidden
+public class GateDoorController {
+
+    @Autowired
+    GateDoorService gateDoorService;
+
+    /**
+     * 设备上线通知
+     */
+    @Operation(summary = "闸机 设备上线通知")
+    @PostMapping(value = "onLine", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public ResultContent onLine(@RequestBody OnLineParam param) {
+        return gateDoorService.onLine(param);
+    }
+
+
+}

+ 47 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/gateDoor/GateDoorService.java

@@ -0,0 +1,47 @@
+package com.zhongshu.card.server.core.service.gateDoor;
+
+import cn.hutool.json.JSONUtil;
+import com.github.microservice.core.util.random.RandomUtil;
+import com.github.microservice.models.gateDoor.OnLineAckInfoModel;
+import com.github.microservice.models.gateDoor.OnLineModel;
+import com.github.microservice.models.gateDoor.OnLineParam;
+import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.type.payment.RequestType;
+import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.payment.RequestInfoService;
+import com.zhongshu.card.server.core.util.CommonUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author TRX
+ * @date 2024/9/12
+ */
+@Slf4j
+@Service
+public class GateDoorService extends SuperService {
+
+    @Autowired
+    RequestInfoService requestInfoService;
+
+    /**
+     * 闸机方法 onLine
+     *
+     * @return
+     */
+    public ResultContent onLine(OnLineParam param) {
+        OnLineModel resultModel = new OnLineModel();
+        int i = RandomUtil.nextInt(1000, 100000);
+        resultModel.setMessageId(Long.valueOf(i));
+
+        OnLineAckInfoModel info = new OnLineAckInfoModel();
+        info.setFacesluiceId(CommonUtil.UUID());
+        resultModel.setInfo(info);
+        resultModel.setSuccess();
+
+        requestInfoService.addRequestInfo(param, resultModel, RequestType.GateDoor);
+        return ResultContent.buildSuccess(JSONUtil.toJsonStr(resultModel));
+    }
+
+}

+ 15 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/RequestInfoService.java

@@ -86,6 +86,21 @@ public class RequestInfoService {
         return true;
     }
 
+    public boolean addRequestInfo(Object param, HxzBaseResult response, RequestType requestType) {
+        CompletableFuture.runAsync(() -> {
+            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);
+            requestInfo.setTTL(new Date(System.currentTimeMillis() + ttlTime));
+            requestInfoDao.save(requestInfo);
+        });
+        return true;
+    }
+
     /**
      * 添加IOT平台访问日志
      *