|
|
@@ -365,20 +365,25 @@ function getResponseErrorMsg(errCode, config, responseMsg) {
|
|
|
|
|
|
function setActCouponStatus(activityCode, status) {
|
|
|
let day = magicJS.formatDate(new Date(), 'yyyy-MM-dd');
|
|
|
- let key = `${activityCode}_${day}`;
|
|
|
+ let key = `PingAnIKEA#${activityCode}_${day}`;
|
|
|
magicJS.data.write(key, status);
|
|
|
+ if (status == 1 || status == 2) {// 已领取
|
|
|
+ key = `PingAnIKEA#${activityCode}_status}`;
|
|
|
+ magicJS.data.write(key, new Date().getTime());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function getActCouponStatus(activityCode) {
|
|
|
let day = magicJS.formatDate(new Date(), 'yyyy-MM-dd');
|
|
|
- let key = `${activityCode}_${day}`;
|
|
|
+ let key = `PingAnIKEA#${activityCode}_${day}`;
|
|
|
let status = magicJS.data.read(key, -1);
|
|
|
- return String(status);
|
|
|
+ return Number(status);
|
|
|
}
|
|
|
|
|
|
-function isCouponGotToday(activityCode) {
|
|
|
+// 今日是否执行过获取优惠券任务
|
|
|
+function isCouponExecToday(activityCode) {
|
|
|
let status = getActCouponStatus(activityCode);
|
|
|
- if (status == 1 || status == 2) {
|
|
|
+ if (status == 1 || status == 2 || status == 3) {
|
|
|
return true;
|
|
|
} else if (status == -1) {
|
|
|
return false;
|
|
|
@@ -387,6 +392,69 @@ function isCouponGotToday(activityCode) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 当月是否领取过优惠券
|
|
|
+function hasCouponGotMonth(activityCode) {
|
|
|
+ let key = `PingAnIKEA#${activityCode}_status}`;
|
|
|
+ let strNum = magicJS.data.read(key, null);
|
|
|
+ if (strNum) {
|
|
|
+ let now = new Date();
|
|
|
+ let date = new Date(Number(strNum));
|
|
|
+ if (now.getFullYear() == date.getFullYear() && now.getMonth() == date.getMonth()) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+function hasCouponGotWeek(activityCode) {
|
|
|
+ let key = `PingAnIKEA#${activityCode}_status}`;
|
|
|
+ let strNum = magicJS.data.read(key, null);
|
|
|
+ if (strNum) {
|
|
|
+ let now = new Date();
|
|
|
+ let date = new Date(Number(strNum));
|
|
|
+ if (isSameWeek(now, date)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+function hasCouponGotDay(activityCode) {
|
|
|
+ let key = `PingAnIKEA#${activityCode}_status}`;
|
|
|
+ let strNum = magicJS.data.read(key, null);
|
|
|
+ if (strNum) {
|
|
|
+ let now = new Date();
|
|
|
+ let date = new Date(Number(strNum));
|
|
|
+ if (now.getFullYear() == date.getFullYear() && now.getMonth() == date.getMonth() && now.getDate() == date.getDate()) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+function isSameWeek(date1, date2) {
|
|
|
+ // 获取每个日期的星期几
|
|
|
+ const day1 = date1.getDay(); // 返回值为 0(周日)到 6(周六)
|
|
|
+ const day2 = date2.getDay();
|
|
|
+
|
|
|
+ // 获取每个日期的时间戳
|
|
|
+ const time1 = date1.getTime();
|
|
|
+ const time2 = date2.getTime();
|
|
|
+
|
|
|
+ // 根据星期几和时间戳判断是否属于同一个星期
|
|
|
+ const weekDiff = Math.floor(Math.abs(time1 - time2) / (1000 * 60 * 60 * 24 * 7));
|
|
|
+
|
|
|
+ if (day1 <= day2) {
|
|
|
+ return weekDiff === 0;
|
|
|
+ } else {
|
|
|
+ return weekDiff === 1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
async function tryGrabCoupon() {
|
|
|
gPageData = await checkGetPageData();
|
|
|
let widgets = gPageData.widgets;
|
|
|
@@ -413,10 +481,14 @@ async function tryGrabCoupon() {
|
|
|
for (let i = items925.length - 1; i >= 0; i--) {
|
|
|
const item = items925[i];
|
|
|
const config = item.config;
|
|
|
- if (isCouponGotToday(config.activityCode)) {
|
|
|
+ if (isCouponExecToday(config.activityCode)) {
|
|
|
magicJS.logger.info(`${sk925Names[i]}今天已经执行过了[${config.activityCode}]`);
|
|
|
continue;
|
|
|
}
|
|
|
+ if (hasCouponGotMonth(config.activityCode)) {
|
|
|
+ magicJS.logger.info(`${sk925Names[i]}本月已经领过了[${config.activityCode}]`);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
// magicJS.logger.info(`activityCode=${config.activityCode} activityValue=${config.activityValue}`);
|
|
|
let ret = await queryCustomerActivityStatus(config.activityCode, config.activityValue);
|
|
|
let tipsText = ``;
|
|
|
@@ -429,12 +501,12 @@ async function tryGrabCoupon() {
|
|
|
}
|
|
|
if (ret.responseCode == '000000') {
|
|
|
setActCouponStatus(config.activityCode, 1);
|
|
|
- } else if (ret.responseCode == '950009') {//领奖机会已经用完
|
|
|
+ } else if (ret.responseCode == '950008' || ret.responseCode == '900745' || ret.responseCode == '950009') {//领奖机会已经用完
|
|
|
setActCouponStatus(config.activityCode, 2);
|
|
|
} else if (ret.responseCode == '960002') {//今天奖励已经发完
|
|
|
- setActCouponStatus(config.activityCode, 2);
|
|
|
+ setActCouponStatus(config.activityCode, 3);
|
|
|
} else if (ret.responseCode == '900130') {//不符合领取规则
|
|
|
- setActCouponStatus(config.activityCode, 2);
|
|
|
+ setActCouponStatus(config.activityCode, 3);
|
|
|
}
|
|
|
if (ret.responseCode == '000000') {
|
|
|
tipsText = `${sk925Names[i]}-领取成功`;
|
|
|
@@ -465,10 +537,14 @@ async function tryGrabCoupon() {
|
|
|
for (let i = 0; i < items88.length; i++) {
|
|
|
const item = items88[i];
|
|
|
const config = item.config;
|
|
|
- if (isCouponGotToday(config.activityCode)) {
|
|
|
+ if (isCouponExecToday(config.activityCode)) {
|
|
|
magicJS.logger.info(`${sk88Names[i]}今天已经执行过了[${config.activityCode}]`);
|
|
|
continue;
|
|
|
}
|
|
|
+ if (hasCouponGotMonth(config.activityCode)) {
|
|
|
+ magicJS.logger.info(`${sk88Names[i]}本月已经领过了[${config.activityCode}]`);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
// magicJS.logger.info(`activityCode=${config.activityCode} activityValue=${config.activityValue}`);
|
|
|
let ret = await queryCustomerActivityStatus(config.activityCode, config.activityValue);
|
|
|
let tipsText = ``;
|
|
|
@@ -479,12 +555,12 @@ async function tryGrabCoupon() {
|
|
|
}
|
|
|
if (ret.responseCode == '000000') {
|
|
|
setActCouponStatus(config.activityCode, 1);
|
|
|
- } else if (ret.responseCode == '950009') {//领奖机会已经用完
|
|
|
+ } else if (ret.responseCode == '950008' || ret.responseCode == '900745' || ret.responseCode == '950009') {//领奖机会已经用完
|
|
|
setActCouponStatus(config.activityCode, 2);
|
|
|
} else if (ret.responseCode == '960002') {//今天奖励已经发完
|
|
|
- setActCouponStatus(config.activityCode, 2);
|
|
|
+ setActCouponStatus(config.activityCode, 3);
|
|
|
} else if (ret.responseCode == '900130') {//不符合领取规则
|
|
|
- setActCouponStatus(config.activityCode, 2);
|
|
|
+ setActCouponStatus(config.activityCode, 3);
|
|
|
}
|
|
|
if (ret.responseCode == '000000') {
|
|
|
tipsText = `${sk88Names[i]}-领取成功`;
|
|
|
@@ -502,10 +578,14 @@ async function tryGrabCoupon() {
|
|
|
for (let i = 0; i < items55.length; i++) {
|
|
|
const item = items55[i];
|
|
|
const config = item.config;
|
|
|
- if (isCouponGotToday(config.activityCode)) {
|
|
|
+ if (isCouponExecToday(config.activityCode)) {
|
|
|
magicJS.logger.info(`${sk55Names[i]}今天已经执行过了[${config.activityCode}]`);
|
|
|
continue;
|
|
|
}
|
|
|
+ if (hasCouponGotMonth(config.activityCode)) {
|
|
|
+ magicJS.logger.info(`${sk55Names[i]}本月已经领过了[${config.activityCode}]`);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
// magicJS.logger.info(`activityCode=${config.activityCode} activityValue=${config.activityValue}`);
|
|
|
let ret = await queryCustomerActivityStatus(config.activityCode, config.activityValue);
|
|
|
let tipsText = ``;
|
|
|
@@ -516,12 +596,12 @@ async function tryGrabCoupon() {
|
|
|
}
|
|
|
if (ret.responseCode == '000000') {
|
|
|
setActCouponStatus(config.activityCode, 1);
|
|
|
- } else if (ret.responseCode == '950009') {//领奖机会已经用完
|
|
|
+ } else if (ret.responseCode == '950008' || ret.responseCode == '900745' || ret.responseCode == '950009') {//领奖机会已经用完
|
|
|
setActCouponStatus(config.activityCode, 2);
|
|
|
} else if (ret.responseCode == '960002') {//今天奖励已经发完
|
|
|
- setActCouponStatus(config.activityCode, 2);
|
|
|
+ setActCouponStatus(config.activityCode, 3);
|
|
|
} else if (ret.responseCode == '900130') {//不符合领取规则
|
|
|
- setActCouponStatus(config.activityCode, 2);
|
|
|
+ setActCouponStatus(config.activityCode, 3);
|
|
|
}
|
|
|
if (ret.responseCode == '000000') {
|
|
|
tipsText = `${sk55Names[i]}-领取成功`;
|