This commit is contained in:
dzc committed 2026-09-10 13:09:14 +08:00
1 parent 2ca14aa1e0
commit b254ef0783
31 files changed
+939 -79

No files matched your search

@@ -0,0 +1,37 @@
package com.bsd.pjcloud.hard.api.dto.hard;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Android 终端离线人员快照分页请求。
*
* <p>按设备绑定部门树的用户主键升序做固定上界游标分页;部门和钱包类型均由
* DEVICE-ID 解析,终端不可指定范围。首次请求 snapshotMaxId 传空,由服务端
* 固定本次快照上界,后续请求必须原样携带。</p>
*/
@Data
public class HardOfflineUserSyncDto {
/**
* 排他游标;首页传 0,之后使用上一页返回的 nextAfterId。
*/
@NotNull(message = "离线人员同步游标不能为空")
@Min(value = 0, message = "离线人员同步游标不能小于0")
private Long afterId;
/**
* 单页用户数量;默认 200,最大 500。
*/
@Min(value = 1, message = "离线人员同步分页大小必须大于0")
@Max(value = 500, message = "离线人员同步分页大小不能超过500")
private Integer limit;
/**
* 首次请求由服务端固定的快照用户主键上界;后续请求原样携带。
*/
@Min(value = 0, message = "离线人员同步快照上界无效")
private Long snapshotMaxId;
}
@@ -17,6 +17,9 @@ public class HardDoorManualSettleDto {
@Schema(description = "手动选择的商品列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Item> items;
@Schema(description = "操作备注(选填,记录人工判断依据)")
private String reason;
@Data
public static class Item {
@@ -182,6 +182,12 @@ public class HardDoorFlowEntity extends Model<HardDoorFlowEntity> {
@Schema(description = "sku识别主动获取时间")
private LocalDateTime skuDrivingTime;
/**
* 手动结算/取消操作快照(操作人+购物车明细+金额+备注)
*/
@Schema(description = "手动结算/取消操作快照(操作人+购物车明细+金额+备注)")
private String manualSettleVo;
/**
* 支付时间
*/
@@ -0,0 +1,32 @@
package com.bsd.pjcloud.hard.api.vo.android;
import lombok.Data;
import java.util.List;
/**
* Android 终端离线人员快照分页结果。
*/
@Data
public class HardOfflineUserSyncSnapshotVo {
/**
* 当前页用户记录;服务端按用户主键严格升序返回,仅包含绑定了可用钱包的用户。
*/
private List<HardOfflineUserVo> records;
/**
* 下一页排他游标;末页等于当前请求游标。
*/
private Long nextAfterId;
/**
* 是否还有位于固定快照上界内的下一页。
*/
private Boolean hasMore;
/**
* 本次快照固定的用户主键上界;分页期间数据变化不会扩大同步范围。
*/
private Long snapshotMaxId;
}
@@ -0,0 +1,48 @@
package com.bsd.pjcloud.hard.api.vo.android;
import lombok.Data;
/**
* Android 终端离线人员快照记录。
*
* <p>仅包含断网消费匹配和展示所需的字段:姓名已按首字符脱敏,不返回手机号、
* 头像等个人信息;余额为同步时刻的服务端快照,离线扣款后以本地订单为准。</p>
*/
@Data
public class HardOfflineUserVo {
/**
* 用户ID;同时作为快照分页游标。
*/
private Long userId;
/**
* 脱敏用户名,例如“张*”。
*/
private String username;
/**
* 钱包卡号;断网刷离线饭卡时的匹配键。
*/
private String walletCardNumber;
/**
* 钱包id。
*/
private Long walletId;
/**
* 钱包类型id。
*/
private Long walletTypeId;
/**
* 钱包余额(分)快照。
*/
private Integer walletBalance;
/**
* 用户所属的商户id,主要用于机器的离线模式。
*/
private Long canteenId;
}