diff --git a/src/api_s2c/event/pobinglibao/ApiReceive.ts b/src/api_s2c/event/pobinglibao/ApiReceive.ts index 1f60117..1ca3b81 100644 --- a/src/api_s2c/event/pobinglibao/ApiReceive.ts +++ b/src/api_s2c/event/pobinglibao/ApiReceive.ts @@ -29,5 +29,5 @@ export default async function (call: ApiCall) { call.succ({}) - HongDianChange.sendChangeKey(call.uid, ['pobinglibao']); + HongDianChange.sendChangeKey(call.uid, ['huodonghd']); } diff --git a/src/api_s2c/hongdian/fun.ts b/src/api_s2c/hongdian/fun.ts index d451153..f8a301b 100644 --- a/src/api_s2c/hongdian/fun.ts +++ b/src/api_s2c/hongdian/fun.ts @@ -367,17 +367,21 @@ 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: false} + if (gift) return {show: true} - let payLog = await PayFun.getPayLog(call.uid, gift.payId) - payLog = payLog?.filter(i => i.time >= _hd.stime && i.time <= _hd.etime) || [] - if (!payLog || !payLog.length) return {show: false} + 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').findOne({uid: call.uid, type: 'pobinglibao'}) - let rec = data?.record?.[call.req.id].length - if (rec && (rec >= 3 || data?.record?.[gift.id] == call.req.recId)) return {show: false} - return {show: true} + + 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} + } + + return {show:false} } /**元旦活动红点 */