import store from '@/store'
// import { share } from '@/mixins'
import CONSTANT from '@/constant'
import UTIL from '@/utils/util'

import {
	getStaffApi,
	getUserApi,
	getCustomApi
} from '@/api/common'
import { postWxCode } from '@/api/mini'

import util from './util'
/**
 * 获取商城端用户信息
 * @parmas update为true时会重新触发请求，重置vuex的数据
 */
export async function getShopUser(update) {
	let userInfo = store.getters.getShopUser
	if (!UTIL.isEmpty(userInfo) && !update) {
		return userInfo
	}
	await getCustomApi().then((res) => {
		userInfo = res.data
		store.dispatch('setShopUser', userInfo)
	}).catch(() => {
		uni.removeStorageSync('token')
	})

	return userInfo
}

/**
 * 获取后台商户用户信息
 * @parmas update为true时会重新触发请求，重置vuex的数据
 */
export async function getUser(update) {
	let userInfo = store.getters.getUser
	if (!UTIL.isEmpty(userInfo) && !update) {
		return userInfo
	}
	await getUserApi().then((res) => {
		userInfo = res.data
		store.dispatch('setUser', userInfo)
	}).catch(() => {
		uni.removeStorageSync('token')
	})

	return userInfo
}

/**
 * 获取登录员工的基本信息
 * @parmas update为true时会重新触发请求，重置vuex的数据
 */
export async function getSelfInfo(update) {
	let userInfo = store.getters.getSelfUser
	if (!util.isEmpty(userInfo) && !update) {
		return userInfo
	}
	await getStaffApi().then(res => {
		userInfo = res.data
		store.dispatch('setSelfInfo', userInfo)
	}).catch(() => {
		return false
	})

	return userInfo
}

/**
 * 微信小程序登录
 * @parmas update为true时会重新触发请求，重置vuex的数据
 */
export async function wxLoginFn(update) {
	let dataInfo = null
	let loginInfo = store.state.login.loginInfo
	if (!util.isEmpty(loginInfo) && !update) {
		return loginInfo
	}

	let getObj = await new Promise(resolve => {
		uni.login({
			provider: 'weixin',
			success: res => {
				uni.setStorageSync('code', res.code)
				resolve(res)
			}
		})
	})

	await postWxCode({ code: getObj.code }).then(subRes => {
		if (UTIL.isEmpty(subRes)) {
			return false
		}
		uni.setStorageSync('token', subRes.data.token)
		store.commit('setLoginInfo', subRes.data.user)

        //启动更新逻辑 shish 2020.5.18
		if (subRes.data.update == 1) {
			const updateManager = wx.getUpdateManager()
			console.log('请求完新版本信息的回调')
			updateManager.onCheckForUpdate(function (res) {
				// 请求完新版本信息的回调
				console.log(res.hasUpdate)
			})
			updateManager.onUpdateReady(function () {
				wx.showModal({
					title: '更新提示',
					content: '新版本已经准备好，是否重启应用？',
					success(res) {
						if (res.confirm) {
							// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
							updateManager.applyUpdate()
						}
					}
				})
			})
			updateManager.onUpdateFailed(function () {
				// 新版本下载失败
			})
		}
	})

	return dataInfo
}

// export default {
// 	getSelfInfo,
// 	getUser,
// 	resetAllUser,
// 	getRoleReal
// }

