init
This commit is contained in:
271
miniprogram/services/points/index.js
Normal file
271
miniprogram/services/points/index.js
Normal file
@@ -0,0 +1,271 @@
|
||||
import { get, post } from '../_utils/request';
|
||||
import { config } from '../../config/index';
|
||||
|
||||
/**
|
||||
* 积分相关API服务
|
||||
*/
|
||||
|
||||
/**
|
||||
* 获取用户积分
|
||||
*/
|
||||
export function getUserPoints() {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 获取用户积分');
|
||||
return Promise.resolve(mockData.userPoints);
|
||||
}
|
||||
console.log('[积分API] 获取用户积分');
|
||||
return get('/points');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分概览
|
||||
*/
|
||||
export function getPointsOverview() {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 获取积分概览');
|
||||
return Promise.resolve(mockData.pointsOverview);
|
||||
}
|
||||
console.log('[积分API] 获取积分概览');
|
||||
return get('/points/overview');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分历史记录
|
||||
* @param {Object} params - 查询参数
|
||||
* @param {number} params.page - 页码
|
||||
* @param {number} params.pageSize - 每页数量
|
||||
* @param {string} params.type - 积分类型 (earn/spend)
|
||||
*/
|
||||
export function getPointsHistory(params = {}) {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 获取积分历史记录', params);
|
||||
return Promise.resolve(mockData.pointsHistory);
|
||||
}
|
||||
console.log('[积分API] 获取积分历史记录', params);
|
||||
return get('/points/history', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分规则
|
||||
*/
|
||||
export function getPointsRules() {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 获取积分规则');
|
||||
return Promise.resolve(mockData.pointsRules);
|
||||
}
|
||||
console.log('[积分API] 获取积分规则');
|
||||
return get('/points/rules');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分兑换商品列表
|
||||
* @param {Object} params - 查询参数
|
||||
* @param {number} params.page - 页码
|
||||
* @param {number} params.pageSize - 每页数量
|
||||
*/
|
||||
export function getPointsExchangeList(params = {}) {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 获取积分兑换商品列表', params);
|
||||
return Promise.resolve(mockData.exchangeList);
|
||||
}
|
||||
console.log('[积分API] 获取积分兑换商品列表', params);
|
||||
return get('/points/exchange', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 积分兑换
|
||||
* @param {number} exchangeId - 兑换商品ID
|
||||
* @param {number} quantity - 兑换数量
|
||||
*/
|
||||
export function exchangePoints(exchangeId, quantity = 1) {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 积分兑换', { exchangeId, quantity });
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
message: '兑换成功',
|
||||
data: {
|
||||
exchange_id: exchangeId,
|
||||
quantity: quantity,
|
||||
points_used: 500 * quantity
|
||||
}
|
||||
});
|
||||
}
|
||||
console.log('[积分API] 积分兑换', { exchangeId, quantity });
|
||||
return post('/points/exchange', { exchange_id: exchangeId, quantity });
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户兑换记录
|
||||
* @param {Object} params - 查询参数
|
||||
* @param {number} params.page - 页码
|
||||
* @param {number} params.pageSize - 每页数量
|
||||
*/
|
||||
export function getUserExchangeRecords(params = {}) {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 获取用户兑换记录', params);
|
||||
return Promise.resolve(mockData.exchangeRecords);
|
||||
}
|
||||
console.log('[积分API] 获取用户兑换记录', params);
|
||||
return get('/points/exchange/records', params);
|
||||
}
|
||||
|
||||
export function dailyCheckin() {
|
||||
if (config.useMock) {
|
||||
console.log('[积分API] Mock - 每日签到');
|
||||
return Promise.resolve({ code: 200, message: '今日登录积分已发放', data: { awarded: true } });
|
||||
}
|
||||
console.log('[积分API] 每日签到');
|
||||
return post('/points/daily-checkin');
|
||||
}
|
||||
// Mock数据 - 用于开发测试
|
||||
const mockData = {
|
||||
userPoints: {
|
||||
code: 200,
|
||||
message: '操作成功',
|
||||
data: {
|
||||
total_points: 1250,
|
||||
available_points: 1250,
|
||||
frozen_points: 0
|
||||
}
|
||||
},
|
||||
|
||||
pointsOverview: {
|
||||
code: 200,
|
||||
message: '操作成功',
|
||||
data: {
|
||||
total_points: 1250,
|
||||
available_points: 1250,
|
||||
frozen_points: 0,
|
||||
total_earned: 2500,
|
||||
total_spent: 1250,
|
||||
this_month_earned: 300,
|
||||
this_month_spent: 150
|
||||
}
|
||||
},
|
||||
|
||||
pointsHistory: {
|
||||
code: 200,
|
||||
message: '操作成功',
|
||||
data: {
|
||||
list: [
|
||||
{
|
||||
id: 1,
|
||||
type: 'earn',
|
||||
points: 100,
|
||||
description: '购物获得积分',
|
||||
source: 'order',
|
||||
created_at: '2024-01-15T10:30:00Z'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: 'spend',
|
||||
points: -50,
|
||||
description: '兑换优惠券',
|
||||
source: 'exchange',
|
||||
created_at: '2024-01-14T15:20:00Z'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
type: 'earn',
|
||||
points: 20,
|
||||
description: '每日签到',
|
||||
source: 'checkin',
|
||||
created_at: '2024-01-14T09:00:00Z'
|
||||
}
|
||||
],
|
||||
total: 3,
|
||||
page: 1,
|
||||
page_size: 10
|
||||
}
|
||||
},
|
||||
|
||||
pointsRules: {
|
||||
code: 200,
|
||||
message: '操作成功',
|
||||
data: [
|
||||
{
|
||||
id: 1,
|
||||
title: '购物获得积分', // 修改字段名为title,与后端一致
|
||||
description: '每消费1元获得1积分',
|
||||
points: 1,
|
||||
type: 'order'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: '每日签到', // 修改字段名为title,与后端一致
|
||||
description: '每日签到获得20积分',
|
||||
points: 20,
|
||||
type: 'checkin'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: '邀请好友', // 修改字段名为title,与后端一致
|
||||
description: '成功邀请好友注册获得100积分',
|
||||
points: 100,
|
||||
type: 'invite'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
exchangeList: {
|
||||
code: 200,
|
||||
message: '操作成功',
|
||||
data: [
|
||||
{
|
||||
id: 1,
|
||||
name: '10元优惠券',
|
||||
description: '满100元可用',
|
||||
points: 500, // 修改字段名为points,与后端一致
|
||||
stock: 100,
|
||||
image: 'https://via.placeholder.com/200x200',
|
||||
type: 'coupon'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '20元优惠券',
|
||||
description: '满200元可用',
|
||||
points: 1000, // 修改字段名为points,与后端一致
|
||||
stock: 50,
|
||||
image: 'https://via.placeholder.com/200x200',
|
||||
type: 'coupon'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '精美礼品',
|
||||
description: '限量版纪念品',
|
||||
points: 2000, // 修改字段名为points,与后端一致
|
||||
stock: 10,
|
||||
image: 'https://via.placeholder.com/200x200',
|
||||
type: 'gift'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
exchangeRecords: {
|
||||
code: 200,
|
||||
message: '操作成功',
|
||||
data: {
|
||||
list: [
|
||||
{
|
||||
id: 1,
|
||||
exchange_item_name: '10元优惠券',
|
||||
points_used: 500,
|
||||
quantity: 1,
|
||||
status: 'completed',
|
||||
created_at: '2024-01-14T15:20:00Z'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
exchange_item_name: '精美礼品',
|
||||
points_used: 2000,
|
||||
quantity: 1,
|
||||
status: 'processing',
|
||||
created_at: '2024-01-13T10:30:00Z'
|
||||
}
|
||||
],
|
||||
total: 2,
|
||||
page: 1,
|
||||
page_size: 10
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user