import fetch from 'isomorphic-fetch'; import actionTypes from '../actiontype/user' import {saveHeaderInfo} from './initHeader' import {addErrorInfo} from './uploadError' import {saveCommonInfo, getUserinfo, emptyStoreInfo} from "./common"; const domain = ENV.domain; const saveUserinfo = (data)=>{ return{ type:actionTypes.SAVEUSERINFO, data } }; var myHeaders = new Headers({ 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=UTF-8', }); const getUserinfoOld = (info,headerInfo)=>{ let employeeId = info.employeeId; let storeId = headerInfo.storeId; let bodyData = Object.assign({},{employeeId,storeId}) return(dispatch)=>{ dispatch(saveHeaderInfo(info)); fetch(domain + 'machine_pad/get_alowed_task.action',{ credentials : 'include', method : 'POST', mode : 'cors', headers:myHeaders, body : JSON.stringify(bodyData) }).then((response)=>response.json()) .then(json=>{ if(json.meta.success && json.data){ dispatch(saveUserinfo(json.data)); if(!json.data.type){ dispatch(addErrorInfo('没有任务需要处理')) } } }).catch(e=>{}) } } const logoutUser = ()=>{ return { type : actionTypes.LOGOUTUSER, } } let timer = null; const pollingGetUserinfoAgain = (storeId)=>{ return (dispatch)=>{ if(!timer){ timer = setTimeout(()=>{ UTILPATH.myLogger.info("pollingGetUserinfoAgain storeId ",storeId) clearTimeout(timer); timer = null; dispatch(pollingGetUserinfo(storeId)) },2*1000) } } } const pollingGetUserinfo = (storeId)=>{ UTILPATH.myLogger.info("power_cut_find_user storeId ",storeId) return(dispatch)=>{ fetch(domain + `machine_pad/power_cut_find_user/${storeId}`,{ credentials : 'include', method : 'POST', mode : 'cors', headers:myHeaders, body:JSON.stringify({}) }).then((response)=>response.json()) .then(json=>{ UTILPATH.myLogger.info("power_cut_find_user response ",json) let {meta={},data={}} = json; if(meta.success && data.code){ let code = parseInt(data.code); switch (code){ case 1: //开门成功 let {employeeId,area} = data; if(employeeId && area){ dispatch(saveCommonInfo({userInfo:{employeeId}})); dispatch(saveCommonInfo(Object.assign({},{taskInfo:{area:area,taskId:0,currentTaskType:'OPEN'}}))); dispatch(getUserinfo(employeeId,storeId)); }else{ dispatch(pollingGetUserinfoAgain(storeId)); } break; case 2: //开门失败 dispatch(emptyStoreInfo()); break; case 3: //暂无信息,继续调用 dispatch(pollingGetUserinfoAgain(storeId)); break; } }else{ dispatch(pollingGetUserinfoAgain(storeId)); } }).catch(e=>{ UTILPATH.myLogger.error(`power_cut_find_user error ${e}`); dispatch(pollingGetUserinfoAgain(storeId)); }) // dispatch(tempGetUserInfo(storeId)); } }; export {pollingGetUserinfo}