Files
douba_shop/app/haichao/HaichaoAop.php
Karlcarlo 7e422335e4 feat(haichao): 新增聚水潭ERP集成功能
- 新增聚水潭回调接口及事件处理机制
- 添加聚水潭商品、订单、售后同步任务
- 实现聚水潭订单推送及售后状态同步
- 新增手动同步聚水潭商品功能
- 在各路由组添加聚水潭中间件支持
2026-04-01 11:55:18 +08:00

87 lines
2.9 KiB
PHP

<?php
namespace app\haichao;
use app\http\middleware\InstallMiddleware;
use app\Request;
use app\services\order\StoreOrderServices;
use think\Response;
use think\route\RuleItem;
use app\haichao\callback\JstCallbackEventManager;
use think\exception\ValidateException;
use think\facade\Log;
class HaichaoAop extends InstallMiddleware
{
public function handle(Request $request, \Closure $next)
{
$haichaoJstServices = HaichaoJstServices::getServices();
/** @var RuleItem $rule */
$rule = $request->rule();
Log::info('jst.aop.route ' . $rule->getName());
switch ($rule->getName()) {
case 'StoreOrderSplitDelivery':
case 'StoreOrderUpdateDelivery':
{
$postInfo = $request->getMore(['delivery_name', 'delivery_id']);
$param = $request->param();
Log::info('jst.aop.delivery ' . json_encode([$postInfo, $param], JSON_UNESCAPED_UNICODE));
$haichaoJstServices->updateStoreOrderDelivery($postInfo['delivery_id'] ?? '', $postInfo['delivery_name'] ?? '', $param['id'] ?? 0);
$rt = $next($request);
break;
}
case 'StoreOrderApplRefund':
{
$orderId = $request->param(['id'])['id'] ?? 0;
Log::info('jst.aop.apply_refund ' . $orderId);
$rt = $next($request);
break;
}
case 'StoreOrderUpdateRefund':
{
$param = $request->param();
$orderId = $param['id'] ?? 0;
Log::info('jst.aop.update_refund ' . $orderId);
$rt = $next($request);
break;
}
case 'StoreOrderRefundRemark':
{
$orderId = $request->param(['id'])['id'] ?? 0;
Log::info('jst.aop.refund_remark ' . $orderId);
$rt = $next($request);
break;
}
case 'StoreOrderorRemark':
{
$orderId = $request->param(['id'])['id'] ?? 0;
Log::info('jst.aop.remark ' . $orderId);
$rt = $next($request);
break;
}
case 'orderPay':
{
$rt = $next($request);
break;
}
default:
{
$rt = $next($request);
}
}
// $actionCode = $request->getMore(['action_code'])['action_code'] ?? '';
// if ($actionCode) {
// try {
// Log::info('jst.aop.callback ' . $actionCode);
// return JstCallbackEventManager::callback($request);
// } catch (\Throwable $e) {
// Log::error('jst.aop.callback.err ' . $e->getMessage());
// return Response::create(['msg' => 'callback error ' . $e->getMessage()], 'json');
// }
// }
return $rt;
}
}