Changes
This commit is contained in:
33
.gitignore
vendored
Normal file
33
.gitignore
vendored
Normal file
@@ -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/
|
||||||
109
pom.xml
Normal file
109
pom.xml
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>2.3.12.RELEASE</version>
|
||||||
|
<relativePath/> <!-- lookup parent from repository -->
|
||||||
|
</parent>
|
||||||
|
<groupId>org.paperflow</groupId>
|
||||||
|
<artifactId>helpProjects</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<name>helpProjects</name>
|
||||||
|
<description>helpProjects</description>
|
||||||
|
<properties>
|
||||||
|
<java.version>8</java.version>
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-validation</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
<version>3.5.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
|
||||||
|
<version>4.5.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-cache</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>easyexcel</artifactId>
|
||||||
|
<version>3.3.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
<version>5.8.25</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.guava</groupId>
|
||||||
|
<artifactId>guava</artifactId>
|
||||||
|
<version>33.0.0-jre</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.minio</groupId>
|
||||||
|
<artifactId>minio</artifactId>
|
||||||
|
<version>8.1.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bouncycastle</groupId>
|
||||||
|
<artifactId>bcpkix-jdk18on</artifactId>
|
||||||
|
<version>1.78</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes>
|
||||||
|
<exclude>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package org.paperflow.helpprojects.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author vicro
|
||||||
|
*/
|
||||||
|
//@Configuration
|
||||||
|
public class RedisConfig {
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package org.paperflow.helpprojects.inoutRecordService;
|
||||||
|
|
||||||
|
public interface BaseMapper<T> extends com.baomidou.mybatisplus.core.mapper.BaseMapper<T> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<M extends BaseMapper<T>, T extends SuperEntity> extends ServiceImpl<M, T>{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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 <br>
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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 {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<AfInOutRecord> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 <br>
|
||||||
|
* Function: '%Y-%m-%d'DAO接口
|
||||||
|
* @author zsh
|
||||||
|
* @version 2020-3-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface DeviceWalkDao extends BaseMapper<DeviceWalk> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<HeatRecord> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<ParkUser> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<AfPersonTrack> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<AfInOutRecordMapper, AfInOutRecord> {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<DeviceWalkDao, DeviceWalk> {
|
||||||
|
|
||||||
|
|
||||||
|
@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"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<HeatRecordDao, HeatRecord> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<ParkUserMapper, ParkUser> {
|
||||||
|
|
||||||
|
|
||||||
|
@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"));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<PersonTrackMapper, AfPersonTrack> {
|
||||||
|
|
||||||
|
}
|
||||||
13
src/main/resources/application.yml
Normal file
13
src/main/resources/application.yml
Normal file
@@ -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
|
||||||
2
src/main/resources/data.txt
Normal file
2
src/main/resources/data.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
2699b530e3bfc730f510760efb37d1fcf861d7fe08f7b33760c2a7d914e98f8ef27bdf493021e54d51079b0a9abbbf182c219fb2a4bcced438fcea4f681f03c
|
||||||
|
e26ae46ac22e98741d79f357bc8e9799c49514a17e10b28f3cbb011c00bc5e6f00998365e32436eb391fbb2ed0894381b542a8b5472a3578715f5e96a21de33b
|
||||||
675
src/main/resources/helpProjects.json
Normal file
675
src/main/resources/helpProjects.json
Normal file
@@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
96
src/main/resources/logback-spring.xml
Normal file
96
src/main/resources/logback-spring.xml
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
|
||||||
|
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
|
||||||
|
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
|
||||||
|
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
|
||||||
|
<configuration scan="true" scanPeriod="10 seconds">
|
||||||
|
<contextName>logback</contextName>
|
||||||
|
<!--
|
||||||
|
使用logback打印日志读取配置的变量时出现大量XXX_IS_UNDEFINED日志文件的问题的原因,并提供了对应的解决方案。
|
||||||
|
1、注意bootstrap.properties->application.properties的加载顺序
|
||||||
|
2、注意logback.xml->application.properties->logback-spring.xml的加载顺序
|
||||||
|
3、通过logging.config属性指定logback配置文件,保证logback配置文件在spring属性文件之后加载
|
||||||
|
所以修改logback-spring.xml 为 logback-spring.xml
|
||||||
|
-->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="park-service"/>
|
||||||
|
<springProperty scope="context" name="LOG_PATH" source="logging.path" defaultValue="./logs"/>
|
||||||
|
<springProperty scope="context" name="LOG_LEVEL" source="logging.level.root" defaultValue="info"/>
|
||||||
|
|
||||||
|
<!-- 彩色日志依赖的渲染类 -->
|
||||||
|
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
|
||||||
|
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
|
||||||
|
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
|
||||||
|
<!-- 主机IP地址转换器 -->
|
||||||
|
<conversionRule conversionWord="ip" converterClass="com.sccl.park.gateway.custom.CustomLogConverter" />
|
||||||
|
<!-- 彩色日志格式 -->
|
||||||
|
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [trackId=%X{trackId}] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
|
||||||
|
|
||||||
|
<!--输出到控制台-->
|
||||||
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
|
||||||
|
<!-- 设置字符集 -->
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
|
||||||
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||||
|
<level>DEBUG</level>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||||
|
<file>${LOG_PATH}/${APP_NAME}.log</file>
|
||||||
|
<!--日志文件输出格式-->
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{trackId}] %-5level %logger{50} - %msg%n</pattern>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||||
|
<!-- 文件限制20mb每个-->
|
||||||
|
<maxFileSize>20MB</maxFileSize>
|
||||||
|
<!-- 归档文件名-->
|
||||||
|
<fileNamePattern>${LOG_PATH}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||||
|
<!-- 历史记录最多保存30天-->
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<!-- 归档文件整体最多保存10GB-->
|
||||||
|
<totalSizeCap>10GB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
</appender>
|
||||||
|
<!-- 时间滚动输出 level为 ERROR 日志,用于方便的查找错误信息 -->
|
||||||
|
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<!-- 正在记录的日志文件的路径及文件名 -->
|
||||||
|
<file>${LOG_PATH}/${APP_NAME}_error.log</file>
|
||||||
|
<!--日志文件输出格式-->
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{trackId}] %-5level %logger{50} - %msg%n</pattern>
|
||||||
|
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
|
||||||
|
</encoder>
|
||||||
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||||
|
<!-- 文件限制20mb每个-->
|
||||||
|
<maxFileSize>20MB</maxFileSize>
|
||||||
|
<!-- 归档文件名-->
|
||||||
|
<fileNamePattern>${LOG_PATH}/${APP_NAME}_error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||||
|
<!-- 历史记录最多保存30天-->
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
<!-- 归档文件整体最多保存10GB-->
|
||||||
|
<totalSizeCap>10GB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<!-- 此日志文件只记录ERROR级别的 -->
|
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
|
<level>ERROR</level>
|
||||||
|
<onMatch>ACCEPT</onMatch>
|
||||||
|
<onMismatch>DENY</onMismatch>
|
||||||
|
</filter>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root level="${LOG_LEVEL}">
|
||||||
|
<appender-ref ref="CONSOLE" />
|
||||||
|
<appender-ref ref="FILE" />
|
||||||
|
<appender-ref ref="ERROR_FILE" />
|
||||||
|
</root>
|
||||||
|
|
||||||
|
|
||||||
|
</configuration>
|
||||||
172
src/test/java/org/paperflow/helpprojects/CommonTest.java
Normal file
172
src/test/java/org/paperflow/helpprojects/CommonTest.java
Normal file
@@ -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<Object, Object> map = new HashMap<>();
|
||||||
|
map.put("address", s);
|
||||||
|
int randomInt = RandomUtil.randomInt(0, 30);
|
||||||
|
if (randomInt < 10) {
|
||||||
|
map.put("chainId", 0);
|
||||||
|
} else if (randomInt < 20) {
|
||||||
|
map.put("chainId", 1);
|
||||||
|
}else {
|
||||||
|
map.put("chainId", 56);
|
||||||
|
}
|
||||||
|
get.setHttpProxy("127.0.0.1", 10809)
|
||||||
|
.body(JSONUtil.toJsonStr(map))
|
||||||
|
.header(Header.USER_AGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/141.0.0.0")
|
||||||
|
.header("SB-Digger", "0x19af956e490b257cc6df72a6e4abd6a1b75472c2");
|
||||||
|
// .form("address", addr)
|
||||||
|
// .form("chainId", 56);
|
||||||
|
HttpResponse execute = get.execute();
|
||||||
|
log.info("{}:{}",s,execute.body());
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class Point{
|
||||||
|
public BigInteger x;
|
||||||
|
public BigInteger y;
|
||||||
|
|
||||||
|
public static Point create(BigInteger x, BigInteger y) {
|
||||||
|
Point point = new Point();
|
||||||
|
point.x = x;
|
||||||
|
point.y = y;
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "[" +
|
||||||
|
"x=" + x.toString(16) +
|
||||||
|
", y=" + y.toString(16) +
|
||||||
|
']';
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toPubString() {
|
||||||
|
return "0x" + String.format("%64s",x.toString(16)).replace(' ', '0') + String.format("%64s",y.toString(16)).replace(' ', '0');
|
||||||
|
}
|
||||||
|
public boolean isInfinity() {
|
||||||
|
return this.x == null && this.y == null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param p
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Point pointDouble(Point p) {
|
||||||
|
if (p.isInfinity() || p.y.equals(BigInteger.ZERO)) {
|
||||||
|
return INFINITY; // 若y=0,则2P为无穷远点
|
||||||
|
}
|
||||||
|
BigInteger x1Squared = p.x.pow(2).mod(modp);
|
||||||
|
BigInteger num = x1Squared.multiply(BigInteger.valueOf(3)).add(a).mod(modp);
|
||||||
|
BigInteger denominator = p.y.multiply(BigInteger.valueOf(2)).mod(modp);
|
||||||
|
BigInteger k = num.multiply(denominator.modInverse(modp)).mod(modp);
|
||||||
|
Point p2 = new Point();
|
||||||
|
p2.x = k.pow(2).subtract(p.x.multiply(BigInteger.valueOf(2))).mod(modp);
|
||||||
|
p2.y = k.multiply(p.x.subtract(p2.x)).subtract(p.y).mod(modp);
|
||||||
|
return p2;
|
||||||
|
}
|
||||||
|
public Point pointAdd(Point p,Point q) {
|
||||||
|
if (p.isInfinity()) {
|
||||||
|
return q;
|
||||||
|
}
|
||||||
|
if (q.isInfinity()) {
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
if (p.x.equals(q.x) && p.y.add(q.y).mod(modp).equals(BigInteger.ZERO)) {
|
||||||
|
return INFINITY;
|
||||||
|
}
|
||||||
|
BigInteger num = q.y.subtract(p.y).mod(modp);
|
||||||
|
BigInteger denominator = q.x.subtract(p.x).mod(modp);
|
||||||
|
BigInteger k = num.multiply(denominator.modInverse(modp)).mod(modp);
|
||||||
|
Point p2 = new Point();
|
||||||
|
p2.x = k.pow(2).subtract(p.x).subtract(q.x).mod(modp);
|
||||||
|
p2.y = k.multiply(p.x.subtract(p2.x)).subtract(p.y).mod(modp);
|
||||||
|
return p2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Point scalarMultiply(Point p, BigInteger n) {
|
||||||
|
// 处理特殊情况:k=0或P为无穷远点
|
||||||
|
if (n.equals(BigInteger.ZERO) || p.isInfinity()) {
|
||||||
|
return INFINITY;
|
||||||
|
}
|
||||||
|
// 确保k为正数(若k为负,等价于(-k)*(-P))
|
||||||
|
if (n.signum() < 0) {
|
||||||
|
n = n.negate();
|
||||||
|
p = Point.create(p.x, p.y.negate().mod(modp)); // -P的坐标为(x, -y mod p)
|
||||||
|
}
|
||||||
|
|
||||||
|
Point result = INFINITY;
|
||||||
|
Point current = p;
|
||||||
|
String binary = n.toString(2); // 将k转为二进制
|
||||||
|
|
||||||
|
// 从最高位到最低位遍历二进制
|
||||||
|
for (int i = 0; i < binary.length(); i++) {
|
||||||
|
// 步骤1:加倍当前点(result = 2*result)
|
||||||
|
result = pointDouble(result);
|
||||||
|
|
||||||
|
// 步骤2:若当前位为1,加上当前点(result = result + current)
|
||||||
|
if (binary.charAt(i) == '1') {
|
||||||
|
result = pointAdd(result, current);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private final static BigInteger a = BigInteger.ZERO;
|
||||||
|
private final static BigInteger modp = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F",16);
|
||||||
|
private final static Point INFINITY = Point.create(null,null);
|
||||||
|
/**
|
||||||
|
* y2=x3+ax+b mod p 其中a-0,b=7
|
||||||
|
* p=0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F = 2256-232-29-28-27-26-24-1 = 2256-232-977
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void test1() {
|
||||||
|
// BigInteger prik = new BigInteger("512b07f26e8c73076b9e54a4770980309c687ce10c6335a79d6f11fce74b3f1c", 16);
|
||||||
|
BigInteger prik = new BigInteger("512b07f26e8c73076b9e54a4770980309c687ce10c6335a79d6f11fce74b3f1c", 16);
|
||||||
|
BigInteger gx = new BigInteger("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", 16);
|
||||||
|
BigInteger gy = new BigInteger("483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", 16);
|
||||||
|
Point p = Point.create(gx, gy);
|
||||||
|
p = scalarMultiply(p, prik);
|
||||||
|
System.out.println(p.toPubString());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,173 @@
|
|||||||
|
package org.paperflow.helpprojects;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.excel.EasyExcel;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.checkerframework.checker.units.qual.A;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.paperflow.helpprojects.inoutRecordService.domain.*;
|
||||||
|
import org.paperflow.helpprojects.inoutRecordService.service.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author vicro
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@SpringBootTest
|
||||||
|
public class InOutRecordApplicationTests {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HeatRecordService heatRecordService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AfInOutRecordService inOutRecordClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PersonTrackService personTrackService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ParkUserService parkUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DeviceWalkService deviceWalkService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
String a = "INSERT INTO %sMETADATA_STORE(METADATA_KEY, METADATA_VALUE, REGION) "
|
||||||
|
+ "SELECT ?, ?, ? FROM %sMETADATA_STORE WHERE METADATA_KEY=? AND REGION=? HAVING COUNT(*)=0";
|
||||||
|
System.out.println(a);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void contextLoads() {
|
||||||
|
String a = "C:\\Users\\52301\\Downloads\\test.xlsx";
|
||||||
|
List<ParkUser> objects = EasyExcel.read(a).head(ParkUser.class).doReadAllSync();
|
||||||
|
parkUserService.saveBatch(objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void pullInoutRecord() {
|
||||||
|
String pathName = "E:\\inOutRecords";
|
||||||
|
List<File> files = FileUtil.loopFiles(pathName);
|
||||||
|
for (File file : files) {
|
||||||
|
log.info("文件路径:{}",file.getName());
|
||||||
|
List<Map<String, Object>> objects = EasyExcel.read(file).doReadAllSync();
|
||||||
|
List<HfFace> list = objects.stream().map(map -> {
|
||||||
|
String o = map.get(0).toString();
|
||||||
|
o = o.replace("人行道闸收到参数:", "");
|
||||||
|
HfFace bean = JSONUtil.toBean(o, HfFace.class);
|
||||||
|
JSONArray devices = JSONUtil.parseArray(bean.getBarrierGateId());
|
||||||
|
bean.setBarrierGateId(devices.get(0).toString());
|
||||||
|
bean.setEntryPhoto(null);
|
||||||
|
bean.setParkId("e95ee5ac957004e70048f7b59cbaa5db");
|
||||||
|
return bean;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
convertDatabaseData(list,file);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private void convertDatabaseData(List<HfFace> list,File file) {
|
||||||
|
|
||||||
|
List<HeatRecord> heats = Collections.synchronizedList(new ArrayList<>(list.size()));
|
||||||
|
List<AfInOutRecord> inOutRecords = Collections.synchronizedList(new ArrayList<>(list.size()));
|
||||||
|
List<AfPersonTrack> personTracks = Collections.synchronizedList(new ArrayList<>(list.size()));
|
||||||
|
list.stream().parallel().forEach(hfFace -> {
|
||||||
|
String parkId = hfFace.getParkId();
|
||||||
|
DeviceWalk deviceWalk = deviceWalkService.getByDeviceKey(hfFace.getBarrierGateId());
|
||||||
|
if (deviceWalk == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
HeatRecord heatRecord = new HeatRecord();
|
||||||
|
heatRecord.setDeviceKey(hfFace.getBarrierGateId())
|
||||||
|
.setName(hfFace.getUserName())
|
||||||
|
.setMobile(hfFace.getUserPhone())
|
||||||
|
.setSnap(null)
|
||||||
|
.setUserId("-1")
|
||||||
|
.setUserType("2")
|
||||||
|
.setTaskId(hfFace.getTaskId())
|
||||||
|
.setDelFlag("0");
|
||||||
|
ParkUser user= parkUserService.getUserByMobileAndParkId(hfFace.getUserPhone(), parkId);
|
||||||
|
if (user != null && StrUtil.isNotBlank(user.getUserId())) {
|
||||||
|
heatRecord.setUserId(user.getUserId());
|
||||||
|
heatRecord.setMobile(user.getPhone());
|
||||||
|
//内部人员
|
||||||
|
heatRecord.setUserType("1");
|
||||||
|
}else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
heatRecord.setHeat(hfFace.getTemperature());
|
||||||
|
heatRecord.setIsMasks(hfFace.getMask());
|
||||||
|
heatRecord.setFace(heatRecord.getSnap());
|
||||||
|
heatRecord.setSimilarity(hfFace.getConfidence());
|
||||||
|
heatRecord.setIsNormal("1");
|
||||||
|
DateTime reportTime = DateUtil.parse(hfFace.getEntryTime(), "yyyy-MM-dd HH:mm:ss");
|
||||||
|
heatRecord.setReportTime(reportTime);
|
||||||
|
heatRecord.setParkId(parkId);
|
||||||
|
// heatRecordService.save(heatRecord);
|
||||||
|
heats.add(heatRecord);
|
||||||
|
String accessType = deviceWalk.getAccessType();
|
||||||
|
accessType = StrUtil.isNotBlank(accessType) ? accessType : "0";
|
||||||
|
//是否是进入
|
||||||
|
// 创建出入记录
|
||||||
|
AfInOutRecord inOutRecord = createInOutRecord(heatRecord, hfFace, accessType);
|
||||||
|
// inOutRecordClient.save(inOutRecord);
|
||||||
|
inOutRecords.add(inOutRecord);
|
||||||
|
//人员轨迹信息储存
|
||||||
|
AfPersonTrack personTrack = new AfPersonTrack();
|
||||||
|
personTrack.setUserId(user.getUserId());
|
||||||
|
personTrack.setUserType("1");//内部人员
|
||||||
|
personTrack.setDeviceKey(deviceWalk.getDeviceKey());
|
||||||
|
personTrack.setProductType("人行道闸");
|
||||||
|
personTrack.setTrackTime(hfFace.getEntryTime());
|
||||||
|
personTrack.setParkId(hfFace.getParkId());
|
||||||
|
personTracks.add(personTrack);
|
||||||
|
});
|
||||||
|
log.info("转换记录:{}",heats.size());
|
||||||
|
heatRecordService.saveBatch(heats);
|
||||||
|
inOutRecordClient.saveBatch(inOutRecords);
|
||||||
|
personTrackService.saveBatch(personTracks);
|
||||||
|
file.deleteOnExit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private AfInOutRecord createInOutRecord(HeatRecord report, HfFace hfFace, String accessType) {
|
||||||
|
String passageMode = "";//通行方式
|
||||||
|
if (StrUtil.isNotBlank(hfFace.getEntryType())) {
|
||||||
|
switch (hfFace.getEntryType()) {
|
||||||
|
case "1":
|
||||||
|
passageMode = "1";
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
passageMode = "3";
|
||||||
|
break;
|
||||||
|
case "3":
|
||||||
|
passageMode = "4";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
passageMode = "0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AfInOutRecord record = new AfInOutRecord();
|
||||||
|
record.setUserId(report.getUserId())
|
||||||
|
.setParkId(report.getParkId())
|
||||||
|
.setImg(report.getSnap())
|
||||||
|
.setTemperature(report.getHeat())
|
||||||
|
.setDeviceKey(report.getDeviceKey())
|
||||||
|
.setPassageTime(report.getReportTime())
|
||||||
|
.setPassageMode(passageMode) //通行方式: 1_刷卡 2_刷码 3_刷脸 ,4_身份证,0_未知 字典类型:security_passage_mode
|
||||||
|
.setType(accessType) //出入类型: 0_进门 1_出门 字典类型:access_type
|
||||||
|
.setUserType("1".equals(report.getUserType()) ? "2" : "1"); //人员类型: 1_外部人员 2_内部人员 字典类型:owner_Type
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
}
|
||||||
105
src/test/java/org/paperflow/helpprojects/MinioProjectTests.java
Normal file
105
src/test/java/org/paperflow/helpprojects/MinioProjectTests.java
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
package org.paperflow.helpprojects;
|
||||||
|
|
||||||
|
import io.minio.MinioClient;
|
||||||
|
import io.minio.SetBucketPolicyArgs;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.paperflow.helpprojects.enums.PolicyType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author vicro
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class MinioProjectTests {
|
||||||
|
public static String getPolicyType(String bucketName, PolicyType policyType) {
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
builder.append("{\n");
|
||||||
|
builder.append(" \"Statement\": [\n");
|
||||||
|
builder.append(" {\n");
|
||||||
|
builder.append(" \"Action\": [\n");
|
||||||
|
|
||||||
|
switch (policyType) {
|
||||||
|
case WRITE:
|
||||||
|
builder.append(" \"s3:GetBucketLocation\",\n");
|
||||||
|
builder.append(" \"s3:ListBucketMultipartUploads\"\n");
|
||||||
|
break;
|
||||||
|
case READ_WRITE:
|
||||||
|
builder.append(" \"s3:GetBucketLocation\",\n");
|
||||||
|
builder.append(" \"s3:ListBucket\",\n");
|
||||||
|
builder.append(" \"s3:ListBucketMultipartUploads\"\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
builder.append(" \"s3:GetBucketLocation\"\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.append(" ],\n");
|
||||||
|
builder.append(" \"Effect\": \"Allow\",\n");
|
||||||
|
builder.append(" \"Principal\": \"*\",\n");
|
||||||
|
builder.append(" \"Resource\": \"arn:aws:s3:::");
|
||||||
|
builder.append(bucketName);
|
||||||
|
builder.append("\"\n");
|
||||||
|
builder.append(" },\n");
|
||||||
|
if (PolicyType.READ.equals(policyType)) {
|
||||||
|
builder.append(" {\n");
|
||||||
|
builder.append(" \"Action\": [\n");
|
||||||
|
builder.append(" \"s3:ListBucket\"\n");
|
||||||
|
builder.append(" ],\n");
|
||||||
|
builder.append(" \"Effect\": \"Deny\",\n");
|
||||||
|
builder.append(" \"Principal\": \"*\",\n");
|
||||||
|
builder.append(" \"Resource\": \"arn:aws:s3:::");
|
||||||
|
builder.append(bucketName);
|
||||||
|
builder.append("\"\n");
|
||||||
|
builder.append(" },\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
builder.append(" {\n");
|
||||||
|
builder.append(" \"Action\": ");
|
||||||
|
|
||||||
|
switch (policyType) {
|
||||||
|
case WRITE:
|
||||||
|
builder.append("[\n");
|
||||||
|
builder.append(" \"s3:AbortMultipartUpload\",\n");
|
||||||
|
builder.append(" \"s3:DeleteObject\",\n");
|
||||||
|
builder.append(" \"s3:ListMultipartUploadParts\",\n");
|
||||||
|
builder.append(" \"s3:PutObject\"\n");
|
||||||
|
builder.append(" ],\n");
|
||||||
|
break;
|
||||||
|
case READ_WRITE:
|
||||||
|
builder.append("[\n");
|
||||||
|
builder.append(" \"s3:AbortMultipartUpload\",\n");
|
||||||
|
builder.append(" \"s3:DeleteObject\",\n");
|
||||||
|
builder.append(" \"s3:GetObject\",\n");
|
||||||
|
builder.append(" \"s3:ListMultipartUploadParts\",\n");
|
||||||
|
builder.append(" \"s3:PutObject\"\n");
|
||||||
|
builder.append(" ],\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
builder.append("\"s3:GetObject\",\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.append(" \"Effect\": \"Allow\",\n");
|
||||||
|
builder.append(" \"Principal\": \"*\",\n");
|
||||||
|
builder.append(" \"Resource\": \"arn:aws:s3:::");
|
||||||
|
builder.append(bucketName);
|
||||||
|
builder.append("/*\"\n");
|
||||||
|
builder.append(" }\n");
|
||||||
|
builder.append(" ],\n");
|
||||||
|
builder.append(" \"Version\": \"2012-10-17\"\n");
|
||||||
|
builder.append("}\n");
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
@SneakyThrows
|
||||||
|
@Test
|
||||||
|
void testLog() {
|
||||||
|
//正式环境
|
||||||
|
String endpoint = "http://oss1.paas.sc.ctc.com";
|
||||||
|
String accessKey = "VDY2A948YTL8S4DT3KJI";
|
||||||
|
String secretKey = "GAcU2mL7MTHNOjM4hDUASEL1w8iLdRYMs37BzMC5";
|
||||||
|
String bucketName = "sc-userfiles-75";
|
||||||
|
MinioClient minioClient = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();
|
||||||
|
minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(getPolicyType(bucketName, PolicyType.READ_WRITE)).build());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user