🐞 fix(shop): 商店购买数据回滚

This commit is contained in:
dingchaolin
2023-03-06 20:13:35 +08:00
parent b15639b991
commit 10df130ae5
4 changed files with 29 additions and 18 deletions

View File

@@ -1,7 +1,7 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
import Role, { RoleType } from './Role';
import { GUILD_AUTH, USER_GUILD_STATUS, GUILD_JOB } from '../consts';
import { GUILD_AUTH, USER_GUILD_STATUS, GUILD_JOB, SHOP_REFRESH_TYPE } from '../consts';
import { getZeroPointD, nowSeconds, isToday } from '../pubUtils/timeUtil';
import { ARMY } from '../pubUtils/dicParam';
class ActiveRecord {
@@ -242,6 +242,19 @@ export default class UserGuild extends BaseModel {
return result;
}
/**
* 重置上周加入的队员的试炼数据(本周加入的不能重置,否则会多领奖励)
*
* @static
* @param {string} guildCode
* @return {*}
* @memberof UserGuild
*/
public static async resetTrainUserGuildLastWeekJoinedIn(guildCode: string) {
const result = await UserGuildModel.updateMany({ guildCode, createdAt: {$lt: getZeroPointD(SHOP_REFRESH_TYPE.WEEKLY)} }, {$set: { trainCount: ARMY.ARMY_TRAIN_BUYTIMES, buyTrainCount: 0, trainTime: nowSeconds(), trainRewards: [] }});
return result;
}
public static async donateFund(roleId: string, donateCnt: number, lean = true) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON},
{$inc: { donateCnt }}, {new: true}).lean(lean);