shawenguan 1 tahun lalu
induk
melakukan
4f423d0037
2 mengubah file dengan 54 tambahan dan 11 penghapusan
  1. 9 5
      Scripts/elife/ofpayGrab.js
  2. 45 6
      Scripts/jhsh/jhshHelper.js

+ 9 - 5
Scripts/elife/ofpayGrab.js

@@ -172,10 +172,14 @@ async function checkToBuyOne(subActivityId, itemName, awardList){
             const awardData = awardList[i];
             if(awardData.prizeName.indexOf(itemName) > -1){
                 lk.log(`开始尝试抢购-${awardData.prizeName}${awardData.prizeDesc},价格:${awardData.price},库存:${awardData.remainStock}`);
-                oneRet = await itemBuyFast(subActivityId, awardData);
-                if(oneRet){
-                    // 抢购成功
-                    lk.setVal(checkBuyRepeatKey, nowString);
+                if(awardData.remainStock > 0){
+                    oneRet = await itemBuyFast(subActivityId, awardData);
+                    if(oneRet){
+                        // 抢购成功
+                        lk.setVal(checkBuyRepeatKey, nowString);
+                    }
+                }else{
+                    lk.log(`库存不足,跳过~`);
                 }
                 break;
             }
@@ -531,7 +535,7 @@ async function getPayInfo(subActivityId, awardId, goodsId, invitationCode, gameA
                 body: body
             };
             lk.log(`请求商品预支付数据`);
-            lk.log(url);
+            // lk.log(url);
             lk.get(options, async (error, _response, data) => {
                 let ret;
                 try {

+ 45 - 6
Scripts/jhsh/jhshHelper.js

@@ -143,7 +143,7 @@ function checkHandleRequest() {
             try {
                 switch(txcode){
                     case 'A3341A038':
-                        // 签到数据
+                        // 签到活动数据
                         let notifyCount = checkTodayNotifyCount(txcode);
                         if(notifyCount < 2){
                             lk.appendNotifyInfo('🎉 建行生活签到数据获取成功');
@@ -492,7 +492,7 @@ function checkAppendActInfo(mid, txcode, data){
     lk.setVal(jhshStoreKeyPrefix+'ActInfo-'+txcode, JSON.stringify(allInfo));
 }
 
-function getTheActInfo(txcode){
+function getTheActInfo(txcode, actId){
     const signActInfoStr = lk.getVal(jhshStoreKeyPrefix+'ActInfo-'+txcode);
     let signActInfoDict = {};
     if(signActInfoStr){
@@ -502,9 +502,27 @@ function getTheActInfo(txcode){
 
         }
     }
+    if(actId){
+        return signActInfoDict[actId];
+    }
     return signActInfoDict;
 }
 
+function setTheActInfo(txcode, data, actId){
+    let allInfo = data;
+    if(actId != void 0){
+        allInfo = getTheActInfo(txcode);
+        if(data != void 0){
+            allInfo[actId] = data;
+        }else{
+            delete allInfo[actId];
+        }
+    }else{
+
+    }
+    lk.setVal(jhshStoreKeyPrefix+'ActInfo-'+txcode, JSON.stringify(allInfo));
+}
+
 async function all() {
     // await getLatestVersion(); // 获取版本信息
     const loginInfoStr = lk.getVal(jhshStoreKeyPrefix+'LoginInfo');
@@ -536,6 +554,15 @@ async function all() {
     lk.done();
 }
 
+
+function getSignInTxCodeByActId(actId){
+    const TxCodeDict = {
+        '20230628070000000001': 'A3341A115',//
+        '20240301090000000002': 'A3341A139',//
+    };
+    return TxCodeDict[actId];
+}
+
 async function checkSignIn(loginInfo, signActInfo){
     lk.log("#####checkSignIn#####");
     lk.log(`活动唯一标识${signActInfo?.MID}-${signActInfo?.ACT_ID}`);
@@ -546,9 +573,15 @@ async function checkSignIn(loginInfo, signActInfo){
     if(!session){
         return;
     }
-    const couponList = await checkSinginReward(signActInfo, session);
+    const txcode = getSignInTxCodeByActId(signActInfo.ACT_ID);
+    if(!txcode){
+        lk.log(`无对应的处理,活动签到跳过~`);
+        return;
+    }
+    lk.log(`开始进行活动签到...`);
+    const couponList = await checkSinginReward(signActInfo, session, txcode);
     if(couponList && couponList.length > 0){
-        const result = await getSignInReward(signActInfo, couponList[0]);
+        const result = await getSignInReward(signActInfo, couponList[0], 'A3341C120');
         return result;
     }
     return null;
@@ -611,7 +644,7 @@ async function refreshLogin(loginInfo) {
 }
 
 
-async function checkSinginReward(signActInfo,session,txcode='A3341A115') {
+async function checkSinginReward(signActInfo,session,txcode) {
     let options = {
         url: `https://yunbusiness.ccb.com/clp_coupon/txCtrl?txcode=${txcode}`,
         headers: {
@@ -633,8 +666,10 @@ async function checkSinginReward(signActInfo,session,txcode='A3341A115') {
                 if (data) {
                     let ret = JSON.parse(data);
                     if (ret.errCode == 0) {
+                        lk.log(data);
                         if (ret?.data?.IS_AWARD == 1) {
                             const GIFT_BAG = ret?.data?.GIFT_BAG;
+                            GIFT_BAG = GIFT_BAG || [];
                             let otherList = [];
                             GIFT_BAG.forEach(item => {
                                 let body = { "couponId": item.couponId, "nodeDay": item.nodeDay, "couponType": item.couponType, "dccpBscInfSn": item.dccpBscInfSn };
@@ -656,6 +691,10 @@ async function checkSinginReward(signActInfo,session,txcode='A3341A115') {
                         }
                     } else {
                         lk.log(data);
+                        if(ret.errCode == 'YBLA3341A402'){
+                            // 活动不存在
+                            setTheActInfo(txcode, null, signActInfo.ACT_ID);
+                        }
                         if(ret.errMsg && ret.errMsg.indexOf('已经签到') > 0){
                             lk.appendNotifyInfo(`🎉 建行生活今天已经签到,无法重复签到`);
                         }
@@ -674,7 +713,7 @@ async function checkSinginReward(signActInfo,session,txcode='A3341A115') {
 
 
 // 领取奖励
-async function getSignInReward(signActInfo, couponItemInfo, txcode='A3341A115') {
+async function getSignInReward(signActInfo, couponItemInfo, txcode) {
     lk.log('getSignInReward='+JSON.stringify(couponItemInfo));
     let options = {
         url: `https://yunbusiness.ccb.com/clp_coupon/txCtrl?txcode=${txcode}`,