242 lines
8.8 KiB
JavaScript
242 lines
8.8 KiB
JavaScript
|
//问题反馈:https://t.me/Wall_E_Channel
|
||
|
/*
|
||
|
7 7 7 7 7 m_jd_wx_collectCard.js
|
||
|
*/
|
||
|
let mode = __dirname.includes('magic')
|
||
|
const {Env} = mode ? require('./magic') : require('./magic')
|
||
|
const $ = new Env('M集卡抽奖');
|
||
|
$.activityUrl = process.env.M_WX_COLLECT_CARD_URL
|
||
|
? process.env.M_WX_COLLECT_CARD_URL
|
||
|
: '';
|
||
|
//最多几个集卡的,其余只助力
|
||
|
let leaders = process.env.M_WX_COLLECT_CARD_LEADERS
|
||
|
? process.env.M_WX_COLLECT_CARD_LEADERS * 1
|
||
|
: 5;
|
||
|
if (mode) {
|
||
|
$.activityUrl = 'https://lzkjdz-isv.isvjcloud.com/wxCollectCard/activity/1193422?activityId=cb4d9c7ca992427db5a52ec1c0bcc42e'
|
||
|
$.activityUrl = 'https://lzkjdz-isv.isvjcloud.com/wxCollectCard/activity/3839759?activityId=2a47604ff73b47b5b432a06dc2226b70'
|
||
|
}
|
||
|
|
||
|
$.activityUrl = $.match(
|
||
|
/(https?:\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|])/,
|
||
|
$.activityUrl)
|
||
|
$.domain = $.match(/https?:\/\/([^/]+)/, $.activityUrl)
|
||
|
$.activityId = $.getQueryString($.activityUrl, 'activityId')
|
||
|
$.shareUuid = ''
|
||
|
let stop = false;
|
||
|
let shopInfo = ''
|
||
|
const all = new Set();
|
||
|
|
||
|
$.logic = async function () {
|
||
|
if (stop) {
|
||
|
return;
|
||
|
}
|
||
|
if (!$.activityId || !$.activityUrl) {
|
||
|
stop = true;
|
||
|
$.putMsg(`activityId|activityUrl不存在`);
|
||
|
return
|
||
|
}
|
||
|
$.log(`活动url: ${$.activityUrl} ${await $._algo() || ""}`)
|
||
|
$.UA = $.ua();
|
||
|
let token = await $.isvObfuscator();
|
||
|
if (token.code !== '0') {
|
||
|
$.putMsg(`获取Token失败`);
|
||
|
return
|
||
|
}
|
||
|
$.Token = token?.token
|
||
|
|
||
|
let actInfo = await $.api('customer/getSimpleActInfoVo',
|
||
|
`activityId=${$.activityId}`);
|
||
|
if (!actInfo.result || !actInfo.data) {
|
||
|
$.log(`获取活动信息失败`);
|
||
|
return
|
||
|
}
|
||
|
$.venderId = actInfo.data.venderId;
|
||
|
$.shopId = actInfo.data.shopId;
|
||
|
$.activityType = actInfo.data.activityType;
|
||
|
|
||
|
let myPing = await $.api('customer/getMyPing',
|
||
|
`userId=${$.venderId}&token=${$.Token}&fromType=APP`)
|
||
|
if (!myPing.result) {
|
||
|
$.putMsg(`获取pin失败`);
|
||
|
return
|
||
|
}
|
||
|
$.Pin = $.domain.includes('cjhy') ? encodeURIComponent(
|
||
|
encodeURIComponent(myPing.data.secretPin)) : encodeURIComponent(
|
||
|
myPing.data.secretPin);
|
||
|
|
||
|
shopInfo = await $.api(`wxCollectCard/shopInfo`,
|
||
|
`activityId=${$.activityId}`);
|
||
|
if (!shopInfo.result) {
|
||
|
$.putMsg('获取不到店铺信息,结束运行')
|
||
|
return
|
||
|
}
|
||
|
$.shopName = shopInfo?.data?.shopName
|
||
|
|
||
|
await $.api(
|
||
|
`common/${$.domain.includes('cjhy') ? 'accessLog' : 'accessLogWithAD'}`,
|
||
|
`venderId=${$.venderId}&code=${$.activityType}&pin=${
|
||
|
$.Pin}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(
|
||
|
$.activityUrl)}&subType=app&adSource=`);
|
||
|
|
||
|
$.index > 1 ? $.log(`去助力${$.shareUuid}`) : ''
|
||
|
let activityContent = await $.api(
|
||
|
'wxCollectCard/activityContent',
|
||
|
`activityId=${$.activityId}&pin=${
|
||
|
$.Pin}&uuid=${$.shareUuid}`);
|
||
|
if (!activityContent.result && !activityContent.data) {
|
||
|
$.putMsg(activityContent.errorMessage || '活动可能已结束')
|
||
|
return
|
||
|
}
|
||
|
|
||
|
let drawCount = $.match(/每人每天可获得(\d+)次/, activityContent.data.rule)
|
||
|
&& $.match(/每人每天可获得(\d+)次/, activityContent.data.rule) * 1 || 5
|
||
|
console.log('openCard', activityContent.data.openCard);
|
||
|
$.shareUuid = $.shareUuid || activityContent.data.uuid
|
||
|
if ($.index % 5 === 0) {
|
||
|
$.log('执行可持续发展之道')
|
||
|
await $.wait(1000, 6000)
|
||
|
}
|
||
|
let drawContent = await $.api('wxCollectCard/drawContent',
|
||
|
`activityId=${$.activityId}`);
|
||
|
if (drawContent.result && drawContent.data) {
|
||
|
$.content = drawContent.data.content || []
|
||
|
}
|
||
|
let memberInfo = await $.api($.domain.includes('cjhy')
|
||
|
? 'mc/new/brandCard/common/shopAndBrand/getOpenCardInfo'
|
||
|
: 'wxCommonInfo/getActMemberInfo',
|
||
|
$.domain.includes('cjhy')
|
||
|
? `venderId=${$.venderId}&buyerPin=${$.Pin}&activityType=${$.activityType}`
|
||
|
:
|
||
|
`venderId=${$.venderId}&activityId=${$.activityId}&pin=${
|
||
|
$.Pin}`);
|
||
|
//没开卡 需要开卡
|
||
|
if ($.domain.includes('cjhy')) {
|
||
|
//没开卡 需要开卡
|
||
|
if (memberInfo.result && !memberInfo.data?.openCard
|
||
|
&& memberInfo.data?.openCardLink) {
|
||
|
$.putMsg('需要开卡,跳过')
|
||
|
return
|
||
|
}
|
||
|
} else {
|
||
|
if (memberInfo.result && !memberInfo.data?.openCard
|
||
|
&& memberInfo.data?.actMemberStatus === 1) {
|
||
|
$.putMsg('需要开卡,跳过')
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
$.shareUuid = $.shareUuid || activityContent.data.uuid
|
||
|
let userInfo = await $.api('wxActionCommon/getUserInfo',
|
||
|
`pin=${$.Pin}`);
|
||
|
if (!userInfo.result || !userInfo.data) {
|
||
|
$.putMsg(`获取getUserInfo失败`);
|
||
|
return
|
||
|
}
|
||
|
$.nickname = userInfo.data.nickname;
|
||
|
$.attrTouXiang = userInfo.data.yunMidImageUrl
|
||
|
|| 'https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg'
|
||
|
|
||
|
await $.api('crm/pageVisit/insertCrmPageVisit',
|
||
|
`venderId=${$.venderId}&elementId=${encodeURIComponent(
|
||
|
'邀请')}&pageId=${$.activityId}&pin=${$.Pin}`);
|
||
|
|
||
|
await $.api('wxCollectCard/drawCard',
|
||
|
`sourceId=${$.shareUuid}&activityId=${$.activityId}&type=1&pinImg=${encodeURIComponent(
|
||
|
$.attrTouXiang)}&pin=${$.Pin}&jdNick=${encodeURIComponent(
|
||
|
$.nickname)}`);
|
||
|
if ($.index > leaders) {
|
||
|
return
|
||
|
}
|
||
|
let saveSource = await $.api('wxCollectCard/saveSource',
|
||
|
`activityId=${$.activityId}&pinImg=${encodeURIComponent(
|
||
|
$.attrTouXiang)}&pin=${
|
||
|
$.Pin}&jdNick=${encodeURIComponent($.nickname)}`);
|
||
|
if (!saveSource.result || !saveSource.data) {
|
||
|
$.putMsg(`初始化shareuuid失败`);
|
||
|
return
|
||
|
}
|
||
|
$.shareUuid = $.shareUuid || saveSource.data
|
||
|
|
||
|
for (let i = 0; i < drawCount; i++) {
|
||
|
let prize = await $.api(`wxCollectCard/drawCard`,
|
||
|
`sourceId=${saveSource.data}&activityId=${$.activityId}&type=0`);
|
||
|
$.log(JSON.stringify(prize))
|
||
|
if (prize.result) {
|
||
|
// $.putMsg(prize.data.reward.cardName);
|
||
|
} else {
|
||
|
if (prize.errorMessage.includes('上限')) {
|
||
|
$.putMsg('上限');
|
||
|
break;
|
||
|
} else if (prize.errorMessage.includes('来晚了')
|
||
|
|| prize.errorMessage.includes('已发完')
|
||
|
|| prize.errorMessage.includes('活动已结束')) {
|
||
|
stop = true;
|
||
|
break
|
||
|
}
|
||
|
$.log(`${prize}`);
|
||
|
}
|
||
|
await $.api('crm/pageVisit/insertCrmPageVisit',
|
||
|
`venderId=${$.venderId}&elementId=${encodeURIComponent(
|
||
|
'抽卡')}&pageId=${$.activityId}&pin=${
|
||
|
$.Pin}`);
|
||
|
await $.wait(1000, 2000)
|
||
|
}
|
||
|
activityContent = await $.api(
|
||
|
'wxCollectCard/activityContent',
|
||
|
`activityId=${$.activityId}&pin=${
|
||
|
$.Pin}&uuid=${$.shareUuid}`);
|
||
|
if (!activityContent.result || !activityContent.data) {
|
||
|
$.putMsg(activityContent.errorMessage || '活动可能已结束')
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if (activityContent.data.canDraw) {
|
||
|
let prize = await $.api(`wxCollectCard/getPrize`,
|
||
|
`activityId=${$.activityId}&pin=${$.Pin}`);
|
||
|
$.log(JSON.stringify(prize))
|
||
|
if (!prize.result) {
|
||
|
let msg = prize.data.drawOk ? prize.data.name
|
||
|
: prize.data.errorMessage || '空气';
|
||
|
$.log(msg);
|
||
|
} else {
|
||
|
$.putMsg(`${prize.errorMessage}`);
|
||
|
if (prize.errorMessage.includes('来晚了')
|
||
|
|| prize.errorMessage.includes('已发完')
|
||
|
|| prize.errorMessage.includes('活动已结束')) {
|
||
|
stop = true;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
activityContent = await $.api(
|
||
|
'wxCollectCard/activityContent',
|
||
|
`activityId=${$.activityId}&pin=${
|
||
|
$.Pin}&uuid=${$.shareUuid}`);
|
||
|
if (!activityContent.result || !activityContent.data) {
|
||
|
$.putMsg(activityContent.errorMessage || '活动可能已结束')
|
||
|
return
|
||
|
}
|
||
|
const has = new Set();
|
||
|
for (const ele of activityContent.data.cardList) {
|
||
|
all.add(ele.cardName)
|
||
|
ele.count > 0 ? has.add(ele.cardName) : ''
|
||
|
}
|
||
|
$.putMsg(Array.from(has).join(','))
|
||
|
}
|
||
|
}
|
||
|
$.after = async function () {
|
||
|
if ($.msg.length > 0) {
|
||
|
let message = `\n${$.shopName || ''}\n`;
|
||
|
message += `\n${Array.from(all).join(",")}\n`;
|
||
|
for (let ele of $.content || []) {
|
||
|
if (ele.name.includes('谢谢') || ele.name.includes('再来')) {
|
||
|
continue;
|
||
|
}
|
||
|
message += ` ${ele.name}${ele?.type === 8 ? '专享价' : ''}\n`
|
||
|
}
|
||
|
$.msg.push(message)
|
||
|
$.msg.push($.activityUrl);
|
||
|
}
|
||
|
}
|
||
|
$.run({whitelist: ['1-5'], wait: [1000, 3000]}).catch(
|
||
|
reason => $.log(reason));
|