diff --git a/src/api/shop/index.ts b/src/api/shop/index.ts index c9aa220..c9c42f0 100644 --- a/src/api/shop/index.ts +++ b/src/api/shop/index.ts @@ -66,6 +66,9 @@ export async function getBalanceApi(corpid: string, openid: string) { export async function getBalanceByQyUserid(corpid: string, userid: string) { return await http.get("payment/getBalanceByQyUserid", { corpid, userid }); } +export async function getUserBalance(corpid: string, ab98UserId: number) { + return await http.get("payment/getUserBalance", { corpid, ab98UserId }); +} export async function getShopListApi(corpid: string, mode?: number) { const params: any = { diff --git a/src/api/shop/types.ts b/src/api/shop/types.ts index 640d1fb..522c6f8 100644 --- a/src/api/shop/types.ts +++ b/src/api/shop/types.ts @@ -56,6 +56,8 @@ export interface SubmitOrderRequestData { openid: string; /** 系统用户ID */ userid: string; + /** 汇邦云用户ID */ + ab98UserId: number; /** 企业ID */ corpid: string; /** 支付类型 wechat:微信 balance:余额 */ diff --git a/src/pages/index/checkout.vue b/src/pages/index/checkout.vue index 045aeae..da6e5ac 100644 --- a/src/pages/index/checkout.vue +++ b/src/pages/index/checkout.vue @@ -24,10 +24,10 @@ const rentingCabinetStore = useRentingCabinetStore(); const { rentingCartItems, rentingCartTotalPrice } = storeToRefs(rentingCabinetStore); const wxStore = useWxStore(); -const { openid, balance, corpidLogin, userid: qyUserid, name: qyName } = storeToRefs(wxStore); +const { openid, balance, corpidLogin, userid: qyUserid, name: qyName, ab98UserId } = storeToRefs(wxStore); const ab98UserStore = useAb98UserStore(); -const { tel, userid: ab98Userid, name } = storeToRefs(ab98UserStore); +const { tel, name } = storeToRefs(ab98UserStore); const productStore = useProductStore(); @@ -135,7 +135,7 @@ async function handleSubmit() { // 2 - 企业微信用户 // 1 - 汇邦云用户 // 0 - 外部用户 - const isInternal = corpidLogin.value ? 2 : ab98Userid.value ? 1 : 0; + const isInternal = corpidLogin.value ? 2 : ab98UserId.value ? 1 : 0; // 根据模式组织 goodsList let goodsListToSend; @@ -157,6 +157,7 @@ async function handleSubmit() { const requestData: SubmitOrderRequestData = { openid: openid.value, userid: wxStore.userid, + ab98UserId: ab98UserId.value, corpid: wxStore.corpid, goodsList: goodsListToSend, // 根据选中的支付方式value获取对应的类型 diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 14c4d6d..c0e6276 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -30,7 +30,6 @@ const shopId = ref(0) // 页面加载 onMounted(async () => { - // await wxStore.fakeQyLogin(); uni.login({ provider: 'weixin', //使用微信登录 success: function (loginRes) { diff --git a/src/pinia/stores/wx.ts b/src/pinia/stores/wx.ts index b7287f6..6efdca5 100644 --- a/src/pinia/stores/wx.ts +++ b/src/pinia/stores/wx.ts @@ -1,5 +1,5 @@ import { pinia } from "@/pinia" -import { getOpenIdApi, getBalanceApi, qyLogin, getBalanceByQyUserid, fakeQyLoginApi } from "@/api/shop" +import { getOpenIdApi, getBalanceApi, qyLogin, getBalanceByQyUserid, fakeQyLoginApi, getUserBalance } from "@/api/shop" import { ab98UserDTO, GetBalanceResponse } from "@/api/shop/types" import { useAb98UserStore } from "./ab98-user" import { defineStore } from "pinia" @@ -34,6 +34,8 @@ export const useWxStore = defineStore("wx", () => { // 汇邦云用户信息 const ab98User = ref(null); + const ab98UserId = ref(null); + const isFakeQyLogin = ref(false); // handleWxCallback 是否完成 const isHandleWxCallbackComplete = ref(true); @@ -53,6 +55,10 @@ export const useWxStore = defineStore("wx", () => { isCabinetAdmin.value = isAdmin; } + const setAb98UserId = (id: number) => { + ab98UserId.value = id; + } + const setAb98User = (user: ab98UserDTO) => { ab98User.value = user; const ab98UserStore = useAb98UserStore(); @@ -68,8 +74,8 @@ export const useWxStore = defineStore("wx", () => { } const refreshBalance = async () => { - if (corpid.value && userid.value) { - const res = await getBalanceByQyUserid(corpid.value, userid.value); + if (corpid.value && ab98UserId.value) { + const res = await getUserBalance(corpid.value, ab98UserId.value); if (res && res.code == 0) { balance.value = res.data.balance; useBalance.value = res.data.useBalance; @@ -82,7 +88,7 @@ export const useWxStore = defineStore("wx", () => { } } - const handleWxCallback = async (params: { corpid?: string; code?: string; state?: string; }) => { + /* const handleWxCallback = async (params: { corpid?: string; code?: string; state?: string; }) => { console.log('handleWxCallback:', params) isHandleWxCallbackComplete.value = false; // 开始处理,标记为未完成 if (params.code) { @@ -134,9 +140,6 @@ export const useWxStore = defineStore("wx", () => { if (!ab98User.value && balanceRes.data.ab98User) { setAb98User(balanceRes.data.ab98User); } - /* if (!corpid.value) { - corpid.value = balanceRes.data.corpid; - } */ } } } catch (err) { @@ -148,9 +151,9 @@ export const useWxStore = defineStore("wx", () => { } else { isHandleWxCallbackComplete.value = true; // 没有code参数,直接标记为已完成 } - } + } */ - const fakeQyLogin = async () => { + /* const fakeQyLogin = async () => { isFakeQyLogin.value = true; corpid.value = "wpZ1ZrEgAA2QTxIRcB4cMtY7hQbTcPAw"; corpidLogin.value = true; @@ -167,7 +170,7 @@ export const useWxStore = defineStore("wx", () => { } } isHandleWxCallbackComplete.value = true - } + } */ // 检测 handleWxCallback 是否完成的异步函数 const waitForHandleWxCallbackComplete = async (timeout = 30000): Promise => { @@ -186,6 +189,7 @@ export const useWxStore = defineStore("wx", () => { corpid.value = "wpZ1ZrEgAA2QTxIRcB4cMtY7hQbTcPAw"; openid.value = userDTO.openid || openid.value; wxUserDTO.value = userDTO; + ab98UserId.value = userDTO.ab98UserId || ab98UserId.value; if (userDTO.qyUserId) { qyUserId.value = userDTO.qyUserId; } @@ -197,8 +201,8 @@ export const useWxStore = defineStore("wx", () => { return { code, state, openid, corpid, userid, balance, useBalance, balanceLimit, isCabinetAdmin, corpidLogin, name, ab98User, qyUserId, isFakeQyLogin, - isHandleWxCallbackComplete, wxUserDTO, setOpenid, setBalance, handleWxCallback, setIsCabinetAdmin, - refreshBalance, setAb98User, fakeQyLogin, waitForHandleWxCallbackComplete, wxMpCallback } + isHandleWxCallbackComplete, wxUserDTO, ab98UserId, setOpenid, setBalance, setIsCabinetAdmin, + refreshBalance, setAb98User, waitForHandleWxCallbackComplete, wxMpCallback, setAb98UserId } }) /**