增加一个查询事件状态的接口
This commit is contained in:
parent
b8fc503f64
commit
1f96ad3a34
25
docs/api.md
25
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]
|
||||
]
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 三. 服务端接口列表
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user