feat: 更新素材管理和举报风险地图
This commit is contained in:
@ -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` 返回;提交成功页只展示本次用户提交快照,不伪造服务端举报编号,也不写入“我的举报”本地列表。
|
||||
|
||||
Reference in New Issue
Block a user