增加3个卡组相关接口
This commit is contained in:
parent
248289afff
commit
13858fec7d
@ -150,6 +150,8 @@
|
|||||||
|
|
||||||
| 字段 | 说明 |
|
| 字段 | 说明 |
|
||||||
| -------- | -------------------------------------- |
|
| -------- | -------------------------------------- |
|
||||||
|
| heroid |英雄id |
|
||||||
|
| selected |是否设为选中 |
|
||||||
| cards |[cardid] 卡牌id的数组 |
|
| cards |[cardid] 卡牌id的数组 |
|
||||||
|
|
||||||
3. Response: JSON
|
3. Response: JSON
|
||||||
|
@ -4,6 +4,7 @@ import {Account} from "../models/Account";
|
|||||||
import {ZError} from "../common/ZError";
|
import {ZError} from "../common/ZError";
|
||||||
import {Hero} from "../models/subdoc/Hero";
|
import {Hero} from "../models/subdoc/Hero";
|
||||||
import {Card} from "../models/subdoc/Card";
|
import {Card} from "../models/subdoc/Card";
|
||||||
|
import {CardGroup} from "../models/CardGroup";
|
||||||
|
|
||||||
export default class AccountController extends BaseController {
|
export default class AccountController extends BaseController {
|
||||||
@role('anon')
|
@role('anon')
|
||||||
@ -81,5 +82,4 @@ export default class AccountController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
84
src/controllers/CardController.ts
Normal file
84
src/controllers/CardController.ts
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
import BaseController from "../common/base.controller";
|
||||||
|
import {router} from "../decorators/router";
|
||||||
|
import {CardGroup} from "../models/CardGroup";
|
||||||
|
import {ZError} from "../common/ZError";
|
||||||
|
import {Card} from "../models/subdoc/Card";
|
||||||
|
|
||||||
|
export default class CardController extends BaseController {
|
||||||
|
@router('post /api/:accountid/card_group/:heroid')
|
||||||
|
async cardGroupList(req: any) {
|
||||||
|
let {accountid, heroid} = req.params;
|
||||||
|
let query: any = {accountid: accountid, deleted: false};
|
||||||
|
if (heroid) {
|
||||||
|
query.heroid = parseInt(heroid);
|
||||||
|
}
|
||||||
|
let records = await CardGroup.find(query);
|
||||||
|
let result: any = [];
|
||||||
|
for (let record of records) {
|
||||||
|
let data: any = record.toJson();
|
||||||
|
result.push(data);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@router('post /api/:accountid/card_group/save/:gid')
|
||||||
|
async saveCardGroup(req: any) {
|
||||||
|
let {accountid, gid, heroid, selected, cards} = req.params;
|
||||||
|
if (!gid && !heroid) {
|
||||||
|
throw new ZError(101, 'gid和heroid不能同时为空');
|
||||||
|
}
|
||||||
|
if (selected && !heroid) {
|
||||||
|
throw new ZError(102, '要将某卡组设为selected, 必须同时传heroid');
|
||||||
|
}
|
||||||
|
let record;
|
||||||
|
if (gid) {
|
||||||
|
record = await CardGroup.findById(gid);
|
||||||
|
}
|
||||||
|
if (record && record.deleted) {
|
||||||
|
throw new ZError(103, '卡组已被删除');
|
||||||
|
}
|
||||||
|
if (!record) {
|
||||||
|
record = new CardGroup();
|
||||||
|
record.accountid = accountid;
|
||||||
|
record.isdefault = false;
|
||||||
|
}
|
||||||
|
if (selected) {
|
||||||
|
await CardGroup.updateMany({accountid,heroid}, {$set: {"selected": false}});
|
||||||
|
record.selected = true;
|
||||||
|
}
|
||||||
|
if (heroid) {
|
||||||
|
record.heroid = heroid;
|
||||||
|
}
|
||||||
|
if (cards) {
|
||||||
|
let datas: Card[] = [];
|
||||||
|
//TODO:: 设置真实的卡牌信息
|
||||||
|
for (let cardid of cards) {
|
||||||
|
let card = new Card();
|
||||||
|
card.cardid = cardid;
|
||||||
|
card.owned = true;
|
||||||
|
card.usetype = 0;
|
||||||
|
card.free = false;
|
||||||
|
datas.push(card);
|
||||||
|
}
|
||||||
|
record.cards = datas;
|
||||||
|
}
|
||||||
|
await record.save();
|
||||||
|
return record.toJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
@router('post /api/:accountid/card_group/delete/:gid')
|
||||||
|
async deleteCardGroup(req: any) {
|
||||||
|
let {gid} = req.params;
|
||||||
|
let record = await CardGroup.findById(gid);
|
||||||
|
if (!record) {
|
||||||
|
throw new ZError(101, '未找到记录');
|
||||||
|
}
|
||||||
|
if (record && record.deleted) {
|
||||||
|
throw new ZError(103, '卡组已被删除');
|
||||||
|
}
|
||||||
|
record.deleted = true;
|
||||||
|
record.deletetime = new Date();
|
||||||
|
await record.save();
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
@ -51,6 +51,7 @@ class CardGroupClass {
|
|||||||
|
|
||||||
public toJson() {
|
public toJson() {
|
||||||
return {
|
return {
|
||||||
|
gid: this._id,
|
||||||
heroid: this.heroid,
|
heroid: this.heroid,
|
||||||
selected: this.selected,
|
selected: this.selected,
|
||||||
isdefault: this.isdefault,
|
isdefault: this.isdefault,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user