🐞 fix(guild): 练兵场-挑战奖励不能重复领取
This commit is contained in:
@@ -35,6 +35,13 @@ class RefineRecord {
|
||||
count: number;
|
||||
}
|
||||
|
||||
export class TrainBoxRewardRecord {
|
||||
@prop({ required: true })
|
||||
hid: number;
|
||||
@prop({ required: true })
|
||||
guildCode: string;
|
||||
}
|
||||
|
||||
@index({ roleId: 1 })
|
||||
@index({ guildCode: 1 })
|
||||
export default class UserGuild extends BaseModel {
|
||||
@@ -86,8 +93,8 @@ export default class UserGuild extends BaseModel {
|
||||
@prop({ required: true, default: [] })
|
||||
trainRewards: Array<number>;//领取过的进阶等级
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
trainBoxRewards: Array<number>;//领取过的挑战奖励
|
||||
@prop({ required: true, default: [], type: TrainBoxRewardRecord, _id: false })
|
||||
trainBoxRewards: Array<TrainBoxRewardRecord>;//领取过的挑战奖励
|
||||
|
||||
//捐献所
|
||||
@prop({ required: true, default: [], type: Number })
|
||||
@@ -176,7 +183,7 @@ export default class UserGuild extends BaseModel {
|
||||
delete update._id;
|
||||
|
||||
const result: UserGuildType = await UserGuildModel.findOneAndUpdate({ roleId: role.roleId, guildCode, status: USER_GUILD_STATUS.ON }, { $set: update }, { upsert: true, new: true })
|
||||
.select('activeDaily activeRecord activeWeekly activeUpdateTime job auth receivedActive guildCode')
|
||||
.select('activeDaily activeRecord activeWeekly activeUpdateTime job auth receivedActive guildCode trainBoxRewards')
|
||||
.lean();
|
||||
|
||||
return result;
|
||||
@@ -225,7 +232,7 @@ export default class UserGuild extends BaseModel {
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录玩家领取过的试炼宝箱奖励(每个boss都有一个抽卡奖励)
|
||||
* 记录玩家领取过的试炼宝箱奖励(每个武将都有一个抽卡奖励)
|
||||
*
|
||||
* @static
|
||||
* @param {string} roleId
|
||||
@@ -234,9 +241,9 @@ export default class UserGuild extends BaseModel {
|
||||
* @return {*}
|
||||
* @memberof UserGuild
|
||||
*/
|
||||
public static async receiveTrainBoxRewards(roleId: string, trainId: number, lean = true) {
|
||||
public static async receiveTrainBoxRewards(roleId: string, hid: number, guildCode: string, lean = true) {
|
||||
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON},
|
||||
{ $push:{trainBoxRewards: trainId} },{new: true}).lean(lean);
|
||||
{ $push:{trainBoxRewards: {hid, guildCode}} },{new: true}).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user