diff --git a/src/api/index.js b/src/api/index.js index 3b9b08d..56968cb 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -8,3 +8,4 @@ export const login = params => server.post({ url: '/Admino/AdminUser/login', ... export const stadiumFind = params => server.post({ url: '/stadium/find', ...params }); // 登录 export const stadiumBookList = params => server.post({ url: '/stadium/book/list', ...params }); // 订场列表 export const orderList = params => server.post({ url: '/stadium/order/list', ...params }); // 预约订单列表 + diff --git a/src/subpackage/authorize/pages/index.vue b/src/subpackage/authorize/pages/index.vue index 6be5105..40d976d 100644 --- a/src/subpackage/authorize/pages/index.vue +++ b/src/subpackage/authorize/pages/index.vue @@ -142,7 +142,8 @@ function successOperate(res){ console.log(res); showNone(res?.message || '登陆成功!'); let _data = res?.data ?? {}; - uni.setStorageSync('token',_data?.token ?? ''); + uni.setStorageSync('token', _data?.token ?? ''); + uni.setStorageSync('userInfo', _data?.user ?? {}); setTimeout(routeOperate, 1200); } diff --git a/src/subpackage/groupon/api/index.js b/src/subpackage/groupon/api/index.js index 66e0b07..28dd3ed 100644 --- a/src/subpackage/groupon/api/index.js +++ b/src/subpackage/groupon/api/index.js @@ -13,6 +13,7 @@ export const orderPayMini = params => server.post({ url: '/stadium/order/pay/min export const getOrder = params => server.post({ url: '/douyinMiniapp/202506/getOrder', ...params }); // 轮询获取订单号, 轮询了多久以后就直接放弃了 export const orderGet = params => server.post({ url: '/stadium/order/get', ...params }); // 预约订单详情 export const computedPayInfo = params => server.post({ url: '/stadium/order/pay/info', ...params }); // 订单支付接口-积分优惠券计算 +export const userCurrent = params => server.post({ url: '/user/current', ...params }); // 获取当前用户信息 diff --git a/src/subpackage/groupon/pages/confirm_order/ticket.vue b/src/subpackage/groupon/pages/confirm_order/ticket.vue index 2c23ede..8205240 100644 --- a/src/subpackage/groupon/pages/confirm_order/ticket.vue +++ b/src/subpackage/groupon/pages/confirm_order/ticket.vue @@ -9,6 +9,7 @@ import { formatDate } from "@/utils"; const stadiumInfo = ref({}); // 场馆信息 const ticketInfo = ref({}); // 票券信息 const verify_token = ref(''); +const POI_ID = ref(''); onLoad(() => { }); @@ -48,8 +49,8 @@ function pvc_func({ }) .then(res=>{ // routeTo(`/subpackage/groupon/pages/exchange_success`); - console.log('jsapiPreVerifyCertificates', res); verify_token.value = res?.data?.verify_token ?? ''; + POI_ID.value = res?.data?.poi_id ?? ''; }) } function confirmBtn(){ @@ -57,7 +58,7 @@ function confirmBtn(){ let _sVal = stadiumInfo.value; const _query = { verifyToken: verify_token.value ?? '', - poiId: _tVal?.poi_id ?? '', + poiId: POI_ID.value ?? '', orderList: [{ orderId: _tVal?.order_id ?? '', certificateList: [{ diff --git a/src/subpackage/groupon/pages/confirm_order/venue.vue b/src/subpackage/groupon/pages/confirm_order/venue.vue index e93b870..f18b9ff 100644 --- a/src/subpackage/groupon/pages/confirm_order/venue.vue +++ b/src/subpackage/groupon/pages/confirm_order/venue.vue @@ -4,26 +4,29 @@ import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import confirmTemplate from "../../components/confirm_template.vue"; import ticketItem from "../../components/ticket_item.vue"; import venueInfo from "../../components/venue_info.vue"; -import { jsapiPreVerifyCertificates, orderAdd, orderPayMini, computedPayInfo } from "../../api"; +import { jsapiPreVerifyCertificates, orderAdd, orderPayMini, computedPayInfo, userCurrent } from "../../api"; import { routeTo, showModal, showLoad, hideLoad } from '@/utils/polish'; import { accAdd } from "@/utils/calculation"; const stadiumInfo = ref({}); const ticketInfo = ref({}); const venueData = ref({}); const verify_token = ref(''); +const POI_ID = ref(''); const APPID = tt.getEnvInfoSync()?.microapp?.appId ?? ''; +const computedPrice = ref(-1); +const MobileNum = ref(''); // 手机号码 onMounted(() =>{ + setDefaultMobileNum(); const instance = getCurrentInstance().proxy const eventChannel = instance.getOpenerEventChannel(); - eventChannel.on('dataFromGrouponSiteSelect', data => { + eventChannel.on('dataFromGrouponSiteSelect', async data => { let { stadium, ticket, venueInfo } = data; stadiumInfo.value = stadium ?? {}; ticketInfo.value = ticket ?? {}; venueData.value = venueInfo ?? {}; - console.warn('dataFromGrouponSiteSelect data', data); let _classTags = (venueInfo?.venues ?? []).map(e=>e?._class_tag ?? ''); - pvc_func({ + let _token = await pvc_func({ appid: APPID, brand_id: stadium?.brand_id ?? '', stadium_id: stadium?.id ?? '', @@ -35,12 +38,15 @@ onMounted(() =>{ classify: venueInfo?.classify ?? '', class_tags: _classTags.filter(e=>e!=='').join(','), }) + if(!_token)return; let _totalPrice = 0; venueInfo.venues.forEach(e=>{ _totalPrice = accAdd(_totalPrice, e?.price ?? 0); }); + // 如果你从接口获取的金额如果超过0就不给下订单 computedPayInfo({ data: { + appid: APPID, brand_id: stadium?.brand_id ?? '', stadium_id: stadium?.id ?? '', amount: _totalPrice, @@ -55,32 +61,37 @@ onMounted(() =>{ start: `${_date} ${start}:00`, end: `${_date} ${end}:00`, tag: e?._class_tag ?? '', - price: e?.price ?? 0, + price: +(e?.price ?? 0), } }), douyin_groupon_coupon_code: ticket?.certificate_id ?? '' } }) .then(res=>{ - console.warn('computedPayInfo--->', res); + computedPrice.value = res?.data?.pay_amount ?? -1; }) }) }) function pvc_func(data){ - jsapiPreVerifyCertificates({ data }) + return jsapiPreVerifyCertificates({ data }) .then(res=>{ // routeTo(`/subpackage/groupon/pages/exchange_success`); console.log('jsapiPreVerifyCertificates', res); - verify_token.value = res?.data?.verify_token ?? ''; + let _token = res?.data?.verify_token ?? ''; + verify_token.value = _token; + POI_ID.value = res?.data?.poi_id ?? ''; + return _token }) } function confirmBtn(){ + if(computedPrice.value !== 0)return; + if(!isPhoneNumber(MobileNum.value))return showModal({ content: '请输入正确的手机号码' }); let _tVal = ticketInfo.value; const _query = { verifyToken: verify_token.value ?? '', - poiId: _tVal?.poi_id ?? '', + poiId: POI_ID.value ?? '', orderList: [{ orderId: _tVal?.order_id ?? '', certificateList: [ _tVal?.certificate_id ?? '' ] @@ -128,6 +139,7 @@ function createServerOrder(){ verify_token: verify_token.value ?? '', douyin_merchant_pay_amount: _tVal?.douyin_merchant_pay_amount ?? 0, douyin_groupon_coupon_code: _tVal?.certificate_id ?? '', + mobile: MobileNum.value ?? '', }) .then(cRes=>{ console.log('createBookOrder', cRes); @@ -157,6 +169,15 @@ function createBookOrder(data){ }) } +function setDefaultMobileNum(e){ + let _user = uni.getStorageSync('userInfo') || {}; + MobileNum.value = _user?.mobile ?? ''; +} + +function isPhoneNumber(number) { + return /^1[3-9]\d{9}$/.test(number); +} +