shawenguan 1 vuosi sitten
vanhempi
commit
0cac9ab792
1 muutettua tiedostoa jossa 148 lisäystä ja 6 poistoa
  1. 148 6
      Scripts/pingan/pinganIkea.js

+ 148 - 6
Scripts/pingan/pinganIkea.js

@@ -293,7 +293,7 @@ async function getPageData() {
     let url = `https://b.pingan.com.cn/kuaizhan/v2/5K2422/20230925/k84123/pageData.js?v=${new Date().getTime()}`;
     let body = ``;
     let headers = {
-        'Cookie': ``,
+        'Cookie': magicJS.data.read(PingAnIKEAConstKey.Cookie, ''),
         'Sec-Fetch-Mode': `navigate`,
         'Connection': `keep-alive`,
         'Accept': `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`,
@@ -330,33 +330,144 @@ async function getPageData() {
     return result;
 }
 
+function getResponseErrorMsg(errCode, config, responseMsg) {
+    let key = errCodeStrMap[errCode];
+    if (key && config && config[key]) {
+        return config[key].toastText || responseMsg;
+    } else {
+        return responseMsg;
+    }
+}
+
+function setActCouponStatus(activityCode, status) {
+    let day = magicJS.formatDate(new Date(), 'yyyy-MM-dd');
+    let key = `${activityCode}_${day}`;
+    magicJS.data.write(key, status);
+}
+
+function getActCouponStatus(activityCode) {
+    let day = magicJS.formatDate(new Date(), 'yyyy-MM-dd');
+    let key = `${activityCode}_${day}`;
+    let status = magicJS.data.read(key, -1);
+    return String(status);
+}
+
+function isCouponGotToday(activityCode) {
+    let status = getActCouponStatus(activityCode);
+    if (status == 1 || status == 2) {
+        return true;
+    } else if (status == -1) {
+        return false;
+    } else {
+        return false;
+    }
+}
+
 async function tryGrabCoupon() {
     gPageData = await getPageData();
     let widgets = gPageData.widgets;
+    let sk88Names = ['【天天88】满100减12优惠券'];
     // 天天88
     let path88 = ['pwm-kuaizhan-section', 'pwm-mkt-offer'];
     // 五折限量购
+    let sk55Names = ['【五折限量购】满100减50优惠券'];
     let path55 = ['pwm-kuaizhan-simple-rule', 'pwm-kuaizhan-section', 'pwm-mkt-offer'];
     // 9.25折限量购
+    let sk925Names = [
+        '【9.25折限量折扣】满100减7.5优惠券',
+        '【9.25折限量折扣】满100减15优惠券',
+        '【9.25折限量折扣】满100减37.5优惠券',
+        '【9.25折限量折扣】满100减75优惠券',
+    ];
     let path925 = ['pwm-kuaizhan-section-split', 'pwm-kuaizhan-section', 'pwm-mkt-offer'];
 
     let items925 = seekWidgets(widgets, path925);
-    for (let i = 0; i < items925.length; i++) {
+    magicJS.logger.info(`########9.25折限量购########`);
+    for (let i = items925.length - 1; i >= 0; i--) {
         const item = items925[i];
         const config = item.config;
-        await queryCustomerActivityStatus(config.activityCode, config.activityValue);
+        if (isCouponGotToday(config.activityCode)) {
+            magicJS.logger.info(`${config.activityCode}`);
+            continue;
+        }
+        // magicJS.logger.info(`activityCode=${config.activityCode} activityValue=${config.activityValue}`);
+        let ret = await queryCustomerActivityStatus(config.activityCode, config.activityValue);
+        let tipsText = ``;
+        if (ret) {
+            if (ret.responseCode == '000000') {
+                setActCouponStatus(config.activityCode, 1);
+            } else if (ret.responseCode == '950009') {//领奖机会已经用完
+                setActCouponStatus(config.activityCode, 2);
+            } else if (ret.responseCode == '950002') {//今天奖励已经发完
+                setActCouponStatus(config.activityCode, 2);
+            }
+            if (ret.responseCode == '000000') {
+                tipsText = `${sk925Names[i]}领取成功`;
+            } else {
+                tipsText = sk925Names[i] + getResponseErrorMsg(ret.responseCode, config, ret.responseMessage)
+            }
+        } else {
+            tipsText = `${sk925Names[i]}领取失败`;
+        }
+        magicJS.notification.appendNotifyInfo(tipsText);
     }
+
+    magicJS.logger.info(`##########天天88##########`);
     let items88 = seekWidgets(widgets, path88);
     for (let i = 0; i < items88.length; i++) {
         const item = items88[i];
         const config = item.config;
-        await queryCustomerActivityStatus(config.activityCode, config.activityValue);
+        if (isCouponGotToday(config.activityCode)) {
+            continue;
+        }
+        // magicJS.logger.info(`activityCode=${config.activityCode} activityValue=${config.activityValue}`);
+        let ret = await queryCustomerActivityStatus(config.activityCode, config.activityValue);
+        let tipsText = ``;
+        if (ret) {
+            if (ret.responseCode == '000000') {
+                setActCouponStatus(config.activityCode, 1);
+            } else if (ret.responseCode == '950009') {//领奖机会已经用完
+                setActCouponStatus(config.activityCode, 2);
+            } else if (ret.responseCode == '950002') {//今天奖励已经发完
+                setActCouponStatus(config.activityCode, 2);
+            }
+            if (ret.responseCode == '000000') {
+                tipsText = `${sk88Names[i]}领取成功`;
+            } else {
+                tipsText = sk88Names[i] + getResponseErrorMsg(ret.responseCode, config, ret.responseMessage)
+            }
+        } else {
+            tipsText = `${sk88Names[i]}领取失败`;
+        }
     }
+
+    magicJS.logger.info(`########五折限量购########`);
     let items55 = seekWidgets(widgets, path55);
     for (let i = 0; i < items55.length; i++) {
         const item = items55[i];
         const config = item.config;
-        await queryCustomerActivityStatus(config.activityCode, config.activityValue);
+        if (isCouponGotToday(config.activityCode)) {
+            continue;
+        }
+        magicJS.logger.info(`activityCode=${config.activityCode} activityValue=${config.activityValue}`);
+        let ret = await queryCustomerActivityStatus(config.activityCode, config.activityValue);
+        let tipsText = ``;
+        if (ret) {
+            if (ret.responseCode == '000000') {
+                setActCouponStatus(config.activityCode, 1);
+            } else if (ret.responseCode == '950009') {//领奖机会已经用完
+                setActCouponStatus(config.activityCode, 2);
+            } else if (ret.responseCode == '950002') {//今天奖励已经发完
+                setActCouponStatus(config.activityCode, 2);
+            }
+            if (ret.responseCode == '000000') {
+                tipsText = `${sk55Names[i]}领取成功`;
+            } else {
+                tipsText = sk55Names[i] + getResponseErrorMsg(ret.responseCode, config, ret.responseMessage)
+            }
+        } else {
+            tipsText = `${sk55Names[i]}领取失败`;
+        }
     }
 }
 
@@ -386,7 +497,7 @@ async function queryCustomerActivityStatus(activityCode, activityValue, channelS
         activityCode: activityCode,
         activityValue: activityValue,
         channelSource: channelSource,
-        taskProVal: taskProVal,
+        taskProVal: taskProVal || '',
     };
     let url = `https://rsb.pingan.com.cn/brop/mop/cust/mopsf/uc/auth/lottery/queryCustomerActivityStatus?${magicJS.objToQueryStr(reqData)}`;
     let headers = gCommonHeaders;
@@ -411,6 +522,37 @@ async function queryCustomerActivityStatus(activityCode, activityValue, channelS
     return result;
 }
 
+async function sendCustomerOffer(activityCode, activityValue, channelSource = 'KOUDAI', taskProVal = '') {
+    let url = `https://rsb.pingan.com.cn/brop/mop/cust/mopsf/uc/auth/lottery/sendCustomerOffer`;
+    let info = {
+        MGM: {},
+        N: {},
+        W: {},
+    };
+    let orderNo = '';
+    let traceid = '';
+    let offerAppid = '';
+    let reqData = {
+        activityCode: activityCode,
+        activityValue: activityValue,
+        activityFlowId: info.MGM.activity_flowid,
+        activityId: info.MGM.activity_id,
+        buryData: "",
+        campaignId: info.N.campaignid,
+        channelsource: info.N.channel_source,
+        channelSource: channelSource,
+        drawTimesQueryFLag: "1",
+        innerid: info.N.innerid,
+        orderNo: orderNo,
+        outerid: info.W.outerid,
+        outersource: info.N.outersource,
+        source: info.N.source,
+        taskProVal: taskProVal,
+        offerAppid: offerAppid,
+        traceId: traceid
+    }
+}
+
 Main().catch((e) => magicJS.logger.log(`-\n ${e}`)).finally(() => magicJS.done());
 
 //---SyncByPyScript---MagicJS3-start