package cn.iocoder.yudao.module.mes.dal.dataobject.trace.consumer; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.time.LocalDateTime; /** * 消费者扫码访问事件 DO *
* 记录公众通过二维码/H5 扫描溯源页面的访问情况(成功与失败均记录), * 用于分析消费者溯源访问量、趋势与分布。 */ @TableName("mes_trace_consumer_scan_event") @KeySequence("mes_trace_consumer_scan_event_seq") @Data @EqualsAndHashCode(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class MesTraceConsumerScanEventDO extends BaseDO { @TableId private Long id; /** 扫码原始内容(必要时截断) */ private String traceCode; /** 解析后的追溯码 */ private String normalizedCode; /** 入口类型:BAG/PALLET/BATCH */ private String sourceType; /** 扫码入口渠道:微信/支付宝/浏览器 */ private String channel; /** 省份(IP 归属地,仅存地名不存敏感信息) */ private String province; /** 城市(IP 归属地,仅存地名不存敏感信息) */ private String city; /** 生产批次编号 */ private Long batchId; /** 是否查询成功(0 失败,1 成功) */ private Boolean success; /** 失败编码 */ private String errorCode; /** 客户端 IP SHA-256 摘要(不保存明文) */ private String ipHash; /** User-Agent SHA-256 摘要(不保存明文) */ private String userAgentHash; /** 访问时间 */ private LocalDateTime eventTime; }