Open Call Project Request 选定后允许继续编辑 (2026-08-05)

接口变更

artist_center

接口示例

artist_center

POST /api/artist_center/project_request/update

  • 功能说明:画师编辑自己的 Open Call Project Request;用户已经选定画师后仍可继续编辑。
  • 变更说明:后端在事务中锁定 Project Request,并在锁内重新校验状态。编辑只更新 Project Request 当前数据,不回写已经创建的 Commission WorkTask 及其快照。

请求参数

请求字段没有变化。

字段类型必填说明
idnumber是当前画师的 Project Request ID
currency_idnumber否应征报价币种 ID
detailobject / string否应征附言
artworksnumber[]否应征作品 ID,最多 6 个;传入时全量替换
budgetnumber否期望稿酬
days_neednumber否预计工期
day_startstring否预计开始时间
day_endstring否预计结束时间,不能早于 day_start
revisionstring否修改次数或修改策略
visibilitystring否public / hidden_offer / hidden_all
is_anonymousstring否废弃兼容字段
auto_acceptboolean否用户选定时是否自动接受

可编辑状态

Project Request status是否允许编辑说明
pending是尚未被用户选定
user_chosen是用户已经选定画师,仍允许更新后续应征内容
artist_canceled否画师已经撤回应征

请求示例

{
  "id": 201,
  "budget": 18000,
  "revision": "3",
  "auto_accept": false,
  "artworks": [501, 502]
}

成功响应

{
  "ok": true,
  "data": {
    "id": 201,
    "status": "user_chosen",
    "budget": 18000,
    "revision": "3",
    "auto_accept": false
  }
}

已撤回应征错误响应

400:Project Request 的状态为 artist_canceled,禁止继续编辑。

{
  "message": "Canceled project request cannot be updated."
}

其他错误响应

  • 400,其他业务码:新的币种与 Open Call 支付渠道或画师收款账户不兼容
  • 404:Project Request 不属于当前画师
  • 422:请求字段校验失败

前端对接

  • Artist Project Request 列表和详情中,status === "pending" 或 status === "user_chosen" 时都可以展示编辑入口。
  • 仅 status === "artist_canceled" 时禁止编辑。
  • 撤回应征规则没有变化:仍然只有 pending 可以撤回,user_chosen 不可撤回。
  • 编辑 user_chosen Project Request 后,前端不要把新内容覆盖到已经创建的 Commission WorkTask;WorkTask 展示以自身数据和快照为准。

并发语义

  • 用户选择和画师更新会锁定同一条 Project Request。
  • 如果画师更新先完成,用户随后基于更新后的 Project Request 创建 Commission。
  • 如果用户选择先完成,先创建的 Commission 固化当时的报价、作品等快照;画师随后仍可更新 user_chosen Project Request,但不会回写该 Commission。
  • 同一个 user_chosen Project Request 后续再次被选择时,新 Commission 使用更新后的 Project Request 数据生成,已有 Commission 保持不变。

兼容性说明

  • 请求字段和成功响应结构没有变化。
  • pending 的编辑行为不变;本次额外允许编辑 user_chosen。
  • artist_canceled 仍返回 HTTP 400,本次不新增业务错误码。