招募:引导特殊招募功能

This commit is contained in:
luying
2021-11-16 18:06:34 +08:00
parent d48792390e
commit 0d54e3058b
6 changed files with 213 additions and 3 deletions

View File

@@ -359,6 +359,9 @@ export const STATUS = {
GACHA_HAS_VISITED: { code: 31106, simStr: '该武将已拜访过' },
GACHA_VISITED_COUNT_OVER: { code: 31107, simStr: '今天武将拜访已超过次数' },
GACHA_HOPE_HAS_GET: { code: 31108, simStr: '该心愿已实现' },
GACHA_GUIDE_PULL_CNT_LACK: { code: 31109, simStr: '预抽卡次数不足' },
GACHA_GUIDE_NOT_DO: { code: 31110, simStr: '没有预抽卡过' },
GACHA_GUIDE_HAS_DONE: { code: 31111, simStr: '不可多次预抽卡' },
// 礼包码 31201-31300
GIFT_CODE_USED_NUM_MAX: { code: 31201, simStr: '礼包码使用次数超过' },
YOU_HAVE_USED_THIS_CODE: { code: 31202, simStr: '您已使用过该码' },

View File

@@ -320,8 +320,10 @@ export default class Role extends BaseModel {
@prop({ required: true, default: [], type: Number })
rankReceived: number[]; // 已领取奖励
@prop({ required: true, default: [], type: Number })
guide: number[]; // 已领取奖励
guide: number[]; // 引导
@prop({ required: true, default: false })
gachaHasGuide: boolean; // 是否进行过引导特殊招募
@prop({ required: true })
renameCnt: number; // 改名次数

View File

@@ -36,6 +36,24 @@ class Turntable {
hasGet: boolean; // 是否得到
}
class SimpleResult {
@prop({ required: true })
contentId: number;
@prop({ required: true })
hid: number;
}
/**
* @description 特殊引导候选列表
* @memberof UserGacha
*/
class Candidate {
@prop({ required: true })
id: number; // 列表id
@prop({ required: true, type: SimpleResult, _id: false })
list: SimpleResult[]; // 是否得到
}
/**
* 玩家抽卡表
**/
@@ -73,7 +91,7 @@ export default class UserGacha extends BaseModel {
@prop({ required: true, default: 0 })
costPoint: number; // 消耗的积分
// 积分
public get point() {
return Math.floor(this.count/RECRUIT.RECRUIT_BONUS) - (this.costPoint||0);
@@ -91,6 +109,16 @@ export default class UserGacha extends BaseModel {
@prop({ required: true, default: getZeroPointD })
refVisitedTime: Date; // 玩家指定武将
// 初始特殊引导
@prop({ required: true, default: 0 })
guideCount: number; // 预抽卡次数
@prop({ required: true, type: SimpleResult, default: [], _id: false })
guideResultList: SimpleResult[]; // 预抽卡结果
@prop({ required: true, type: Candidate, default: [], _id: false })
candidates: Candidate[]; // 预抽卡候选
public static async findAllByRole(roleId: string) {
let rec: UserGachaType[] = await UserGachaModel.find({ roleId }).lean({ virtuals: true });
return rec;