feat: 更新素材管理和举报风险地图

This commit is contained in:
2026-07-09 12:20:02 +08:00
parent 9b92d81902
commit 42aca73588
42 changed files with 6164 additions and 1369 deletions

View File

@ -1,6 +1,6 @@
# 举报摄影师接口文档
本文档记录 iOS `WildPhotographerReport` 模块当前使用的后端接口,以及仍处于 Mock 阶段的业务点
本文档记录 iOS `WildPhotographerReport` 模块当前使用的后端接口。
## 基础约定
@ -9,7 +9,59 @@
- 网络入口:`NetworkServices.shared.wildPhotographerReportAPI`
- 后端成功码:`100000`
- 响应包裹:工程统一 `APIEnvelope<T>`
- 当前状态:“举报类型”、“提交举报”、“我的举报列表”、“举报详情”“补充证据提交”已接接口;风险地图仍使用 Mock 数据闭环
- 当前状态:“首页文案”、“举报类型”、“提交举报”、“我的举报列表”、“举报详情”“补充证据提交”和“附近风险地图”已接接口;模块内生产 Mock 数据已移除
## 首页文案
### 用途
“举报摄影师”首页进入时拉取举报须知和举报规则文案。
### 请求
```http
GET /api/yf-handset-app/photog/report/copy
```
### 响应示例
```json
{
"code": 100000,
"msg": "success",
"data": {
"notice": [
"需实名登录",
"请尽量上传清晰证据",
"恶意举报将被追责"
],
"rule_groups": [
{
"title": "可举报行为",
"items": [
"疑似打野摄影师主动揽客",
"未佩戴工牌开展摄影服务",
"引导游客线下付款或私下交易"
]
}
]
},
"time": "2026-07-09 10:15:17"
}
```
### UI 行为
- `notice` 用于首页“举报须知”条目展示。
- `rule_groups` 非空时显示“举报规则”按钮,点击后在举报规则页按分组展示 `title``items`
- `notice``rule_groups` 都为空时,隐藏整个“举报须知”模块。
- 接口失败时不展示本地写死兜底文案,并 toast 错误。
### 当前调用位置
- `WildPhotographerReportHomeViewController.viewDidLoad()`
- `WildPhotographerReportHomeViewModel.loadReportCopy(api:)`
- `WildPhotographerReportAPI.reportCopy()`
## 1. 获取举报类型
@ -77,7 +129,7 @@ struct WildReportTypeListResponse: Decodable, Hashable {
- 每行最多展示 3 个类型,超过 3 个自动换行。
-`label` 展示文字,不展示图标。
- 默认选中 `value == 2` 的类型;如果接口返回中不存在该类型,则选中列表第一项。
- 接口失败时回退本地兜底列表,并提示“举报类型获取失败,已使用默认类型”
- 接口失败时不展示本地默认类型,并 toast 错误
### 当前调用位置
@ -139,7 +191,7 @@ POST /api/yf-handset-app/photog/report/submit
- `store_user_id`:被举报摄影师 ID当前页面无来源本轮暂不传。
- `contact_phone`:当前联系方式输入值,非空才传。
- `location_name` / `location_address`:从当前定位展示文案拆分;无法拆分时使用景区名和完整地址兜底。
- `lat` / `lng`:当前定位快照坐标;定位失败时使用 Mock 地址对应的兜底坐标
- `lat` / `lng`:当前定位快照坐标;定位失败时不提交举报,提示用户重新获取位置
- `evidences`:现场证据,必填,至少 1 项、最多 9 项。
- `payment_screenshots`:线下微信、支付宝截图,选填,最多 3 张。
- `file_type`:举报提交接口约定为 `1 = 图片``2 = 视频`
@ -307,7 +359,7 @@ GET /api/yf-handset-app/photog/report/detail?id=32
- `location_name` / `location_address`:详情页位置展示。
- `handle_status` / `handle_status_text`处理状态iOS 支持 0 待处理、1 处理中、2 已处理、3 驳回。
- `handle_remark`:处理备注,有值时在详情信息卡展示。
- `timeline`:处理进度时间线;为空时使用本地状态推导兜底
- `timeline`:处理进度时间线;为空时只展示列表记录中的当前处理状态,不生成本地模拟流程
### iOS 模型
@ -368,11 +420,8 @@ POST /api/yf-handset-app/photog/report/supplement
- `WildPhotographerReportAPI.supplementReport(_:)`
- `WildReportSupplementEvidenceViewController.submitTapped()`
## Mock 阶段业务
## 生产 Mock 清理
以下业务当前仍由 `WildPhotographerReportMockStore` 和 ViewModel 本地逻辑完成,暂未接真实接口:
- 附近风险地图
- 分享、媒体预览、地图导航演示提示
后续接入真实接口时,应优先在 `WildPhotographerReportServing` 中补充语义化方法,并保持 ViewModel 不依赖 UIKit 视图类型。
- 已删除本地种子举报、种子风险点、种子补充证据及对应生产代码文件。
- 举报类型、首页文案、列表、详情、补充证据和风险地图均不再使用本地写死数据兜底。
- 提交接口当前无业务 `data` 返回;提交成功页只展示本次用户提交快照,不伪造服务端举报编号,也不写入“我的举报”本地列表。