吴昊天 22362638ef refactor(订单): 移除拆单发货与拆单退款残留逻辑
- 发货服务删除 splitDelivery/getCartList/tidyCartList,通用发货任务改走 delivery()
- 删除子单收货联动 checkMaster、拆单开票 splitOrderInvoice 及 pid 分支
- 普通订单模块与开放接口移除拆单控制器方法、路由与拆单文案
- 订单详情 related_orders 恒为 null,文档同步为不支持拆单
2026-10-24 18:20:37 +08:00

160 lines
13 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
use think\facade\Route;
/**
* 订单路由
* 旧版 StoreOrder 操作方法已迁移至各产品类型扩展端(modules/product/normal/controller/admin/OrderController)
* 中台仅保留统一查询接口
*/
Route::group('order', function () {
// ==================== 以下为旧版 StoreOrder 路由(已迁移至扩展端,注释保留供参考) ====================
//获取快递信息 → modules/product/normal/OrderController::getExpressList / getExpress
// Route::get('kuaidi_coms', [\app\adminapi\controller\order\OrderCenterController::class, 'getKuaidiComs']);
//取消商家寄件
// Route::post('shipment_cancel_order/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'shipmentCancelOrder']);
//打印订单
// Route::get('print/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'orderPrint']);
//订单核销
// Route::post('write', [\app\adminapi\controller\order\OrderCenterController::class, 'writeOrder']);
//订单号核销
// Route::put('write_update/:order_id', [\app\adminapi\controller\order\OrderCenterController::class, 'writeUpdate']);
//获取订单编辑表单 → modules/product/normal/OrderController::editPrice
// Route::get('edit/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'edit']);
//修改订单 → modules/product/normal/OrderController::updatePrice
// Route::put('update/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'update']);
//确认收货 → modules/product/normal/OrderController::confirmReceipt
// Route::put('take/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'takeDelivery']);
//批量发货 → modules/product/normal/OrderController::batchShipment
// Route::get('delivery/import_express', [\app\adminapi\controller\order\OrderCenterController::class, 'importExpress']);
//发送货 → modules/product/normal/OrderController::shipment
// Route::put('delivery/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'updateDelivery']);
//获取商家寄件金额 → modules/product/normal/OrderController::getSheetInfo
// Route::post('price', [\app\adminapi\controller\order\OrderCenterController::class, 'getPrice']);
//订单退款表单 → modules/product/normal/OrderController::getRefundForm
// Route::get('refund/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'refund']);
//订单退款 → modules/product/normal/OrderController::processRefund
// Route::put('refund/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'updateRefund']);
//获取电子面单模板 → modules/product/normal/OrderController::getExpressTemp
// Route::get('express/temp', [\app\adminapi\controller\order\OrderCenterController::class, 'expressTemp']);
//获取物流信息 → modules/product/normal/OrderController::getExpress
// Route::get('express/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'getExpress']);
//获取物流公司 → modules/product/normal/OrderController::getExpressList
// Route::get('express_list', [\app\adminapi\controller\order\OrderCenterController::class, 'express']);
//获取配送信息表单 → modules/product/normal/OrderController::getDistributionForm(TODO)
// Route::get('distribution/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'distribution']);
//修改配送信息 → modules/product/normal/OrderController::updateDistribution
// Route::put('distribution/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'updateDistribution']);
//获取不退款表单
// Route::get('no_refund/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'noRefund']);
//修改不退款理由
// Route::put('no_refund/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'updateUnRefund']);
//线下支付 → modules/product/normal/OrderController::confirmPay
// Route::post('pay_offline/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'payOffline']);
//获取退积分表单 → modules/product/normal/OrderController::updateIntegral
// Route::get('refund_integral/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'refundIntegral']);
//修改退积分
// Route::put('refund_integral/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'updateRefundIntegral']);
//获取订单状态
// Route::get('status/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'status']);
//面单默认配置信息 → modules/product/normal/OrderController::getSheetInfo
// Route::get('sheet_info', [\app\adminapi\controller\order\OrderCenterController::class, 'getDeliveryInfo']);
//电子面单模板列表 → modules/product/normal/OrderController::getExpressTemp
// Route::get('expr/temp', [\app\adminapi\controller\order\OrderCenterController::class, 'exprTemp']);
//打印发货单 → modules/product/normal/OrderController::printPickList
// Route::get('print/shipping/:order_id', [\app\adminapi\controller\order\OrderCenterController::class, 'printShipping']);
//更多操作打印电子面单 → modules/product/normal/OrderController::printReceipt
// Route::get('order_dump/:order_id', [\app\adminapi\controller\order\OrderCenterController::class, 'orderDump']);
//未发货的订单修改发货地址 → modules/product/normal/OrderController::editAddress
// Route::post('edit_address/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'editAddress']);
// ==================== 发票路由(不变) ====================
//发票列表头部统计
Route::get('invoice/chart', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'chart'])->name('StoreOrderorInvoiceChart')->option(['real_name' => '发票列表头部统计']);
//申请发票列表
Route::get('invoice/list', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'list'])->name('StoreOrderorInvoiceList')->option(['real_name' => '申请发票列表']);
//设置发票状态
Route::post('invoice/set/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'setInvoice'])->name('StoreOrderorInvoiceSet')->option(['real_name' => '设置发票状态']);
//开票订单详情
Route::get('invoice_order_info/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'orderInfo'])->name('StoreOrderorInvoiceOrderInfo')->option(['real_name' => '开票订单详情']);
//获取发票开具页面iframe地址
Route::get('invoice_issuance_url/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'invoiceIssuanceUrl'])->name('invoiceIssuanceUrl')->option(['real_name' => '获取发票开具页面iframe地址']);
//保存发票信息
Route::post('save_invoice_info/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'saveInvoiceInfo'])->name('saveInvoiceInfo')->option(['real_name' => '保存发票信息']);
//电子发票分类
Route::get('invoice_category', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'invoiceCategory'])->name('invoiceCategory')->option(['real_name' => '电子发票分类']);
//开具发票
Route::post('invoice_issuance', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'invoiceIssuance'])->name('invoiceIssuance')->option(['real_name' => '开具发票']);
//查看发票详情
Route::get('invoice_info/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'invoiceInfo'])->name('invoiceInfo')->option(['real_name' => '查看发票详情']);
//开具负数发票
Route::get('red_invoice_issuance/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'redInvoiceIssuance'])->name('redInvoiceIssuance')->option(['real_name' => '开具负数发票']);
//下载发票
Route::get('down_invoice/:id', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'downInvoice'])->name('downInvoice')->option(['real_name' => '下载发票']);
//电子发票配置
Route::get('elec_invoice_config', [\app\adminapi\controller\order\StoreOrderInvoiceController::class, 'elecInvoiceConfig'])->name('elecInvoiceConfig')->option(['real_name' => '电子发票配置']);
// ==================== 订单中台核心接口 ====================
//订单中台列表
Route::get('center/list', [\app\adminapi\controller\order\OrderCenterController::class, 'index'])->option(['real_name' => '订单中台列表']);
//订单中台统计
Route::get('center/stat', [\app\adminapi\controller\order\OrderCenterController::class, 'stat'])->option(['real_name' => '订单中台统计']);
//订单中台详情
Route::get('center/detail/:id', [\app\adminapi\controller\order\OrderCenterController::class, 'detail'])->option(['real_name' => '订单中台详情']);
//订单中台备注
Route::put('center/remark', [\app\adminapi\controller\order\OrderCenterController::class, 'remark'])->option(['real_name' => '订单中台备注']);
//订单中台删除
Route::delete('center/delete', [\app\adminapi\controller\order\OrderCenterController::class, 'delete'])->option(['real_name' => '订单中台删除']);
//订单中台分类列表
Route::get('center/categories', [\app\adminapi\controller\order\OrderCenterController::class, 'categories'])->option(['real_name' => '订单中台分类列表']);
//订单中台筛选选项
Route::get('center/filter_options', [\app\adminapi\controller\order\OrderCenterController::class, 'filterOptions'])->option(['real_name' => '订单中台筛选选项']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
])->option(['mark' => 'order', 'mark_name' => '订单管理']);
/**
* 售后单管理(数据驱动,与 refund 退款系统分离)
* 售后类型:refund_only/return_refund/exchange/resend/repair
* 规则由 AfterSaleServices 按产品类型 Handler 分流
*/
Route::group('after_sale', function () {
//售后单列表(支持售后单号/订单号/状态/类型/产品类型筛选)
Route::get('list', [\app\adminapi\controller\order\AfterSaleController::class, 'getList'])->option(['real_name' => '售后单列表']);
//售后单详情(含时间线+审核信息+管理备注)
Route::get('detail/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'detail'])->option(['real_name' => '售后单详情']);
//审核售后(通过/拒绝,拒绝需填原因)
Route::post('audit/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'audit'])->option(['real_name' => '审核售后']);
//商家确认收货(用户退货后,按类型分流后续流程)
Route::post('receive/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'receive'])->option(['real_name' => '商家确认收货']);
//执行退款(仅退款/退货退款的退款环节)
Route::post('refund/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'refund'])->option(['real_name' => '执行退款']);
//商家补发商品(换货/补发/维修完成后寄出,填物流单号)
Route::post('resend/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'resend'])->option(['real_name' => '商家补发商品']);
//开始维修(维修类型售后,商家确认收到维修件)
Route::post('start_repair/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'startRepair'])->option(['real_name' => '开始维修']);
//维修完成(维修完成后进入补发流程)
Route::post('repair_complete/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'repairComplete'])->option(['real_name' => '维修完成']);
//更新管理备注
Route::put('remark/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'remark'])->option(['real_name' => '售后管理备注']);
//查询售后物流进度(退货物流/补发物流,type=return|resend)
Route::get('express/:id', [\app\adminapi\controller\order\AfterSaleController::class, 'express'])->option(['real_name' => '查询售后物流进度']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
])->option(['mark' => 'after_sale', 'mark_name' => '售后管理']);