Files
template-10584/src/api/user/coupon/index.ts

79 lines
1.9 KiB
TypeScript

import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { UserCoupon, UserCouponParam } from './model';
import {SERVER_API_URL} from "@/utils/server";
/**
* 分页查询用户优惠券
*/
export async function pageUserCoupon(params: UserCouponParam) {
const res = await request.get<ApiResult<PageResult<UserCoupon>>>(
SERVER_API_URL + '/sys/user-coupon/page',
params
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询用户优惠券列表
*/
export async function listUserCoupon(params?: UserCouponParam) {
const res = await request.get<ApiResult<UserCoupon[]>>(
SERVER_API_URL + '/sys/user-coupon',
params
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取用户优惠券统计
*/
export async function getUserCouponCount(userId: number) {
const res = await request.get<ApiResult<{
total: number;
unused: number;
used: number;
expired: number;
}>>(
SERVER_API_URL + '/sys/user-coupon/count',
{ userId }
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询用户优惠券
*/
export async function getUserCoupon(id: number) {
const res = await request.get<ApiResult<UserCoupon>>(
SERVER_API_URL + '/sys/user-coupon/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 使用优惠券
*/
export async function useCoupon(couponId: number, orderId: number) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/sys/user-coupon/use',
{ couponId, orderId }
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}