diff --git a/shared/db/FriendPoint.ts b/shared/db/FriendPoint.ts index 439fec3e8..146d4716b 100644 --- a/shared/db/FriendPoint.ts +++ b/shared/db/FriendPoint.ts @@ -34,21 +34,21 @@ export default class FriendPoint extends BaseModel { public static async updatePointToday(roleId: string, roleName: string, cntInc: number, maxPerDay: number, type: number, lean = true) { const curTime = getZeroPointD(); // 当 oldCnt + cntInc > maxPerDay 时需计算实际可以获得的点数:cntInc - (newCnt - maxPerDay) - const rec: FriendPointType = await FriendPointModel.findOneAndUpdate({roleId, roleName, createdAt: {$gte: curTime}, cnt: {$lt: maxPerDay}, type}, {$inc: {cnt: cntInc, sendCnt: 0}}, {upsert: true, new: true}).lean(lean); + const rec: FriendPointType = await FriendPointModel.findOneAndUpdate({roleId, createdAt: {$gte: curTime}, cnt: {$lt: maxPerDay}, type}, { $setOnInsert: { roleName }, $inc: {cnt: cntInc, sendCnt: 0}}, {upsert: true, new: true}).lean(lean); return rec; } public static async updateSendCntToday(roleId: string, roleName: string, cntInc: number, maxPerDay: number, type: number, lean = true) { const curTime = getZeroPointD(); // 当 oldCnt + cntInc > maxPerDay 时需计算实际可以获得的点数:cntInc - (newCnt - maxPerDay) - const rec: FriendPointType = await FriendPointModel.findOneAndUpdate({roleId, roleName, createdAt: {$gte: curTime}, sendCnt: {$lt: maxPerDay}, type}, {$inc: {sendCnt: cntInc, cnt: 0}}, {upsert: true, new: true}).lean(lean); + const rec: FriendPointType = await FriendPointModel.findOneAndUpdate({roleId, createdAt: {$gte: curTime}, sendCnt: {$lt: maxPerDay}, type}, {$setOnInsert: { roleName }, $inc: {sendCnt: cntInc, cnt: 0}}, {upsert: true, new: true}).lean(lean); return rec; } public static async updateComBattleCntToday(roleId: string, roleName: string, cntInc: number, maxPerDay: number, type: number, lean = true) { const curTime = getZeroPointD(); // 当 oldCnt + cntInc > maxPerDay 时需计算实际可以获得的点数:cntInc - (newCnt - maxPerDay) - const rec: FriendPointType = await FriendPointModel.findOneAndUpdate({roleId, roleName, createdAt: {$gte: curTime}, comBattleCnt: {$lt: maxPerDay}, type}, {$inc: {comBattleCnt: cntInc}}, {upsert: true, new: true}).lean(lean); + const rec: FriendPointType = await FriendPointModel.findOneAndUpdate({roleId, createdAt: {$gte: curTime}, comBattleCnt: {$lt: maxPerDay}, type}, {$setOnInsert: { roleName }, $inc: {comBattleCnt: cntInc}}, {upsert: true, new: true}).lean(lean); return rec; }