From 8560986246b9457483c32e48c0702cae883017c3 Mon Sep 17 00:00:00 2001 From: xichaoyin Date: Fri, 5 Jan 2024 15:05:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=9B=E6=9E=97?= =?UTF-8?q?=E7=8C=8E=E6=89=8B=E6=AE=B5=E4=BD=8D=E5=A5=96=E5=8A=B1=E6=BC=8F?= =?UTF-8?q?=E5=8F=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/conglinshoulie/ApiRec.ts | 41 ++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/api_s2c/conglinshoulie/ApiRec.ts b/src/api_s2c/conglinshoulie/ApiRec.ts index 2d336bd..610a9ae 100644 --- a/src/api_s2c/conglinshoulie/ApiRec.ts +++ b/src/api_s2c/conglinshoulie/ApiRec.ts @@ -3,19 +3,56 @@ import { PlayerFun } from '../../public/player'; import { ReqRec, ResRec } from "../../shared/protocols/conglinshoulie/PtlRec"; import { HongDianChange } from "../hongdian/fun"; import { addStar, clslDb } from './ApiOpen'; +import { EmailFun } from "../../public/email"; export default async function (call: ApiCall) { let conf = G.gc.clsl_com.fightWinPrize[call.req.index]; if (!conf) return call.errorCode(-1); let db = await clslDb().findOne({ uid: call.uid, type: 'clsl' }); + + let curStar = db?.allStar || 0; + let danPrize = db?.danPrize || []; + let curMaxStar = db?.curMaxStar || 0; + if ((db?.fightWinNum || 0) < conf.total || db?.recWinPrize?.includes(call.req.index)) return call.errorCode(-2); await PlayerFun.sendPrize(call, conf.prize); - addStar(call, conf.star); + let updata = { $push: { recWinPrize: call.req.index } }; - clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $push: { recWinPrize: call.req.index } }); + // 首次达到某个段位 + if (curStar + conf.star > curMaxStar) { + curMaxStar += conf.star; + updata["$inc"] = { "curMaxStar": conf.star }; + } + + // 段位奖励邮件 + let title = G.gc.clsl_com.email_dan.title; + let content = G.gc.clsl_com.email_dan.content; + G.gc.clsl_com.danPrize.forEach(conf => { + // 段位未达到 或者 奖励已经发放 + if (conf.star > curMaxStar || danPrize.includes(conf.star)) { + return + } + + // 发放邮件 + EmailFun.addEmail({ + uid: call.uid, + type: 'system', + title: title, + content: content, + prize: conf.prize, + contentInsertArr:[conf.title] + }) + + danPrize.push(conf.star); + updata["$set"] = { danPrize: danPrize }; + }) + + + addStar(call, conf.star, undefined, updata); + // clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $push: { recWinPrize: call.req.index } }); HongDianChange.sendChangeKey(call.uid, ['clslhd'])