diff --git a/src/stores/AuthStore.js b/src/stores/AuthStore.js index 610855c..eb7bf98 100644 --- a/src/stores/AuthStore.js +++ b/src/stores/AuthStore.js @@ -7,6 +7,7 @@ const useAuthStore = create((set, get) => ({ // {"userId":"383","username":"廖一军","avatarUrl":"https://static-legacy.dingtalk.com/media/lALPBDDrhXr716HNAoDNAoA_640_640.png","mobile":"+86-18777396951","email":"lyj@hainatravel.com","openId":"iioljiPmZ4RPoOYpkFiSn7IKAiEiE","accountList":[{"OPI_SN":383,"OPI_Code":"LYJ","OPI_NameCN":"廖一军","OPI_DEI_SN":7,"OPI_NameEN":"Jimmy Liow"},{"OPI_SN":609,"OPI_Code":"LYJAH","OPI_NameCN":"廖一军(ah)","OPI_DEI_SN":28,"OPI_NameEN":"Jimmy Liow"}]} loginUser: { userId: -1, + userIdStr: '-1', username: '', avatarUrl: '', mobile: '', @@ -18,18 +19,23 @@ const useAuthStore = create((set, get) => ({ loginStatus: 0, - authenticate: async (authCode) => { + login: async (authCode) => { - const { saveUserSession, updateLoginStatus } = get() + const { saveUserSession, setLoginStatus } = get() - updateLoginStatus(200) + setLoginStatus(200) const json = await fetchJSON(`https://p9axztuwd7x8a7.mycht.cn/dingtalk/dingtalkwork/WhatsAppAuth`, { authCode }) if (json.errcode === 0) { + + set(() => ({ loginUser: { userId: json.result.opisn, + userIdStr: json.result?.accountlist.map(acc => { + return acc.OPI_SN + }).join(','), accountName: json.result.opicode, username: json.result.nick, avatarUrl: json.result.avatarUrl, @@ -40,13 +46,13 @@ const useAuthStore = create((set, get) => ({ } })) saveUserSession() - updateLoginStatus(302) + setLoginStatus(302) } else { - updateLoginStatus(403) + setLoginStatus(403) } }, - updateLoginStatus: (code) => { + setLoginStatus: (code) => { set(() => ({ loginStatus: code })) @@ -57,6 +63,7 @@ const useAuthStore = create((set, get) => ({ set(() => ({ loginUser: { userId: -1, + userIdStr: '-1', username: '', avatarUrl: '', mobile: '', diff --git a/src/views/DingdingQRCode.jsx b/src/views/DingdingQRCode.jsx index d4b86a4..f1edae1 100644 --- a/src/views/DingdingQRCode.jsx +++ b/src/views/DingdingQRCode.jsx @@ -11,7 +11,7 @@ function DingdingQRCode() { const navigate = useNavigate() - const { loginStatus, authenticate, logout, updateLoginStatus } = useAuthStore() + const { loginStatus, login, logout, setLoginStatus } = useAuthStore() useEffect (() => { if (location.search === '?out') { @@ -38,10 +38,10 @@ function DingdingQRCode() { }, (loginResult) => { const { authCode } = loginResult - authenticate(authCode) + login(authCode) }, (errorMsg) => { - updateLoginStatus(403) + setLoginStatus(403) console.error(`Login Error: ${errorMsg}`) }, ) diff --git a/src/views/OrderFollow.jsx b/src/views/OrderFollow.jsx index 45996e2..595b822 100644 --- a/src/views/OrderFollow.jsx +++ b/src/views/OrderFollow.jsx @@ -206,7 +206,7 @@ function OrderList({ formValues }) { const [orderData, setOrderData] = useState([]) const [loading, setLoading] = useState(false) const { loginUser } = useAuthStore() - let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userId}&otype=${formValues.type}` + let fetchOrderUrl = `${API_HOST}/getwlorder?opisn=${loginUser.userIdStr}&otype=${formValues.type}` if (formValues.type === 'advance') { const fromDate = formValues.startDateRange[0].format('YYYY-MM-DD') @@ -219,7 +219,7 @@ function OrderList({ formValues }) { confirmThruDate = formValues.confirmDateRange[1].format('YYYY-MM-DD') } fetchOrderUrl = prepareUrl('https://p9axztuwd7x8a7.mycht.cn/whatsapp_server/getdvancedwlorder') - .append('opisn', loginUser.userId) + .append('opisn', loginUser.userIdStr) .append('startdate', fromDate) .append('enddate', thruDate) .append('tag', formValues.orderLabel)