|
@@ -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 () { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}) |