hookehuyr

feat(api): 添加优惠券相关接口实现

1 +/*
2 + * @Date: 2024-01-01 00:00:00
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2025-09-05 16:26:31
5 + * @FilePath: /lls_program/src/api/reward.js
6 + * @Description: 优惠券相关接口
7 + */
8 +import { fn, fetch } from './fn';
9 +
10 +const Api = {
11 + COUPON_HOME: '/srv/?f=walk&a=coupon&t=home',
12 + POINT_RANGES: '/srv/?f=walk&a=coupon&t=point_ranges',
13 + COUPON_LIST: '/srv/?f=walk&a=coupon&t=list',
14 + COUPON_DETAIL: '/srv/?f=walk&a=coupon&t=detail',
15 + REDEEM_COUPON: '/srv/?f=walk&a=coupon&t=redeem',
16 + MY_COUPON_LIST: '/srv/?f=walk&a=redemption&t=list',
17 + MY_COUPON_DETAIL: '/srv/?f=walk&a=redemption&t=detail',
18 + USE_COUPON: '/srv/?f=walk&a=coupon&t=use',
19 +}
20 +
21 +/**
22 + * @description: 积分兑换首页
23 + * @returns {Promise} 返回首页数据
24 + * @returns {Object} response - 响应对象
25 + * @returns {number} response.code - 响应状态码
26 + * @returns {string} response.msg - 响应消息
27 + * @returns {Object} response.data[] - 响应数据
28 + * @returns {string} response.data[].id - id
29 + * @returns {string} response.data[].title - 标题
30 + * @returns {string} response.data[].note - 描述
31 + * @returns {string} response.data[].background_url - 背景图
32 + * @returns {string} response.data[].tips - 银龄购提示
33 + */
34 +export const getCouponHomeAPI = (params) => fn(fetch.get(Api.COUPON_HOME, params));
35 +
36 +/**
37 + * @description: 获取筛选积分范围
38 + * @returns {Promise} 返回积分范围数据
39 + * @returns {Object} response - 响应对象
40 + * @returns {number} response.code - 响应状态码
41 + * @returns {string} response.msg - 响应消息
42 + * @returns {Array} response.data[] - 响应数据
43 + * @returns {string} response.data[].id - id
44 + * @returns {string} response.data[].points - 积分范围,例如:100-200
45 + */
46 +export const getPointRangesAPI = (params) => fn(fetch.get(Api.POINT_RANGES, params));
47 +
48 +/**
49 + * @description: 获取优惠券列表
50 + * @param {Object} params - 查询参数
51 + * @param {string} params.keyword - 搜索关键词(可选)
52 + * @param {string} params.point_range - 积分范围(可选)
53 + * @param {string} params.sort - 排序字段(可选)ASC=从小到大,DESC=从大到小
54 + * @param {number} params.page - 页码(可选)从 0 开始
55 + * @param {number} params.limit - 每页数量(可选)默认值是10
56 + * @returns {Promise} 返回优惠券列表
57 + * @returns {Object} response - 响应对象
58 + * @returns {number} response.code - 响应状态码
59 + * @returns {string} response.msg - 响应消息
60 + * @returns {Object} response.data - 响应数据
61 + */
62 +export const getCouponListAPI = (params = {}) => fn(fetch.get(Api.COUPON_LIST, params));
63 +
64 +/**
65 + * @description: 获取优惠券详情
66 + * @param {string} id - 优惠券ID
67 + * @returns {Promise} 返回优惠券详情
68 + * @returns {Object} response - 响应对象
69 + * @returns {number} response.code - 响应状态码
70 + * @returns {string} response.msg - 响应消息
71 + * @returns {Object} response.data - 响应数据
72 + * @returns {Object} response.data.id - 优惠券ID
73 + * @returns {string} response.data.title - 优惠券标题
74 + * @returns {string} response.data.banner - 优惠券banner图
75 + * @returns {string} response.data.points_cost - 需要多少积分兑换
76 + * @returns {Array} response.data.applicable_stores[string] - 可用门店
77 + * @returns {Array} response.data.redeem_rules[string] - 兑换规则
78 + * @returns {Array} response.data.usage_rules[string] - 使用规则
79 + * @returns {Boolean} response.data.can_redeem - 是否可以兑换:true=可以,false=不可以
80 + */
81 +export const getCouponDetailAPI = (params) => fn(fetch.get(Api.COUPON_DETAIL, params));
82 +
83 +/**
84 + * @description: 兑换优惠券
85 + * @param {string} id - 优惠券ID
86 + * @returns {Promise} 返回兑换结果
87 + * @returns {Object} response - 响应对象
88 + * @returns {number} response.code - 响应状态码
89 + * @returns {string} response.msg - 响应消息
90 + * @returns {Object} response.data - 响应数据
91 + */
92 +export const redeemCouponAPI = (params) => fn(fetch.post(Api.REDEEM_COUPON, params));
93 +
94 +/**
95 + * @description: 获取我的优惠券列表
96 + * @param {Object} params - 查询参数
97 + * @param {string} params.status - 优惠券状态:UNUSED=未使用, USED=已使用, EXPIRED=已过期,为空表示全部状态
98 + * @param {number} params.page - 页码(可选)
99 + * @param {number} params.limit - 每页数量(可选)
100 + * @returns {Promise} 返回我的优惠券列表
101 + * @returns {Object} response - 响应对象
102 + * @returns {number} response.code - 响应状态码
103 + * @returns {string} response.msg - 响应消息
104 + * @returns {Object} response.data - 响应数据
105 + * @returns {string} response.data.id - 我的优惠券ID
106 + * @returns {string} response.data.title - 优惠券标题
107 + * @returns {string} response.data.thumbnail - 优惠券缩略图
108 + * @returns {string} response.data.status - 优惠券状态, UNUSED=未使用, USED=已使用, EXPIRED=已过期
109 + * @returns {string} response.data.expire_time - 有效期截止时间
110 + */
111 +export const getMyCouponListAPI = (params = {}) => fn(fetch.get(Api.MY_COUPON_LIST, params));
112 +
113 +/**
114 + * @description: 获取我的优惠券详情
115 + * @param {string} id - 我的优惠券ID
116 + * @returns {Promise} 返回我的优惠券详情
117 + * @returns {Object} response - 响应对象
118 + * @returns {number} response.code - 响应状态码
119 + * @returns {string} response.msg - 响应消息
120 + * @returns {Object} response.data - 响应数据
121 + * @returns {string} response.data.id - 我的优惠券ID
122 + * @returns {string} response.data.title - 优惠券标题
123 + * @returns {string} response.data.banner - 优惠券banner图
124 + * @returns {string} response.data.status - 优惠券状态, UNUSED=未使用, USED=已使用, EXPIRED=已过期
125 + * @returns {string} response.data.expire_time - 有效期截止时间
126 + * @returns {Array} response.data.applicable_stores[string] - 可用门店
127 + * @returns {Array} response.data.usage_rules[string] - 使用规则
128 + */
129 +export const getMyCouponDetailAPI = (params) => fn(fetch.get(Api.MY_COUPON_DETAIL, params));
130 +
131 +/**
132 + * @description: 核销优惠券
133 + * @param {string} id - 我的优惠券ID
134 + * @returns {Promise} 返回核销结果
135 + * @returns {Object} response - 响应对象
136 + * @returns {number} response.code - 响应状态码
137 + * @returns {string} response.msg - 响应消息
138 + * @returns {Object} response.data - 响应数据
139 + */
140 +export const useCouponAPI = (params) => fn(fetch.post(Api.USE_COUPON, params));