From d063d16eace744995f5085a8f990c7037e4fbb26 Mon Sep 17 00:00:00 2001 From: zhl Date: Thu, 21 Jan 2021 13:56:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=BF=E7=94=A8=E7=89=A9?= =?UTF-8?q?=E5=93=81=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/AccountController.ts | 27 +++++++++++++++++++++++---- src/controllers/MailController.ts | 6 ++++-- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/controllers/AccountController.ts b/src/controllers/AccountController.ts index 4f3f117..5ce1b2d 100644 --- a/src/controllers/AccountController.ts +++ b/src/controllers/AccountController.ts @@ -6,7 +6,7 @@ import { Card } from '../models/subdoc/Card' import { BaseConst } from '../constants/BaseConst' import { Hero } from '../models/subdoc/Hero' import { CardGroup } from '../models/CardGroup' -import { BagItem } from '../models/BagItem' +import { BagItem, ItemType } from '../models/BagItem' export default class AccountController extends BaseController { @role('anon') @@ -111,9 +111,28 @@ export default class AccountController extends BaseController { @router('post /api/:accountid/useitem') async userItem(req: any) { - let {accountid, items} = req.params; - - return {} + let { accountid, itemid, count } = req.params + let record = await BagItem.findOne({accountid, itemid, itemtype: ItemType.UNKNOW}) + if (!record) { + throw new ZError(11, 'item not found') + } + if (record.count < count) { + throw new ZError(12, 'not enough item') + } + record.count -= count + //TODO:: 根据使用逻辑获取真实的物品id + let data = [{ itemid: 10001, itemnum: 1 }] + for (let obj of data) { + let item = (await BagItem.findOrCreate({ + accountid, + itemid: obj.itemid, + itemtype: ItemType.UNKNOW + })).doc + item.count += obj.itemnum + await item.save() + } + await record.save() + return data } } diff --git a/src/controllers/MailController.ts b/src/controllers/MailController.ts index fb330c3..c2ec9c8 100644 --- a/src/controllers/MailController.ts +++ b/src/controllers/MailController.ts @@ -15,9 +15,11 @@ export default class MailController extends BaseController { } if (data.attachments && data.attachments.length > 0) { for (let obj of data.attachments) { - let item = (await BagItem.findOrCreate({accountid, + let item = (await BagItem.findOrCreate({ + accountid, itemid: obj.itemid, - itemtype: ItemType.UNKNOW })).doc + itemtype: ItemType.UNKNOW + })).doc item.count += obj.itemnum await item.save() }