diff --git a/pages/joinFrDpell/index.js b/pages/joinFrDpell/index.js index e69de29..b5c96d7 100644 --- a/pages/joinFrDpell/index.js +++ b/pages/joinFrDpell/index.js @@ -0,0 +1,489 @@ +// pages/spellGroup/mySpellGroup/index.js +var config = require("../../config/config.js"); +const Http = require("../../utils/HttpBasics"); +const imgurl = require("../../utils/imgurl"); +const utils = require("../../utils/util.js") +Page({ + + /** + * 页面的初始数据 + */ + data: { + teljpgUrl: imgurl.teljpg.url, + home: imgurl.home.url, + couponChannelId: '', + couponId: '', + data: [], + spellData: null, + canSpell: true, + canBuyIf: true, + clock: "00", + day: "00", + hour: "00", + min: "00", + sec: "00", + paramData:null + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + console.log(options,22) + this.setData({ + paramData:options, + couponChannelId: options.couponChannelId, + couponId: options.couponId, + orderGroupId: options.orderGroupId, + orderId:options.orderId, + avatarUrl: options.avatarUrl, + nickName: options.nickName, + }) + this.checkUser(options); + }, + gotoIndex(){ + wx.reLaunch({ + url: '/pages/index/index', + }) + }, + /** + * 判断用户是否已经在团中 + */ + checkUser(options){ + let that = this; + Http.get({ + url: config.api.queryAttendStatus, + data: { + id: options.orderGroupId, + } + }).then(res => { + wx.stopPullDownRefresh(); + if (res.data.attend == true || res.data.status!=10) { + wx.redirectTo({ + url: `/pages/spellDetail/index?orderId=${options.orderId}&couponId=${options.couponId}&orderGroupId=${options.orderGroupId}&couponChannelId=${options.couponChannelId}`, + }) + }else{ + that.getDetail(that.data.couponChannelId); + that.getOneSpell(that.data.couponId) + } + }); + }, + /** + * 拨打电话 + */ + phone: function (e) { + let that = this; + wx.makePhoneCall({ + phoneNumber: e.target.dataset.merchantlinkphone + }); + }, + /** + * 直接购买 + */ + gotoBuy() { + console.log(22222) + this.setData({ + canBuyIf: false + }) + this.orderFunc() + }, + // 时间格式化输出,如11:03 25:19 每1s都会调用一次 + dateformat(micro_second) { + // 总秒数 + var second = Math.floor(micro_second / 1000); + // 天数 + var day = Math.floor(second / 3600 / 24) < 10 ? "0" + Math.floor(second / 3600 / 24) : Math.floor(second / 3600 / 24); + // 小时 + var hr = Math.floor(second / 3600 % 24) < 10 ? "0" + Math.floor(second / 3600 % 24) : Math.floor(second / 3600 % 24); + // 分钟 + var min = Math.floor(second / 60 % 60) < 10 ? "0" + Math.floor(second / 60 % 60) : Math.floor(second / 60 % 60); + // 秒 + var sec = Math.floor(second % 60) < 10 ? "0" + Math.floor(second % 60) : Math.floor(second % 60); + + // return day + "天" + hr + "小时" + min + "分钟" + sec + "秒"; + return { + a1: day, + b1: hr, + c1: min, + d1: sec + } + }, + countdown(end_time) { + let that = this; + var EndTime = end_time; + var NowTime = new Date().getTime(); + var total_micro_second = EndTime - NowTime || []; + // 渲染倒计时时钟 + let obj = that.dateformat(total_micro_second); + if (total_micro_second > 0) { + that.setData({ + clock: obj, + day: obj.a1, + hour: obj.b1, + min: obj.c1, + sec: obj.d1, + }) + } else { + that.setData({ + clock: "00", + day: "00", + hour: "00", + min: "00", + sec: "00", + }) + } + setTimeout(function () { + total_micro_second -= 1000; + that.countdown(end_time); + }, 1000) + }, + /** + * 发起拼团 + */ + gotoSpell() { + console.log(111111111) + this.setData({ + canSpell: false + }) + this.orderFunc(this.data.orderGroupId) + }, + //参与别人的拼团 + gotoPartner() { + wx.navigateTo({ + url: `/pages/spellDetail/index?orderId=${this.data.spellData.orderId}&couponId=${this.data.spellData.couponId}&orderGroupId=${this.data.spellData.orderGroupId}` + }); + }, + /** + * 获取一个拼团信息 + */ + getOneSpell(couponId) { + let that = this; + Http.get({ + url: config.api.queryOrderGroupStatus, + data: { + couponId: couponId, + id: that.data.orderGroupId, + orderId: that.data.orderId + } + }).then(res => { + if (res.data) { + that.countdown(res.data.expiredDate); + that.setData({ + spellData: res.data + }); + } + }); + }, + /** + * 获取券详情信息 + */ + getDetail(couponChannelId) { + let that = this; + Http.get({ + url: config.api.couponDetail, + data: { + couponChannelId: couponChannelId + } + }).then(res => { + let data = res.data; + data.price = (data.price / 100).toFixed(2) + data.salePrice = (data.salePrice / 100).toFixed(2) + data.validStartDate = utils.formatTime(data.validStartDate, 'yyyy-MM-dd') + data.validEndDate = utils.formatTime(data.validEndDate, 'yyyy-MM-dd') + that.setData({ + data + }); + }); + }, + /** + * 去拼团 + */ + goToOrderGroup(orderId, orderGroupId, _this) { + console.log(22222222) + let that = this; + // 支付成功 + Http.post({ + url: config.api.toOrderGroup, + data: { + id: orderGroupId, + orderId, + couponId: _this.data.data.couponId + } + }) + .then(res => { + wx.navigateTo({ + url: `/pages/spellDetail/index?orderId=${orderId}&couponId=${_this.data.data.couponId}&orderGroupId=${res.data.orderGroupId}` + }); + }) + .catch(err => { + console.log(err); + }) + // return; + }, + /** + * 支付订单更新 + */ + payOrderUpdate: (orderId, payOrderId, status, reason, _this, orderGroupId) => { + let that = this; + // 支付成功 + Http.post({ + url: config.api.payOrderUpdate, + data: { + payOrderId: payOrderId, + orderId: orderId, + status: status, + reason: reason + } + }) + .then(res => { + wx.hideLoading() + if (orderGroupId==undefined) { + wx.navigateTo({ + url: '/pages/order/detail/index?orderId=' + res.data.id, + }) + } else { + _this.goToOrderGroup(orderId, res.data.orderGroupId, _this) + } + }) + .catch(err => { + console.log(err); + if (err.code != 12002) { + setTimeout(function () { + _this.payOrderUpdate(orderId, payOrderId, status, reason, _this, orderGroupId); + }, 2000) + } + }) + }, + /** + * 发起支付 + */ + orderFunc(orderGroupId) { + let data = { + couponChannelId: this.data.data.id, + couponId: this.data.data.couponId + } + /** + * 拼团订单 + */ + data.orderGroupId = orderGroupId + var that = this; + Http.post({ + url: config.api.checkPhoneStatus, + data: {} + }) + .then(res => { + /** + * orderSave 下单 + */ + return Http.post({ + url: config.api.orderSave, + data: data + }); + }) + .catch(err => { + console.log(err); + that.setData({ + showbutton: false, + showbutton1: false, + canSpell: true, + canBuyIf: true + }) + if (err.code == 2011) { + wx.showToast({ + title: "商户信息没找到", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 2013) { + wx.showToast({ + title: "商户信息禁用", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 3000) { + wx.showToast({ + title: "库存不足", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 3001) { + wx.showToast({ + title: "超过限购条件", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 3002) { + wx.showToast({ + title: "订单失败", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 3003) { + wx.showToast({ + title: "订单不存在", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 3004) { + wx.showToast({ + title: "订单不存在", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 4003) { + wx.showToast({ + title: "卡券已作废", + image: './../../assets/images/fail.png', + duration: 2000, + mask: false + }); + } else if (err.code == 11005) { + /** + * 将值传到用户手机号授权的页面 + * + */ + wx.redirectTo({ + url: "/pages/getphoneInfo/index?path=spell&couponChannelId=" + + that.data.couponChannelId + '&couponId=' + that.data.couponId + }); + } else if (err.code == 11006) { + // 用户手机已加密 + wx.redirectTo({ + url: "/pages/phoneinput/phoneinput?path=spell&couponChannelId=" + + that.data.couponChannelId + '&couponId=' + that.data.couponId + }); + } else { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + } + }) + .then(res => { + console.log(res) + if (typeof (res) != "undefined") { + let orderId = "" + res.data.id; + that.setData({ + orderId: orderId, + canSpell: true, + canBuyIf: true + }); + // 支付金额不为0 + /** + * 支付订单创建 + */ + Http.post({ + url: config.api.payOrderCreate, + data: { + orderId: orderId + } + }) + .then(res => { + var payOrderId = "" + res.data.payOrderId; + wx.hideLoading(); + wx.requestPayment({ + timeStamp: res.data.timeStamp, + nonceStr: res.data.nonceStr, + package: res.data.package, + signType: (res.data.signType) ? res.data.signType : "MD5", + paySign: res.data.paySign, + success: res => { + wx.showLoading({ + title: '订单正在处理中...', + }) + setTimeout(function () { + wx.hideLoading() + }, 5000) + that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', that, orderGroupId); + if (res.errMsg == "requestPayment:ok") { + setTimeout(function () { + wx.hideLoading(); + }, 2000); + } + }, + fail: res => { + /** + * 支付失败,需要更新订单的状态 + */ + that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', that, orderGroupId); + that.setData({ + showbutton: false, + canSpell: true, + canBuyIf: true + }) + return; + }, + complete: res => { } + }); + /// End payment -------- + }) + .catch(err => { + that.setData({ + canSpell: true, + canBuyIf: true + }) + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + } + + }) + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + this.setData({ + canSpell: true, + canBuyIf: true + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + this.checkUser(this.data.paramData) + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + } +}) \ No newline at end of file