增加视频广告上报接口

This commit is contained in:
zhl 2021-02-01 14:08:49 +08:00
parent fbe60aff85
commit afd7197329
6 changed files with 81 additions and 3 deletions

View File

@ -630,7 +630,25 @@
```
### 24. 视频广告上报
1. Method: POST
2. URI: /api/:accountid/adresult
| 字段 | 说明 |
| -------- | -------------------------------------- |
| accountid | 帐号id |
3. Response: JSON
```js
[ //物品列表
{
"id": 0, //道具id
"count": 0, //道具数量
},
]
```

View File

@ -121,7 +121,6 @@ export default class AccountController extends BaseController {
async cardlist(req: any) {
let account = req.user
let result: Card[] = [...account.cardMap.values()].map(o => o.toJson())
//TODO:: 添加限免英雄和免费英雄
return result
}

View File

@ -0,0 +1,21 @@
import BaseController from '../common/base.controller'
import { router } from '../decorators/router'
import { AdRecord } from '../models/AdRecord'
export default class AdController extends BaseController {
/**
* 广,
* @param req
* @return {Promise<{}>}
*/
@router('post /api/:accountid/adresult')
async drawCard(req: any) {
let { accountid } = req.params
let day = (new Date()).format('yyyy-MM-dd', true)
let record = (await AdRecord.findOrCreate({accountid, day})).doc
record.count += 1
//TODO:: 读取配置, 查看次数是否达到上限, 添加物品
await record.save()
return {}
}
}

View File

@ -96,7 +96,6 @@ export default class CardController extends BaseController {
}
if (cards) {
let datas: Card[] = []
//TODO:: 设置真实的卡牌信息
for (let cardid of cards) {
let card = new Card()
card.cardid = cardid

View File

@ -17,7 +17,6 @@ export default class HeroController extends BaseController {
for (let [, hero] of account.heros) {
heros.push(hero.toJson())
}
//TODO:: 添加限免英雄和免费英雄
return heros
}

42
src/models/AdRecord.ts Normal file
View File

@ -0,0 +1,42 @@
import { dbconn } from '../decorators/dbconn'
import {
getModelForClass,
index,
modelOptions,
plugin,
prop
} from '@typegoose/typegoose'
import {
Base,
FindOrCreate,
TimeStamps
} from '@typegoose/typegoose/lib/defaultClasses'
// @ts-ignore
import findOrCreate from 'mongoose-findorcreate'
interface AdRecordClass extends Base<string>, TimeStamps {
}
@dbconn()
@index({ 'accountid': 1 , 'day': 1}, { unique: true })
@plugin(findOrCreate)
@modelOptions({
schemaOptions:
{ collection: 'ad_record', timestamps: true }
})
class AdRecordClass extends FindOrCreate {
@prop()
public accountid: string
@prop()
public day: string
@prop({ default: 0 })
public count: number
}
export const AdRecord = getModelForClass(AdRecordClass,
// @ts-ignore
{ existingConnection: AdRecordClass['db'] })