feat:消费机日志

This commit is contained in:
dzc committed 2026-02-12 14:21:30 +08:00
1 parent 45162e43be
commit 5ed9ac14f9
38 files changed
+784 -65

No files matched your search

@@ -23,6 +23,7 @@ public enum HardTypeEnum {
OTHER("6", "其他支付方式(第三方接口对接)"),
MERCHANT_ACT("7", "商户活动"),
FARMER("8", "共富商城(助农)"),
YUN_XFJ("9", "云版消费机"),
;
private final String type;
private final String description;
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import com.bsd.pjcloud.hard.api.entity.xfj.HardXfjLogEntity;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class HardXfjLogDto extends HardXfjLogEntity {
private LocalDateTime[] createTimeList;
}
@@ -0,0 +1,72 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
import java.util.List;
@Data
public class XfjConsumTransactionsDto {
/**
* 消费序号(年月日时分秒+2个字节序号(0~65535)),用于识别上传数据不重复
*/
private String Order;
/**
* 10进制卡序列号(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 卡模式
* 0:实体卡
* 1:电子卡
*/
private Integer CardMode;
/**
* 交易模式
* 0: 刷卡扣费
* 1: 现金充值
* 2: 余额查询
* 3: 钱包转账
* 4: 现金退款
*/
private Integer Mode;
/**
* 扣费类型
* 0:手动
* 1:菜单
* 2:定值
* 3:取餐
* 4:计时
* 5:计次
*/
private Integer PayType;
/**
* 消费金额(Mode为2时,此字段传入值可能为0)
*/
private String Amount;
/**
* 菜品消费列表
*/
List<Menus> Menus;
@Data
static public class Menus {
/**
* 菜品编号(与菜品查询接口菜品编号一致)
*/
private String MenuID;
/**
* 菜品数量(支持小数)
*/
private String Count;
}
}
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjMenusDto {
/**
* 菜品编号(操作员在消费机键盘输入的数字)
*/
private String MenuNo;
}
@@ -0,0 +1,48 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjOffLinesDto {
/**
* 终端设备ID
*/
private Integer DeviceNumber;
/**
* 消费序号(年月日时分秒+2个字节序号),用于识别上传数据不重复
*/
private String Order;
/**
* 扣费类型
* 0:手动模式
* 1:菜单模式
* 2:定值模式
*/
private Integer PayType;
/**
* 卡模式
* 0:实体卡
* 1:电子卡
*/
private Integer CardMode;
/**
* 消费时间年月日时分秒
*/
private String Time;
/**
* 卡号10进制(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 扣费金额
*/
private String Money;
}
@@ -0,0 +1,25 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjOrderQueryDto {
/**
* 消费序号(年月日时分秒+2个字节序号(0~65535)),用于识别上传数据不重复
*/
private String Order;
/**
* 10进制卡序列号(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 卡模式
* 0:实体卡
* 1:电子卡
*/
private Integer CardMode;
}
@@ -0,0 +1,55 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
import java.util.List;
@Data
public class XfjQRCodeTransactionDto {
/**
* 交易模式
* 0:扣费
* 1:充值
* 3:信息查询
*/
private String Mode;
/**
* 扣费类型
* 0:手动
* 1:菜单
* 2:定值
* 3:取餐
* 4:计时
*/
private Integer PayType;
/**
* 消费金额(Mode为3时,此字段传入值可能为0)
*/
private String Amount;
/**
* 扫描到的二维码字符串(最大长度为200)
*/
private String QR;
private List<MenuItem> Menus;
@Data
public static class MenuItem {
/**
* 菜品编号(与菜品查询接口菜品编号一致)
*/
private String MenuID;
/**
* 菜品数量(支持小数)
*/
private String Count;
}
}
@@ -0,0 +1,18 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjServerTimeDto {
/**
* 设备中的总白名单数
*/
private Integer WLSum;
/**
* 自定义机号
*/
private Integer DeviceID;
}
@@ -0,0 +1,15 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjTransactionDto {
/**
* 从最后一笔消费往前算的位置
* 1:就是最后一笔
* 2:就是倒数第二笔
*/
private Integer Number;
}
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjTransactionInquiryDto {
/**
* 二维码交易订单号(该值来自于第六及第七接口返回的QROrder)
*/
private String QROrder;
}
@@ -0,0 +1,17 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjTransactionRefundDto {
/**
* 消费订单号(最大30字符)
*/
private String OrderSeralid;
/**
* 退款金额
*/
private String Amount;
}
@@ -0,0 +1,23 @@
package com.bsd.pjcloud.hard.api.dto.xfj;
import lombok.Data;
@Data
public class XfjWhiteListDto {
/**
* 通讯序号
*/
private Integer CommID;
/**
* 页数
*/
private Integer Page;
/**
* 页个数(一页最多有多少个名单)
*/
private Integer PageNumber;
}
@@ -0,0 +1,124 @@
package com.bsd.pjcloud.hard.api.entity.xfj;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.bsd.pjcloud.common.core.util.TenantTable;
import java.time.LocalDateTime;
/**
* 消费机日志
*/
@Data
@TenantTable
@TableName("hard_xfj_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "消费机日志")
public class HardXfjLogEntity extends Model<HardXfjLogEntity> {
/**
* 编号
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "编号")
private Long id;
/**
* 设备唯一编号
*/
@Schema(description = "设备唯一编号")
private String uniqueCode;
/**
* 设备类型
*/
@Schema(description = "设备类型")
private String hardType;
/**
* 用户id
*/
@Schema(description = "用户id")
private String title;
/**
* headers
*/
@Schema(description = "headers")
private String headers;
/**
* res
*/
@Schema(description = "res")
private String res;
/**
* req
*/
@Schema(description = "req")
private String req;
/**
* 开始时间
*/
@Schema(description = "开始时间")
private LocalDateTime startTime;
/**
* 结束时间
*/
@Schema(description = "结束时间")
private LocalDateTime endTime;
/**
* 耗时(秒)
*/
@Schema(description = "耗时(秒)")
private Integer cost;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@Schema(description = "创建人")
private String createBy;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@Schema(description = "创建时间")
private LocalDateTime createTime;
/**
* 修改人
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@Schema(description = "修改人")
private String updateBy;
/**
* 修改时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@Schema(description = "修改时间")
private LocalDateTime updateTime;
/**
* 删除标记
*/
@TableLogic
@TableField(fill = FieldFill.INSERT)
@Schema(description = "删除标记")
private String delFlag;
/**
* 租户ID
*/
@Schema(description = "租户ID")
private Long tenantId;
}
@@ -0,0 +1,9 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import com.bsd.pjcloud.hard.api.entity.xfj.HardXfjLogEntity;
import lombok.Data;
@Data
public class HardXfjLogVo extends HardXfjLogEntity {
}
@@ -0,0 +1,19 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjBaseVo {
/**
* 1:成功
* 0:失败
*/
private String Status;
/**
* 错误消息(Status为0时屏幕显示此内容,最多不超过8个汉字)
*/
private String Msg;
}
@@ -0,0 +1,68 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjConsumTransactionsVo extends XfjBaseVo {
/**
* 人员姓名
*/
private String Name;
/**
* 10进制卡序列号(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 现金余额(允许两位小数)
*/
private String Money;
/**
* 补贴余额(允许两位小数)
*/
private String Subsidy;
/**
* 剩余次数
*/
private String Times;
/**
* 赠送余额(允许两位小数)
*/
private String Integral;
/**
* 入场时间(固定值:"")
*/
private String InTime;
/**
* 出场时间(固定值:"")
*/
private String OutTime;
/**
* 累计使用时间:天时分秒
*/
private String CumulativeTime;
/**
* 实际扣费金额(信息查询模式下返回"0")
*/
private String Amount;
/**
* 语音段(用于安卓系统设备)
*/
private String VoiceID;
/**
* 自定义显示文本(Status为1时传入,屏幕显示此值,内容内使用\r\n换行,最多支持4行,每行不超过8个汉字)
*/
private String Text;
}
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjCountsVo extends XfjBaseVo {
/**
* 自定义显示文本(Status为1时传入,屏幕显示此值,内容内使用\n换行,最多支持4行,每行不超过8个汉字)
*/
private String Text;
}
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjKeepAliveVo extends XfjBaseVo {
/**
* 二维码交易订单号,没定单号时为空
*/
private String Qrorder;
}
@@ -0,0 +1,18 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjMenusVo extends XfjBaseVo {
/**
* 菜品名称
*/
private String Name;
/**
* 菜品单价
*/
private String Price;
}
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjOffLinesVo extends XfjBaseVo {
/**
* Status为1时返回此内容(返回是请求示例中的order信息)
*/
private String Order;
}
@@ -0,0 +1,66 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjOrderQueryVo extends XfjBaseVo {
/**
* 人员姓名
*/
private String Name;
/**
* 10进制卡序列号(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 现金余额(允许两位小数)
*/
private String Money;
/**
* 补贴余额(允许两位小数)
*/
private String Subsidy;
/**
* 剩余次数
*/
private String Times;
/**
* 赠送余额(允许两位小数)
*/
private String Integral;
/**
* 入场时间(固定值:"")
*/
private String InTime;
/**
* 出场时间(固定值:"")
*/
private String OutTime;
/**
* 累计使用时间:天时分秒
*/
private String CumulativeTime;
/**
* 实际扣费金额(信息查询模式下返回"0")
*/
private String Amount;
/**
* 语音段(用于安卓系统设备)
*/
private String VoiceID;
/**
* 自定义显示文本(Status为1时传入,屏幕显示此值,内容内使用\r\n换行,最多支持4行,每行不超过8个汉字)
*/
private String Text;
}
@@ -0,0 +1,13 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjQRCodeTransactionVo extends XfjBaseVo {
/**
* 订单号
*/
private String Qrorder;
}
@@ -0,0 +1,24 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjServerTimeVo extends XfjBaseVo {
/**
* 服务器时间,固定格式为yyyyMMddHHmmssd最后一位d代表星期,星期一为1,星期六为6,星期天为0
*/
private String Time;
/**
* 1:有白名单更新
* 0:无
*/
private Integer WLUptate;
/**
* 起始页数(当WLUptate为1却WLPage为0时,清除所有白名单)
*/
private Integer WLPage;
}
@@ -0,0 +1,66 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjTransactionInquiryVo extends XfjBaseVo {
/**
* 人员姓名
*/
private String Name;
/**
* 10进制卡序列号(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 现金余额(允许两位小数)
*/
private String Money;
/**
* 补贴余额(允许两位小数)
*/
private String Subsidy;
/**
* 剩余次数
*/
private String Times;
/**
* 赠送余额(允许两位小数)
*/
private String Integral;
/**
* 入场时间(固定值:"")
*/
private String InTime;
/**
* 出场时间(固定值:"")
*/
private String OutTime;
/**
* 累计使用时间:天时分秒
*/
private String CumulativeTime;
/**
* 实际扣费金额(信息查询模式下返回"0")
*/
private String Amount;
/**
* 语音段(用于安卓系统设备)
*/
private String VoiceID;
/**
* 自定义显示文本(Status为1时传入,屏幕显示此值,内容内使用\r\n换行,最多支持4行,每行不超过8个汉字)
*/
private String Text;
}
@@ -0,0 +1,47 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjTransactionRefundVo extends XfjBaseVo {
/**
* 人员姓名
*/
private String Name;
/**
* 10进制卡序列号(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 现金余额(允许两位小数)
*/
private String Money;
/**
* 补贴余额(允许两位小数)
*/
private String Subsidy;
/**
* 剩余次数
*/
private String Times;
/**
* 赠送余额(允许两位小数)
*/
private String Integral;
/**
* 退款金额
*/
private String Amount;
/**
* 11 (写死 11)用于区分接口
*/
private Integer CmdType;
}
@@ -0,0 +1,52 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjTransactionVo extends XfjBaseVo {
/**
* 编号 从最后一笔消费往前算的位置
* 1:就是最后一笔
* 2:就是倒数第二笔
*/
private String Number;
/**
* 消费时间(格式:yyyyMMddHHmmss)
*/
private String Time;
/**
* 卡号10进制(实体卡号或虚拟卡号)
*/
private String CardNo;
/**
* 姓名最大5个汉字
*/
private String Name;
/**
* 消费额
* - 10.00元
*/
private String Consume;
/**
* 余额
* - 10.00元
*/
private String Balance;
/**
* 消费类型(消费 充值 退款,因错退还)
*/
private String ClassAlias;
/**
* 消费订单号
*/
private String OrderSeralid;
}
@@ -0,0 +1,36 @@
package com.bsd.pjcloud.hard.api.vo.xfj;
import lombok.Data;
@Data
public class XfjWhiteListVo extends XfjBaseVo {
/**
* 返回设备提交的序号
*/
private String CommID;
/**
* 页数(获取那一页的数据)
*/
private String Page;
/**
* 名单个数
*/
private String PageLen;
/**
* 白名单数据(1|0000000001|1,序号|卡号|操作)
* 1:添加
* 0:删除
*/
private String WLData;
/**
* 1:继续获取
* 0:已经更新完成
*/
private String Uptate;
}