parent
720dc255fe
commit
74c28c787b
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,6 +1,5 @@
|
|||||||
/node_modules
|
/node_modules
|
||||||
/.idea
|
/.idea
|
||||||
/.vscode
|
|
||||||
/dist
|
/dist
|
||||||
/doc
|
/doc
|
||||||
|
|
||||||
|
50
.vscode/launch.json
vendored
Normal file
50
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
// 使用 IntelliSense 了解相关属性。
|
||||||
|
// 悬停以查看现有属性的描述。
|
||||||
|
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "消息服",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${workspaceRoot}/src/index.ts",
|
||||||
|
"-serverType",
|
||||||
|
"msg",
|
||||||
|
"-logModel",
|
||||||
|
"debug"
|
||||||
|
],
|
||||||
|
"runtimeArgs": [
|
||||||
|
"--nolazy",
|
||||||
|
"-r",
|
||||||
|
"ts-node/register"
|
||||||
|
],
|
||||||
|
"sourceMaps": true,
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"internalConsoleOptions": "neverOpen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "跨服",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${workspaceRoot}/src/index.ts",
|
||||||
|
"-serverType",
|
||||||
|
"cross",
|
||||||
|
"-logModel",
|
||||||
|
"debug"
|
||||||
|
],
|
||||||
|
"runtimeArgs": [
|
||||||
|
"--nolazy",
|
||||||
|
"-r",
|
||||||
|
"ts-node/register"
|
||||||
|
],
|
||||||
|
"sourceMaps": true,
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"internalConsoleOptions": "neverOpen"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -206,19 +206,20 @@ export class PayFun {
|
|||||||
payArgs: payArgs,
|
payArgs: payArgs,
|
||||||
orderNo: orderNo
|
orderNo: orderNo
|
||||||
}
|
}
|
||||||
if (payId.indexOf('zixuanlibao') != -1) {
|
//改为统一方法,此处自选不这样用
|
||||||
// 后端唯一标识 htype 4 自选/定制 礼包
|
// if (payId.indexOf('zixuanlibao') != -1) {
|
||||||
// @ts-ignore
|
// // 后端唯一标识 htype 4 自选/定制 礼包
|
||||||
let _hdList = await HuoDongFun.gethdList(call, 4)
|
// // @ts-ignore
|
||||||
_hdList.forEach(ele => {
|
// let _hdList = await HuoDongFun.gethdList(call, 4)
|
||||||
let selectPrize = ele.data.gift.find(v => v.payId == payId)?.prize;
|
// _hdList.forEach(ele => {
|
||||||
if (prize) {
|
// let selectPrize = ele.data.gift.find(v => v.payId == payId)?.prize;
|
||||||
let index = payArgs instanceof Array ? payArgs : [];
|
// if (prize) {
|
||||||
let select = selectPrize.map((v, i) => v[index[i]] ? v[index[i]] : v[0]);
|
// let index = payArgs instanceof Array ? payArgs : [];
|
||||||
prize.push(...select);
|
// let select = selectPrize.map((v, i) => v[index[i]] ? v[index[i]] : v[0]);
|
||||||
}
|
// prize.push(...select);
|
||||||
})
|
// }
|
||||||
}
|
// })
|
||||||
|
// }
|
||||||
if (payId.indexOf('ycmb') != -1) {
|
if (payId.indexOf('ycmb') != -1) {
|
||||||
// @ts-ignore // 养成活动充值礼包
|
// @ts-ignore // 养成活动充值礼包
|
||||||
let _hdids = await YangChengMuBiaofun.getCon(call);
|
let _hdids = await YangChengMuBiaofun.getCon(call);
|
||||||
@ -235,11 +236,26 @@ export class PayFun {
|
|||||||
let conf = await zmlbGetConf(call, {payId})
|
let conf = await zmlbGetConf(call, {payId})
|
||||||
prize.push(...conf.prize)
|
prize.push(...conf.prize)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* todo 不要轻易改动这个方法,不允许集成业务逻辑在内部
|
||||||
|
* todo 此方法仅仅是支付成功后的发奖
|
||||||
|
* todo 如果有业务逻辑通过事件驱动,在支付成功后emit事件
|
||||||
|
* todo 下面这个方法不应该这样写
|
||||||
|
*/
|
||||||
//圣诞节活动充值
|
//圣诞节活动充值
|
||||||
try{
|
try {
|
||||||
await Christmasfun.payChristmas(payId, call);
|
await Christmasfun.payChristmas(payId, call);
|
||||||
}catch (e) {
|
} catch (e) {
|
||||||
console.log("Christmasfun.payChristmas Error",e);
|
console.log("Christmasfun.payChristmas Error", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (payArgs.selectPrize) {
|
||||||
|
let selectPrize = await G.ioredis.get(`pay:${payId}:${player.uid}`);
|
||||||
|
if (selectPrize) {
|
||||||
|
prize.push(...JSON.parse(selectPrize))
|
||||||
|
G.ioredis.del(`pay:${payId}:${player.uid}`)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let isReplaceConf = await this.checkBuysAfterPay(uid, payId, conf, payArgs, player)
|
let isReplaceConf = await this.checkBuysAfterPay(uid, payId, conf, payArgs, player)
|
||||||
@ -399,6 +415,31 @@ export class PayFun {
|
|||||||
if (conf.time != -1 && buyLog.slice(-1)[0]?.eTime > G.time && conf.buys == 0 && payId.indexOf('wkdlibao') == -1) {
|
if (conf.time != -1 && buyLog.slice(-1)[0]?.eTime > G.time && conf.buys == 0 && payId.indexOf('wkdlibao') == -1) {
|
||||||
return G.server.sendMsgByUid(player.uid, 'msg_s2c/PayResult', {code: -2});
|
return G.server.sendMsgByUid(player.uid, 'msg_s2c/PayResult', {code: -2});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动相关的自选礼包,目前htype 4、14支持此方法
|
||||||
|
* payArgs里传相应参数,selectList选择的奖励列表
|
||||||
|
* 往后所有自选类型,走这个方法,配置格式同4、14
|
||||||
|
*/
|
||||||
|
if (payArgs.htype && payArgs.selectList) {
|
||||||
|
// @ts-ignore
|
||||||
|
let _hdInfo = (await HuoDongFun.gethdList(call, payArgs.htype))[0]
|
||||||
|
// 活动类购买不符合条件返回-5
|
||||||
|
if (!_hdInfo) G.server.sendMsgByUid(player.uid, 'msg_s2c/PayResult', {code: -5})
|
||||||
|
let giftInfo = _hdInfo.data.gift.find(v => v.payId == payId);
|
||||||
|
if (!giftInfo) G.server.sendMsgByUid(player.uid, 'msg_s2c/PayResult', {code: -5})
|
||||||
|
|
||||||
|
let dlzPrize = R.flatten(giftInfo.dlz.map(i => R.values(i)))
|
||||||
|
let selectPrize = payArgs.selectList.map(v => {
|
||||||
|
let sPrize = dlzPrize.find(o => o.a == v.a && o.t == v.t && o.n == v.n)
|
||||||
|
// 严格判断,自选奖励不存在奖励列表,返回-6
|
||||||
|
if (!sPrize) return G.server.sendMsgByUid(player.uid, 'msg_s2c/PayResult', {code: -6});
|
||||||
|
return sPrize
|
||||||
|
})
|
||||||
|
// 自选奖励过判断后,存入redis,6小时内支付有效 todo 6小时可能有些长
|
||||||
|
G.ioredis.setex(`pay:${payId}:${player.uid}`, 21600, JSON.stringify(selectPrize));
|
||||||
|
}
|
||||||
|
|
||||||
//针对每日礼包的单独处理
|
//针对每日礼包的单独处理
|
||||||
let zeroTime = PublicShared.getToDayZeroTime(G.time)
|
let zeroTime = PublicShared.getToDayZeroTime(G.time)
|
||||||
if (payId.indexOf('136Gift') != -1 && payId != '136GiftAll') {
|
if (payId.indexOf('136Gift') != -1 && payId != '136GiftAll') {
|
||||||
@ -455,6 +496,7 @@ export class PayFun {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 当玩家购买过有时间期效性的礼包 并且在生效期内每天有邮件奖励时 每天首次登陆时根据时间补发邮件 玩家每天首次登陆会进入检查
|
* 当玩家购买过有时间期效性的礼包 并且在生效期内每天有邮件奖励时 每天首次登陆时根据时间补发邮件 玩家每天首次登陆会进入检查
|
||||||
|
* @param player
|
||||||
* @param lastTime 上一次登陆时间
|
* @param lastTime 上一次登陆时间
|
||||||
* @param curTime 每日首次登陆时间
|
* @param curTime 每日首次登陆时间
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user