Nessuna descrizione

TransformService.php 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace App\Services;
  3. use App\Models\Sys\SysCustomer;
  4. use App\Models\JxTransformRecord;
  5. use App\Support\EmailQueue;
  6. use App\Support\Log;
  7. class TransformService
  8. {
  9. public static function getTransformList($params, $page, $pageSize)
  10. {
  11. // 获取订单列表
  12. list($orderList, $total) = JxTransformRecord::getTransformList($params, $page, $pageSize);
  13. if(!$total) return [[], 0];
  14. // 获取当前页面客户信息
  15. $customerList = SysCustomer::select('id', 'name')
  16. ->whereIn('id', $orderList->pluck('customer_id'))
  17. ->where('enable', 1)
  18. ->get();
  19. foreach($orderList as $order) {
  20. // 所属客户信息补充
  21. $customerInfo = $customerList->where('id', $order->customer_id)->first();
  22. $order->customer_name = $customerInfo->name ?? '';
  23. // 所属平台信息补充
  24. $order->platform_name = JxTransformRecord::PLATFORM_LIST[$order->platform] ?? '未知';
  25. }
  26. return [$orderList, $total];
  27. }
  28. public static function uploadKwai($uploadTransformList, $transformType)
  29. {
  30. try{
  31. $uploadTransformList = json_decode($uploadTransformList, 1);
  32. # 定义返回数据结构
  33. $result = [
  34. 'stat' => ['success' => 0, 'fail' => 0, 'total' => count($uploadTransformList)],
  35. 'data' => []
  36. ];
  37. foreach($uploadTransformList as $value) {
  38. if(in_array($value['task_id'], ['1054157749954837', '1054157535090288', '1054157125538975'])) {
  39. $transformType = 84;
  40. }
  41. # 回传链接
  42. $callbackUrl = $value['callback_url'] ?? '';
  43. if(empty($callbackUrl)) {
  44. $result['stat']['fail']++;
  45. $result['data'][] = [
  46. 'id' => $value['id'],
  47. 'msg' => '回传链接为空'
  48. ];
  49. continue;
  50. }
  51. # 行为数据ID
  52. $id = $value['id'] ?? '';
  53. if(empty($id)) {
  54. $result['stat']['fail']++;
  55. $result['data'][] = [
  56. 'id' => $value['id'],
  57. 'msg' => '行为数据ID为空'
  58. ];
  59. continue;
  60. }
  61. # 回传结果
  62. $reportActionType = $value['report_action_type'] ?? '';
  63. if(!is_numeric($reportActionType) || $reportActionType != 0) {
  64. $result['stat']['fail']++;
  65. $result['data'][] = [
  66. 'id' => $value['id'],
  67. 'msg' => '回传状态错误,必须是未回传行为才可以回传'
  68. ];
  69. continue;
  70. }
  71. # 执行回传
  72. $uploadRstJson = HttpService::httpGet($callbackUrl . '&event_type=' . $transformType . '&event_time=' . time() . rand(100, 999) );
  73. $uploadRst = json_decode($uploadRstJson, 1);
  74. Log::info('回传结果', [$uploadRstJson], 'UploadKwai');
  75. $uploadStatus = $uploadRst['result'] ?? 0;
  76. if($uploadStatus != 1) {
  77. $result['stat']['fail']++;
  78. $result['data'][] = [
  79. 'id' => $value['id'],
  80. 'msg' => '回传失败' . $uploadRstJson
  81. ];
  82. continue;
  83. } else {
  84. # 修改回传状态
  85. JxTransformRecord::where('id', $id)->update(['report_action_type' => 2, 'report_order_status' => 1]);
  86. $result['stat']['success']++;
  87. }
  88. }
  89. }catch(\Exception $e) {
  90. EmailQueue::rPush('上传数据失败', json_encode([
  91. 'type' => $transformType,
  92. 'data' => $uploadTransformList,
  93. 'error' => $e->getMessage()]), ['xiaohua.hou@kuxuan-inc.com'], '聚星');
  94. return [[], 1087];
  95. }
  96. return [$result, 0];
  97. }
  98. }