YongYou.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Model\ErrorTable;
  4. use App\Service\FinishedOrderService;
  5. use Closure;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\DB;
  8. use Illuminate\Support\Facades\Log;
  9. use Symfony\Component\HttpFoundation\Response;
  10. class YongYou
  11. {
  12. const type_one = 1; //包装 =》 产成品入库
  13. const type_two = 2; //发货 =》 发货出库
  14. /**
  15. * Handle an incoming request.
  16. *
  17. * @param \Illuminate\Http\Request $request
  18. * @param \Closure $next
  19. * @return mixed
  20. */
  21. public function handle(Request $request, Closure $next)
  22. {
  23. // 在这里可以添加请求前的操作,但通常我们只关心请求后的操作。
  24. return $next($request);
  25. }
  26. /**
  27. * Handle the request termination.
  28. *
  29. * @param \Illuminate\Http\Request $request
  30. * @param \Illuminate\Http\Response $response
  31. * @return void
  32. */
  33. public function terminate(Request $request, Response $response)
  34. {
  35. $time = time();
  36. $userData = $request->userData->toArray();
  37. $return = json_decode($response->content(),true);
  38. if($return['code'] == 200){
  39. if(! empty($return['data']['package_data'])){
  40. $package_data = $return['data']['package_data'];
  41. if(! empty($package_data)) {
  42. $service = new FinishedOrderService();
  43. list($status,$msg) = $service->U8Rdrecord10Save($package_data,$userData);
  44. if(! $status) $this->recordErrorTable($msg,$userData,$package_data,$time,self::type_one);
  45. }
  46. }
  47. if(! empty($return['data']['send_data'])){
  48. $package_data = $return['data']['send_data'];
  49. if(! empty($package_data)) {
  50. $service = new FinishedOrderService();
  51. list($status,$msg) = $service->U8Rdrecord32Save($package_data,$userData);
  52. if(! $status) $this->recordErrorTable($msg,$userData,$package_data,$time,self::type_one);
  53. }
  54. }
  55. }
  56. }
  57. private function recordErrorTable($msg,$user,$data,$time,$type){
  58. // 连接到指定数据库连接
  59. ErrorTable::insert([
  60. 'msg' => $msg,
  61. 'data' => json_encode($data),
  62. 'user_id' => $user['id'],
  63. 'user_operation_time' => $time,
  64. 'type' => $type,
  65. 'order_no' => $data['order_no'] ?? ""
  66. ]);
  67. }
  68. }