hookehuyr

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

/*
* @Date: 2024-01-01 00:00:00
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-09-05 16:26:31
* @FilePath: /lls_program/src/api/reward.js
* @Description: 优惠券相关接口
*/
import { fn, fetch } from './fn';
const Api = {
COUPON_HOME: '/srv/?f=walk&a=coupon&t=home',
POINT_RANGES: '/srv/?f=walk&a=coupon&t=point_ranges',
COUPON_LIST: '/srv/?f=walk&a=coupon&t=list',
COUPON_DETAIL: '/srv/?f=walk&a=coupon&t=detail',
REDEEM_COUPON: '/srv/?f=walk&a=coupon&t=redeem',
MY_COUPON_LIST: '/srv/?f=walk&a=redemption&t=list',
MY_COUPON_DETAIL: '/srv/?f=walk&a=redemption&t=detail',
USE_COUPON: '/srv/?f=walk&a=coupon&t=use',
}
/**
* @description: 积分兑换首页
* @returns {Promise} 返回首页数据
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data[] - 响应数据
* @returns {string} response.data[].id - id
* @returns {string} response.data[].title - 标题
* @returns {string} response.data[].note - 描述
* @returns {string} response.data[].background_url - 背景图
* @returns {string} response.data[].tips - 银龄购提示
*/
export const getCouponHomeAPI = (params) => fn(fetch.get(Api.COUPON_HOME, params));
/**
* @description: 获取筛选积分范围
* @returns {Promise} 返回积分范围数据
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Array} response.data[] - 响应数据
* @returns {string} response.data[].id - id
* @returns {string} response.data[].points - 积分范围,例如:100-200
*/
export const getPointRangesAPI = (params) => fn(fetch.get(Api.POINT_RANGES, params));
/**
* @description: 获取优惠券列表
* @param {Object} params - 查询参数
* @param {string} params.keyword - 搜索关键词(可选)
* @param {string} params.point_range - 积分范围(可选)
* @param {string} params.sort - 排序字段(可选)ASC=从小到大,DESC=从大到小
* @param {number} params.page - 页码(可选)从 0 开始
* @param {number} params.limit - 每页数量(可选)默认值是10
* @returns {Promise} 返回优惠券列表
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
*/
export const getCouponListAPI = (params = {}) => fn(fetch.get(Api.COUPON_LIST, params));
/**
* @description: 获取优惠券详情
* @param {string} id - 优惠券ID
* @returns {Promise} 返回优惠券详情
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
* @returns {Object} response.data.id - 优惠券ID
* @returns {string} response.data.title - 优惠券标题
* @returns {string} response.data.banner - 优惠券banner图
* @returns {string} response.data.points_cost - 需要多少积分兑换
* @returns {Array} response.data.applicable_stores[string] - 可用门店
* @returns {Array} response.data.redeem_rules[string] - 兑换规则
* @returns {Array} response.data.usage_rules[string] - 使用规则
* @returns {Boolean} response.data.can_redeem - 是否可以兑换:true=可以,false=不可以
*/
export const getCouponDetailAPI = (params) => fn(fetch.get(Api.COUPON_DETAIL, params));
/**
* @description: 兑换优惠券
* @param {string} id - 优惠券ID
* @returns {Promise} 返回兑换结果
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
*/
export const redeemCouponAPI = (params) => fn(fetch.post(Api.REDEEM_COUPON, params));
/**
* @description: 获取我的优惠券列表
* @param {Object} params - 查询参数
* @param {string} params.status - 优惠券状态:UNUSED=未使用, USED=已使用, EXPIRED=已过期,为空表示全部状态
* @param {number} params.page - 页码(可选)
* @param {number} params.limit - 每页数量(可选)
* @returns {Promise} 返回我的优惠券列表
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
* @returns {string} response.data.id - 我的优惠券ID
* @returns {string} response.data.title - 优惠券标题
* @returns {string} response.data.thumbnail - 优惠券缩略图
* @returns {string} response.data.status - 优惠券状态, UNUSED=未使用, USED=已使用, EXPIRED=已过期
* @returns {string} response.data.expire_time - 有效期截止时间
*/
export const getMyCouponListAPI = (params = {}) => fn(fetch.get(Api.MY_COUPON_LIST, params));
/**
* @description: 获取我的优惠券详情
* @param {string} id - 我的优惠券ID
* @returns {Promise} 返回我的优惠券详情
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
* @returns {string} response.data.id - 我的优惠券ID
* @returns {string} response.data.title - 优惠券标题
* @returns {string} response.data.banner - 优惠券banner图
* @returns {string} response.data.status - 优惠券状态, UNUSED=未使用, USED=已使用, EXPIRED=已过期
* @returns {string} response.data.expire_time - 有效期截止时间
* @returns {Array} response.data.applicable_stores[string] - 可用门店
* @returns {Array} response.data.usage_rules[string] - 使用规则
*/
export const getMyCouponDetailAPI = (params) => fn(fetch.get(Api.MY_COUPON_DETAIL, params));
/**
* @description: 核销优惠券
* @param {string} id - 我的优惠券ID
* @returns {Promise} 返回核销结果
* @returns {Object} response - 响应对象
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
*/
export const useCouponAPI = (params) => fn(fetch.post(Api.USE_COUPON, params));