增加购买物品的接口
This commit is contained in:
parent
1945d427a2
commit
ba0de2a1e3
35
docs/api.md
35
docs/api.md
@ -420,6 +420,41 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 16. 购买物品
|
||||||
|
|
||||||
|
1. Method: POST
|
||||||
|
2. URI: /api/:accountid/hero/buyitem
|
||||||
|
|
||||||
|
| 字段 | 说明 |
|
||||||
|
| --------- | ------ |
|
||||||
|
| accountid | 帐号id |
|
||||||
|
|
||||||
|
> POST参数
|
||||||
|
|
||||||
|
|
||||||
|
| 字段 | 说明 |
|
||||||
|
| -------- | -------------------------------------- |
|
||||||
|
| itemid |需要购买的物品id |
|
||||||
|
|count|购买数量|
|
||||||
|
|
||||||
|
3. Response: JSON
|
||||||
|
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
"itemid": 1002, //道具id
|
||||||
|
"buynum": 1, //道具数量
|
||||||
|
"totalnum": 100, //购买成功后总数量
|
||||||
|
"priceid": 21231, // 使用代币的id
|
||||||
|
"pricenum": 20 // 使用代币数量
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 三. 服务端接口列表
|
## 三. 服务端接口列表
|
||||||
|
|
||||||
### 1. 上传对战记录(服务端调用)
|
### 1. 上传对战记录(服务端调用)
|
||||||
|
@ -103,7 +103,7 @@ export default class AccountController extends BaseController {
|
|||||||
@router('post /api/:accountid/items')
|
@router('post /api/:accountid/items')
|
||||||
async itemList(req: any) {
|
async itemList(req: any) {
|
||||||
let { accountid, type } = req.params
|
let { accountid, type } = req.params
|
||||||
let queryData: any = {accountid}
|
let queryData: any = { accountid }
|
||||||
if (type != undefined) {
|
if (type != undefined) {
|
||||||
queryData.itemtype = type << 0
|
queryData.itemtype = type << 0
|
||||||
}
|
}
|
||||||
@ -143,9 +143,31 @@ export default class AccountController extends BaseController {
|
|||||||
|
|
||||||
@router('post /api/:accountid/buyitem')
|
@router('post /api/:accountid/buyitem')
|
||||||
async buyItem(req: any) {
|
async buyItem(req: any) {
|
||||||
let {itemid, count} = req.params
|
let { itemid, count, accountid } = req.params
|
||||||
|
let pinfo = ItemCtrl.getItemPrice(itemid << 0)
|
||||||
return {}
|
if (pinfo.id == 0) {
|
||||||
|
throw new ZError(10, 'item can`t buy')
|
||||||
|
}
|
||||||
|
let record = await BagItem.findOne({
|
||||||
|
accountid,
|
||||||
|
itemid: pinfo.id
|
||||||
|
})
|
||||||
|
if (!record || record.count < pinfo.count * count) {
|
||||||
|
throw new ZError(11, 'not enough money')
|
||||||
|
}
|
||||||
|
record.count -= pinfo.count * count
|
||||||
|
let newItem = (await BagItem.findOrCreate({ accountid, itemid }))
|
||||||
|
.doc
|
||||||
|
newItem.count += count
|
||||||
|
await newItem.save()
|
||||||
|
await record.save()
|
||||||
|
return {
|
||||||
|
itemid,
|
||||||
|
buynum: count,
|
||||||
|
totalnum: newItem.count,
|
||||||
|
priceid: pinfo.id,
|
||||||
|
pricenum: pinfo.count
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user