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 } } };