From 8feca395f8b277e79bdd04514b47148b5e2001d3 Mon Sep 17 00:00:00 2001 From: Cyy <547766613@qq.com> Date: Tue, 4 Jul 2023 16:10:58 +0800 Subject: [PATCH] OA 120221 签到积分和服务器时间不一致导致签到失败 --- packageA/pages/checkin/checkin.js | 820 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 423 insertions(+), 397 deletions(-) diff --git a/packageA/pages/checkin/checkin.js b/packageA/pages/checkin/checkin.js index f910db6..b96f7b7 100644 --- a/packageA/pages/checkin/checkin.js +++ b/packageA/pages/checkin/checkin.js @@ -2,405 +2,431 @@ var md5 = require("../../../utils/md5.js"); var ut = require("../../../utils/util.js"); const app = getApp(); -const os=app.globalData.setting; +const os = app.globalData.setting; let self; Page({ - /** - * 页面的初始数据 - */ - data: { - year: '', - month: '', - day: '', - weekArr: ['日', '一', '二', '三', '四', '五', '六'], - dateArr: [], - n_dateArr:[], //本月的日期 - s_dateArr:[], //上月的日期 - - firstDay: '', - lastDay: '', - param: null, - clockNum: 3, - - res: null, - isShowRules: false, - isCheckIn: false, - checkInDays: 0, //连续签到天数 - integral: 0, //积分 - checkInNums: 0, //补签次数 - isCheckInDay: '', - - flag: true, - isLogin: false, - imgUrl: app.globalData.setting.imghost, - show_no_integral:false - - }, - - loadQd(callback) { - app.request.get('/api/weshop/qdrecord/getUser/'+ app.globalData.setting.stoid + '/' + app.globalData.user_id, { - success: function (res) { - if(res.data.code==0){ - if(callback) callback(); - self.setData({ - res: res.data.data - }); - self.loadCheckedRecord(); - }else{ - if(res.data.msg.indexOf('未开启签到')!=-1){ - self.setData({ show_no_integral: true }); - }else{ - wx.showToast({ - title: res.data.msg, - icon: 'none', - duration: 2000 - }) - } - - } - }, - }); - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function(options) { - console.log('执行onload'); - self = this; - this.getDate(); - this.setDate(); - var res = wx.getSystemInfoSync(); - this.setData({ - param: res.windowHeight / 12, - }) - - // 判断会员是否授权登录, - // 没有登录则跳转到登录页, - // 已登录则设置已登录状态,请求加载签到数据 - this.isLogin().then(function() { - self.setData({ - isLogin: true - }); - self.loadQd(); - }); - - // 广告 - getApp().request.promiseGet("/api/weshop/ad/page?pid=1205&store_id=" + os.stoid, { - data: { - enabled: 1 - } - }).then(res => { - if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length>0){ - var a = res.data.data.pageData; - var narr=[]; - for(var i in a){ - var tt = { - 'ad_code': os.imghost + a[i].ad_code, - 'media_link': '', - 'ad_weapplink':a[i].ad_weapplink - }; - narr.push(tt); - } - self.setData({ad_data:narr}); - } - }); - - - }, - - onShow() { - if(app.globalData.userInfo instanceof Object) { - if(this.data.isLogin) { - return; - } else { - this.setData({ - isLogin: true - }); - this.loadQd(); - }; - } - }, - - onHide() { - console.log('执行onHide'); - }, - - // 是否登录 - isLogin() { - return new Promise(function(resolve, reject) { - let user_info = getApp().globalData.userInfo; - if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { - wx.navigateTo({ - url: '/packageE/pages/togoin/togoin', - }) - return false; - } else { - resolve(); - }; - }); - }, - - // 点击"我的积分"和"去购物"进行跳转 - goto(e) { - let url = e.target.dataset.url; - app.goto(url); - }, - - // 点击显示签到规则 - showRules() { - if(this.data.isShowRules) { - this.setData({ - isShowRules: false - }); - } else { - this.setData({ - isShowRules: true - }); - } - }, - - - // 加载签到记录 - loadCheckedRecord() { - let newDateArr=[]; - let list; - let bqlist; - //--判断什么日子是签到的,上个月的-- - if(this.data.res && this.data.res.qdsdaylist) { - list = this.data.res.qdsdaylist.split(','); - for(var i in this.data.s_dateArr){ - var item=this.data.s_dateArr[i]; - if(this.check_is_qd(item,list)){ - item.isCheckIn = true; - }else{ - item.isCheckIn = false; - } - } - } - newDateArr=newDateArr.concat(this.data.s_dateArr); - //--判断什么日子是签到的,这个月的-- - if(this.data.res && this.data.res.qddaylist) { - list = this.data.res.qddaylist.split(','); - for(var i in this.data.n_dateArr){ - var item=this.data.n_dateArr[i]; - if(this.check_is_qd(item,list)){ - item.isCheckIn = true; - }else{ - item.isCheckIn = false; - } - } - } - newDateArr=newDateArr.concat(this.data.n_dateArr); - - //--判断什么日子是要补签的-- - if(this.data.res && this.data.res.curbqdaynum) { - bqlist = this.data.res.curbqdaynum.split(','); - for(var i in newDateArr){ - var item=newDateArr[i]; - if(this.check_is_bq(item,bqlist)){ - item.isBq = true; - }else{ - item.isBq = false; - } - } - } - this.setData({ - dateArr: newDateArr - }); - }, - - - //判断是不是同一个日期,签到的 - check_is_qd(item,bqlist){ - for(var i in bqlist){ - var c_item=JSON.parse(JSON.stringify(item)); - if(c_item.num<10) c_item.num="0"+c_item.num; - if(c_item.num==bqlist[i]){ - return true; - } - } - return false; - }, - - //判断是不是同一个日期,补签到的 - check_is_bq(item,bqlist){ - for(var i in bqlist){ - if(item.date==bqlist[i]){ - return true; - } - } - return false; - }, - - // 点击签到 - checkInToday() { - const self = this; - // 获取今天的签到状态 - //let isCheckInToday = this.data.dateArr[this.data.day-1].isCheckIn; - var ck=this.data.day; - if(parseInt(ck)<10) ck="0"+ck; - var isCheckInToday=this.data.res.qddaylist.indexOf(ck); - - // 如果还没签到, 可以点击签到 - if(isCheckInToday==-1) { - - var timeid=ut.gettimestamp(); - var key = "rgqsqLYhw67sgaIQBF6dw9JK7CDKSS"; - var str= app.globalData.setting.stoid+":"+app.globalData.user_id+":"+timeid+":"+key - var sign=md5(str); - - app.request.promisePost('/api/weshop/qdrecord/saveQd', { - data: { - store_id: app.globalData.setting.stoid, - user_id: app.globalData.user_id, - timeid:timeid, - sign:sign - } - }).then(res => { - // 改变签到状态,由false置为true - // let newDateArr = self.data.dateArr; - // newDateArr[self.data.day-1].isCheckIn = true; - - for(var i in self.data.dateArr) { - self.data.dateArr[i].isCheckIn=false; - self.data.dateArr[i].isBq=false; - } - self.setData({ - dateArr: self.data.dateArr - }); - - self.loadQd(function() { - wx.showToast({ - title: self.data.res.qdintro, - icon: 'none', - duration: 1500, - success: function() { - - } - }); - }); - - }) - } - }, - - - // 补签 - reCheckIn() { - var self = this; - // var i = 0; - console.log('补签~'); - if(this.data.flag) { - this.data.flag = false; - app.request.promisePost('/api/weshop/qdrecord/saveBQd', { - data: { - store_id: app.globalData.setting.stoid, - user_id: app.globalData.user_id, - daynum: self.data.res.getBQIntegral1, - bqnum: self.data.res.getbqnum2, - bqintegral: self.data.res.getBQIntegral, - } - }).then(res => { - // 改变签到状态,由false置为true - // let newDateArr = self.data.dateArr; - // newDateArr[self.data.day-1].isCheckIn = true; - //var bqlist = self.data.res.curbqdaynum.split(',').sort(); - //var list = []; - /*-- - for(let item of bqlist) { - var date = new Date(item); - list.push(date.getDate()); - }--*/ - - for(var i in self.data.dateArr) { - self.data.dateArr[i].isCheckIn=false; - self.data.dateArr[i].isBq=false; - } - self.setData({ - dateArr: self.data.dateArr - }); - self.loadQd(function() { - self.data.flag = true; - wx.showToast({ - title: '补签成功', - icon: 'success', - duration: 1500, - success: function() { - - } - }); - }); - }) - } - }, - - getDate: function() { //获取当月日期 - var mydate = new Date(); - var year = mydate.getFullYear(); - var month = mydate.getMonth(); //0~11: 一月至十二月 - var months = month + 1; //1~12:一月至十二月 - this.data.year = year; - this.data.month = months; - this.data.day = mydate.getDate(); //获取当月日期: 1~31 - var fist = new Date(year, month, 1); - this.data.firstDay = fist.getDay(); //获取当月第一天 - var last = new Date(year, months, 0); //0表示当月最后一天 - this.data.lastDay = last.getDate(); //获取当月最后一天 - - this.setData({ - year: this.data.year, - month: this.data.month, - day: this.data.day, - firstDay: this.data.firstDay, - lastDay: this.data.lastDay, - fist:fist - }) - console.log("今天:" + this.data.day); - }, - - setDate: function() { - var day; - for(var i=0;i { + if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0) { + var a = res.data.data.pageData; + var narr = []; + for (var i in a) { + var tt = { + 'ad_code': os.imghost + a[i].ad_code, + 'media_link': '', + 'ad_weapplink': a[i].ad_weapplink + }; + narr.push(tt); + } + self.setData({ ad_data: narr }); + } + }); + + + }, + + onShow() { + if (app.globalData.userInfo instanceof Object) { + if (this.data.isLogin) { + return; + } else { + this.setData({ + isLogin: true + }); + this.loadQd(); + }; + } + }, + + onHide() { + console.log('执行onHide'); + }, + + // 是否登录 + isLogin() { + return new Promise(function (resolve, reject) { + let user_info = getApp().globalData.userInfo; + if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { + wx.navigateTo({ + url: '/packageE/pages/togoin/togoin', + }) + return false; + } else { + resolve(); + }; + }); + }, + + // 点击"我的积分"和"去购物"进行跳转 + goto(e) { + let url = e.target.dataset.url; + app.goto(url); + }, + + // 点击显示签到规则 + showRules() { + if (this.data.isShowRules) { + this.setData({ + isShowRules: false + }); + } else { + this.setData({ + isShowRules: true + }); + } + }, + + + // 加载签到记录 + loadCheckedRecord() { + let newDateArr = []; + let list; + let bqlist; + //--判断什么日子是签到的,上个月的-- + if (this.data.res && this.data.res.qdsdaylist) { + list = this.data.res.qdsdaylist.split(','); + for (var i in this.data.s_dateArr) { + var item = this.data.s_dateArr[i]; + if (this.check_is_qd(item, list)) { + item.isCheckIn = true; + } else { + item.isCheckIn = false; + } + } + } + newDateArr = newDateArr.concat(this.data.s_dateArr); + //--判断什么日子是签到的,这个月的-- + if (this.data.res && this.data.res.qddaylist) { + list = this.data.res.qddaylist.split(','); + for (var i in this.data.n_dateArr) { + var item = this.data.n_dateArr[i]; + if (this.check_is_qd(item, list)) { + item.isCheckIn = true; + } else { + item.isCheckIn = false; + } + } + } + newDateArr = newDateArr.concat(this.data.n_dateArr); + + //--判断什么日子是要补签的-- + if (this.data.res && this.data.res.curbqdaynum) { + bqlist = this.data.res.curbqdaynum.split(','); + for (var i in newDateArr) { + var item = newDateArr[i]; + if (this.check_is_bq(item, bqlist)) { + item.isBq = true; + } else { + item.isBq = false; + } + } + } + this.setData({ + dateArr: newDateArr + }); + }, + + + //判断是不是同一个日期,签到的 + check_is_qd(item, bqlist) { + for (var i in bqlist) { + var c_item = JSON.parse(JSON.stringify(item)); + if (c_item.num < 10) c_item.num = "0" + c_item.num; + if (c_item.num == bqlist[i]) { + return true; + } + } + return false; + }, + + //判断是不是同一个日期,补签到的 + check_is_bq(item, bqlist) { + for (var i in bqlist) { + if (item.date == bqlist[i]) { + return true; + } + } + return false; + }, + + // 点击签到 + checkInToday() { + const self = this; + + getApp().request.get("/api/weshop/users/getServerTime", { + success: function (res) { + if (res.data.code == 0) { + var getnowtime = res.data.data; + if (!getnowtime) { + getApp().showWarning("获取服务时间失败"); + return; + } else { + // 获取今天的签到状态 + //let isCheckInToday = this.data.dateArr[this.data.day-1].isCheckIn; + var ck = self.data.day; + if (parseInt(ck) < 10) ck = "0" + ck; + var isCheckInToday = self.data.res.qddaylist.indexOf(ck); + + // 如果还没签到, 可以点击签到 + if (isCheckInToday == -1) { + + var timeid = Date.parse(getnowtime)/1000; + var key = "rgqsqLYhw67sgaIQBF6dw9JK7CDKSS"; + var str = app.globalData.setting.stoid + ":" + app.globalData.user_id + ":" + timeid + ":" + key + var sign = md5(str); + + app.request.promisePost('/api/weshop/qdrecord/saveQd', { + data: { + store_id: app.globalData.setting.stoid, + user_id: app.globalData.user_id, + timeid: timeid, + sign: sign + } + }).then(res2 => { + // 改变签到状态,由false置为true + // let newDateArr = self.data.dateArr; + // newDateArr[self.data.day-1].isCheckIn = true; + if (res2.data.code == 0) { + for (var i in self.data.dateArr) { + self.data.dateArr[i].isCheckIn = false; + self.data.dateArr[i].isBq = false; + } + self.setData({ + dateArr: self.data.dateArr + }); + + self.loadQd(function () { + wx.showToast({ + title: self.data.res.qdintro, + icon: 'none', + duration: 1500, + success: function () { + + } + }); + }); + } else { + getApp().showWarning(res2.data.msg); + } + + + + }) + } + } + + } else { + getApp().showWarning(res.data.msg); + } + } + }) + + }, + + + // 补签 + reCheckIn() { + var self = this; + // var i = 0; + console.log('补签~'); + if (this.data.flag) { + this.data.flag = false; + app.request.promisePost('/api/weshop/qdrecord/saveBQd', { + data: { + store_id: app.globalData.setting.stoid, + user_id: app.globalData.user_id, + daynum: self.data.res.getBQIntegral1, + bqnum: self.data.res.getbqnum2, + bqintegral: self.data.res.getBQIntegral, + } + }).then(res => { + // 改变签到状态,由false置为true + // let newDateArr = self.data.dateArr; + // newDateArr[self.data.day-1].isCheckIn = true; + //var bqlist = self.data.res.curbqdaynum.split(',').sort(); + //var list = []; + /*-- + for(let item of bqlist) { + var date = new Date(item); + list.push(date.getDate()); + }--*/ + if (res.data.code == 0) { + for (var i in self.data.dateArr) { + self.data.dateArr[i].isCheckIn = false; + self.data.dateArr[i].isBq = false; + } + self.setData({ + dateArr: self.data.dateArr + }); + self.loadQd(function () { + self.data.flag = true; + wx.showToast({ + title: '补签成功', + icon: 'success', + duration: 1500, + success: function () { + + } + }); + }); + } else { + getApp().showWarning(res.data.msg); + } + + }) + } + }, + + getDate: function () { //获取当月日期 + var mydate = new Date(); + var year = mydate.getFullYear(); + var month = mydate.getMonth(); //0~11: 一月至十二月 + var months = month + 1; //1~12:一月至十二月 + this.data.year = year; + this.data.month = months; + this.data.day = mydate.getDate(); //获取当月日期: 1~31 + var fist = new Date(year, month, 1); + this.data.firstDay = fist.getDay(); //获取当月第一天 + var last = new Date(year, months, 0); //0表示当月最后一天 + this.data.lastDay = last.getDate(); //获取当月最后一天 + + this.setData({ + year: this.data.year, + month: this.data.month, + day: this.data.day, + firstDay: this.data.firstDay, + lastDay: this.data.lastDay, + fist: fist + }) + console.log("今天:" + this.data.day); + }, + + setDate: function () { + var day; + for (var i = 0; i < this.data.firstDay; i++) { + //获取前几天的时间数组 + var arr_d = this.getNextDate(this.data.fist, i - this.data.firstDay) + day = { num: arr_d[1], date: arr_d[0] }; + this.data.s_dateArr.push(day); + } + + for (var i = 1; i < this.data.lastDay + 1; i++) { + var date = this.data.month + ""; + if (this.data.month < 10) date = "0" + date; + if (i < 10) { + date = date + "-0" + i; + } else { + date = date + "-" + i; + } + day = { num: i, date: date }; + this.data.n_dateArr.push(day); + } + }, + + //获取相隔是多少天的日期 + getNextDate(date, day) { + var dd = date; + dd.setDate(dd.getDate() + day); + //var y = dd.getFullYear(); + var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1; + var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); + //return y + "-" + m + "-" + d; + return [m + "-" + d, dd.getDate()]; + }, + go_url(e) { + let url = e.currentTarget.dataset.url; + if (url) { + getApp().goto(url); + } + }, + + back_to() { + wx.navigateBack(); + } }) -- libgit2 0.21.4