|
- const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px'
- var config = require("../../../config/config.js");
- var app = getApp();
- const Http = require("../../../utils/HttpBasics");
- const util = require("../../../utils/util");
- const imgurl = require("../../../utils/imgurl");
- Page({
- data: {
- couponIds:"",
- couponChannelId:"",
- showPage:false,
- data:{},
- spuIdObj:{},
- priceAndStockObj:{}
- },
- onLoad: function (options) {
- console.log(options);
- tt.showLoading({
- title: "加载中..."
- });
- let that = this
- if (app.globalData.token){
- if (options && (options.couponChannelId || options.couponIds)) {
- if (options.couponIds) {
- this.setData({
- couponIds: options.couponIds
- })
- that.getDetail(options.couponIds, 'notendclock');
- } else {
- that.getDetail(options.couponChannelId, 'notendclock');
- that.getSupId(options.couponChannelId)
- }
- }
- }else{
- app.tokenCallback = token => {
-
- if (options && (options.couponChannelId || options.couponIds)) {
- if (options.couponIds) {
- this.setData({
- couponIds: options.couponIds
- })
- that.getDetail(options.couponIds, 'notendclock');
- } else {
- that.getDetail(options.couponChannelId, 'notendclock');
- // that.getSupId(options.couponChannelId)
- }
- }
- }
- }
-
- },
-
- getSupId(id) {
- Http.get({
- url: config.api.getSpuid,
- data: { id: id }
- }).then(res => {
- if (res.data) {
- this.setData({
- spuIdObj: res.data
- })
- }
- }).catch(err => {
- // tt.showToast({
- // title: err.message,
- // icon: 'none',
- // duration: 2000,
- // mask: false
- // });
- })
- },
-
- getCouponPriceAndStock(couponChannelId) {//获取券价格与库存
- Http.get({
- url: config.api.couponPriceAndStock,
- data: {
- couponChannelId
- }
- }).then(res => {
- let tempBoj = JSON.parse(res.data)
- console.log(tempBoj, "$");
- this.setData({
- priceAndStockObj: tempBoj
- })
- })
- },
- getDetail: function (couponChannelId, flag) {
- let that = this;
- let data = {};
-
- that.getCouponPriceAndStock(couponChannelId);//获取券价格和库存
- if (that.data.couponIds) {
- data.couponId = couponChannelId
- } else {
- data.couponChannelId = couponChannelId
- }
- var parmer = {
- url: config.api.newCouponDetail,
- data: data
- };
- Http.get(parmer).then(res => {
-
- that.setData({
- couponId: res.data.couponId
- })
- /**
- * activityStatus==0 活动未开始
- * activityStatus==1 活动已开始
- * flag == endclock 说明倒计时已经结束
- */
- if (res.data.endTime && res.data.beginTime) {
- that.setData({
- begin_time: res.data.beginTime,
- end_time: res.data.endTime,
- activityStatus: res.data.actStatus ? res.data.actStatus : ''
- })
- if (res.data.actStatus == 0 && flag != 'endclock') {
- that.countdown(res.data.beginTime);
- } else if (res.data.actStatus != 0 && flag != 'endclock') {
- that.countdown(res.data.endTime);
- } else {
- clearInterval(that.data.setInterval)
- }
- if (res.data.actStatus == 0) {
- var beginTime = util.formatTime(res.data.beginTime, "yyyy-MM-dd hh:mm:ss");
- if (util.timechuo(beginTime).indexOf('-') == 0) {
- that.setData({
- beginTime: "活动已结束",
- });
- } else {
- that.setData({
- beginTime: util.timechuo(beginTime)
- });
- }
- } else {
- var endTime = util.formatTime(res.data.endTime, "yyyy-MM-dd hh:mm:ss");
- if (util.timechuo(endTime).indexOf('-') == 0) {
- that.setData({
- endtime: "活动已结束",
- });
- } else {
- that.setData({
- endtime: util.timechuo(endTime)
- });
- }
- }
- }
- tt.hideLoading();
- that.setData({
- data: res.data,
- });
- if (res.data.type == 10) {
- that.setData({
- salePriceStr: res.data.salePriceStr,
- pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"),
- pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"),
- priceStr: res.data.priceStr,
- tailPriceStr: res.data.tailPriceStr,
- origPriceStr: res.data.origPriceStr
- })
- }
- if (res.data.validType == 1) {
- that.setData({
- validStartDate: util.formatTime(res.data.validStartDate, "yyyy-MM-dd"),
- validEndDate: util.formatTime(res.data.validEndDate, "yyyy-MM-dd"),
- pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"),
- pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"),
- });
- } else {
- if (res.data.validDays) {
- that.setData({
- validDays: res.data.validDays
- });
- }
- }
-
- if (res.data.itemGroup) {
- let tempObj = this.data.data
- tempObj.itemGroup = JSON.parse(tempObj.itemGroup)
- this.setData({
- data: tempObj
- })
- console.log(this.data.data, "data");
- }
-
- if (res.data.productAttrs && res.data.skuAttrs) {
- let tempObj = this.data.data
- tempObj.productAttrs = JSON.parse(tempObj.productAttrs)
- tempObj.skuAttrs = JSON.parse(tempObj.skuAttrs)
- tempObj.productAttrs.map(item => {
- if (item.key == "Notification") {
- if (item.data != '') {
- tempObj.curLsit = JSON.parse(item.data)
- }
- }
- if (item.key == "bring_out_meal") {
- tempObj.besides = item.data
- }
- if (item.key == "free_pack") {
- tempObj.pack = item.data
- }
-
- if (item.key == "superimposed_discounts") {
- tempObj.superimposed_discounts = item.data
- }
- if (item.key == "private_room") {
- tempObj.private_room = item.data
- }
- if (item.key == "rec_person_num_max") {
- tempObj.rec_person_num_max = item.data
- }
-
-
- if (item.key == 'Description') {
- tempObj.Description = JSON.parse(item.data)
- }
- if (item.key == "can_no_use_date") {
- tempObj.can_no_use_date = JSON.parse(item.data)
- }
- })
-
- tempObj.skuAttrs.map(item => {
- if (item.key == "commodity") {
- if (item.data != '') {
- tempObj.itemGroup = JSON.parse(item.data)
- }
- }
- })
- this.setData({
- data: tempObj
- })
- console.log(this.data.data, "data");
- }
- }).catch(err => {
- tt.showToast({
- title: err.message,
- icon: 'none',
- duration: 2000,
- mask: false
- });
- })
- },
- /**
- * 支付订单更新
- */
- payOrderUpdate: (orderId, payOrderId, status, reason, type, _this, composeOrderType) => {
- let that = this;
- // 支付成功
- Http.post({
- url: config.api.payOrderUpdate,
- data: {
- payOrderId: payOrderId,
- composeOrderId: orderId,
- status: status,
- reason: reason
- }
- })
- .then(res => {
- tt.hideLoading()
- // 有价券
- if (!type && type != 'free') {
- tt.navigateTo({
- url: `/pages/order/detail/index?orderId=${orderId
- }`
- });
- } else if (type == 'free') {
- tt.navigateTo({
- url: `/pages/order/detail/index?orderId=${orderId
- }`
- });
- }
- })
- .catch(err => {
- console.log(err);
- if (!type) {
- setTimeout(function () {
- _this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this, composeOrderType);
- }, 2000)
- }
- })
- },
-
- /**
- * 发起支付
- */
- orderFunc(discount) {
- if(this.data.showbutton)return;
-
- let that = this;
- tt.showLoading({
- title: "加载中..."
- });
- that.setData({
- showbutton: true,
- })
- Http.get({
- url: config.api.checkUserStatus,
- data: {
- token: app.globalData.token
- }
- }).then(res => {
- Http.get({
- url: config.api.checkPhoneStatus,
- data: {}
- }).then(res => {
-
- if ((!tt.canIUse('createOrder')) || that.data.data.type == 50 || that.data.priceAndStockObj.salePrice == 0) {
- //积分券和免费券
- // 发起砍价
- if (discount == 'discount') {
- var data = {
- couponChannelId: "" + that.data.couponChannelId,
- couponId: "" + that.data.couponId,
- formId: "" + that.data.formId,
- press: true
- }
- } else if (discount == 'discount1') {
- var data = {
- couponChannelId: "" + that.data.couponChannelId,
- couponId: "" + that.data.couponId,
- formId: "" + that.data.formId,
- press: false
- }
- } else if (that.data.couponChannelId == null) {
- var data = {
- couponId: "" + that.data.couponId,
- formId: "" + that.data.formId,
- };
- } else {
- var data = {
- couponChannelId: "" + that.data.couponChannelId,
- couponId: "" + that.data.couponId,
- formId: "" + that.data.formId,
- }
- }
- console.log(data, "data")
- let url = ""
- let tempObj;
- let tempArr = []
- if (that.data.data.type == 12) {
- url = config.api.couponPackageSave
- tempObj = {
- signleOrder: {
- couponChannelId: "" + that.data.couponChannelId,
- couponId: "" + that.data.couponId,
- formId: "" + that.data.formId,
- },
- count: "1"
- }
- tempArr.push(tempObj)
- } else {
- url = config.api.orderSave
- }
- /**
- * orderSave 下单
- */
- Http.post({
- url: url,
- data: that.data.data.type == 12 ? JSON.stringify(tempArr) : data
- }).then(res => {
- if (discount != 'discount') {
- if (typeof (res) != "undefined") {
- let orderId = "" + res.data.mainOrderId;
- that.setData({
- orderId: orderId,
- composeOrderType: res.data.composeOrderType
- });
- if (res.data.payment > 0) {
- // 支付金额不为0
- /**
- * 支付订单创建
- */
- Http.post({
- url: config.api.payOrderCreate,
- data: {
- orderId: orderId,
- composeOrderType: res.data.composeOrderType
- }
- }).then(res => {
- var payOrderId = "" + res.data.outOrderNo;
- tt.hideLoading();
- tt.pay({
- service: 5,
- orderInfo: {
- order_id: res.data.orderId,
- order_token: res.data.token,
- },
- success: res => {
- tt.showLoading({
- title: '订单正在处理中...',
- })
- if (res.code === 0) {
- that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that, that.data.composeOrderType);
- if (res.errMsg == "requestPayment:ok") {
- /**
- * 用户支付成功以后跳转到券包列表
- */
- if (that.data.cardType == 100) {
- tt.setStorage({
- key: 'couponNum2',
- data: "couponNum2"
- })
- } else if (that.data.data.type != 5 && that.data.cardType != 100) {
- tt.setStorage({
- key: 'couponNum',
- data: "couponNum"
- })
- }
- }
- }
- else if (res.code === 1) {
- that.setData({
- showbutton: false
- })
- tt.hideLoading();
- tt.showToast({
- title: '支付超时', // 内容
- icon: "none"
- });
-
- } else if (res.code === 2) {
- that.setData({
- showbutton: false
- })
- tt.hideLoading();
- tt.showToast({
- title: '支付失败', // 内容
- icon: "none"
- });
- } else if (res.code === 3) {
- that.setData({
- showbutton: false
- })
- tt.hideLoading();
- tt.showToast({
- title: '支付关闭', // 内容
- icon: "none"
- });
- } else if (res.code === 4) {
- that.setData({
- showbutton: false
- })
- tt.hideLoading();
- tt.showToast({
- title: '支付取消', // 内容
- icon: "none"
- });
- } else if (res.code === 9) {
- that.setData({
- showbutton: false
- })
- tt.hideLoading();
- tt.showToast({
- title: '订单状态开发者自行获取', // 内容
- icon: "none"
- });
- }
-
- },
- fail: res => {
- tt.hideLoading();
- /**
- * 支付失败,需要更新订单的状态
- */
- that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that, that.data.composeOrderType);
- that.setData({
- showbutton: false
- })
- return;
- },
- complete: res => { }
- });
- /// End payment --------
- })
- .catch(err => {
- tt.hideLoading();
- tt.showToast({
- title: err.message,
- icon: 'none',
- duration: 2000,
- mask: false
- });
- })
- } else {
- // 免费券
- that.payOrderUpdate(orderId, "0", 1, '', 'free', that, that.data.composeOrderType);
- if (that.data.cardType == 100) {
- tt.setStorage({
- key: 'couponNum2',
- data: "couponNum2"
- })
- } else if (that.data.data.type != "5" && that.data.cardType != 100) {
- tt.setStorage({
- key: 'couponNum',
- data: "couponNum"
- })
- }
- }
- }
- } else {
- if (res) {
- tt.navigateTo({
- url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.mainOrderId}&composeOrderType=${res.data.composeOrderType}`,
- })
- }
- }
- })
- } else {
- //有价券
- console.log(tt.canIUse('createOrder'), "是否支持2.0js-api");
- if (tt.canIUse('createOrder')) {
- //支持 支付2.0 js-api
- let tempCallbackData = {}
- tempCallbackData[that.data.data.couponChannel.ttSpuId] = that.data.data.couponChannel.id
- let options = {
- callbackData: tempCallbackData,
- goodsList: [
- {
- quantity: 1, // 购买数量 必填
- price: that.data.priceAndStockObj.salePrice, // 商品价格 必填
-
- goodsName: that.data.data.title, // 商品名称 必填
- goodsPhoto: that.data.data.coverImg, // 商品图片链接 必填
- goodsId: that.data.data.couponChannel.ttSpuId, // 商品ID 必填
- goodsType: 1, // 商品类型 必填
-
- goodsLabels: ['过期退', '随时退', '免预约'], // 商品标签 非必填
- dateRule: '', // 使用规则 非必填
- },
- ],
- payment: {
- totalAmount: that.data.priceAndStockObj.salePrice, // 订单总价 必填
- },
- success: res => {
- tt.hideLoading();
- that.setData({
- showbutton: false,
- })
- const { orderId, outOrderNo } = res;
- that.setData({ orderId, outOrderNo });
- that.payOrderUpdate(outOrderNo, outOrderNo, 1, '', '', that, '');
- },
- fail: res => {
- const { orderId, outOrderNo, errNo, errMsg, errLogId } = res;
- if (errLogId) {
- tt.hideLoading();
- that.setData({
- showbutton: false,
- })
- console.log('预下单失败', errNo, errMsg, errLogId);
- }
- if (orderId || outOrderNo) {
- tt.hideLoading();
- that.setData({
- showbutton: false,
- })
- console.log('支付失败', errNo, errMsg, orderId, outOrderNo);
- console.log(that.payOrderUpdate, "payOrderUpdate");
- that.payOrderUpdate(outOrderNo,outOrderNo,2,'','fail')
- }
- },
- }
- console.log(options, "options");
- tt.createOrder(options)
- } else {
- //不支持 支付2.0 js -api
- }
- }
-
- }).catch(err => {
- tt.hideLoading()
- that.setData({
- showbutton: false,
- })
- if (err.code == 2011) {
- tt.showToast({
- title: "商户信息没找到",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 2013) {
- tt.showToast({
- title: "商户信息禁用",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 3000) {
- tt.showToast({
- title: "库存不足",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 3001) {
- tt.showToast({
- title: "您已超过限购",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 3002) {
- tt.showToast({
- title: "订单失败",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 3003) {
- tt.showToast({
- title: "订单不存在",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 3004) {
- tt.showToast({
- title: "订单不存在",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 4003) {
- tt.showToast({
- title: "卡券已作废",
- image: './../../../assets/images/fail.png',
- duration: 2000,
- mask: false
- });
- } else if (err.code == 3012) {
- that.getUnPaidOrder(that.data.couponId);
- } else if (err.code == 11005) {
- /**
- * 将值传到用户手机号授权的页面
- *
- */
- tt.redirectTo({
- url: "/pages/getphoneInfo/index?couponChannelId=" +
- that.data.couponChannelId
- });
- } else if (err.code == 11006) {
- // 用户手机已加密
- tt.redirectTo({
- url: "/pages/phoneinput/phoneinput?couponChannelId=" +
- that.data.couponChannelId
- });
- } else {
- tt.showToast({
- title: err.message,
- icon: 'none',
- duration: 2000,
- mask: false
- });
- }
- })
- }).catch(err => {
- console.log(err)
- if (err.code == 11004) {
- tt.redirectTo({
- url: `/pages/getuserinfo/index?fromflag=coupondetail&couponChannelIdflag=${that.data.couponChannelId}`,
- })
- } else {
- tt.showToast({
- title: err.message,
- icon: "none",
- duration: 2500
- })
- }
- })
- },
-
-
- })
|