From 38b2f9a99e5ad73915e5dbc7b9e57195714822b0 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 4 Jan 2024 16:50:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=B4=E5=86=B0=E7=A4=BC=E5=8C=85=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9C=80=E5=90=8E=E4=B8=80=E5=A4=A9=E5=8F=AF=E9=A2=86?= =?UTF-8?q?=E5=8F=96=E6=89=80=E6=9C=89=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/pobinglibao/ApiReceive.ts | 5 ++- src/api_s2c/hongdian/fun.ts | 34 +++++++++++++++------ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/api_s2c/event/pobinglibao/ApiReceive.ts b/src/api_s2c/event/pobinglibao/ApiReceive.ts index 735337a..8cd63ed 100644 --- a/src/api_s2c/event/pobinglibao/ApiReceive.ts +++ b/src/api_s2c/event/pobinglibao/ApiReceive.ts @@ -4,6 +4,7 @@ import {HuoDongFun} from "../../../public/huodongfun"; import {PlayerFun} from "../../../public/player"; import {HongDianChange} from "../../hongdian/fun"; import {PayFun} from "../../../public/pay"; +import {PublicShared} from "../../../shared/public/public"; export default async function (call: ApiCall) { @@ -19,7 +20,9 @@ export default async function (call: ApiCall) { // 取奖励列表,判断是否有可领取奖励 let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne({uid: call.uid, type: `pobinglibao${_hd.hdid}`}) let rec = data?.record?.[call.req.id]?.length - if (rec && (rec >= 3 || data?.record?.[gift.id] == call.req.recId)) return call.errorCode(-3) + let _payDiff = PublicShared.getDiff(payLog[0].time) + let _endDiff = PublicShared.getDiff(_hd.etime) + if ((rec >= _payDiff && _endDiff < 1) || data?.record?.[gift.id] == call.req.recId) return call.errorCode(-3) await PlayerFun.sendPrize(call, gift[call.req.recId]); diff --git a/src/api_s2c/hongdian/fun.ts b/src/api_s2c/hongdian/fun.ts index 4d66e88..4400a21 100644 --- a/src/api_s2c/hongdian/fun.ts +++ b/src/api_s2c/hongdian/fun.ts @@ -366,22 +366,36 @@ export class HuoDongHongDianFun { /**破冰礼包红点 */ static async pobinglibao(call: ApiCall, _hd: ReqAddHuoDong): Promise { + let gift = _hd?.data?.gift?.find(i => i.free == true && !i.payId) if (gift) return {show: true} - let payIds = _hd?.data?.gift?.filter(i=>i.payId).map(i=>i.payId) + + let payIds = _hd?.data?.gift?.filter(i => i.payId).map(i => i.payId) let payLogs = await PayFun.getPayLogs(call.uid, payIds) - - // 取奖励列表,判断是否有可领取奖励 - let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne({uid: call.uid, type: `pobinglibao${_hd.hdid}`}) - - for (let item of _hd?.data?.gift){ - let rec = data?.record?.[item.id]?.length - if (item.free== true && !item.payId) return {show: true} - if (payLogs[item.payId]?.length && (!rec || rec < PublicShared.getDiff(payLogs[item.payId][0].time))) return {show: true} + for (let key in payLogs) { + payLogs[key] = payLogs[key]?.filter(i => i.time > _hd.stime && i.time < _hd.etime) || [] } - return {show:false} + // 取奖励列表,判断是否有可领取奖励 + let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne({ + uid: call.uid, + type: `pobinglibao${_hd.hdid}` + }) + for (let item of _hd?.data?.gift) { + if (item.free == true && !item.payId) return {show: true} + + let payLog = payLogs[item.payId] + if (!payLog.length) continue + + let rec = data?.record?.[item.id]?.length + let _payDiff = PublicShared.getDiff(payLog[0].time) + let _endDiff = PublicShared.getDiff(_hd.etime) + if ((rec < _payDiff)) return {show: true} + if ((rec < 3 && _endDiff > 0)) return {show: true} + } + + return {show: false} } /**元旦活动红点 */