Merge branch 'master' of http://git.kingsome.cn/node/card_info_svr
This commit is contained in:
commit
d628879431
@ -7,7 +7,7 @@ import { BaseConst } from '../constants/BaseConst'
|
||||
import { Hero } from '../models/subdoc/Hero'
|
||||
import { CardGroup } from '../models/CardGroup'
|
||||
import { BagItem, ItemType } from '../models/BagItem'
|
||||
import ItemCtrl from 'logic/ItemCtrl'
|
||||
import ItemCtrl from '../logic/ItemCtrl'
|
||||
|
||||
export default class AccountController extends BaseController {
|
||||
@role('anon')
|
||||
@ -23,9 +23,9 @@ export default class AccountController extends BaseController {
|
||||
if (account.season_score == -1) {
|
||||
account.season_score = formulaCfg.get(70003).number
|
||||
}
|
||||
let cardSet = new Set(account.cards)
|
||||
let cardMap = account.cardMap
|
||||
for (let [, cfg] of global.$cfg.get(BaseConst.HERO)) {
|
||||
if (cfg.id <= 30100) {
|
||||
if (cfg.org_gift == 1) {
|
||||
let hero = new Hero()
|
||||
hero.heroid = cfg.id
|
||||
hero.free = true
|
||||
@ -37,15 +37,20 @@ export default class AccountController extends BaseController {
|
||||
let cardgroup = new CardGroup({})
|
||||
let cards: Card[] = []
|
||||
for (let i = 1; i <= 4; i++) {
|
||||
const cardid = cfg[`follower${ i }id`]
|
||||
if (cardMap.has(cardid + '')) {
|
||||
continue
|
||||
}
|
||||
let card = new Card()
|
||||
card.cardid = cfg[`follower${ i }id`]
|
||||
card.owned = false
|
||||
card.cardid = cardid
|
||||
card.owned = true
|
||||
card.ban = false
|
||||
card.usetype = 0
|
||||
card.free = true
|
||||
card.free_expire = 0
|
||||
card.time = Date.now()
|
||||
cards.push(card)
|
||||
cardSet.add(card.cardid)
|
||||
cardMap.set(cardid + '', card)
|
||||
}
|
||||
cardgroup.accountid = account.id
|
||||
cardgroup.heroid = cfg.id
|
||||
@ -56,8 +61,7 @@ export default class AccountController extends BaseController {
|
||||
}
|
||||
}
|
||||
}
|
||||
account.cards = [...cardSet]
|
||||
result.cards = account.cards
|
||||
result.cards = [...account.cardMap.values()].map(o => o.toJson())
|
||||
let heros: any[] = []
|
||||
for (let [key, hero] of account.heros) {
|
||||
heros.push(hero.toJson())
|
||||
@ -89,16 +93,7 @@ export default class AccountController extends BaseController {
|
||||
@router('post /api/:accountid/cards')
|
||||
async cardlist(req: any) {
|
||||
let account = req.user
|
||||
let result: Card[] = []
|
||||
for (let cardid of account.cards) {
|
||||
let card = new Card()
|
||||
card.cardid = cardid
|
||||
card.owned = true
|
||||
card.ban = false
|
||||
card.usetype = 0
|
||||
card.free = false
|
||||
result.push(card)
|
||||
}
|
||||
let result: Card[] = [...account.cardMap.values()].map(o => o.toJson())
|
||||
//TODO:: 添加限免英雄和免费英雄
|
||||
return result
|
||||
}
|
||||
@ -113,7 +108,11 @@ export default class AccountController extends BaseController {
|
||||
@router('post /api/:accountid/useitem')
|
||||
async userItem(req: any) {
|
||||
let { accountid, itemid, count } = req.params
|
||||
let record = await BagItem.findOne({accountid, itemid, itemtype: ItemType.UNKNOW})
|
||||
let record = await BagItem.findOne({
|
||||
accountid,
|
||||
itemid,
|
||||
itemtype: ItemType.UNKNOW
|
||||
})
|
||||
if (!record) {
|
||||
throw new ZError(11, 'item not found')
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ import { ZError } from '../common/ZError'
|
||||
import { MoneyTypeConst } from '../constants/MoneyTypeConst'
|
||||
import { timeBeforeDay } from '../utils/time.util'
|
||||
import { BaseConst } from '../constants/BaseConst'
|
||||
import { Card } from './subdoc/Card'
|
||||
|
||||
export class RecordInfo {
|
||||
@prop()
|
||||
@ -60,6 +61,11 @@ class UserClass extends FindOrCreate {
|
||||
*/
|
||||
@prop({ type: () => [Number] })
|
||||
public cards: number[]
|
||||
/**
|
||||
* 已获得卡牌信息, 20210121添加
|
||||
*/
|
||||
@prop({ type: Card, default: new Map() })
|
||||
public cardMap: Map<string, Card>
|
||||
/**
|
||||
* 已解锁英雄信息
|
||||
*/
|
||||
|
@ -1,46 +1,53 @@
|
||||
import {prop} from "@typegoose/typegoose";
|
||||
import { prop } from '@typegoose/typegoose'
|
||||
|
||||
/**
|
||||
* 卡牌信息
|
||||
*/
|
||||
export class Card {
|
||||
@prop()
|
||||
public cardid: number;
|
||||
/**
|
||||
* 是否已拥有
|
||||
*/
|
||||
@prop()
|
||||
public owned: boolean;
|
||||
/**
|
||||
* 是否被禁
|
||||
*/
|
||||
@prop({default: false})
|
||||
public ban: boolean;
|
||||
/**
|
||||
* 赛季类型
|
||||
* 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
||||
*/
|
||||
@prop({default: 0})
|
||||
public usetype: number;
|
||||
/**
|
||||
* 是否是限免卡牌
|
||||
*/
|
||||
@prop({default: false})
|
||||
public free: boolean;
|
||||
/**
|
||||
* 限免过期时间
|
||||
*/
|
||||
@prop()
|
||||
public free_expire: number;
|
||||
@prop()
|
||||
public cardid: number
|
||||
/**
|
||||
* 是否已拥有
|
||||
*/
|
||||
@prop()
|
||||
public owned: boolean
|
||||
/**
|
||||
* 是否被禁
|
||||
*/
|
||||
@prop({ default: false })
|
||||
public ban: boolean
|
||||
/**
|
||||
* 赛季类型
|
||||
* 0: 通用, 1: 赛季排位专用, 2: 匹配专用
|
||||
*/
|
||||
@prop({ default: 0 })
|
||||
public usetype: number
|
||||
/**
|
||||
* 是否是限免卡牌
|
||||
*/
|
||||
@prop({ default: false })
|
||||
public free: boolean
|
||||
/**
|
||||
* 限免过期时间
|
||||
*/
|
||||
@prop()
|
||||
public free_expire: number
|
||||
/**
|
||||
* 添加时间
|
||||
* @type {number}
|
||||
*/
|
||||
@prop()
|
||||
public time: number
|
||||
|
||||
public toJson() {
|
||||
return {
|
||||
cardid: this.cardid,
|
||||
owned: this.owned,
|
||||
ban: this.ban,
|
||||
usetype: this.usetype,
|
||||
free: this.free,
|
||||
free_expire: this.free_expire
|
||||
}
|
||||
public toJson() {
|
||||
return {
|
||||
cardid: this.cardid,
|
||||
owned: this.owned,
|
||||
ban: this.ban,
|
||||
usetype: this.usetype,
|
||||
free: this.free,
|
||||
free_expire: this.free_expire,
|
||||
time: this.time
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,44 +1,47 @@
|
||||
import {prop} from "@typegoose/typegoose";
|
||||
import { prop } from '@typegoose/typegoose'
|
||||
|
||||
export class Hero {
|
||||
@prop()
|
||||
public heroid: number;
|
||||
/**
|
||||
* 是否是免费英雄
|
||||
*/
|
||||
@prop({default: false})
|
||||
public free: boolean;
|
||||
/**
|
||||
* 是否是试用
|
||||
*/
|
||||
@prop({default: false})
|
||||
public trial: boolean;
|
||||
@prop()
|
||||
public heroid: number
|
||||
/**
|
||||
* 是否是免费英雄
|
||||
*/
|
||||
@prop({ default: false })
|
||||
public free: boolean
|
||||
/**
|
||||
* 是否是试用
|
||||
*/
|
||||
@prop({ default: false })
|
||||
public trial: boolean
|
||||
|
||||
@prop({default: 0})
|
||||
public trial_expire: number;
|
||||
/**
|
||||
* 等级
|
||||
*/
|
||||
@prop({default: 1})
|
||||
public level: number;
|
||||
/**
|
||||
* 该等级下的经验值
|
||||
*/
|
||||
@prop({default: 0})
|
||||
public exp: number;
|
||||
@prop({ default: 0 })
|
||||
public trial_expire: number
|
||||
/**
|
||||
* 等级
|
||||
*/
|
||||
@prop({ default: 1 })
|
||||
public level: number
|
||||
/**
|
||||
* 该等级下的经验值
|
||||
*/
|
||||
@prop({ default: 0 })
|
||||
public exp: number
|
||||
|
||||
public toJson() {
|
||||
let data: any = {
|
||||
heroid: this.heroid,
|
||||
usetype: 0,
|
||||
level: this.level,
|
||||
exp: this.exp,
|
||||
free: this.free,
|
||||
trial: this.trial,
|
||||
trial_expire: this.trial_expire,
|
||||
ban: false,
|
||||
};
|
||||
data.owned = !this.trial;
|
||||
return data;
|
||||
@prop()
|
||||
public time: number
|
||||
|
||||
public toJson() {
|
||||
let data: any = {
|
||||
heroid: this.heroid,
|
||||
usetype: 0,
|
||||
level: this.level,
|
||||
exp: this.exp,
|
||||
free: this.free,
|
||||
trial: this.trial,
|
||||
trial_expire: this.trial_expire,
|
||||
ban: false
|
||||
}
|
||||
data.owned = !this.trial
|
||||
return data
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user