#管理员:任务列表与概览
GETPOST/v1/enterprise/org/tasks
管理员:任务列表与概览(?filter=)/ 发布任务(带 idempotencyKey)
鉴权用户态可选
GET
任务列表与概览
可选。新建的在前,每页 20 条。overview 是顶部概览(进行中 / 待审核 / 待核销 / 已结束)。
查询参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
filter | string | 否 | 可选值:all / reward / consume / reviewing。默认 "all" |
cursor | string | 否 | 翻页游标:取上一页返回的 nextCursor,首页不传 |
返回字段57 个,点击展开
| 字段 | 类型 | 说明 |
|---|---|---|
overview | object | |
overview.ongoing | integer | |
overview.pendingReview | integer | |
overview.pendingWriteoff | integer | |
overview.ended | integer | |
items | object[] | |
items[].id | string | |
items[].title | string | |
items[].category | string | |
items[].categoryLabel | string | |
items[].description | string | |
items[].coverUrl | string | 可能为 null |
items[].settleMode | string | 可选值:reward / consume |
items[].points | number | 每人奖励或消耗的额度(100 = 1 元) |
items[].quota | integer | null = 不限。可能为 null |
items[].remaining | integer | 可能为 null |
items[].startAt | string | |
items[].endAt | string | |
items[].phase | string | 可选值:not_started / ongoing / ended |
items[].needSignup | boolean | |
items[].signupFull | boolean | |
items[].completeMode | string | 可选值:direct / submit |
items[].reviewMode | string | 可选值:auto / manual |
items[].needWriteoff | boolean | |
items[].scopeText | string | 如「全体员工」「财务部、仓储部」 |
items[].submitSchema | object[] | |
items[].submitSchema[].key | string | |
items[].submitSchema[].type | string | 可选值:text / image / file / link |
items[].submitSchema[].label | string | 最长 20 |
items[].submitSchema[].required | boolean | |
items[].submitSchema[].max | integer | text 字数 / link 长度 / image、file 个数(≤9)上限 |
items[].pickupInfo | object | 消耗型任务的领取信息 |
items[].pickupInfo.location | string | |
items[].pickupInfo.timeText | string | |
items[].pickupInfo.startAt | string | |
items[].pickupInfo.endAt | string | |
items[].pickupInfo.rules | string | |
items[].status | string | 可选值:active / ended / cancelled |
items[].scopeKind | string | 可选值:all / departments / members |
items[].scopeIds | string[] | |
items[].signupQuota | integer | 可能为 null |
items[].budgetFrozen | number | 已冻结的预算 |
items[].stats | object | |
items[].stats.signedUp | integer | |
items[].stats.joined | integer | |
items[].stats.completed | integer | |
items[].stats.redeemed | integer | |
items[].stats.pendingReview | integer | |
items[].stats.pendingWriteoff | integer | |
items[].version | integer | 编辑时作为 expectedVersion 带回 |
items[].editRules | object | 前端据此置灰,服务端照样校验 |
items[].editRules.locked | string[] | 当前不可改的字段名 |
items[].editRules.minQuota | integer | |
items[].editRules.pointsEditable | boolean | |
items[].editRules.startAtEditable | boolean | |
items[].editRules.minSignupQuota | integer | |
nextCursor | string | 下一页游标;null = 没有下一页。可能为 null |
POST
发布任务
可选。奖励型在同一事务里从企业额度池冻结预算(每人额度 × 名额,不限名额时按范围人数),额度池不够返回 POOL_INSUFFICIENT、任务不建;任务结束时未用完的退回额度池。复制任务 = 拿详情预填后再发布。建议传 idempotencyKey。
请求体application/json · 发布与编辑任务的字段。消耗型恒为直接完成、自动审核;只有消耗型有核销与领取信息。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
title | string | 是 | 最长 30 |
description | string | 否 | 最长 500 |
coverUrl | string | 是 | 封面图 http(s) 地址,发布时必填;用「上传任务封面」拿到 |
category | string | 否 | 奖励型可选 training / learning / survey / activity / other;消耗型可选 festival / daily / activity / other。可选值:training / learning / survey / activity / festival / daily / other |
settleMode | string | 是 | reward 奖励额度(员工做任务赚)· consume 消耗额度(员工用额度兑换)。可选值:reward / consume |
points | integer | 是 | 每人奖励或消耗的额度(100 = 1 元)。≥ 1,≤ 10000000 |
quota | integer | 否 | 名额;不传 = 不限。≥ 1,≤ 100000。可能为 null |
scopeKind | string | 否 | 可选值:all / departments / members。默认 "all" |
scopeIds | string[] | 否 | 部门 id 或员工平台账号 id(scopeKind 非 all 时必填) |
startAt | string | 否 | 不传 = 立即开始 |
endAt | string | 是 | 截止时间,必填,须晚于开始时间与现在 |
needSignup | boolean | 否 | |
signupQuota | integer | 否 | ≥ 1。可能为 null |
completeMode | string | 否 | 仅奖励型:直接完成 / 提交结果。可选值:direct / submit。默认 "direct" |
reviewMode | string | 否 | 仅奖励型 + submit:缺省 manual 人工审核。可选值:auto / manual |
submitSchema | object[] | 否 | completeMode = submit 时必填。最多 10 项 |
submitSchema[].key | string | 是 | |
submitSchema[].type | string | 是 | 可选值:text / image / file / link |
submitSchema[].label | string | 是 | 最长 20 |
submitSchema[].required | boolean | 否 | |
submitSchema[].max | integer | 否 | text 字数 / link 长度 / image、file 个数(≤9)上限 |
needWriteoff | boolean | 否 | 仅消耗型:兑换后是否需要线下核销(发领取码) |
pickupInfo | object | 否 | 消耗型任务的领取信息 |
pickupInfo.location | string | 否 | |
pickupInfo.timeText | string | 否 | |
pickupInfo.startAt | string | 否 | |
pickupInfo.endAt | string | 否 | |
pickupInfo.rules | string | 否 | |
idempotencyKey | string | 否 | 最长 128 |
返回字段53 个,点击展开
| 字段 | 类型 | 说明 |
|---|---|---|
task | object | 管理视角的任务 |
task.id | string | |
task.title | string | |
task.category | string | |
task.categoryLabel | string | |
task.description | string | |
task.coverUrl | string | 可能为 null |
task.settleMode | string | 可选值:reward / consume |
task.points | number | 每人奖励或消耗的额度(100 = 1 元) |
task.quota | integer | null = 不限。可能为 null |
task.remaining | integer | 可能为 null |
task.startAt | string | |
task.endAt | string | |
task.phase | string | 可选值:not_started / ongoing / ended |
task.needSignup | boolean | |
task.signupFull | boolean | |
task.completeMode | string | 可选值:direct / submit |
task.reviewMode | string | 可选值:auto / manual |
task.needWriteoff | boolean | |
task.scopeText | string | 如「全体员工」「财务部、仓储部」 |
task.submitSchema | object[] | |
task.submitSchema[].key | string | |
task.submitSchema[].type | string | 可选值:text / image / file / link |
task.submitSchema[].label | string | 最长 20 |
task.submitSchema[].required | boolean | |
task.submitSchema[].max | integer | text 字数 / link 长度 / image、file 个数(≤9)上限 |
task.pickupInfo | object | 消耗型任务的领取信息 |
task.pickupInfo.location | string | |
task.pickupInfo.timeText | string | |
task.pickupInfo.startAt | string | |
task.pickupInfo.endAt | string | |
task.pickupInfo.rules | string | |
task.status | string | 可选值:active / ended / cancelled |
task.scopeKind | string | 可选值:all / departments / members |
task.scopeIds | string[] | |
task.signupQuota | integer | 可能为 null |
task.budgetFrozen | number | 已冻结的预算 |
task.stats | object | |
task.stats.signedUp | integer | |
task.stats.joined | integer | |
task.stats.completed | integer | |
task.stats.redeemed | integer | |
task.stats.pendingReview | integer | |
task.stats.pendingWriteoff | integer | |
task.version | integer | 编辑时作为 expectedVersion 带回 |
task.editRules | object | 前端据此置灰,服务端照样校验 |
task.editRules.locked | string[] | 当前不可改的字段名 |
task.editRules.minQuota | integer | |
task.editRules.pointsEditable | boolean | |
task.editRules.startAtEditable | boolean | |
task.editRules.minSignupQuota | integer | |
poolBalance | number | 发布后的企业额度池余额 |
budgetWarn | string | 超出预算预警线时的提示文案。可能为 null |
错误
400BAD_REQUEST(message 说明哪一项不合法)/POOL_INSUFFICIENT企业额度池不足
调用示例
1curl -X GET "https://api.gowu.net/v1/enterprise/org/tasks" \2 -H "x-app-key: $GOWU_APP_KEY" \3 -H "x-timestamp: $TS" \4 -H "x-nonce: $NONCE" \5 -H "x-sign-version: 2" \6 -H "x-signature: $SIG" \7 -H "x-open-user: u-001"返回示例
1{2 "overview": {3 "ongoing": 0,4 "pendingReview": 0,5 "pendingWriteoff": 0,6 "ended": 07 },8 "items": [9 {10 "id": "string",11 "title": "string",12 "category": "string",13 "categoryLabel": "string",14 "description": "string",15 "coverUrl": "string",16 "settleMode": "reward",17 "points": 0,18 "quota": 0,19 "remaining": 0,20 "startAt": "string",21 "endAt": "string",22 "phase": "not_started",23 "needSignup": true,24 "signupFull": true,25 "completeMode": "direct",26 "reviewMode": "auto",27 "needWriteoff": true,28 "scopeText": "string",29 "submitSchema": [30 {}31 ],32 "pickupInfo": {33 "location": "string",34 "timeText": "string",35 "startAt": "string",36 "endAt": "string",37 "rules": "string"38 },39 "status": "active",40 "scopeKind": "all",41 "scopeIds": [42 "string"43 ],44 "signupQuota": 0,45 "budgetFrozen": 0,46 "stats": {47 "signedUp": 0,48 "joined": 0,49 "completed": 0,50 "redeemed": 0,51 "pendingReview": 0,52 "pendingWriteoff": 053 },54 "version": 0,55 "editRules": {56 "locked": [],57 "minQuota": 0,58 "pointsEditable": true,59 "startAtEditable": true,60 "minSignupQuota": 061 }62 }63 ],64 "nextCursor": "string"65}