// pages/couponCenter/couponCenter.js

var http = require("../../utils/http.js");
var config = require("../../utils/config.js");
var util = require('../../utils/util.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    couponList: [], // 通用券列表
    prodCouponList: [], // 商品券列表
    selectedCouponId:0, // 要领取的优惠券id
    current: 1, // 当前页数
    pages: 1, // 总页数
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    //获取通用列表


  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    this.getCouponList();
    this.getProdCouponList(1);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  /**
   * 获取通用列表
   */
  getCouponList() {
    var params = {
      url: "/p/myCoupon/generalCouponList",
      method: "GET",
      callBack: (res) => {
        this.initCouponCanGoUseFlag(res)
        this.setData({
          couponList: res
        });
      }
    };
    http.request(params);
  },
  /**
   * 获取指定商品券
   */
  getProdCouponList(cur) {
    var params = {
      url: "/p/myCoupon/getCouponPage",
      method: "GET",
      data: {
        current: cur,
        size: 20,
      },
      callBack: (res) => {
        this.initCouponCanGoUseFlag(res.records)
        let list = []
        if (res.current == 1) {
          list = res.records
        } else {
          list = this.data.prodCouponList
          list = list.concat(res.records)
        }
        this.setData({
          prodCouponList: list,
          pages: res.pages,
          current: res.current
        });
      }
    };
    http.request(params);
  },
  /**
   * 初始化优惠券去可以使用的标记
   */
  initCouponCanGoUseFlag(couponList){
    couponList.forEach(coupon => {
      coupon.canGoUse = (coupon.curUserReceiveCount >= coupon.limitNum)
    });
  },
  /**
   * 设置优惠券去可以使用的标记
   */
  setCouponCanGoUseFlag(index, couponType) {
    if (couponType == 1) {
      var tempCouponList = this.data.couponList
      tempCouponList[index].canGoUse = true
      tempCouponList[index].stocks -= 1
      this.setData({
        couponList: tempCouponList
      })
    } else if (couponType == 2) {
      var tempCouponList = this.data.prodCouponList
      tempCouponList[index].canGoUse = true
      tempCouponList[index].stocks -= 1
      this.setData({
        prodCouponList: tempCouponList
      })
    }
  },
  /**
   * 立即领取
   */
  receiveCoupon(e) {
    this.setData({
      selectedCouponId: e.currentTarget.dataset.couponid
    })
    util.checkAuthInfo(()=>{
      var ths = this
      if (ths.data.selectedCouponId) {
        wx.showLoading();
        http.request({
          url: "/p/myCoupon/receive",
          method: "POST",
          data: ths.data.selectedCouponId,
          callBack: (data) => {
            wx.hideLoading();
            wx.showToast({
              title: '领券成功',
              icon: 'success',
              duration: 2000
            })
            this.setCouponCanGoUseFlag(e.currentTarget.dataset.couponindex,e.currentTarget.dataset.coupontype)
          }
        })
      }
    })
  },
  /**
   * 立即使用
   */
  useCoupon(e) {
    let url = '/pages/prod-classify/prod-classify?sts=4';
    let couponId = e.currentTarget.dataset.couponid;
    var title = "优惠券活动商品";
    var prodList = e.currentTarget.dataset.prodlist
    if (prodList && prodList.length == 1) {
      wx.navigateTo({
        url: '/pages/prod/prod?prodid=' + prodList[0].prodId
      })
    }else {
      if (couponId) {
        url += "&tagid=" + couponId + "&title=" + title;
      }
      wx.navigateTo({
        url: url
      })
    }
  },
    /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.current < this.data.pages) {
      this.getProdCouponList(this.data.current + 1);
    }
  },

})