From 582d7fceae9ea9a65a44101081aca830503e0153 Mon Sep 17 00:00:00 2001
From: rj <523019756@qq.com>
Date: Wed, 29 Oct 2025 21:58:55 +0800
Subject: [PATCH] Changes
---
.gitignore | 33 +
pom.xml | 109 +++
.../helpprojects/HelpProjectsApplication.java | 17 +
.../helpprojects/config/RedisConfig.java | 10 +
.../inoutRecordService/BaseMapper.java | 5 +
.../inoutRecordService/BaseService.java | 11 +
.../domain/AfInOutRecord.java | 86 +++
.../domain/AfPersonTrack.java | 84 +++
.../inoutRecordService/domain/BaseEntity.java | 56 ++
.../domain/DeviceEntity.java | 36 +
.../domain/DeviceReport.java | 28 +
.../inoutRecordService/domain/DeviceWalk.java | 31 +
.../inoutRecordService/domain/HeatRecord.java | 185 +++++
.../inoutRecordService/domain/HfFace.java | 48 ++
.../inoutRecordService/domain/IdEntity.java | 20 +
.../inoutRecordService/domain/ParkUser.java | 37 +
.../domain/SuperEntity.java | 14 +
.../mapper/AfInOutRecordMapper.java | 14 +
.../mapper/DeviceWalkDao.java | 15 +
.../mapper/HeatRecordDao.java | 9 +
.../mapper/ParkUserMapper.java | 10 +
.../mapper/PersonTrackMapper.java | 15 +
.../service/AfInOutRecordService.java | 40 ++
.../service/DeviceWalkService.java | 34 +
.../service/HeatRecordService.java | 17 +
.../service/ParkUserService.java | 26 +
.../service/PersonTrackService.java | 18 +
src/main/resources/application.yml | 13 +
src/main/resources/data.txt | 2 +
src/main/resources/helpProjects.json | 675 ++++++++++++++++++
src/main/resources/logback-spring.xml | 96 +++
.../paperflow/helpprojects/CommonTest.java | 172 +++++
.../HelpProjectsApplicationTests.java | 116 +++
.../InOutRecordApplicationTests.java | 173 +++++
.../helpprojects/MinioProjectTests.java | 105 +++
35 files changed, 2360 insertions(+)
create mode 100644 .gitignore
create mode 100644 pom.xml
create mode 100644 src/main/java/org/paperflow/helpprojects/HelpProjectsApplication.java
create mode 100644 src/main/java/org/paperflow/helpprojects/config/RedisConfig.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseMapper.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseService.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfInOutRecord.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfPersonTrack.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/BaseEntity.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceEntity.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceReport.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceWalk.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HeatRecord.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HfFace.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/IdEntity.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/ParkUser.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/SuperEntity.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/AfInOutRecordMapper.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/DeviceWalkDao.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/HeatRecordDao.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/ParkUserMapper.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/PersonTrackMapper.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/service/AfInOutRecordService.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/service/DeviceWalkService.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/service/HeatRecordService.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/service/ParkUserService.java
create mode 100644 src/main/java/org/paperflow/helpprojects/inoutRecordService/service/PersonTrackService.java
create mode 100644 src/main/resources/application.yml
create mode 100644 src/main/resources/data.txt
create mode 100644 src/main/resources/helpProjects.json
create mode 100644 src/main/resources/logback-spring.xml
create mode 100644 src/test/java/org/paperflow/helpprojects/CommonTest.java
create mode 100644 src/test/java/org/paperflow/helpprojects/HelpProjectsApplicationTests.java
create mode 100644 src/test/java/org/paperflow/helpprojects/InOutRecordApplicationTests.java
create mode 100644 src/test/java/org/paperflow/helpprojects/MinioProjectTests.java
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..f1535ba
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,109 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.3.12.RELEASE
+
+
+ org.paperflow
+ helpProjects
+ 0.0.1-SNAPSHOT
+ helpProjects
+ helpProjects
+
+ 8
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-data-elasticsearch
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.3.1
+
+
+ com.github.xiaoymin
+ knife4j-openapi2-spring-boot-starter
+ 4.5.0
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ org.springframework.boot
+ spring-boot-starter-cache
+
+
+ org.postgresql
+ postgresql
+
+
+ com.alibaba
+ easyexcel
+ 3.3.2
+
+
+ cn.hutool
+ hutool-all
+ 5.8.25
+
+
+ com.google.guava
+ guava
+ 33.0.0-jre
+
+
+ io.minio
+ minio
+ 8.1.0
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.bouncycastle
+ bcpkix-jdk18on
+ 1.78
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/paperflow/helpprojects/HelpProjectsApplication.java b/src/main/java/org/paperflow/helpprojects/HelpProjectsApplication.java
new file mode 100644
index 0000000..a808889
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/HelpProjectsApplication.java
@@ -0,0 +1,17 @@
+package org.paperflow.helpprojects;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cache.annotation.EnableCaching;
+
+@EnableCaching
+@MapperScan("org.paperflow.helpprojects.**.mapper")
+@SpringBootApplication
+public class HelpProjectsApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(HelpProjectsApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/config/RedisConfig.java b/src/main/java/org/paperflow/helpprojects/config/RedisConfig.java
new file mode 100644
index 0000000..813d505
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/config/RedisConfig.java
@@ -0,0 +1,10 @@
+package org.paperflow.helpprojects.config;
+
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author vicro
+ */
+//@Configuration
+public class RedisConfig {
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseMapper.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseMapper.java
new file mode 100644
index 0000000..370ddc7
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseMapper.java
@@ -0,0 +1,5 @@
+package org.paperflow.helpprojects.inoutRecordService;
+
+public interface BaseMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper {
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseService.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseService.java
new file mode 100644
index 0000000..61bae94
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/BaseService.java
@@ -0,0 +1,11 @@
+package org.paperflow.helpprojects.inoutRecordService;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.paperflow.helpprojects.inoutRecordService.domain.SuperEntity;
+import org.springframework.validation.annotation.Validated;
+
+@Validated
+public class BaseService, T extends SuperEntity> extends ServiceImpl{
+
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfInOutRecord.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfInOutRecord.java
new file mode 100644
index 0000000..a392539
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfInOutRecord.java
@@ -0,0 +1,86 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import cn.hutool.core.date.DatePattern;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("af_in_out_record")
+@ApiModel( description = "道闸出入记录 实体")
+@ExcelIgnoreUnannotated
+public class AfInOutRecord extends BaseEntity {
+
+ /**
+ * The Constant serialVersionUID.
+ */
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "名称")
+ @TableField(exist = false)
+ @ExcelProperty(value = "名称",order=1)
+ private String name;
+
+ @ApiModelProperty(value = "用户ID")
+ private String userId;
+
+ @ApiModelProperty(value = "人员类型: 1_外部人员 2_内部人员 owner_Type")
+ @ExcelProperty(value = "人员类型",order = 2)
+ private String userType;
+
+ @ApiModelProperty(value = "出入类型: 0_进门 1_出门 access_type")
+ @ExcelProperty(value = "出入类型",order = 3)
+ private String type;
+
+ @ApiModelProperty(value = "通行方式: 1_刷卡 2_刷码 3_刷脸 ,4_身份证,0_未知 security_passage_mode")
+ @ExcelProperty(value = "通行方式",order = 4)
+ private String passageMode;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 入参格式化 前端传给后端的
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 出参格式化 后端传给前端的
+ @ApiModelProperty(value = "通行时间")
+ @com.alibaba.excel.annotation.format.DateTimeFormat(DatePattern.NORM_DATETIME_PATTERN)
+ @ExcelProperty(value = "通行时间",order = 5)
+ private Date passageTime;
+
+ @ApiModelProperty(value = "体温")
+ @ExcelProperty(value = "体温",order = 6)
+ private String temperature;
+
+ @ApiModelProperty(value = "抓拍图片")
+ private String img;
+
+ @ApiModelProperty(value = "园区ID")
+ private String parkId;
+
+ @ApiModelProperty(value = "设备key")
+ private String deviceKey;
+
+ @ApiModelProperty(value = "设备名称")
+ @TableField(exist = false)
+ @ExcelProperty(value = "设备名",order = 7)
+ private String deviceName;
+
+ @ApiModelProperty(value = "访客电话")
+ @TableField(exist = false)
+ @ExcelProperty(value = "手机",order = 8)
+ private String userPhone;
+
+ @ApiModelProperty(value = "所属部门")
+ @TableField(exist = false)
+ @ExcelProperty(value = "部门",order = 9)
+ private String officeName;
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfPersonTrack.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfPersonTrack.java
new file mode 100644
index 0000000..ba87470
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/AfPersonTrack.java
@@ -0,0 +1,84 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author 86136
+ * @create 2021-10-26 10:49
+ * @desc
+ **/
+@Data
+@TableName("af_person_track")
+@ApiModel( description = "道闸出入记录 实体")
+public class AfPersonTrack extends BaseEntity {
+
+ @ApiModelProperty(value = "用户ID")
+ private String userId;
+
+ @ApiModelProperty(value = "1内部人员 2外部人员 3陌生人")
+ private String userType;
+
+ @ApiModelProperty(value = "设备key")
+ private String deviceKey;
+
+ @ApiModelProperty(value = "检查方式")
+ private String productType;
+
+ @ApiModelProperty(value = "抓拍图片id")
+ private String attachId;
+
+ @ApiModelProperty(value = "检测轨迹时间")
+ private String trackTime;
+
+ @ApiModelProperty(value = "园区ID")
+ private String parkId;
+
+ @ApiModelProperty(value = "人员名称")
+ @TableField(exist = false)
+ private String userName;
+
+ @ApiModelProperty(value = "人员联系方式")
+ @TableField(exist = false)
+ private String userPhone;
+
+ @ApiModelProperty(value = "人员头像")
+ @TableField(exist = false)
+ private String userPhoto;
+
+ @ApiModelProperty(value = "所属部门名称")
+ @TableField(exist = false)
+ private String officeName;
+
+ @ApiModelProperty(value = "监控设备名称")
+ @TableField(exist = false)
+ private String deviceName;
+
+ @ApiModelProperty(value = "设备位置")
+ @TableField(exist = false)
+ private String aliasName;
+
+ @ApiModelProperty(value = "抓拍图片路径")
+ @TableField(exist = false)
+ private String fileUrl;
+
+ @ApiModelProperty(value = "开始时间")
+ @TableField(exist = false)
+ private String startTime;
+
+ @ApiModelProperty(value = "结束时间")
+ @TableField(exist = false)
+ private String endTime;
+
+ @ApiModelProperty(value = "经度")
+ @TableField(exist = false)
+ private String longitude;
+
+ @ApiModelProperty(value = "维度")
+ @TableField(exist = false)
+ private String latitude;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/BaseEntity.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/BaseEntity.java
new file mode 100644
index 0000000..12d7779
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/BaseEntity.java
@@ -0,0 +1,56 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "基础实体类")
+public class BaseEntity extends IdEntity {
+
+ @ApiModelProperty(value = "创建人")
+ @TableField(value="create_by", fill = FieldFill.INSERT)
+ private String createBy;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", locale="zh", timezone="GMT+8")
+ @ApiModelProperty(value = "创建时间")
+ @TableField(value="create_date", fill = FieldFill.INSERT)
+ private Date createDate;
+
+ @ApiModelProperty(value = "更新人")
+ @TableField(value="update_by", fill = FieldFill.INSERT_UPDATE)
+ private String updateBy;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", locale="zh", timezone="GMT+8")
+ @ApiModelProperty(value = "更新时间")
+ @TableField(value="update_date", fill = FieldFill.INSERT_UPDATE)
+ private Date updateDate;
+
+ @ApiModelProperty(value = "备注")
+ private String remarks;
+
+ /** 是否删除 1删除 0未删除**/
+ @TableLogic(value = "0", delval = "1")
+ @ApiModelProperty(value = "是否删除")
+ @TableField(value="del_flag", fill = FieldFill.INSERT)
+ private String delFlag;
+
+
+ /********************************* 非数据库字段 **********************************/
+
+ /** 多条件查询 **/
+ @TableField(exist = false)
+ private String conditionQuery;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceEntity.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceEntity.java
new file mode 100644
index 0000000..8e91ad5
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceEntity.java
@@ -0,0 +1,36 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class DeviceEntity extends BaseEntity{
+
+ private static final long serialVersionUID = -6716200226645140363L;
+
+ /** 产品名称 **/
+ private String productName;
+ /** 产品key **/
+ private String productKey;
+ /** 产品类型 **/
+ private String productType;
+ /** 产品型号 **/
+ private String productModel;
+ /** 提供商名称 **/
+ private String manufacturerName;
+ /** 描述 **/
+ private String description;
+ /** 设备名称 **/
+ private String deviceName;
+ /** 设备key **/
+ private String deviceKey;
+ /** 设备状态 0离线 1在线 **/
+ private String state;
+ /** 心跳类型 0手动 1自动 **/
+ private String heartbeatType;
+ /** 上级设备key **/
+ private String parentDeviceKey;
+ /** 心跳时间*/
+ private Date heartbeatTime;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceReport.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceReport.java
new file mode 100644
index 0000000..1c61d6d
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceReport.java
@@ -0,0 +1,28 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import lombok.Data;
+
+/**
+ * ClassName: DeviceReport
+ * @Description: TODO
+ * @author zx
+ * @date 2020年9月2日
+ */
+@Data
+public class DeviceReport {
+
+ /** 园区ID **/
+ private String parkId;
+ /** 设备key **/
+ private String deviceKey;
+ /** 产品类型 **/
+ private String productType;
+ /** 产品key **/
+ private String productKey;
+ /** 时间戳 **/
+ private long timestamp;
+ /** 上报数据 **/
+ private String data;
+ /** 设备名称**/
+ private String deviceName;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceWalk.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceWalk.java
new file mode 100644
index 0000000..adc7316
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/DeviceWalk.java
@@ -0,0 +1,31 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * ClassName:FkCustomerManage
+ * Function: 人行道闸
+ * @author zsh
+ * @version 2020-3-18
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "fk_guest_walk_device")
+public class DeviceWalk extends DeviceEntity {
+
+ private static final long serialVersionUID = 504733878790448334L;
+ /** 园区id **/
+ private String parkId;
+ /** 出入类型 0:进,1:出 **/
+ private String accessType;
+// /**经度*/
+// @ApiModelProperty("经度")
+// private String longitude;
+// /**维度*/
+// @ApiModelProperty("维度")
+// private String latitude;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HeatRecord.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HeatRecord.java
new file mode 100644
index 0000000..f016367
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HeatRecord.java
@@ -0,0 +1,185 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * ClassName: HeatRecord
+ *
+ * @author zx
+ * @Description: 人脸体温记录
+ * @date 2020年3月7日
+ */
+@TableName(value = "jk_face_heat_record")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ApiModel( description = "测温记录 实体类")
+public class HeatRecord extends BaseEntity implements Serializable {
+
+ /**
+ * serialVersionUID
+ */
+ private static final long serialVersionUID = -348274013933261305L;
+ /**
+ * 用户ID
+ */
+ @ApiModelProperty(value = "用户ID")
+ private String userId;
+
+ /**
+ * 用户
+ */
+ @ApiModelProperty(value = "用户")
+ private String name;
+ /**数据来源 1表示魔方,2表示华府**/
+ @TableField(exist = false)
+ private String sourceType;
+ /**第三方流水号id*/
+ @ApiModelProperty(value = "第三方流水号id")
+ private String taskId;
+
+ /**
+ * 人脸识别唯一码
+ */
+ @ApiModelProperty(value = "人脸识别唯一码")
+ private String code;
+
+ /**
+ * 公司名称
+ */
+ @ApiModelProperty(value = "公司名称")
+ private String companyName;
+
+ /**
+ * 部门名称
+ */
+ @ApiModelProperty(value = "部门名称")
+ private String deptName;
+
+ /**
+ * 手机
+ */
+ @ApiModelProperty(value = "手机")
+ private String mobile;
+
+ /**
+ * 温度
+ */
+ @ApiModelProperty(value = "温度")
+ private String heat;
+
+ /**
+ * 是否佩戴口罩
+ */
+ @ApiModelProperty(value = "是否佩戴口罩 0未知 1未识别 2没戴口罩 3戴口罩")
+ private String isMasks;
+
+ /**
+ * 人脸图
+ */
+ @ApiModelProperty(value = "人脸图")
+ private String face;
+
+ /**
+ * 抓拍
+ */
+ @ApiModelProperty(value = "抓拍")
+ private String snap;
+
+ /**
+ * 识别率
+ */
+ @ApiModelProperty(value = "识别率")
+ private String similarity;
+
+ /**
+ * 是否正常
+ */
+ @ApiModelProperty(value = "是否正常 1 正常 0不正常")
+ private String isNormal;
+
+ /**
+ * 记录时间
+ */
+ @ApiModelProperty(value = "记录时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date reportTime;
+
+ /**
+ * 用户类别
+ */
+ @ApiModelProperty(value = "用户类别,1内部人员,2外部人员")
+ private String userType;
+
+ /**
+ * parkId
+ */
+ private String parkId;
+
+ /**
+ * 设备key
+ */
+ @ApiModelProperty(value = "设备key")
+ private String deviceKey;
+
+ /**
+ * 年龄
+ */
+ @ApiModelProperty(value = "年龄")
+ private Integer age;
+
+ /**
+ * 性别
+ */
+ @ApiModelProperty(value = "性别 0未知 1男 2女")
+ private String sex;
+
+ /**
+ * 是否有帽子
+ */
+ @ApiModelProperty(value = "是否有帽子")
+ private String isHat;
+
+ /**
+ * 是否有眼镜
+ */
+ @ApiModelProperty(value = "是否有眼镜")
+ private String isGlasses;
+
+ /**
+ * 预警温度
+ */
+ @ApiModelProperty(value = "预警温度")
+ private String warnHeat;
+
+ /**
+ * 位置
+ */
+ @ApiModelProperty(value = "位置")
+ @TableField(exist = false)
+ private String buildName;
+ /**
+ * startTime
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @TableField(exist = false)
+ private Date startTime;
+
+ /**
+ * endTime
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @TableField(exist = false)
+ private Date endTime;
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HfFace.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HfFace.java
new file mode 100644
index 0000000..a109ab2
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/HfFace.java
@@ -0,0 +1,48 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import lombok.Data;
+
+/**
+ * @author vicro
+ */
+@Data
+public class HfFace {
+
+
+ /**
+ * 健康码状态 健康码颜色:0-绿色;1-黄色;2-红色;3-未知;4-数据异常;5-验证失败 by wxd 2022-7-26 成电健康通
+ */
+ private String healthCode;
+ /**访客身份证号 **/
+ private String userICard;
+ /**抓拍图片*/
+ private String entryPhoto;
+ /**手机号*/
+ private String userPhone;
+ /**用户名*/
+ private String userName;
+ /**卡号*/
+ private String userCardNo;
+ /**比对时间*/
+ private String entryTime;
+ /**道闸deviceKey*/
+ private String barrierGateId;
+ /**识别方式 1-刷卡 2-人脸识别*/
+ private String entryType;
+ /**园区id*/
+ private String parkId;
+ /**相似度*/
+ private String confidence;
+ /**是否佩戴口罩*/
+ private String mask;
+ /**体温*/
+ private String temperature;
+ /**设备名称*/
+ private String deviceName;
+ /**任务id*/
+ private String taskId;
+ /**数据来源,日志中用到,记录数据合并来源,目前1为魔方,2为华付*/
+ private String sourceType;
+ /**识别是否成功*/
+ private Integer isSuccess;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/IdEntity.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/IdEntity.java
new file mode 100644
index 0000000..268640e
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/IdEntity.java
@@ -0,0 +1,20 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "ID实体类")
+public class IdEntity extends SuperEntity {
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ public String id;
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/ParkUser.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/ParkUser.java
new file mode 100644
index 0000000..acd2126
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/ParkUser.java
@@ -0,0 +1,37 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+
+@Data
+@NoArgsConstructor
+@TableName("park_user")
+public class ParkUser extends SuperEntity {
+
+ /**
+ * 工号
+ **/
+ @ExcelProperty(value = "用户id",index = 0)
+ @ApiModelProperty(value = "工号")
+ private String userId;
+ /**
+ * 姓名
+ **/
+ @ExcelProperty(value = "姓名",index = 2)
+ @ApiModelProperty(value = "姓名")
+ @NotBlank(message = "姓名不能为空")
+ private String name;
+
+ @ExcelProperty(value = "手机号",index = 1)
+ private String phone;
+
+ @ExcelProperty(value = "园区id",index = 3)
+ private String parkId;
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/SuperEntity.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/SuperEntity.java
new file mode 100644
index 0000000..423b4dc
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/domain/SuperEntity.java
@@ -0,0 +1,14 @@
+package org.paperflow.helpprojects.inoutRecordService.domain;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoxuan
+ * @title: SuperEntity
+ * @projectName iot-park
+ * @description: TODO
+ * @date 2021/11/1213:53
+ */
+public class SuperEntity implements Serializable {
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/AfInOutRecordMapper.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/AfInOutRecordMapper.java
new file mode 100644
index 0000000..2fbbb8d
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/AfInOutRecordMapper.java
@@ -0,0 +1,14 @@
+package org.paperflow.helpprojects.inoutRecordService.mapper;
+
+
+import org.paperflow.helpprojects.inoutRecordService.BaseMapper;
+import org.paperflow.helpprojects.inoutRecordService.domain.AfInOutRecord;
+
+/**
+ * @Author:wangb
+ * @Description: 通道出入记录
+ * @Date 2021-04-16
+ **/
+public interface AfInOutRecordMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/DeviceWalkDao.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/DeviceWalkDao.java
new file mode 100644
index 0000000..fcba7ca
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/DeviceWalkDao.java
@@ -0,0 +1,15 @@
+package org.paperflow.helpprojects.inoutRecordService.mapper;
+
+import org.paperflow.helpprojects.inoutRecordService.BaseMapper;
+import org.paperflow.helpprojects.inoutRecordService.domain.DeviceWalk;
+
+/**
+ * ClassName: FootWalkDeviceDao
+ * Function: '%Y-%m-%d'DAO接口
+ * @author zsh
+ * @version 2020-3-18
+ */
+
+public interface DeviceWalkDao extends BaseMapper {
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/HeatRecordDao.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/HeatRecordDao.java
new file mode 100644
index 0000000..bac212e
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/HeatRecordDao.java
@@ -0,0 +1,9 @@
+package org.paperflow.helpprojects.inoutRecordService.mapper;
+
+
+import org.paperflow.helpprojects.inoutRecordService.BaseMapper;
+import org.paperflow.helpprojects.inoutRecordService.domain.HeatRecord;
+
+public interface HeatRecordDao extends BaseMapper {
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/ParkUserMapper.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/ParkUserMapper.java
new file mode 100644
index 0000000..3bdcee2
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/ParkUserMapper.java
@@ -0,0 +1,10 @@
+package org.paperflow.helpprojects.inoutRecordService.mapper;
+
+
+import org.paperflow.helpprojects.inoutRecordService.BaseMapper;
+import org.paperflow.helpprojects.inoutRecordService.domain.HeatRecord;
+import org.paperflow.helpprojects.inoutRecordService.domain.ParkUser;
+
+public interface ParkUserMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/PersonTrackMapper.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/PersonTrackMapper.java
new file mode 100644
index 0000000..7f051ed
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/mapper/PersonTrackMapper.java
@@ -0,0 +1,15 @@
+package org.paperflow.helpprojects.inoutRecordService.mapper;
+
+import org.paperflow.helpprojects.inoutRecordService.BaseMapper;
+import org.paperflow.helpprojects.inoutRecordService.domain.AfPersonTrack;
+
+import java.util.List;
+
+/**
+ * @author 86136
+ * @create 2021-10-26 11:04
+ * @desc
+ **/
+public interface PersonTrackMapper extends BaseMapper {
+
+ }
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/AfInOutRecordService.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/AfInOutRecordService.java
new file mode 100644
index 0000000..dab61e0
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/AfInOutRecordService.java
@@ -0,0 +1,40 @@
+package org.paperflow.helpprojects.inoutRecordService.service;
+
+
+import org.apache.ibatis.annotations.Param;
+import org.paperflow.helpprojects.inoutRecordService.BaseService;
+import org.paperflow.helpprojects.inoutRecordService.domain.AfInOutRecord;
+import org.paperflow.helpprojects.inoutRecordService.mapper.AfInOutRecordMapper;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author:ALP
+ * @Description: 通道出入记录
+ * @Date 2021-04-16
+ **/
+@Transactional(readOnly = true)
+@Service
+public class AfInOutRecordService extends BaseService {
+
+
+ /**
+ * @param entity 通道记录DO
+ * @return boolean
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean save(AfInOutRecord entity) {
+ if(entity!=null){
+ return super.save(entity);
+ }else{
+ return Boolean.FALSE;
+ }
+ }
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/DeviceWalkService.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/DeviceWalkService.java
new file mode 100644
index 0000000..cfb2206
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/DeviceWalkService.java
@@ -0,0 +1,34 @@
+package org.paperflow.helpprojects.inoutRecordService.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.paperflow.helpprojects.inoutRecordService.BaseService;
+import org.paperflow.helpprojects.inoutRecordService.domain.DeviceEntity;
+import org.paperflow.helpprojects.inoutRecordService.domain.DeviceWalk;
+import org.paperflow.helpprojects.inoutRecordService.mapper.DeviceWalkDao;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * ClassName: FootWalkDeviceService
+ * Function: 人行道闸服务层service
+ *
+ * @author zsh
+ * @version 2020-3-18
+ */
+@Slf4j
+@Component
+@Transactional(readOnly = true)
+@RequiredArgsConstructor
+public class DeviceWalkService extends BaseService {
+
+
+ @Cacheable(value = "deviceWalk", key = "#deviceKey", unless = "#result == null")
+ public DeviceWalk getByDeviceKey(String deviceKey) {
+ return getOne(Wrappers.lambdaQuery(DeviceWalk.class)
+ .eq(DeviceWalk::getDeviceKey, deviceKey)
+ .last("limit 1"));
+ }
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/HeatRecordService.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/HeatRecordService.java
new file mode 100644
index 0000000..626aea2
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/HeatRecordService.java
@@ -0,0 +1,17 @@
+package org.paperflow.helpprojects.inoutRecordService.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.paperflow.helpprojects.inoutRecordService.BaseService;
+import org.paperflow.helpprojects.inoutRecordService.domain.HeatRecord;
+import org.paperflow.helpprojects.inoutRecordService.mapper.HeatRecordDao;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional(readOnly = true)
+public class HeatRecordService extends BaseService {
+
+
+
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/ParkUserService.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/ParkUserService.java
new file mode 100644
index 0000000..15a0ec2
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/ParkUserService.java
@@ -0,0 +1,26 @@
+package org.paperflow.helpprojects.inoutRecordService.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.extern.slf4j.Slf4j;
+import org.paperflow.helpprojects.inoutRecordService.BaseService;
+import org.paperflow.helpprojects.inoutRecordService.domain.HeatRecord;
+import org.paperflow.helpprojects.inoutRecordService.domain.ParkUser;
+import org.paperflow.helpprojects.inoutRecordService.mapper.HeatRecordDao;
+import org.paperflow.helpprojects.inoutRecordService.mapper.ParkUserMapper;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Slf4j
+@Service
+@Transactional(readOnly = true)
+public class ParkUserService extends BaseService {
+
+
+ @Cacheable(value = "parkUser", key = "#userPhone+':'+#parkId", unless = "#result == null")
+ public ParkUser getUserByMobileAndParkId(String userPhone, String parkId) {
+ return getOne(Wrappers.lambdaQuery(ParkUser.class)
+ .eq(ParkUser::getPhone, userPhone)
+ .eq(ParkUser::getParkId, parkId).last("limit 1"));
+ }
+}
diff --git a/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/PersonTrackService.java b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/PersonTrackService.java
new file mode 100644
index 0000000..4d16e79
--- /dev/null
+++ b/src/main/java/org/paperflow/helpprojects/inoutRecordService/service/PersonTrackService.java
@@ -0,0 +1,18 @@
+package org.paperflow.helpprojects.inoutRecordService.service;
+
+
+import org.paperflow.helpprojects.inoutRecordService.BaseService;
+import org.paperflow.helpprojects.inoutRecordService.domain.AfPersonTrack;
+import org.paperflow.helpprojects.inoutRecordService.mapper.PersonTrackMapper;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * @author 86136
+ * @create 2021-10-26 11:03
+ * @desc
+ **/
+@Service
+public class PersonTrackService extends BaseService {
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..7c4b684
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,13 @@
+spring:
+ application:
+ name: helpProjects
+ datasource:
+ driver-class-name: org.postgresql.Driver
+ url: jdbc:postgresql://10.206.20.45:5432/rev_park?stringtype=unspecified¤tSchema=recovery
+ username: postgres
+ password: zhyq@2023
+ redis:
+ host: 10.206.20.45
+ port: 6379
+ password: zhyq@2023
+ database: 3
diff --git a/src/main/resources/data.txt b/src/main/resources/data.txt
new file mode 100644
index 0000000..5876aa2
--- /dev/null
+++ b/src/main/resources/data.txt
@@ -0,0 +1,2 @@
+2699b530e3bfc730f510760efb37d1fcf861d7fe08f7b33760c2a7d914e98f8ef27bdf493021e54d51079b0a9abbbf182c219fb2a4bcced438fcea4f681f03c
+e26ae46ac22e98741d79f357bc8e9799c49514a17e10b28f3cbb011c00bc5e6f00998365e32436eb391fbb2ed0894381b542a8b5472a3578715f5e96a21de33b
diff --git a/src/main/resources/helpProjects.json b/src/main/resources/helpProjects.json
new file mode 100644
index 0000000..04ce685
--- /dev/null
+++ b/src/main/resources/helpProjects.json
@@ -0,0 +1,675 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "标题:world_cup后台管理系统_接口文档",
+ "description": "描述:用于管理集团旗下公司的此后台管理系统_接口文档",
+ "contact": {
+ "name": "admin"
+ },
+ "version": "版本号: 3.2.0"
+ },
+ "servers": [
+ {
+ "url": "https://api.alphadogepool.club:443",
+ "description": "Inferred Url"
+ }
+ ],
+ "tags": [
+ {
+ "name": "ASIC矿机管理",
+ "description": "Bsc Asic Controller"
+ },
+ {
+ "name": "用户管理",
+ "description": "Bsc User Controller"
+ },
+ {
+ "name": "通用管理",
+ "description": "Bsc Common Controller"
+ }
+ ],
+ "paths": {
+ "/prod-api/app/asic/list": {
+ "get": {
+ "tags": [
+ "ASIC矿机管理"
+ ],
+ "summary": "查询ASIC矿机列表",
+ "operationId": "listUsingGET",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象«List«ASIC矿机视图对象»»"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/common/getDate": {
+ "get": {
+ "tags": [
+ "通用管理"
+ ],
+ "summary": "获取服务器时间",
+ "operationId": "getDateUsingGET",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象«date-time»"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/common/getDictValues": {
+ "get": {
+ "tags": [
+ "通用管理"
+ ],
+ "summary": "获取字典数据",
+ "description": "111-审计报告 112-检查公司 113-中文电报群组 114-英文电报群组 115-在线客服 116-小狐狸 117-币安 118-飞机",
+ "operationId": "getDictValuesUsingGET",
+ "parameters": [
+ {
+ "name": "dict",
+ "in": "query",
+ "description": "字典数组",
+ "required": false,
+ "style": "form",
+ "explode": true,
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/user/getAlgebra": {
+ "get": {
+ "tags": [
+ "用户管理"
+ ],
+ "summary": "查询代数列表",
+ "operationId": "getAlgebraUsingGET",
+ "parameters": [
+ {
+ "name": "address",
+ "in": "query",
+ "description": "address",
+ "required": true,
+ "style": "form",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "chainId",
+ "in": "query",
+ "description": "chainId",
+ "required": true,
+ "style": "form",
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/user/getInfo": {
+ "get": {
+ "tags": [
+ "用户管理"
+ ],
+ "summary": "账户仪表盘",
+ "operationId": "getInfoUsingGET",
+ "parameters": [
+ {
+ "name": "address",
+ "in": "query",
+ "description": "address",
+ "required": true,
+ "style": "form",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "chainId",
+ "in": "query",
+ "description": "chainId",
+ "required": true,
+ "style": "form",
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/user/getUserByAddress": {
+ "get": {
+ "tags": [
+ "用户管理"
+ ],
+ "summary": "获取用户信息",
+ "operationId": "getUserByAddressUsingGET",
+ "parameters": [
+ {
+ "name": "address",
+ "in": "query",
+ "description": "address",
+ "required": true,
+ "style": "form",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "chainId",
+ "in": "query",
+ "description": "chainId",
+ "required": true,
+ "style": "form",
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象«用户视图对象»"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/user/register": {
+ "post": {
+ "tags": [
+ "用户管理"
+ ],
+ "summary": "用户注册",
+ "description": "非必传邀请人",
+ "operationId": "registerUsingPOST",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/用户管理业务对象"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象"
+ }
+ }
+ }
+ },
+ "201": {
+ "description": "Created"
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ },
+ "/prod-api/app/user/withdrawal": {
+ "post": {
+ "tags": [
+ "用户管理"
+ ],
+ "summary": "提现",
+ "operationId": "withdrawalUsingPOST",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/充值提现对象"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "*/*": {
+ "schema": {
+ "$ref": "#/components/schemas/请求响应对象"
+ }
+ }
+ }
+ },
+ "201": {
+ "description": "Created"
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "403": {
+ "description": "Forbidden"
+ },
+ "404": {
+ "description": "Not Found"
+ }
+ },
+ "security": [
+ {
+ "Authorization": [
+ "global"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "ASIC矿机视图对象": {
+ "title": "ASIC矿机视图对象",
+ "type": "object",
+ "properties": {
+ "cf": {
+ "type": "string",
+ "description": "算力"
+ },
+ "createTime": {
+ "type": "string",
+ "description": "创建日期",
+ "format": "date-time"
+ },
+ "dailyEarnings": {
+ "type": "number",
+ "description": "日收益",
+ "format": "bigdecimal"
+ },
+ "holdingAmount": {
+ "type": "number",
+ "description": "持有额度",
+ "format": "bigdecimal"
+ },
+ "id": {
+ "type": "integer",
+ "description": "id",
+ "format": "int64"
+ },
+ "name": {
+ "type": "string",
+ "description": "硬件类型"
+ },
+ "profitMargin": {
+ "type": "number",
+ "description": "区块利润率",
+ "format": "bigdecimal"
+ },
+ "remarks": {
+ "type": "string",
+ "description": "备注"
+ }
+ }
+ },
+ "充值提现对象": {
+ "title": "充值提现对象",
+ "required": [
+ "address",
+ "txid"
+ ],
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "地址"
+ },
+ "chainId": {
+ "type": "integer",
+ "description": "0波场 1eth 56bsc",
+ "format": "int64"
+ },
+ "txid": {
+ "type": "string",
+ "description": "txid"
+ }
+ }
+ },
+ "用户管理业务对象": {
+ "title": "用户管理业务对象",
+ "required": [
+ "address"
+ ],
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "地址"
+ },
+ "chainId": {
+ "type": "integer",
+ "description": "0波场 1eth 56bsc",
+ "format": "int64"
+ },
+ "upAddress": {
+ "type": "string",
+ "description": "邀请人地址"
+ }
+ }
+ },
+ "用户视图对象": {
+ "title": "用户视图对象",
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "地址"
+ },
+ "approveBalance": {
+ "type": "number",
+ "description": "授权额度",
+ "format": "bigdecimal"
+ },
+ "chainId": {
+ "type": "integer",
+ "description": "链id:0-波场 1-ETH主网 56-BSC主网 ",
+ "format": "int64"
+ },
+ "createTime": {
+ "type": "string",
+ "description": "创建日期",
+ "format": "date-time"
+ },
+ "id": {
+ "type": "integer",
+ "description": "id",
+ "format": "int64"
+ },
+ "ipAddr": {
+ "type": "string",
+ "description": "ip"
+ },
+ "isFreeze": {
+ "type": "integer",
+ "description": "0正常 1冻结",
+ "format": "int64"
+ },
+ "recommendCount": {
+ "type": "integer",
+ "description": "直推人数",
+ "format": "int64"
+ },
+ "txBalance": {
+ "type": "number",
+ "description": "待领取余额",
+ "format": "bigdecimal"
+ },
+ "upAddress": {
+ "type": "string",
+ "description": "邀请人"
+ },
+ "usdtBalance": {
+ "type": "number",
+ "description": "USDT余额",
+ "format": "bigdecimal"
+ }
+ }
+ },
+ "请求响应对象": {
+ "title": "请求响应对象",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "description": "消息状态码",
+ "format": "int32"
+ },
+ "data": {
+ "type": "object",
+ "description": "数据对象"
+ },
+ "msg": {
+ "type": "string",
+ "description": "消息内容"
+ }
+ }
+ },
+ "请求响应对象«List«ASIC矿机视图对象»»": {
+ "title": "请求响应对象«List«ASIC矿机视图对象»»",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "description": "消息状态码",
+ "format": "int32"
+ },
+ "data": {
+ "type": "array",
+ "description": "数据对象",
+ "items": {
+ "$ref": "#/components/schemas/ASIC矿机视图对象"
+ }
+ },
+ "msg": {
+ "type": "string",
+ "description": "消息内容"
+ }
+ }
+ },
+ "请求响应对象«date-time»": {
+ "title": "请求响应对象«date-time»",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "description": "消息状态码",
+ "format": "int32"
+ },
+ "data": {
+ "type": "string",
+ "description": "数据对象",
+ "format": "date-time"
+ },
+ "msg": {
+ "type": "string",
+ "description": "消息内容"
+ }
+ }
+ },
+ "请求响应对象«用户视图对象»": {
+ "title": "请求响应对象«用户视图对象»",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "description": "消息状态码",
+ "format": "int32"
+ },
+ "data": {
+ "description": "数据对象",
+ "$ref": "#/components/schemas/用户视图对象"
+ },
+ "msg": {
+ "type": "string",
+ "description": "消息内容"
+ }
+ }
+ }
+ },
+ "securitySchemes": {
+ "Authorization": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header"
+ }
+ }
+ }
+}
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..eb24b84
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ logback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+
+ UTF-8
+
+
+
+ DEBUG
+
+
+
+
+
+ ${LOG_PATH}/${APP_NAME}.log
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{trackId}] %-5level %logger{50} - %msg%n
+ UTF-8
+
+
+
+
+ 20MB
+
+ ${LOG_PATH}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log
+
+ 30
+
+ 10GB
+
+
+
+
+
+ ${LOG_PATH}/${APP_NAME}_error.log
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{trackId}] %-5level %logger{50} - %msg%n
+ UTF-8
+
+
+
+
+ 20MB
+
+ ${LOG_PATH}/${APP_NAME}_error.%d{yyyy-MM-dd}.%i.log
+
+ 30
+
+ 10GB
+
+
+
+ ERROR
+ ACCEPT
+ DENY
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/java/org/paperflow/helpprojects/CommonTest.java b/src/test/java/org/paperflow/helpprojects/CommonTest.java
new file mode 100644
index 0000000..10cd5c1
--- /dev/null
+++ b/src/test/java/org/paperflow/helpprojects/CommonTest.java
@@ -0,0 +1,172 @@
+package org.paperflow.helpprojects;
+
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.http.Header;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
+import io.swagger.models.auth.In;
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.net.Proxy;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.IntStream;
+
+/**
+ * @author Renjie
+ */
+@Slf4j
+@SpringBootTest
+public class CommonTest {
+
+
+ @Test
+ public void test() {
+ IntStream.range(0, 10000).parallel().forEach(i->{
+ try{
+
+ String s = "0x"+ RandomUtil.randomString(40);
+ HttpRequest get = HttpUtil.createPost("https://api.alphadogepool.club/prod-api/app/user/register");
+ Map