# 订单核销选择页面实现说明 ## 概述 已成功实现订单核销选择列表页面,该页面作为传入订单核销列表数据进行选择验证的弹窗页面,在人脸识别界面执行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. 触发条件 ```java // 在人脸验证成功后自动触发 modeType = OrderVerificationManager.TYPE_FACE_VERIFICATION; verifyCode = faceBase64; // 人脸base64数据 getCheckOrder(); // 执行订单查验 ``` ### 2. 数据流转 ``` 人脸验证 → 网络请求 → JSON数据解析 → 显示选择页面 → 用户选择 → 核销结果 ``` ### 3. 页面跳转 ```java // 自动跳转到订单选择页面 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格式: ```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. 数据适配 - 模型类支持扩展新字段 - 适配器支持不同数据类型 - 格式化方法可自定义 ## 注意事项 1. **权限要求**: 确保应用有必要的网络和相机权限 2. **主题配置**: 使用了Theme.Transparent主题,确保主题文件存在 3. **资源依赖**: 依赖现有的drawable资源,确保资源文件完整 4. **内存管理**: 页面销毁时会自动清理资源和停止倒计时 这个实现完全符合您的需求,提供了完整的订单选择功能,并与现有的网络请求架构完美集成。