/* 购物车锦鲤beta v2.0.0 https://lzkj-isv.isvjd.com/wxCartKoi/cartkoi/activity/361487a1d9704d178f77ea631279550f?activityId=361487a1d9704d178f77ea631279550f https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=2021070590900gwcjl081&activityId=1722164785163591681&nodeId=101001&prd=cjwx export B_WX_CARTKOI_URL="" export B_WX_CARTKOI_MODE="3" # 豆子 1 实物2 豆子或实物3 无视奖品4 默认值3 cron: 7 7 7 7 7 * const $ = new Env("购物车锦鲤beta"); */ let mode = __dirname.includes('bear'); let activityUrl = decodeURIComponent(process.argv.splice(2)?.[0] || process.env.M_WX_CARTKOI_URL); if (mode) { activityUrl = "https://lzkj-isv.isvjd.com/wxCartKoi/cartkoi/activity/361487a1d9704d178f77ea631279550f?activityId=361487a1d9704d178f77ea631279550f"; activityUrl = "https://lzkj-isv.isvjd.com/wxCartKoi/cartkoi/activity/10f3ef3be1414b36b9b566f7ce381372?activityId=10f3ef3be1414b36b9b566f7ce381372&adsource=tg_storePage"; activityUrl = "https://lzkj-isv.isvjcloud.com/wxCartKoi/cartkoi/activity/501953175faa4e09913847657eb81681?activityId=501953175faa4e09913847657eb81681"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=2021070590900gwcjl081&activityId=1722164785163591681&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=2021070590900gwcjl081&activityId=1724309552314191873&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&activityId=1723332057093693441&templateId=2021070590900gwcjl081&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkjdz-isv.isvjd.com/wxCartKoi/cartkoi/activity/07841bc39b0a4226b26f9d03535e9ab1?activityId=07841bc39b0a4226b26f9d03535e9ab1"; activityUrl = "https://lzkj-isv.isvjd.com/wxCartKoi/cartkoi/activity?activityId=cc5ab0a00ccc48a288874549709db392"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=2021070590900gwcjl081&activityId=1715308876757774338&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&activityId=1727254167809003522&templateId=2021070590900gwcjl081&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=2021070590900gwcjl081&activityId=1727246016674234370&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interaction/v1/index?activityType=10036&templateId=2021070590900gwcjl08&activityId=1731494042823737346&nodeId=101001&prd=crm"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=2023121110036gwcjl01&activityId=1740321245336375298&nodeId=101001&prd=cjwx"; activityUrl = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10036&templateId=20210518190900rlqd011&activityId=1744276235708506114&prd=cjwx"; } const { RunMode: lIi1I11, UserMode: IIiIi1li, baseCommonEnv: lI1i11I, baseCommonEnvKey: i1Il1Iii } = require("./bear"); lI1i11I.openCardBeanNum = parseInt(process.env.B_WX_CARTKOI_MODE || 3); i1Il1Iii.B_WX_CARTKOI_MODE = "openCardBeanNum"; lIi1I11.envInfo = { "name": "购物车锦鲤beta", "runName": "jd_wx_cartKoi", "env": "M_WX_CARTKOI_URL", "version": "2.0.0" }; class i11llii extends IIiIi1li { constructor(IiI1iIil, llll1lII) { super(IiI1iIil, llll1lII); this.oneClickPurchase = 0; } async ["getDrawPrizeInfo"]() { let I1i1lli1 = []; if (lI1i11I.openCardBeanNum === 1) { I1i1lli1.push(6); } else { if (lI1i11I.openCardBeanNum === 2) { I1i1lli1.push(7); } else lI1i11I.openCardBeanNum === 3 && I1i1lli1.push(6, 7); } if (I1i1lli1.length === 0) { this.openCard = true; return; } let lIIlI1iI = await this.wxApi("wxCartKoi/cartkoi/getDrawPrizeInfo", { "activityId": this.activityId }); if (lIIlI1iI && lIIlI1iI.data) { let iII1Ii1 = lIIlI1iI.data ?? []; if (iII1Ii1.some(iliIiI11 => I1i1lli1.includes(iliIiI11.type))) { this.openCard = true; } } } async ["addCart"]() { let liI1lliI = await this.wxApi("wxCartKoi/cartkoi/addCart", { "activityId": this.activityId, "pin": this.secretPin, "productId": this.prodectVos[0].productId }); this.debug(liI1lliI); if (liI1lliI && liI1lliI.result) { this.putMsg("加购完成"); return; } let iiI1iiIl = liI1lliI?.["errorMessage"] || "加购失败"; this.putMsg(iiI1iiIl); this.wxStop(iiI1iiIl); } async ["quickAddCart"](llIIIiI = true) { let ll1iilIl = await this.wxApi("wxCartKoi/cartkoi/quickAddCart", { "activityId": this.activityId, "pin": this.secretPin, "productIds": JSON.stringify(this.prodectVos.map(Iiiil11l => Iiiil11l.productId)) }); this.debug(ll1iilIl); if (ll1iilIl && ll1iilIl.result) { if (this.timestamp() > IIiIi1li.activity.drawTime && this.timestamp() < IIiIi1li.activity.endTime) { return await this.drawResult(); } this.putMsg("已完成加购"); return; } let lIIl1IIl = ll1iilIl?.["errorMessage"] || "加购失败"; if (lIIl1IIl.includes("未关注") && llIIIiI && (await this.follow())) return await this.quickAddCart(false); if (lIIl1IIl.includes("会员") && this.openCard && llIIIiI && (await this.bindWithVender()) && !this.canNotOpenCard) return await this.quickAddCart(false); this.putMsg(lIIl1IIl); this.wxStop(lIIl1IIl); } async ["drawResult"](lIi1liI1 = true) { let iilIIiI = await this.wxApi("wxCartKoi/cartkoi/drawResult", { "activityId": this.activityId, "pin": this.secretPin, "uuid": this.myUuid }); this.debug(iilIIiI); if (iilIIiI && iilIIiI.result) this.putMsg("" + (iilIIiI.data?.["name"] || iilIIiI.data?.["drawInfo"]?.["name"] || "空气")), iilIIiI.data?.["drawInfoType"] === 7 && iilIIiI.data?.["needWriteAddress"] === "y" && iilIIiI.data?.["addressId"] && (this.addressId = iilIIiI.data.addressId, this.prizeName = iilIIiI.data.name, await this.saveAddress());else { let II1l1Iii = res?.["errorMessage"]; if (II1l1Iii?.["includes"]("未关注") && lIi1liI1 && (await this.follow())) { return await this.drawResult(false); } if (II1l1Iii.includes("会员") && this.openCard && lIi1liI1 && (await this.bindWithVender()) && !this.canNotOpenCard) { return await this.quickAddCart(false); } this.putMsg(II1l1Iii); this.wxStop(II1l1Iii); return; } } async ["drawPrize"]() { let IlIIIiII = await this.lzkjApi("api/prize/drawPrize"); this.drawNumber = 1; if (IlIIIiII && IlIIIiII.resp_code === 0) { this.drawNumber = IlIIIiII?.["data"]?.["drawNumber"] ?? 1; let I1IiIiIl = []; if (lI1i11I.openCardBeanNum === 1) { I1IiIiIl.push(1); } else { if (lI1i11I.openCardBeanNum === 2) I1IiIiIl.push(3);else lI1i11I.openCardBeanNum === 3 && I1IiIiIl.push(1, 3); } if (I1IiIiIl.length === 0) { this.openCard = true; return; } let Il1II1li = IlIIIiII?.["data"]?.["prizeInfo"] ?? []; if (Il1II1li.some(illi1iI1 => I1IiIiIl.includes(illi1iI1?.["prizeType"]))) { this.openCard = true; } } } async ["addSku"](l1lllIli = "999") { let ii1I11I = await this.lzkjApi("api/task/addSkuPrice/addSku", { "skuId": l1lllIli }); this.debug(ii1I11I); if (typeof ii1I11I?.["data"] === "object" && Object.keys(ii1I11I.data).length === 0 && l1lllIli === "999") { this.oneClickPurchase = 1; return; } if (ii1I11I && ii1I11I.resp_code === 0) { let il1lI111 = ii1I11I?.["data"] ?? {}; if (il1lI111.skuFlag) { this.putMsg("加购完成"); return; } this.putMsg(il1lI111.messageFlag === 1 ? "未在加购时间内" : il1lI111.messageFlag === 2 ? "当前商品已加购" : il1lI111.messageFlag === 3 ? "当前商品已全部加购" : il1lI111.messageFlag === 4 && "没有加购资格"); return; } let illiIIII = ii1I11I?.["resp_msg"] || "加购失败"; this.putMsg(illiIIII); this.wxStop(illiIIII); } async ["draw"]() { let iill1I1l = await this.lzkjApi("api/task/addSkuPrice/draw"); this.debug(iill1I1l); if (iill1I1l && iill1I1l.resp_code === 0) { let IiiIi11I = iill1I1l?.["data"] ?? {}; if (IiiIi11I.skuFlag) { this.putMsg("加购的商品数量不满足抽奖所需的数量"); return; } if (IiiIi11I.drawNull) { this.putMsg(IiiIi11I?.["draw"]?.["prizeName"] || "空气"); IiiIi11I?.["draw"] && IiiIi11I?.["draw"]?.["prizeName"] && IiiIi11I?.["draw"]?.["prizeType"] === 3 && IiiIi11I?.["draw"]?.["addressId"] && IiiIi11I?.["draw"]?.["dayTime"] === this.formatDate(Date.now(), "yyyy-MM-dd") && (this.addressId = IiiIi11I.draw.addressId, this.prizeName = IiiIi11I.draw.prizeName, await this.saveAddress()); return; } else { this.putMsg("空气"); return; } } let i1lIIIll = iill1I1l?.["resp_msg"]; this.putMsg(i1lIIIll); this.wxStop(i1lIIIll); } async ["inviteActivity"]() { let I1ilIi1I = IIiIi1li.activity.userList && IIiIi1li.activity.userList.length > 0 ? IIiIi1li.activity.userList[0] : null; if (!I1ilIi1I) return; let II1lllil = await this.lzkjApi("api/task/addSkuPrice/activity", { "shareUserId": "1744750944717832194" || "" }); if (II1lllil && II1lllil.resp_code === 0) { let iiI1l11I = II1lllil?.["data"]?.["shareNum"] ?? 0, l1I1IliI = II1lllil?.["data"]?.["shareFlag"] ?? 0; this.debug(I1ilIi1I.pin, iiI1l11I, l1I1IliI); if (l1I1IliI && iiI1l11I === 3) { I1ilIi1I.helpedCount++; I1ilIi1I.helpedCount >= I1ilIi1I.maxHelpCount && I1ilIi1I.needHelp && (I1ilIi1I.needHelp = false, IIiIi1li.activity.userList.shift(), await I1ilIi1I.addSku()); } } } async ["userTask"]() { await this.isvObfuscator(); await this.getDefenseUrls(); if (["10036"].includes(this.activityType)) { await this.login(); await this.drawPrize(); let lIi11iI1 = await this.lzkjApi("api/task/addSkuPrice/activity1"); if (lIi11iI1 && lIi11iI1.resp_code === 0) { let IiiI1iIi = lIi11iI1?.["data"]?.["skuInfoList"] ?? [], llIliII = lIi11iI1?.["data"]?.["userAddSkuRecord"] ?? [], iiil1Ill = lIi11iI1?.["data"]?.["addSkuNumber"] ?? 0, I1lI11Il = lIi11iI1?.["data"]?.["addSkuStartTime"] ?? 0, I1Ili1lI = lIi11iI1?.["data"]?.["addSkuEndTime"] ?? 0, iIllIlll = lIi11iI1?.["data"]?.["priceTime"] ?? 0, IlIiliiI = lIi11iI1?.["data"]?.["userSkuCount"] ?? 0, IilIli1 = lIi11iI1?.["data"]?.["unlockSkuNumber"] ?? 0, IiiIiilI = lIi11iI1?.["data"]?.["shareNum"] ?? 0, iIili = lIi11iI1?.["data"]?.["shareFlag"] ?? 0, Ii1ii1l1 = lIi11iI1?.["data"]?.["shareCount"] ?? 0; this.debug(IiiIiilI, iIili); IIiIi1li.activity.drawTimeStr = this.formatDate(iIllIlll, "yyyy-MM-dd HH:mm:ss"); IIiIi1li.activity.drawTime = iIllIlll; this.timestamp() < iIllIlll && (IIiIi1li.activity.noDraw = true); if (this.timestamp() < I1lI11Il) { this.putMsg("未到加购时间"); this.stop(); return; } if (["1006", "1005", "1002"].includes(this.joinCode)) { if (!this.openCard) return this.putMsg(this.joinDes); await this.getShopOpenCardInfo(); await this.bindWithVender(); if (this.canNotOpenCard) return this.reseCookieStatus(); await this.login(false); } if (this.timestamp() > I1lI11Il && this.timestamp() < I1Ili1lI) { if (IlIiliiI >= iiil1Ill && IlIiliiI >= IilIli1 + Ii1ii1l1) { this.putMsg("已完成加购"); } await this.inviteActivity(); if (IilIli1 < iiil1Ill && IlIiliiI < iiil1Ill) { await this.getUserId(); this.helpedCount = Ii1ii1l1; this.maxHelpCount = iiil1Ill - IilIli1; !IIiIi1li.activity.userList && (IIiIi1li.activity.userList = []); IIiIi1li.activity.userList.push(this); } this.debug(IilIli1 + Ii1ii1l1, IlIiliiI, iiil1Ill, IilIli1); if (IilIli1 + Ii1ii1l1 > IlIiliiI && IilIli1 + Ii1ii1l1 >= iiil1Ill) { await this.addSku(); if (this.oneClickPurchase === 1) { IiiI1iIi = IiiI1iIi.filter(I1lliII => !llIliII.some(lli1I1lI => lli1I1lI.skuId === I1lliII.skuId)); if (IiiI1iIi.length === 0) { this.putMsg("已完成加购"); return; } for (let lIlIliI of IiiI1iIi) { await this.addSku(lIlIliI.skuId); } } } } this.debug(this.timestamp(), iIllIlll, IlIiliiI, iiil1Ill, this.drawNumber); this.timestamp() > iIllIlll && IlIiliiI >= iiil1Ill && (await this.draw()); } return; } this.needHelp = false; await this.wxCommonInfo(); await this.getSimpleActInfoVo(); this.index === 0 && (await this.getShopInfo()); this.defenseUrls.length === 0 ? await this.getMyPing() : await this.initPinToken(); await this.accessLog(); let ll1liIIl = await this.activityContent({ "status": 1 }); if (!ll1liIIl?.["result"] || !ll1liIIl?.["data"]) { this.putMsg(ll1liIIl?.["errorMessage"]); return; } this.prodectVos = ll1liIIl.data?.["prodectVos"] ?? []; let Ii11I11I = ll1liIIl.data?.["addCarts"] ?? 1, Illi1Iii = ll1liIIl.data?.["activityVo"] ?? {}, lIiilllI = this.dateStringToTimestamp(Illi1Iii?.["drawTime"]), ill11I1I = this.dateStringToTimestamp(Illi1Iii?.["cartStartTime"]), llIII1Il = this.dateStringToTimestamp(Illi1Iii?.["cartEndTime"]), IIl11llI = this.dateStringToTimestamp(Illi1Iii?.["startTime"]), li1Ii11l = this.dateStringToTimestamp(Illi1Iii?.["endTime"]), Ili11l11 = Illi1Iii?.["drawCondition"] ?? 1; this.myUuid = ll1liIIl.data?.["joinRecord"]?.["myUuid"] ?? ""; this.debug("startTime", "cartStartTime", ill11I1I, "cartEndTime", llIII1Il, IIl11llI, "drawTime", lIiilllI, "endTime", li1Ii11l); this.rule = Illi1Iii?.["actRule"] ?? ""; IIiIi1li.activity.timeStr = this.formatDate(IIl11llI, "yyyy-MM-dd HH:mm:ss") + "至" + this.formatDate(li1Ii11l, "yyyy-MM-dd HH:mm:ss"); IIiIi1li.activity.startTime = IIl11llI; IIiIi1li.activity.endTime = li1Ii11l; IIiIi1li.activity.drawTimeStr = this.formatDate(lIiilllI, "yyyy-MM-dd HH:mm:ss"); IIiIi1li.activity.drawTime = lIiilllI; this.timestamp() < lIiilllI && (IIiIi1li.activity.noDraw = true); IIl11llI && IIl11llI > Date.now() && (this.putMsg("活动未开始"), IIiIi1li.activity.noStart = true, this.stop()); li1Ii11l && li1Ii11l < Date.now() && (this.putMsg("活动已结束"), this.stop()); let ll11iil1 = Illi1Iii?.["needFollow"] ?? false, Il1ii1Il = ll1liIIl.data?.["hasFollow"] ?? false; ll11iil1 && !Il1ii1Il && (await this.follow()); await this.getDrawPrizeInfo(); if (this.timestamp() > lIiilllI && this.timestamp() < li1Ii11l && Ii11I11I >= Ili11l11) { return await this.drawResult(); } if (this.timestamp() < llIII1Il) { if (Ii11I11I >= Ili11l11) this.putMsg("已完成加购");else { await this.quickAddCart(); } } } } lIi1I11.activity = { "activityUrl": activityUrl }; lIi1I11.TaskClass = i11llii; lIi1I11.run({ "whitelist": ["1-2000"], "main_thread": 3 });