POST /api/content/projects/list
latest、deadline、most_applicants、highest_budgetGET /api/content/projects/filters
categories 和 art_stylesGET /api/content/projects/info
color_mode、size_spec、prod_format,其中 prod_format 与 service 一致为数组;不再返回旧的 formats、colorModels;data.user 新增简介、评价、语言、timezone 信息;匿名应征不再出现在 project_requests 中,改为返回 hidden_project_requests_countPOST /api/projects/create
color_mode、size_spec 字符串字段,以及 prod_format 数组字段POST /api/projects/update
color_mode、size_spec 字符串字段,以及 prod_format 数组字段GET /api/projects/info
color_mode、size_spec、prod_format,其中 prod_format 为数组;不再返回旧的 formats、colorModelsGET /api/projects/meta
formats、color_models、use_ranges、translationsPOST /api/project_requests/requested_list
artist 新增 languagesPOST /api/project_requests/choosed_list
artist 新增 languagesPOST /api/project_requests/choose
project_snap,并将 project 快照及画师应征当下的 artworks 快照写入 project_snap.data,同时将 project / project_request 快照写入 busable_snap、reqable_snapPOST /api/work_tasks/list
reqable 改为返回包含应征时 artworks 快照的 project_snap,不再依赖 service request 专属字段GET /api/work_tasks/info
reqable 改为返回包含应征时 artworks 快照的 project_snap,并补充 project request 的币种、作品附件等信息POST /api/artist_rec_reviews/create_work_task_review
bizable_type 写为 project_snapPOST /api/artist_center/project_request/create
is_anonymous;创建后会为 detail 自动创建翻译记录POST /api/artist_center/project_request/list
is_anonymousPOST /api/artist_center/project_request/list_by_chosen
is_anonymousPOST /api/artist_center/work_tasks/list
reqable 改为返回包含应征时 artworks 快照的 project_snap,不再依赖 service request 专属字段GET /api/artist_center/work_tasks/info
reqable 改为返回包含应征时 artworks 快照的 project_snap,并补充 project request 的币种、作品附件等信息POST /api/artist_center/user_rec_reviews/create_work_task_review
type 仅支持真实业务值 service、project;project 来源 worktask 的评价会将 bizable_type 写为 project_snapPOST /api/content/projects/list| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
keyword | string | 否 | 搜索关键字,匹配 project name、content、发布者 name/cname |
category_ids | number[] | 否 | project 分类 id 列表 |
art_style_ids | number[] | 否 | 画风 id 列表 |
user_cname | string | 否 | project 发布者的 cname 或 id |
price_currency_id | number | 否 | 价格筛选所使用的币种 id |
price_from | number | 否 | 最低价格 |
price_to | number | 否 | 最高价格 |
order_by | string | 否 | 排序方式。latest: id desc;deadline: deadline asc, id desc;most_applicants: project_requests_count desc, id desc;highest_budget: price_end desc, id desc |
page >= 1size >= 1 && size <= 50category_ids.* 必须存在于 categories.idart_style_ids.* 必须存在于 art_styles.idprice_currency_id 必须存在于 currencies.idprice_from >= 0price_to >= 0order_by 仅支持 latest、deadline、most_applicants、highest_budgetlatest:按 id descdeadline:按 deadline asc,同值再按 id descmost_applicants:按 project_requests_count desc,同值再按 id deschighest_budget:按 price_end desc,同值再按 id descprice_from 和 price_to 时,筛选逻辑为:
[price_start, price_end] 与筛选区间 [price_from, price_to] 有交集才命中422:参数校验失败
GET /api/content/projects/filtersGET /api/content/projects/infocolor_mode、size_spec、prod_format,其中 prod_format 与 service 一致为数组;不再返回旧的 formats、colorModels;data.user 新增 intro、评价、语言、timezone 信息;匿名应征不再出现在 project_requests,改为返回 hidden_project_requests_count。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | number | 是 | project id |
id >= 1id 必须存在于 projects.id404:project 不存在或不可访问
POST /api/projects/createcolor_mode、size_spec 字符串字段,以及 prod_format 数组字段。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | project 名称 |
name_lang | string | 否 | name 的语言代码 |
content | string | 是 | project 内容说明 |
content_lang | string | 否 | content 的语言代码 |
currency_id | number | 是 | 币种 id |
price_start | number | 是 | 最低价格 |
price_end | number | 是 | 最高价格 |
deadline | string | 是 | 截止时间 |
color_mode | string | 否 | 颜色模式 |
size_spec | string | 否 | 尺寸说明 |
prod_format | string[] | 否 | 成品格式数组 |
categories | number[] | 否 | 分类 id 列表 |
art_styles | number[] | 否 | 画风 id 列表 |
currency_id 必须存在于 currencies.idprice_start >= 0price_end >= 0color_mode / size_spec 最长 255prod_format.* 最长 255examples 最多 8 个422:参数校验失败
POST /api/projects/updatecolor_mode、size_spec 字符串字段,以及 prod_format 数组字段。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | number | 是 | project id |
color_mode | string | 否 | 颜色模式 |
size_spec | string | 否 | 尺寸说明 |
prod_format | string[] | 否 | 成品格式数组 |
price_start | number | 否 | 最低价格 |
price_end | number | 否 | 最高价格 |
deadline | string | 否 | 截止时间 |
id 为当前登录用户自己的 projectcolor_mode / size_spec 最长 255prod_format.* 最长 255403:project 不属于当前登录用户
GET /api/projects/infocolor_mode、size_spec、prod_format,其中 prod_format 为数组;不再返回旧的 formats、colorModels。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | number | 是 | project id |
id 必须属于当前登录用户GET /api/projects/metaformats、color_models、use_ranges、translations。POST /api/project_requests/requested_listartist 新增 languages。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_id | number | 是 | project id |
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
project_id 必须属于当前登录用户page >= 1size >= 1 && size <= 50404:project 不存在或不属于当前登录用户
POST /api/project_requests/choosed_listartist 新增 languages。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_id | number | 是 | project id |
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
project_id 必须属于当前登录用户page >= 1size >= 1 && size <= 50404:project 不存在或不属于当前登录用户
POST /api/project_requests/chooseproject_snap,并把 project 快照及应征时的 artworks 快照写入 project_snap.data,同时将 project 快照写入 busable_snap、project request 快照写入 reqable_snap,供后续 worktask 列表、详情、评价接口稳定读取。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_request_id | number | 是 | project request id |
deadline | string | 是 | worktask 截止时间 |
name | string | 否 | worktask 名称 |
name_lang | string | 否 | name 的语言代码 |
project_request_id 必须存在于 project_requests.idproject_request_id 必须属于当前登录用户自己的 projectpending、user_chosen 状态的应征允许被选择400:应征状态不允许被选择
404:应征不存在或不属于当前登录用户
POST /api/work_tasks/listreqable 会返回 project_snap;service 来源 worktask 仍返回 service_snap。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
type | string | 否 | worktask 类型,支持 service、project |
status | string[] | 否 | worktask 状态列表 |
sort_by | string | 否 | 排序字段,支持 id、created_at、updated_at、deadline |
sort_order | string | 否 | 排序方向,支持 desc、asc |
page >= 1size >= 1 && size <= 50type 仅支持 service、project422:参数校验失败
GET /api/work_tasks/inforeqable 改为返回包含应征时 artworks 快照的 project_snap,并返回 project request 的币种、作品附件等信息,不再访问 service request 专属字段。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | number | 是 | worktask id |
id 必须属于当前登录用户404:worktask 不存在或不属于当前登录用户
POST /api/artist_rec_reviews/create_work_task_reviewproject_snap,写入 artist_rec_reviews.bizable_type = project_snap。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
work_task_id | number | 是 | worktask id |
rating_score | number | 是 | 评分,范围 0 到 5 |
rating_content | string | 是 | 评价内容 |
rating_content_lang | string | 否 | rating_content 的语言代码 |
work_task_id 必须属于当前登录用户403:重复评价
POST /api/artist_center/project_request/createis_anonymous;创建后会像 service request 一样为 detail 自动创建翻译记录。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_id | number | 是 | project id |
currency_id | number | 是 | 币种 id |
detail | string | 是 | 应征说明 |
detail_lang | string | 否 | detail 的语言代码 |
artworks | number[] | 是 | 作品 id 列表,最多 5 个 |
budget | number | 是 | 报价 |
days_need | number | 是 | 预计工期 |
is_anonymous | boolean | 否 | 是否匿名应征,默认 false |
project_id 必须存在于 projects.idcurrency_id 必须存在于 currencies.idartworks 最大 5 个days_need 必须为整数pending / user_chosen 状态下不能重复应征400:重复应征或对自己的 project 应征
POST /api/artist_center/project_request/listis_anonymous。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
page >= 1size >= 1 && size <= 50POST /api/artist_center/project_request/list_by_chosenis_anonymous。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
page >= 1size >= 1 && size <= 50POST /api/artist_center/work_tasks/listreqable 会返回 project_snap;service 来源 worktask 仍返回 service_snap。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | number | 否 | 页码,默认 1 |
size | number | 否 | 每页数量,默认 15 |
busable_type | string | 否 | worktask 类型,支持 service、project |
status | string[] | 否 | worktask 状态列表 |
page >= 1size >= 1 && size <= 50busable_type 仅支持 service、project422:参数校验失败
GET /api/artist_center/work_tasks/inforeqable 改为返回 project_snap,并返回 project request 的币种、作品附件等信息。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | number | 是 | worktask id |
id 必须属于当前登录 artist404:worktask 不存在或不属于当前登录 artist
POST /api/artist_center/user_rec_reviews/create_work_task_reviewtype 只接受 service、project;project 来源 worktask 的评价会关联 project_snap,写入 user_rec_reviews.bizable_type = project_snap。| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
work_task_id | number | 是 | worktask id |
type | string | 是 | 评价对象类型,支持 service、project |
rating_score | number | 是 | 评分,范围 0 到 5 |
rating_content | string | 是 | 评价内容 |
rating_content_lang | string | 否 | rating_content 的语言代码 |
work_task_id 必须属于当前登录 artisttype 必须与 worktask 的真实业务类型一致400:type 与 worktask 真实业务类型不一致
GET /api/projects/meta 已不再返回 formats、color_models、use_ranges、translations,前端不要继续依赖这些字段。color_modesize_specprod_formatprod_format 与 service 一致,为数组字段;color_mode、size_spec 为字符串字段。GET /api/projects/info 不再返回旧的 formats、colorModels,前端应统一读取以下字段:
color_modesize_specprod_formatGET /api/content/projects/info 也不应再依赖旧的 formats、colorModels 返回结构。project_requests 是非匿名应征列表hidden_project_requests_count 才是匿名应征数量project_snap,前端不要再假设 reqable 一定包含 service_snap 或 serviceRequestFiles。reqable.project_snap.data.artworks 返回,应用于 worktask 列表、详情等场景。POST /api/artist_center/user_rec_reviews/create_work_task_review 的 type 只支持真实业务值:
serviceprojecttask 当前没有业务用途,不应再作为该接口的传参值。