Browse Source

feature: 消费系统
1.将本地发云端的消费kafka改成在本地消费成功后再发

luoyb 1 year ago
parent
commit
9c324d594f

+ 7 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/task/ScheduledTasks.java

@@ -1,11 +1,14 @@
 package org.dromara.backstage.task;
 
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.dromara.backstage.business.lock.LockBusiness;
 import org.dromara.backstage.business.self.SelfBusiness;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.MessageFormat;
+
 /**
  * name: ScheduledTasks
  * package: org.dromara.backstage.task
@@ -16,6 +19,7 @@ import org.springframework.stereotype.Component;
  * @version 0.1
  * @since JDK 1.8
  */
+@Slf4j
 @Component
 @RequiredArgsConstructor
 public class ScheduledTasks {
@@ -39,6 +43,8 @@ public class ScheduledTasks {
 
     @Scheduled(cron = "0 0 10,14,23 * * *")
     public void syncDoorOpenRecord(){
-        lockBusiness.queryOpenDoorRecord(1);
+        int iCount = lockBusiness.queryOpenDoorRecord(1);
+        String message = MessageFormat.format("开门记录同步完成,本次同步了 {0} 条记录", iCount);
+        log.info(message);
     }
 }

+ 20 - 13
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/ConsumeController.java

@@ -77,14 +77,14 @@ public class ConsumeController {
         }
         RedisUtils.setCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo), qrcode);
 
-        //return doRecordData(record, "requestConsume", mac, xfPwd);
+        return doRecordData(record, "requestConsume", mac, xfPwd);
 
-        Object object = doRecordData(record, "requestConsume", mac, xfPwd);
-        JSONObject jsonObject = JSONUtil.parseObj(object);
-
-        sendConsumeToCloud(jsonObject, record);
+        //Object object = doRecordData(record, "requestConsume", mac, xfPwd);
+        //JSONObject jsonObject = JSONUtil.parseObj(object);
+        //
+        //sendConsumeToCloud(jsonObject, record);
 
-        return object;
+        //return object;
     }
 
     /**
@@ -99,12 +99,13 @@ public class ConsumeController {
     public Object consumeOriginal(@RequestBody Object record, @RequestParam(name = "mac", required = false) java.lang.String mac,
                                   @RequestParam(name = "xfPwd", required = false) java.lang.String xfPwd) {
 
-        Object object = doRecordData(record, "requestConsume", mac, xfPwd);
-        JSONObject jsonObject = JSONUtil.parseObj(object);
-
-        sendConsumeToCloud(jsonObject, record);
-
-        return object;
+        return doRecordData(record, "requestConsume", mac, xfPwd);
+        //Object object = doRecordData(record, "requestConsume", mac, xfPwd);
+        //JSONObject jsonObject = JSONUtil.parseObj(object);
+        //
+        //sendConsumeToCloud(jsonObject, record);
+        //
+        //return object;
     }
 
     /**
@@ -116,7 +117,13 @@ public class ConsumeController {
      */
     @PostMapping("/Consume")
     public Object uploadRecord(@RequestBody Object record, @RequestParam(name = "mac", required = false) java.lang.String mac) {
-        return doRecordData(record, "uploadRecord", mac, "");
+        //return doRecordData(record, "uploadRecord", mac, "");
+        Object object = doRecordData(record, "uploadRecord", mac, "");
+        JSONObject jsonObject = JSONUtil.parseObj(object);
+
+        sendConsumeToCloud(jsonObject, record);
+
+        return object;
     }
 
     /**

+ 47 - 0
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/FaceCollectController.java

@@ -0,0 +1,47 @@
+package org.dromara.server.consume.controller.v1;
+
+import org.dromara.common.core.api.ReturnResult;
+import org.dromara.server.consume.domain.bo.FaceFeatureBo;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * name: FaceCollectController
+ * package: org.dromara.server.consume.controller.v1
+ * description: 人脸集合控制器
+ * date: 2025-02-26 08:58:33 08:58
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@RestController
+@RequestMapping("/v1/faceFeature")
+public class FaceCollectController {
+    /**
+     * 增量下载
+     *
+     * 建议设备每10分钟,从后台获取一次增量数据
+     *
+     * 后台会根据设备当前的人脸权限版本号,来取出有更新的人脸数据(若人脸版本号不存在,则返回全量人脸数据)
+     *
+     * @param termNo 设备机号
+     *
+     * @return
+     */
+    @GetMapping(value = "/incrFeature/{termNo}")
+    public ReturnResult getIncrementFeatureData(@PathVariable("termNo") Integer termNo) {
+        //List<FaceFeatureBo> featureData = faceEngineService.getIncrFeatureDataUser(termNo);
+        List<FaceFeatureBo> featureData = new ArrayList<>();
+        if (featureData == null) {
+            featureData = new ArrayList<>();
+        }
+
+        return new ReturnResult(true,1, "获取增量数据成功!", featureData);
+    }
+}

+ 52 - 0
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/domain/bo/FaceFeatureBo.java

@@ -0,0 +1,52 @@
+package org.dromara.server.consume.domain.bo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * name: FaceFeatureBo
+ * package: org.dromara.server.consume.domain.bo
+ * description: 人脸特征业务对象
+ * date: 2025-02-26 09:03:55 09:03
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FaceFeatureBo extends BaseEntity {
+
+    /**
+     * 用户id
+     */
+    String userId;
+    /**
+     * 用户流水号
+     */
+    String userNo;
+    /**
+     * 用户学工号
+     */
+    String userNumb;
+    /**
+     * 用户姓名
+     */
+    String name;
+    /**
+     * 用户照片
+     */
+    String photoUrl;
+    /**
+     * 用户的特征码
+     */
+    String featureData;
+    /**
+     * 主键id
+     */
+    String featureId;
+}