You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.6 KiB
4.6 KiB
订单核销选择页面实现说明
概述
已成功实现订单核销选择列表页面,该页面作为传入订单核销列表数据进行选择验证的弹窗页面,在人脸识别界面执行checkOrder请求并获取到列表数据后弹出,覆盖在视频流上。
实现的文件
1. 布局文件
- activity_order_selection.xml - 主页面布局
- item_order_selection.xml - 订单列表项布局
2. Java类文件
- OrderSelectionActivity.java - 主Activity类
- OrderVerificationData.java - 数据模型类
- OrderSelectionAdapter.java - RecyclerView适配器
3. 配置文件
- AndroidManifest.xml - 添加了OrderSelectionActivity注册
功能特性
1. 弹窗样式设计
- 透明背景: 使用透明主题,覆盖在视频流上
- 居中显示: 弹窗居中显示,符合UI设计要求
- 圆角设计: 使用现有的drawable资源创建美观界面
2. 数据处理
- JSON解析: 自动解析人脸验证接口返回的JSON数据
- 数据模型: 完整的订单数据模型,支持所有字段
- 格式化显示: 自动格式化时间、日期等信息
3. 交互功能
- 订单选择: 点击订单卡片进行选择
- 去核销按钮: 每个订单都有独立的核销按钮
- 倒计时返回: 6秒倒计时自动返回
- 手动返回: 支持取消和返回首页操作
4. 集成支持
- 网络请求集成: 与现有的网络请求管理器完美集成
- 结果处理: 自动处理选择结果并跳转到核销结果页
- 摄像头控制: 自动暂停和恢复摄像头预览
使用流程
1. 触发条件
// 在人脸验证成功后自动触发
modeType = OrderVerificationManager.TYPE_FACE_VERIFICATION;
verifyCode = faceBase64; // 人脸base64数据
getCheckOrder(); // 执行订单查验
2. 数据流转
人脸验证 → 网络请求 → JSON数据解析 → 显示选择页面 → 用户选择 → 核销结果
3. 页面跳转
// 自动跳转到订单选择页面
Intent intent = new Intent(this, OrderSelectionActivity.class);
intent.putExtra(OrderSelectionActivity.EXTRA_ORDER_DATA, orderDataJson);
intent.putExtra(OrderSelectionActivity.EXTRA_VERIFICATION_TYPE, verificationType);
startActivityForResult(intent, 1002);
JSON数据格式支持
页面完全支持您提供的JSON格式:
{
"code": 0,
"data": {
"result": [
{
"order_no": "MC20250313171548535218",
"start_time": "2025-03-13 17:15:51",
"end_time": "2026-03-13 17:15:51",
"order_type": 3,
"project": "测试年卡",
"number": 100,
"v_code": ["2503215744"],
"info": {
"card_no": "250313397",
"rest_number": 100,
"status": 0,
"user_face_id": ""
},
"success": 0,
"pv_usage_duration": 0,
"many_enter": false
}
],
"skip": 0
},
"message": "",
"extension": "extension_fixed"
}
页面展示效果
1. 头部区域
- 店铺图标和名称
- 返回首页按钮(带倒计时)
2. 标题区域
- "请选择订单核销" 标题
- 当前核销日期显示
3. 订单列表
- 左侧场次标识(橙色背景)
- 右侧订单详细信息:
- 订单信息(场次数量)
- 订单编号
- 预订信息(时间段)
- 预订项目
- 使用日期
- 右上角"去核销"按钮
4. 底部操作
- 取消按钮
- 确认核销按钮
技术特点
1. 响应式设计
- 支持不同屏幕尺寸
- 列表最大高度限制,超出时可滚动
- 自适应内容高度
2. 状态管理
- 选中状态高亮显示
- 按钮启用/禁用状态控制
- 倒计时状态更新
3. 错误处理
- JSON解析异常处理
- 数据为空的处理
- 网络错误的友好提示
4. 性能优化
- RecyclerView复用机制
- 内存泄漏防护
- 生命周期管理
扩展性
1. 样式定制
- 可通过修改drawable资源调整样式
- 支持主题色彩定制
- 布局参数易于调整
2. 功能扩展
- 支持添加更多订单字段显示
- 可扩展筛选和搜索功能
- 支持批量操作
3. 数据适配
- 模型类支持扩展新字段
- 适配器支持不同数据类型
- 格式化方法可自定义
注意事项
- 权限要求: 确保应用有必要的网络和相机权限
- 主题配置: 使用了Theme.Transparent主题,确保主题文件存在
- 资源依赖: 依赖现有的drawable资源,确保资源文件完整
- 内存管理: 页面销毁时会自动清理资源和停止倒计时
这个实现完全符合您的需求,提供了完整的订单选择功能,并与现有的网络请求架构完美集成。