From 1f96ad3a34fa33911fc67aee1bbce315b2960efe Mon Sep 17 00:00:00 2001 From: zhl Date: Tue, 23 Feb 2021 19:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BA=8B=E4=BB=B6=E7=8A=B6=E6=80=81=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api.md | 25 +++++++++++++ src/controllers/ActivityController.ts | 51 ++++++++++++++++++++++++--- 2 files changed, 72 insertions(+), 4 deletions(-) diff --git a/docs/api.md b/docs/api.md index bbe3fb3..8d5af81 100644 --- a/docs/api.md +++ b/docs/api.md @@ -660,6 +660,31 @@ ``` +### 25. 事件状态 + +1. Method: POST +2. URI: /api/:accountid/event_status + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | +> POST参数 + + +| 字段 |说明 | +| -------- | -------------------------------------- | +|ids |事件id数组 | + +3. Response: JSON + + +```js +[ + [id, count] +] + +``` + ## 三. 服务端接口列表 diff --git a/src/controllers/ActivityController.ts b/src/controllers/ActivityController.ts index 72386fa..d8ffc5d 100644 --- a/src/controllers/ActivityController.ts +++ b/src/controllers/ActivityController.ts @@ -13,15 +13,16 @@ export default class ActivityController extends BaseController { @router('post /api/:accountid/update_event') async generalEvent(req: any) { let { id, accountid } = req.params - assert(id, 'id requiresd') + assert(id, 'id required') let cfgMap = global.$cfg.get(BaseConst.INCOME) id = +id if (!cfgMap.has(id)) { throw new ZError(11, 'no cfg found') } let cfg = cfgMap.get(id) - let day + cfg.frequency = cfg.frequency || 1 let rest = 0 + let day if (cfg.repeat) { day = (new Date()).format('yyyy-MM-dd', true) } else { @@ -35,8 +36,8 @@ export default class ActivityController extends BaseController { if (!cfg.repeat && record.count > 0) { throw new ZError(12, 'already goted') } - if (cfg.repeat && record.count >= cfg.frequency) { - throw new ZError(13, 'reach today max count') + if (record.count >= cfg.frequency) { + throw new ZError(13, 'reach max count') } if (cfg.interval && (Date.now() - record.lasttime) < cfg.interval) { throw new ZError(14, '操作太快了') @@ -76,4 +77,46 @@ export default class ActivityController extends BaseController { rest } } + + @router('post /api/:accountid/event_status') + async eventStatus(req: any) { + let { ids, accountid } = req.params + if (!ids) { + throw new ZError(11, 'not enough params') + } + let cfgMap = global.$cfg.get(BaseConst.INCOME) + let results: any = [] + for (let id of ids) { + id = +id + let rest = 0 + if (!cfgMap.has(id)) { + results.push([id, 0]) + continue + } + let cfg = cfgMap.get(id) + cfg.frequency = cfg.frequency || 1 + let day + if (cfg.repeat) { + day = (new Date()).format('yyyy-MM-dd', true) + } else { + day = (new Date(0)).format('yyyy-MM-dd', true) + } + let record = (await ActRecord.findOrCreate({ + accountid, + actid: id, + day + })).doc + if (!cfg.repeat && record.count > 0) { + results.push([id, 0]) + continue + } + if (record.count >= cfg.frequency) { + results.push([id, 0]) + continue + } + rest = cfg.frequency - record.count + results.push([id, rest]) + } + return results + } }