|
@@ -14,6 +14,7 @@ const OfPayConstKey = {
|
|
|
marketBuyList: 'lkOfPayMarketBuyList',
|
|
marketBuyList: 'lkOfPayMarketBuyList',
|
|
|
awardDiscountPrice: 'lkOfPayDiscountPrice',
|
|
awardDiscountPrice: 'lkOfPayDiscountPrice',
|
|
|
checkBuyRepeatEnable: 'lkOfPayBuyRepeatEnable',
|
|
checkBuyRepeatEnable: 'lkOfPayBuyRepeatEnable',
|
|
|
|
|
+ fastModeEnable: 'lkOfPayBuyFastModeEnable',
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
let ofpayUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 F-OFST elife_moblie_ios fullversion:6.0.2 BSComponentVersion:5.4 WorkStationChannel:0 isBreak:0 ICBCiPhoneBSNew 6.0.2 iphone os wkwebview:true`;
|
|
let ofpayUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 F-OFST elife_moblie_ios fullversion:6.0.2 BSComponentVersion:5.4 WorkStationChannel:0 isBreak:0 ICBCiPhoneBSNew 6.0.2 iphone os wkwebview:true`;
|
|
@@ -24,6 +25,7 @@ let ofpayAuthorization = lk.getVal(OfPayConstKey.token, '');
|
|
|
let ofpayCookie = lk.getVal(OfPayConstKey.cookie,'');
|
|
let ofpayCookie = lk.getVal(OfPayConstKey.cookie,'');
|
|
|
let ofpayAccountPhone = lk.getVal(OfPayConstKey.phone);
|
|
let ofpayAccountPhone = lk.getVal(OfPayConstKey.phone);
|
|
|
let ofpayCheckBuyRepeatEnable = lk.getVal(OfPayConstKey.checkBuyRepeatEnable, true);
|
|
let ofpayCheckBuyRepeatEnable = lk.getVal(OfPayConstKey.checkBuyRepeatEnable, true);
|
|
|
|
|
+let ofpayFastModeEnable = lk.getVal(OfPayConstKey.fastModeEnable, true);
|
|
|
|
|
|
|
|
let appVersion = 602;
|
|
let appVersion = 602;
|
|
|
|
|
|
|
@@ -67,7 +69,13 @@ async function all() {
|
|
|
if(lk.isEmpty(marketId) || lk.isEmpty(eventVisitorId)){
|
|
if(lk.isEmpty(marketId) || lk.isEmpty(eventVisitorId)){
|
|
|
lk.appendNotifyInfo(`❌缺少次要参数,请登录app采集`);
|
|
lk.appendNotifyInfo(`❌缺少次要参数,请登录app采集`);
|
|
|
} else {
|
|
} else {
|
|
|
- let cateItems = await getMarketItems(marketId, eventVisitorId);
|
|
|
|
|
|
|
+ let cateItems = getMarketItemsFromCache(marketId, eventVisitorId);
|
|
|
|
|
+ if(!cateItems){
|
|
|
|
|
+ lk.log('请求即时商品列表数据');
|
|
|
|
|
+ cateItems = await getMarketItemsFromSvr(marketId, eventVisitorId);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ lk.log('使用商品列表缓存数据');
|
|
|
|
|
+ }
|
|
|
if(cateItems){
|
|
if(cateItems){
|
|
|
let cateCount = cateItems.length;
|
|
let cateCount = cateItems.length;
|
|
|
let allBuyList = getWillMarketBuyListAll();
|
|
let allBuyList = getWillMarketBuyListAll();
|
|
@@ -159,26 +167,41 @@ async function checkToBuyOne(subActivityId, itemName, awardList){
|
|
|
return oneRet;
|
|
return oneRet;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- for(let i=0; i < awardList.length; i++){
|
|
|
|
|
- const awardData = awardList[i];
|
|
|
|
|
- if(awardData.prizeName.indexOf(itemName) > -1){
|
|
|
|
|
- lk.log(`开始尝试抢购-${awardData.prizeName}${awardData.prizeDesc},价格:${awardData.price},库存:${awardData.remainStock}`);
|
|
|
|
|
- if(awardData.remainStock > 0){
|
|
|
|
|
- oneRet = await itemBuy(subActivityId, awardData);
|
|
|
|
|
|
|
+ if(ofpayFastModeEnable){
|
|
|
|
|
+ for(let i=0; i < awardList.length; i++){
|
|
|
|
|
+ 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){
|
|
if(oneRet){
|
|
|
// 抢购成功
|
|
// 抢购成功
|
|
|
lk.setVal(checkBuyRepeatKey, nowString);
|
|
lk.setVal(checkBuyRepeatKey, nowString);
|
|
|
}
|
|
}
|
|
|
- }else{
|
|
|
|
|
- lk.log(`库存不足,跳过~`);
|
|
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ for(let i=0; i < awardList.length; i++){
|
|
|
|
|
+ const awardData = awardList[i];
|
|
|
|
|
+ if(awardData.prizeName.indexOf(itemName) > -1){
|
|
|
|
|
+ lk.log(`开始尝试抢购-${awardData.prizeName}${awardData.prizeDesc},价格:${awardData.price},库存:${awardData.remainStock}`);
|
|
|
|
|
+ if(awardData.remainStock > 0){
|
|
|
|
|
+ oneRet = await itemBuyNormal(subActivityId, awardData);
|
|
|
|
|
+ if(oneRet){
|
|
|
|
|
+ // 抢购成功
|
|
|
|
|
+ lk.setVal(checkBuyRepeatKey, nowString);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ lk.log(`库存不足,跳过~`);
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
- break;
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return oneRet;
|
|
return oneRet;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-async function itemBuy(subActivityId, awardData){
|
|
|
|
|
|
|
+async function itemBuyNormal(subActivityId, awardData){
|
|
|
const activityId = awardData.activityId;
|
|
const activityId = awardData.activityId;
|
|
|
const prizeName = awardData.prizeName;
|
|
const prizeName = awardData.prizeName;
|
|
|
let actDataList = await getActivityItems(marketId, activityId, eventVisitorId);
|
|
let actDataList = await getActivityItems(marketId, activityId, eventVisitorId);
|
|
@@ -220,7 +243,6 @@ async function itemBuy(subActivityId, awardData){
|
|
|
if(payRet){
|
|
if(payRet){
|
|
|
return awardData;
|
|
return awardData;
|
|
|
}
|
|
}
|
|
|
- return awardData;
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
@@ -229,6 +251,22 @@ async function itemBuy(subActivityId, awardData){
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+async function itemBuyFast(subActivityId, awardData){
|
|
|
|
|
+ const gameAccount = ofpayAccountPhone;
|
|
|
|
|
+ const thirdInfo = JSON.parse(awardData.thirdInfo);
|
|
|
|
|
+ const awardId = awardData.awardId;
|
|
|
|
|
+ let payInfo = await getPayInfo(subActivityId, awardId, '', '', gameAccount, eventVisitorId);
|
|
|
|
|
+ if(payInfo){
|
|
|
|
|
+ if(payInfo.detailId != void 0){
|
|
|
|
|
+ let payRet = await pay(subActivityId, eventVisitorId, payInfo.detailId);
|
|
|
|
|
+ if(payRet){
|
|
|
|
|
+ return awardData;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function getAwardExpectedDiscount(price, prizeName){
|
|
function getAwardExpectedDiscount(price, prizeName){
|
|
|
if(!awardWantDiscountDict){
|
|
if(!awardWantDiscountDict){
|
|
|
awardWantDiscountDict = {};
|
|
awardWantDiscountDict = {};
|
|
@@ -264,7 +302,47 @@ function checkPickItem(prizeName, awardList){
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-async function getMarketItems(marketId, eventVisitorId){
|
|
|
|
|
|
|
+function getMarketItemsFromCache(marketId, eventVisitorId){
|
|
|
|
|
+ let retData = null;
|
|
|
|
|
+ try{
|
|
|
|
|
+ let key = `${OfPayConstKey.marketItemsData}#${urlParams.marketId}${urlParams.eventVisitorId}`;
|
|
|
|
|
+ let jsonStr = lk.getVal(key);
|
|
|
|
|
+ if(jsonStr && jsonStr.length > 0){
|
|
|
|
|
+ retData = JSON.parse(jsonStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ }catch{
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!retData){
|
|
|
|
|
+ try{
|
|
|
|
|
+ let key = `${OfPayConstKey.marketItemsData}1`;
|
|
|
|
|
+ let jsonStr = lk.getVal(key);
|
|
|
|
|
+ if(jsonStr && jsonStr.length > 0){
|
|
|
|
|
+ retData = JSON.parse(jsonStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ }catch{
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(retData){
|
|
|
|
|
+ let nowString = lk.formatDate(new Date(), 'yyyyMMdd');
|
|
|
|
|
+ if(retData.updateDate == nowString){
|
|
|
|
|
+ return retData;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+function saveMarketItemsCache(marketId, eventVisitorId, data){
|
|
|
|
|
+ let key = `${OfPayConstKey.marketItemsData}#${marketId}${eventVisitorId}`;
|
|
|
|
|
+ let nowString = lk.formatDate(new Date(), 'yyyyMMdd');
|
|
|
|
|
+ data.updateDate = nowString;
|
|
|
|
|
+ let jsonStr = JSON.stringify(data);
|
|
|
|
|
+ lk.setVal(key, jsonStr);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+async function getMarketItemsFromSvr(marketId, eventVisitorId){
|
|
|
return new Promise((resolve, _reject) => {
|
|
return new Promise((resolve, _reject) => {
|
|
|
try {
|
|
try {
|
|
|
const headers = GCommonHeads;
|
|
const headers = GCommonHeads;
|
|
@@ -288,6 +366,7 @@ async function getMarketItems(marketId, eventVisitorId){
|
|
|
if (info.code == 'success') {
|
|
if (info.code == 'success') {
|
|
|
lk.log(`请求市场商品列表数据成功`);
|
|
lk.log(`请求市场商品列表数据成功`);
|
|
|
ret = info.data;
|
|
ret = info.data;
|
|
|
|
|
+ saveMarketItemsCache(marketId, eventVisitorId, info);
|
|
|
} else {
|
|
} else {
|
|
|
lk.log(`请求市场商品列表数据成功,响应:${data}`);
|
|
lk.log(`请求市场商品列表数据成功,响应:${data}`);
|
|
|
}
|
|
}
|