//问题反馈: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));