import login from '@/apis/login'

export default {
  /**
   * 登录
   */
  apiLogin: async ({ commit, state, actions }, data) => {
    let res = await login.wLogin(data)
   
    // res.tokenType = 2

    if (res.tokenType === 1) {
      uni.setStorageSync('token', res.token)
      let { metaData } = await login.getServiceInfo() // 获取服务信息
      let selfInfo = await login.getSelfInfo() // 获取用户信息

      // 1.个人信息
      commit('saveSelfInfo', selfInfo)

      // 2.服务信息
      commit('saveCms', metaData)

      commit('changeLoginStatus', true)   // 改变登录状态
    } else {
      // 清除用户数据
      if(uni.getStorageSync('storeType') !== 'gy'){
        uni.removeStorageSync('queryStoreID')
        uni.removeStorageSync('fromStoreID')
        uni.removeStorageSync('storeType')
      }

      uni.removeStorageSync('token')
      uni.removeStorageSync('waybillAddress')     // 清除配送地址

      commit('setTmpData', res) // 用户临时数据 用于绑定注册
    }
  },

  /**
   * 解析手机号 注册 绑定
   */
  analyzePhone: async ({ getters, commit, dispatch }, data) => {
    let res = ''

    // #ifdef MP-WEIXIN
    res = await login.getUserByMiniInfo(data)
    // #endif

    // #ifdef MP-KUAISHOU
    res = await login.analyzeMobile(data)
    // #endif

    // #ifdef MP-TOUTIAO
    // 由于当前手机权限申请不过，故先模拟手机号保证登录功能的实现
    // 权限申请过后，可以调用login.analyzeMobile()解析手机号
    res = { mobile: "18744776542", isExist: false }
    // res.mobile = String(new Date().getTime()).substring(0, 11) // 模拟手机号
    // #endif

    // #ifdef ALIPAY
    // 支付宝走，注册
    res = { mobile: data, isExist: false }
    // #endif

    if (res.isExist) {
      // 绑定
      await login.addAuthBindWithMobile({
        authToken: getters.tmpData && getters.tmpData.token ? getters.tmpData.token : '',
        mobile: res.mobile
      })
    } else {
      // 注册
      let userInfo = uni.getStorageSync('aldstat_user_info')
      console.log(res, '获取用户信息数据', userInfo)
      let name = userInfo.nickName ? userInfo.nickName : res.mobile
      let avatar = userInfo.avatarUrl ? userInfo.avatarUrl : 'https://image.jxc4.com/image/9dc7d11b8e64049273dd1bc6ad938166.png'

      // #ifdef MP-WEIXIN
      name = res.mobile
      avatar = 'https://image.jxc4.com/image/9dc7d11b8e64049273dd1bc6ad938166.png'
      // #endif

      let payload = {
        userID2: res.mobile,
        name: name,
        mobile: res.mobile,
        avatar: avatar
      }

      // #ifdef ALIPAY
      // 支付宝走，注册
      payload.lastLoginType = 'alipaycode'
      // #endif


      let obj = {
        authToken: getters.tmpData && getters.tmpData.token ? getters.tmpData.token : '',
        payload: JSON.stringify(payload)
      }

      let res2 = await login.registerUser(obj)

      // #ifdef MP-TOUTIAO
      // 若手机号接口权限开通后，可将该代码删除
      if (res2 && res2 === '用户标识已经存在' || res2 === '要登录类型已经存在') {
        // 走绑定
        await login.addAuthBindWithMobile({
          authToken: getters.tmpData && getters.tmpData.token ? getters.tmpData.token : '',
          mobile: res.mobile
        })
      }
      // #endif

    }

    commit('setTmpData', {}) // 清除临时数据
    await dispatch('apiLogin') // 重新调取登录
  },

}