| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 | // var Parse = getApp().Parse;// var app = getApp()// const { wxLogin } = require('./utils/login')const CONFIG = require("config.js");let config = {  appid: CONFIG.default.appid,  company: CONFIG.default.company,  rootPage: CONFIG.default.rootPage,}const plugin = requirePlugin('fm-plugin')const { Parse, checkAuth } = pluginPage({  /**   * 页面的初始数据   */  data: {    splashUrl: wx.getStorageSync("enabledOptions")[0],    loading:true  },  /**   * 生命周期函数--监听页面加载   */  onLoad: async function (options) {    wx.setStorageSync("invite", null);    let str = decodeURIComponent(options.q); //扫描二维码获得的跳转链接    let obj = this.getParaName(str)    if (obj && obj.invite) {      wx.setStorageSync("invite", obj.invite);    }    obj && Object.keys(obj).forEach(key=> options[key] = obj[key])    this.setData({      options: options    })    let {      time,      dramaId,      roomId,      orderId,      shopId,      invite,      activityId,      company,      inviteHost    } = options    time && wx.setStorageSync("time", time);    dramaId && wx.setStorageSync("dramaId", dramaId);    roomId && wx.setStorageSync("roomId", roomId);    orderId && wx.setStorageSync("orderId", orderId);    shopId && wx.setStorageSync("shopId", shopId);    invite && wx.setStorageSync("invite", invite);    activityId && wx.setStorageSync("activityId", activityId);    inviteHost && wx.setStorageSync("inviteHost", true);    if (company) getApp().globalData.toCompany = true;    plugin.init(config, wx.getStorageSync('invite'))  },  /**   * 生命周期函数--监听页面初次渲染完成   */  onReady: async function () { },  /**   * 生命周期函数--监听页面显示   */  onShow: async function () {    await this.review()  },  async review(force){    try {      let options = this.data.options      let url = getApp().globalData.rootPage || getApp().globalData.defaultTabBar.list[0].pagePath      if (options) {        let objArr = Object.keys(options)        if (objArr && objArr.length > 0) {          let parms = '?'          objArr.forEach((o, index) => {            if (index > 0) {              parms += '&' + o + '=' + options[o]            } else {              parms += o + '=' + options[o]            }          })          url += parms        }      }      let currentUser = Parse.User.current()      console.log(Parse.User.current())      if (!currentUser || force) {        // let data = await wxLogin()        // if (data.statusCode == 200) {         let r = await checkAuth(true)         console.log(r);        //  getApp().Parse = Parse        //  getApp().checkAuth = checkAuth         if(!r) return        // }      } else {        this.updateUser(currentUser.id)      }      getApp().Parse = Parse      getApp().checkAuth = checkAuth      if (!await this.getCompanyServerExpire(url)) {        return      }      wx.redirectTo({          url: url,      });    }    catch (err) {      console.log(err);      /* 登录身份信息到期,重新登陆 */      if((err?.message.indexOf('Session token is expired') != -1 || err?.message.indexOf('Invalid session token') != -1) && !force){        let invite = wx.getStorageSync('invite')        wx.clearStorageSync()        invite && wx.setStorageSync('invite', invite)        /* 强制重新登录 */        this.review(true)        return      }      this.setData({        loading:false      })      wx.showModal({        title: '温馨提示',        content: '服务器正在升级,请稍后重试。',        showCancel: false,        cancelText: '取消',        cancelColor: '#000000',        confirmText: '确定',        confirmColor: '#3CC51F',        success: (result) => {          if (result.confirm) {            wx.exitMiniProgram()          }        },      });    }  },  async updateUser(id) {    let User = new Parse.Query('_User')    let user = await User.get(id)    let invite = wx.getStorageSync('invite')    //查询邀请人user    let query = new Parse.Query("_User")    query.equalTo('objectId', invite)    let result = await query.first()    if (result && result.id && result.get("invite")?.id == user.id) {      console.error('邀请人不能是自己的下级')      return    }    if (invite && !user.get('invite') && user.id != invite && !user.get('agentLevel')) {      console.log('上下级绑定成功');      user.set('invite', {        __type: "Pointer",        className: "_User",        objectId: invite      })      user.set('agent', {        __type: "Pointer",        className: "_User",        objectId: invite      })      await Parse.Cloud.run('user_save', {        userJson: user.toJSON()      })    }  },  async getCompanyServerExpire(url) {    let query = new Parse.Query('Company')    query.equalTo('objectId', getApp().globalData.company)    query.select('expireDate', 'expireMap')    let com = await query.first()    if (com?.id && com?.get('expireDate')) {      let now = + new Date()      let expireTime = + new Date(com?.get('expireDate'))      if (com?.get('expireMap') && com.get('expireMap')[getApp().globalData.appid]) {        expireTime = + new Date(com.get('expireMap')[getApp().globalData.appid])      }      if (now >= expireTime) {        console.log('服务器到期');        wx.reLaunch({          url: `common-page/pages/loading/index?url=${url}`,        });        return      }    }    return true  },  onUnload: function () {    wx.setStorageSync("active", 0);  },  getParaName(url) {    if (!url || url.indexOf('?') == -1) {      return    }    let paraname = url.split('?')[1]    return this.setObject(paraname) //封装成对象  },  setObject(paraArr) {    let obj = {}    let arr1 = paraArr.split('&')    arr1.forEach(item => {      let str = item.split('=')      let key = str[0]      let val = str[1]      obj[key] = val    })    return obj  }});
 |