183 lines
6.9 KiB
JavaScript
183 lines
6.9 KiB
JavaScript
|
//问题反馈:https://t.me/Wall_E_Channel
|
||
|
/*
|
||
|
7 7 7 7 7 m_jd_wx_addCart.js
|
||
|
*/
|
||
|
let mode = __dirname.includes('magic')
|
||
|
const {Env} = mode ? require('./magic') : require('./magic')
|
||
|
const $ = new Env('M加购有礼');
|
||
|
$.activityUrl = process.env.M_WX_ADD_CART_URL
|
||
|
? process.env.M_WX_ADD_CART_URL
|
||
|
: '';
|
||
|
if (mode) {
|
||
|
$.activityUrl = 'https://lzkj-isv.isvjcloud.com/wxCollectionActivity/activity2/507a016fb7cc46acb51f792cbbbd9903?activityId=507a016fb7cc46acb51f792cbbbd9903&shopid=1000003005'
|
||
|
}
|
||
|
$.activityUrl = $.match(
|
||
|
/(https?:\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|])/,
|
||
|
$.activityUrl)
|
||
|
$.domain = $.match(/https?:\/\/([^/]+)/, $.activityUrl)
|
||
|
$.activityId = $.getQueryString($.activityUrl, 'activityId')
|
||
|
$.activityContent = ''
|
||
|
$.logic = async function () {
|
||
|
if (!$.activityId || !$.activityUrl) {
|
||
|
$.expire = true;
|
||
|
$.putMsg(`activityId|activityUrl不存在`);
|
||
|
return
|
||
|
}
|
||
|
$.log(`活动地址: ${$.activityUrl}`)
|
||
|
$.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) {
|
||
|
$.expire = true;
|
||
|
$.putMsg(`获取活动信息失败`);
|
||
|
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);
|
||
|
|
||
|
await $.api(
|
||
|
`common/${$.domain.includes('cjhy') ? 'accessLog' : 'accessLogWithAD'}`,
|
||
|
`venderId=${$.venderId}&code=${$.activityType}&pin=${$.Pin}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(
|
||
|
$.activityUrl)}&subType=app&adSource=`);
|
||
|
let activityContent = await $.api('wxCollectionActivity/activityContent',
|
||
|
`activityId=${$.activityId}&pin=${$.Pin}`);
|
||
|
|
||
|
if (!activityContent.result || !activityContent.data) {
|
||
|
$.putMsg(activityContent.errorMessage || '活动可能已结束')
|
||
|
return
|
||
|
}
|
||
|
|
||
|
$.activityContent = activityContent;
|
||
|
let content = activityContent.data;
|
||
|
if (![6, 7, 9, 13, 14, 15, 16].includes(
|
||
|
activityContent.data.drawInfo.drawInfoType)) {
|
||
|
$.putMsg(`垃圾活动不跑了`)
|
||
|
$.expire = true
|
||
|
return
|
||
|
}
|
||
|
if (1 > 2) {
|
||
|
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
|
||
|
}
|
||
|
}
|
||
|
await $.api('wxActionCommon/getUserInfo', `pin=${$.Pin}`)
|
||
|
if (content.needFollow && !content.hasFollow) {
|
||
|
let followShop = await $.api(`wxActionCommon/followShop`,
|
||
|
`userId=${$.venderId}&activityId=${$.activityId}&buyerNick=${$.Pin}&activityType=${$.activityType}`);
|
||
|
await $.wait(1300, 1500)
|
||
|
if (!followShop.result) {
|
||
|
$.putMsg(followShop.errorMessage)
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
let needCollectionSize = content.needCollectionSize || 1;
|
||
|
let hasCollectionSize = content.hasCollectionSize;
|
||
|
let oneKeyAddCart = content.oneKeyAddCart * 1 === 1;
|
||
|
$.log('drawInfo', JSON.stringify(content.drawInfo));
|
||
|
if (hasCollectionSize < needCollectionSize) {
|
||
|
let productIds = [];
|
||
|
a:for (let cpvo of content.cpvos) {
|
||
|
if (oneKeyAddCart) {
|
||
|
productIds.push(cpvo.skuId)
|
||
|
continue
|
||
|
}
|
||
|
for (let i = 0; i < 2; i++) {
|
||
|
try {
|
||
|
let carInfo = await $.api(`wxCollectionActivity/addCart`,
|
||
|
`activityId=${$.activityId}&pin=${$.Pin}&productId=${cpvo.skuId}`)
|
||
|
if (carInfo.result) {
|
||
|
if (carInfo.data.hasAddCartSize >= needCollectionSize) {
|
||
|
$.log(`加购完成,本次加购${carInfo.data.hasAddCartSize}个商品`)
|
||
|
break a
|
||
|
}
|
||
|
break;
|
||
|
} else {
|
||
|
await $.wxStop(carInfo.errorMessage) ? $.expire = true
|
||
|
: ''
|
||
|
$.putMsg(`${carInfo.errorMessage || '未知'}`);
|
||
|
break a
|
||
|
}
|
||
|
} catch (e) {
|
||
|
$.log(e)
|
||
|
} finally {
|
||
|
await $.wait(1300, 1500)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if (oneKeyAddCart) {
|
||
|
let carInfo = await $.api('wxCollectionActivity/oneKeyAddCart',
|
||
|
`activityId=${$.activityId}&pin=${$.Pin}&productIds=${encodeURIComponent(
|
||
|
JSON.stringify(productIds))}`)
|
||
|
if (carInfo.result && carInfo.data) {
|
||
|
$.log(`加购完成,本次加购${carInfo.data.hasAddCartSize}个商品`)
|
||
|
} else {
|
||
|
await $.wxStop(carInfo.errorMessage) ? $.expire = true : ''
|
||
|
$.putMsg(`${carInfo.errorMessage || '未知'}`);
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if ($.expire) {
|
||
|
return
|
||
|
}
|
||
|
let prize = await $.api('wxCollectionActivity/getPrize',
|
||
|
`activityId=${$.activityId}&pin=${$.Pin}`);
|
||
|
if (prize.result) {
|
||
|
let msg = prize.data.drawOk ? prize.data.name : prize.data.errorMessage
|
||
|
|| '空气';
|
||
|
await $.wxStop(prize.data.errorMessage) ? $.expire = true : ''
|
||
|
$.putMsg(msg);
|
||
|
} else {
|
||
|
await $.wxStop(prize.errorMessage) ? $.expire = true : ''
|
||
|
$.putMsg(`${prize.errorMessage || '未知'}`);
|
||
|
}
|
||
|
await $.unfollow()
|
||
|
}
|
||
|
$.after = async function () {
|
||
|
$.msg.push(`\n${(await $.getShopInfo()).shopName}`)
|
||
|
$.msg.push(
|
||
|
`\n加购${$.activityContent?.data?.needCollectionSize}件,${$.activityContent.data.drawInfo?.name
|
||
|
|| ''}\n`);
|
||
|
$.msg.push($.activityUrl)
|
||
|
}
|
||
|
$.run({whitelist: ['1-5'], wait: [3000, 5000]}).catch(
|
||
|
reason => $.log(reason));
|