init
This commit is contained in:
275
miniprogram/services/order/applyService.js
Normal file
275
miniprogram/services/order/applyService.js
Normal file
@@ -0,0 +1,275 @@
|
||||
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('网络请求失败'));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user