import { config } from '../../config/index'; /** 获取售后单mock数据 */ function mockFetchRightsPreview(params) { console.log('[订单操作服务] 使用Mock数据获取售后预览', { params, timestamp: new Date().toISOString() }); const { delay } = require('../_utils/delay'); const { genRightsPreview } = require('../../model/order/applyService'); return delay().then(() => { const result = genRightsPreview(params); console.log('[订单操作服务] Mock售后预览数据生成完成', result); return result; }); } /** 获取售后单数据 */ export function fetchRightsPreview(params) { console.log('[订单操作服务] 开始获取售后预览', { params, useMock: config.useMock, timestamp: new Date().toISOString() }); if (config.useMock) { console.log('[订单操作服务] 使用Mock模式获取售后预览'); return mockFetchRightsPreview(params); } console.log('[订单操作服务] 使用真实API获取售后预览(暂未实现)'); return new Promise((resolve) => { resolve('real api'); }); } /** 确认收货 */ export function dispatchConfirmReceived(orderNo) { console.log('[订单操作服务] 开始确认收货', { orderNo, useMock: config.useMock, timestamp: new Date().toISOString() }); if (config.useMock) { console.log('[订单操作服务] 使用Mock模式确认收货'); const { delay } = require('../_utils/delay'); return delay().then(() => { console.log('[订单操作服务] Mock确认收货完成', { orderNo }); return { success: true, message: '确认收货成功' }; }); } return new Promise((resolve, reject) => { const token = wx.getStorageSync('token'); console.log('[订单操作服务] 检查登录状态', { hasToken: !!token, orderNo }); if (!token) { console.error('[订单操作服务] 用户未登录'); reject(new Error('未登录')); return; } if (!orderNo) { console.error('[订单操作服务] 缺少订单号'); reject(new Error('缺少订单号')); return; } const requestUrl = `${config.apiBase}/orders/${orderNo}/confirm`; console.log('[订单操作服务] 发送确认收货API请求', { url: requestUrl, orderNo }); wx.request({ url: requestUrl, method: 'POST', header: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }, success: (res) => { console.log('[订单操作服务] 确认收货API响应', { statusCode: res.statusCode, dataCode: res.data?.code, message: res.data?.message, orderNo }); if (res.statusCode === 200 && res.data.code === 200) { console.log('[订单操作服务] 确认收货成功', { orderNo }); resolve({ success: true, message: '确认收货成功' }); } else { const errorMsg = res.data?.message || '确认收货失败'; console.error('[订单操作服务] 确认收货失败', { statusCode: res.statusCode, dataCode: res.data?.code, message: errorMsg, orderNo }); reject(new Error(errorMsg)); } }, fail: (err) => { console.error('[订单操作服务] 确认收货请求失败', { error: err, orderNo, url: requestUrl, timestamp: new Date().toISOString() }); reject(new Error('网络请求失败')); } }); }); } /** 获取可选的mock售后原因列表 */ function mockFetchApplyReasonList(params) { console.log('[订单操作服务] 使用Mock数据获取售后原因列表', { params, timestamp: new Date().toISOString() }); const { delay } = require('../_utils/delay'); const { genApplyReasonList } = require('../../model/order/applyService'); return delay().then(() => { const result = genApplyReasonList(params); console.log('[订单操作服务] Mock售后原因列表生成完成', { reasonCount: result.data?.length || 0 }); return result; }); } /** 获取可选的售后原因列表 */ export function fetchApplyReasonList(params) { console.log('[订单操作服务] 开始获取售后原因列表', { params, useMock: config.useMock, timestamp: new Date().toISOString() }); if (config.useMock) { console.log('[订单操作服务] 使用Mock模式获取售后原因列表'); return mockFetchApplyReasonList(params); } console.log('[订单操作服务] 使用真实API获取售后原因列表(暂未实现)'); return new Promise((resolve) => { resolve('real api'); }); } /** 发起mock售后申请 */ function mockDispatchApplyService(params) { console.log('[订单操作服务] 使用Mock数据发起售后申请', { params, timestamp: new Date().toISOString() }); const { delay } = require('../_utils/delay'); const { applyService } = require('../../model/order/applyService'); return delay().then(() => { const result = applyService(params); console.log('[订单操作服务] Mock售后申请完成', { success: result.success, serviceId: result.data?.serviceId }); return result; }); } /** 发起售后申请 */ export function dispatchApplyService(params) { console.log('[订单操作服务] 开始发起售后申请', { params, useMock: config.useMock, timestamp: new Date().toISOString() }); if (config.useMock) { console.log('[订单操作服务] 使用Mock模式发起售后申请'); return mockDispatchApplyService(params); } return new Promise((resolve, reject) => { const token = wx.getStorageSync('token'); console.log('[订单操作服务] 检查登录状态', { hasToken: !!token, orderNo: params.orderNo }); if (!token) { console.error('[订单操作服务] 用户未登录'); reject(new Error('未登录')); return; } if (!params.orderNo) { console.error('[订单操作服务] 缺少订单号', { params }); reject(new Error('缺少订单号')); return; } const requestUrl = `${config.apiBase}/orders/${params.orderNo}/service`; console.log('[订单操作服务] 发送售后申请API请求', { url: requestUrl, orderNo: params.orderNo, reason: params.reason, description: params.description }); wx.request({ url: requestUrl, method: 'POST', data: { reason: params.reason, description: params.description, images: params.images || [], type: params.type || 1 // 1-退款 2-退货退款 }, header: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }, success: (res) => { console.log('[订单操作服务] 售后申请API响应', { statusCode: res.statusCode, dataCode: res.data?.code, message: res.data?.message, serviceId: res.data?.data?.serviceId, orderNo: params.orderNo }); if (res.statusCode === 200 && res.data.code === 200) { console.log('[订单操作服务] 售后申请成功', { orderNo: params.orderNo, serviceId: res.data.data?.serviceId }); resolve({ success: true, message: '售后申请提交成功', data: res.data.data }); } else { const errorMsg = res.data?.message || '售后申请失败'; console.error('[订单操作服务] 售后申请失败', { statusCode: res.statusCode, dataCode: res.data?.code, message: errorMsg, orderNo: params.orderNo }); reject(new Error(errorMsg)); } }, fail: (err) => { console.error('[订单操作服务] 售后申请请求失败', { error: err, orderNo: params.orderNo, url: requestUrl, timestamp: new Date().toISOString() }); reject(new Error('网络请求失败')); } }); }); }