package com.ruoyi.account.api.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; 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 java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; /** * 公司额度分配记录:记录"公司可用余额 -> 充电用户(VIN码/刷卡/白名单)账户余额"的划拨流水, * 供公司管理-公司详情「分配记录」弹窗查询。历史分配行为不迁移,仅记录建表之后发生的分配。 */ @Data @TableName("t_company_allocate_record") @ApiModel(value = "公司额度分配记录") public class TCompanyAllocateRecord implements Serializable { private static final long serialVersionUID = 1L; /** 分配对象类型:VIN码 */ public static final int USER_TYPE_VIN = 1; /** 分配对象类型:刷卡 */ public static final int USER_TYPE_CARD = 2; /** 分配对象类型:白名单手机号 */ public static final int USER_TYPE_WHITELIST = 3; /** 分配对象类型:企业账户(共享模式下VIN码充电消费记企业账户) */ public static final int USER_TYPE_COMPANY = 4; /** 变更来源:新增用户(新增时设置的初始分配额度) */ public static final int SOURCE_CREATE = 1; /** 变更来源:编辑用户(编辑时调整初始分配额度,含调增/调减/跨公司迁移) */ public static final int SOURCE_EDIT = 2; /** 变更来源:额度分配(额度分配弹窗) */ public static final int SOURCE_ALLOCATE = 3; /** 变更来源:账户模式切换(分配模式切换为共享模式,回收用户余额至公司账户) */ public static final int SOURCE_MODE_SWITCH = 4; /** 变更类型:分配(历史数据默认值,金额由公司划拨到用户账户) */ public static final int CHANGE_TYPE_ALLOCATE = 1; /** 变更类型:消费(VIN码充电结算,金额为用户账户实际消费扣减,记为负数) */ public static final int CHANGE_TYPE_CONSUME = 2; @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "主键ID") private Long id; /** 所属公司ID(关联 t_group_company.id,跨库仅存ID) */ @ApiModelProperty(value = "所属公司ID") private Integer companyId; @ApiModelProperty(value = "分配对象类型:1=VIN码,2=刷卡,3=白名单手机号") private Integer userType; @ApiModelProperty(value = "分配对象信息(VIN码/卡号/手机号)") private String userInfo; @ApiModelProperty(value = "分配对象名称(白名单姓名等,便于排查)") private String userName; @ApiModelProperty(value = "变更来源:1=新增用户,2=编辑用户,3=额度分配") private Integer changeSource; @ApiModelProperty(value = "变更类型:1=分配(历史默认),2=消费(VIN码充电结算)") private Integer changeType; @ApiModelProperty(value = "充电订单号(消费流水写入,用于幂等与追溯)") private String chargingOrderCode; @ApiModelProperty(value = "分配前金额(用户账户余额)") private BigDecimal beforeBalance; @ApiModelProperty(value = "本次分配金额(正数=分配,负数=回收)") private BigDecimal amount; @ApiModelProperty(value = "分配后可用余额(用户账户余额)") private BigDecimal afterBalance; @ApiModelProperty(value = "操作人ID") private Long operatorId; @ApiModelProperty(value = "操作人(登录账号)") private String operatorName; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "操作时间") private LocalDateTime operateTime; @ApiModelProperty(value = "备注") private String remark; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "创建时间") private LocalDateTime createTime; }