增加一个查询事件状态的接口
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')
|
@router('post /api/:accountid/update_event')
|
||||||
async generalEvent(req: any) {
|
async generalEvent(req: any) {
|
||||||
let { id, accountid } = req.params
|
let { id, accountid } = req.params
|
||||||
assert(id, 'id requiresd')
|
assert(id, 'id required')
|
||||||
let cfgMap = global.$cfg.get(BaseConst.INCOME)
|
let cfgMap = global.$cfg.get(BaseConst.INCOME)
|
||||||
id = +id
|
id = +id
|
||||||
if (!cfgMap.has(id)) {
|
if (!cfgMap.has(id)) {
|
||||||
throw new ZError(11, 'no cfg found')
|
throw new ZError(11, 'no cfg found')
|
||||||
}
|
}
|
||||||
let cfg = cfgMap.get(id)
|
let cfg = cfgMap.get(id)
|
||||||
let day
|
cfg.frequency = cfg.frequency || 1
|
||||||
let rest = 0
|
let rest = 0
|
||||||
|
let day
|
||||||
if (cfg.repeat) {
|
if (cfg.repeat) {
|
||||||
day = (new Date()).format('yyyy-MM-dd', true)
|
day = (new Date()).format('yyyy-MM-dd', true)
|
||||||
} else {
|
} else {
|
||||||
@ -35,8 +36,8 @@ export default class ActivityController extends BaseController {
|
|||||||
if (!cfg.repeat && record.count > 0) {
|
if (!cfg.repeat && record.count > 0) {
|
||||||
throw new ZError(12, 'already goted')
|
throw new ZError(12, 'already goted')
|
||||||
}
|
}
|
||||||
if (cfg.repeat && record.count >= cfg.frequency) {
|
if (record.count >= cfg.frequency) {
|
||||||
throw new ZError(13, 'reach today max count')
|
throw new ZError(13, 'reach max count')
|
||||||
}
|
}
|
||||||
if (cfg.interval && (Date.now() - record.lasttime) < cfg.interval) {
|
if (cfg.interval && (Date.now() - record.lasttime) < cfg.interval) {
|
||||||
throw new ZError(14, '操作太快了')
|
throw new ZError(14, '操作太快了')
|
||||||
@ -76,4 +77,46 @@ export default class ActivityController extends BaseController {
|
|||||||
rest
|
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