增加一个查询事件状态的接口

This commit is contained in:
zhl 2021-02-23 19:39:12 +08:00
parent b8fc503f64
commit 1f96ad3a34
2 changed files with 72 additions and 4 deletions

View File

@ -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]
]
```
## 三. 服务端接口列表

View File

@ -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
}
}