|
|
@@ -1,6 +1,8 @@
|
|
|
import { defineStore } from 'pinia'
|
|
|
+import { dayjs } from 'wot-design-uni'
|
|
|
import { StaticUrl } from '@/config'
|
|
|
import router from '@/router'
|
|
|
+import type { wxpay } from '@/api/globals'
|
|
|
|
|
|
interface userStroe {
|
|
|
token: string
|
|
|
@@ -131,6 +133,291 @@ export const useUserStore = defineStore('user', {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 通用支付逻辑
|
|
|
+ * @param orderNumber
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ handleCommonPayMent(orderNumber: string): Promise<wxpay> {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (!orderNumber) {
|
|
|
+ useGlobalToast().show({ msg: '订单号为空!请联系管理员' })
|
|
|
+ reject(new Error('订单号为空!请联系管理员'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ Apis.common.hybridPayment({ data: { orderNumber } }).then((res) => {
|
|
|
+ resolve(res.data)
|
|
|
+ uni.hideLoading()
|
|
|
+ }).catch((err) => {
|
|
|
+ uni.hideLoading()
|
|
|
+ reject(err)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }, /**
|
|
|
+ *
|
|
|
+ * @param businessType
|
|
|
+ * @param dvyType 配送类型 1:快递 2:自提 3:及时配送
|
|
|
+ * @param remarks
|
|
|
+ * @param shopId
|
|
|
+ * @param orderItemList
|
|
|
+ * @returns 下单获取待支付订单号
|
|
|
+ */
|
|
|
+ getOrderPayMent(freightFee: number, businessType: string, dvyType: number, shopId: number, orderItemList: {
|
|
|
+ prodCount?: number
|
|
|
+ skuId?: number
|
|
|
+ }[], remarks?: string): Promise<string> {
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (!this.selectedAddress) {
|
|
|
+ reject(new Error('请选择收货地址'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ Apis.common.addOrder({
|
|
|
+ data: {
|
|
|
+ channelId: Number(this.userInfo.channelId),
|
|
|
+ businessType,
|
|
|
+ addressId: this.selectedAddress.id,
|
|
|
+ dvyType,
|
|
|
+ freightAmount: freightFee,
|
|
|
+ shopId,
|
|
|
+ orderItemList,
|
|
|
+ remarks,
|
|
|
+ },
|
|
|
+ }).then((res) => {
|
|
|
+ resolve(res.data)
|
|
|
+ uni.hideLoading()
|
|
|
+ }).catch((err) => {
|
|
|
+ uni.hideLoading()
|
|
|
+ reject(err)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param orderInfo
|
|
|
+ * @returns 统一拉起微信支付
|
|
|
+ * @param type 0是下单,1是列表下单
|
|
|
+ */
|
|
|
+
|
|
|
+ getWxCommonPayment(orderPay: wxpay, type: number) {
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ const orderInfo = {
|
|
|
+ appid: orderPay.appId,
|
|
|
+ timeStamp: orderPay.timeStamp,
|
|
|
+ nonceStr: orderPay.nonceStr,
|
|
|
+ package: orderPay.package,
|
|
|
+ signType: orderPay.signType,
|
|
|
+ paySign: orderPay.paySign,
|
|
|
+ }
|
|
|
+ uni.requestPayment({
|
|
|
+ provider: 'wxpay',
|
|
|
+ orderInfo,
|
|
|
+ ...orderInfo,
|
|
|
+ success: (res) => {
|
|
|
+ if (!type) {
|
|
|
+ this.paySuccess()
|
|
|
+ }
|
|
|
+ resolve(res)
|
|
|
+ },
|
|
|
+ fail: (e) => {
|
|
|
+ console.log(e, '失败')
|
|
|
+ if (!type) {
|
|
|
+ this.payError()
|
|
|
+ }
|
|
|
+ reject(e)
|
|
|
+ },
|
|
|
+ complete() {
|
|
|
+ uni.hideLoading()
|
|
|
+ },
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 支付成功统一跳转
|
|
|
+ */
|
|
|
+ paySuccess() {
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ const { paySuccessPath, payBackIndexPath } = storeToRefs(useSysStore())
|
|
|
+ paySuccessPath.value = 'xsb-order'
|
|
|
+ payBackIndexPath.value = 'subPack-xsb/commonTab/index'
|
|
|
+ router.replace({ name: 'common-paySuccess' })
|
|
|
+ setTimeout(() => {
|
|
|
+ resolve(1)
|
|
|
+ }, 2000)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 支付失败统一跳转
|
|
|
+ */
|
|
|
+ payError() {
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ const { paySuccessPath, payBackIndexPath } = storeToRefs(useSysStore())
|
|
|
+ paySuccessPath.value = 'xsb-order'
|
|
|
+ payBackIndexPath.value = 'subPack-xsb/commonTab/index'
|
|
|
+ router.replace({ name: 'common-payError' })
|
|
|
+ setTimeout(() => {
|
|
|
+ resolve(1)
|
|
|
+ }, 2000)
|
|
|
+ })
|
|
|
+ }, /**
|
|
|
+ * 支付成功清空购买的商品的购物车
|
|
|
+ */
|
|
|
+
|
|
|
+ clearCart(skuList: Api.CartSkuVo[]) {
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ const skuids = skuList.map(item => item.id).join(',')
|
|
|
+ if (skuids.length) {
|
|
|
+ Apis.common.deleteShoppingCart({
|
|
|
+ pathParams: {
|
|
|
+ ids: skuids,
|
|
|
+ },
|
|
|
+ }).then(async (res) => {
|
|
|
+ resolve(res)
|
|
|
+ await useSmqjhCartStore().getCartList('XSB')
|
|
|
+ uni.hideLoading()
|
|
|
+ }).finally(() => resolve(1))
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ resolve(1)
|
|
|
+ uni.hideLoading()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 统一确认收货
|
|
|
+ * @param order
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ handleCommonOrderReceive(order: Api.xsbOrderList) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ useGlobalMessage().confirm({
|
|
|
+ title: '确认收货',
|
|
|
+ msg: '确定要确认收货吗?',
|
|
|
+ success: async () => {
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ await Apis.xsb.confirmReceipt({
|
|
|
+ data: {
|
|
|
+ orderNumber: String(order.orderNumber),
|
|
|
+ },
|
|
|
+ })
|
|
|
+ resolve(1)
|
|
|
+ },
|
|
|
+ fail: err => reject(err),
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 统一删除订单
|
|
|
+ * @param order
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ handleCommonDeleteOrder(order: Api.xsbOrderList) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ useGlobalMessage().confirm({
|
|
|
+ title: '删除订单',
|
|
|
+ msg: '确定要删除该订单吗?',
|
|
|
+ success: async () => {
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ Apis.xsb.deleteOrder({
|
|
|
+ pathParams: {
|
|
|
+ ids: String(order.orderId),
|
|
|
+ },
|
|
|
+ }).then(res => resolve(res)).catch(err => reject(err)).finally(() => uni.hideLoading())
|
|
|
+ },
|
|
|
+ fail: async (err) => {
|
|
|
+ reject(err)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 统一取消订单
|
|
|
+ * @param order
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ handleCommonCancelOrder(order: Api.xsbOrderList) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ useGlobalMessage().confirm({
|
|
|
+ title: '取消订单',
|
|
|
+ msg: '确定要取消订单吗?',
|
|
|
+ success: async () => {
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ Apis.xsb.cancelOrder({
|
|
|
+ data: {
|
|
|
+ orderNo: String(order.orderNumber),
|
|
|
+ },
|
|
|
+ }).then(res => resolve(res)).catch(err => reject(err)).finally(() => uni.hideLoading())
|
|
|
+ },
|
|
|
+ fail: async (err) => {
|
|
|
+ reject(err)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleXSBCommonOrderStatusText(order: Api.xsbOrderList): any {
|
|
|
+ if (order.hbOrderStatus === OrderStatus.PaddingPay) {
|
|
|
+ const endTime = dayjs(order.createTime).add(16, 'minutes')
|
|
|
+ const remaining = dayjs(endTime).valueOf() - dayjs().valueOf()
|
|
|
+ return Math.max(0, remaining) // 确保不会返回负数
|
|
|
+ }
|
|
|
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderAccepted) {
|
|
|
+ return '订单已接单'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderWaitDelivery) {
|
|
|
+ return '订单待配送'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderDelivering) {
|
|
|
+ return '订单配送中'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderCancelAudit) {
|
|
|
+ return '订单取消审核'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderCancel) {
|
|
|
+ return '订单取消'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderArrived) {
|
|
|
+ return '订单已送达'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderCompleted) {
|
|
|
+ return '订单完成'
|
|
|
+ }
|
|
|
+ return '未知订单状态'
|
|
|
+ },
|
|
|
+ handleFilmCommonOrderStatusText(order: Api.xsbOrderList): any {
|
|
|
+ if (order.hbOrderStatus === OrderStatus.PaddingPay) {
|
|
|
+ const endTime = dayjs(order.createTime).add(16, 'minutes')
|
|
|
+ const remaining = dayjs(endTime).valueOf() - dayjs().valueOf()
|
|
|
+ return Math.max(0, remaining) // 确保不会返回负数
|
|
|
+ }
|
|
|
+
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderAccepted) {
|
|
|
+ return '待出票'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderWaitDelivery) {
|
|
|
+ return '订单待配送'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderDelivering) {
|
|
|
+ return '出票中'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderCancelAudit) {
|
|
|
+ return '订单取消审核'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderCancel) {
|
|
|
+ return '订单取消'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderArrived) {
|
|
|
+ return '订单完成'
|
|
|
+ }
|
|
|
+ if (order.hbOrderStatus === OrderStatus.OrderCompleted) {
|
|
|
+ return '订单完成'
|
|
|
+ }
|
|
|
+ return '未知订单状态'
|
|
|
+ },
|
|
|
},
|
|
|
})
|