ReportOrderTramsformer.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Date: 2017/3/31
  5. * Time: 14:02
  6. */
  7. namespace General\Controllers\LandingPage\Transformers;
  8. use General\Models\Order\Order;
  9. class ReportOrderTramsformer
  10. {
  11. const REPORT_TYPE = [
  12. 'no_log' => '无回传日志',
  13. 'amount_filter' => '回传金额过滤',
  14. 'register_24_charge' => '充值时间和注册时间必须在24小时以内',
  15. 'current_day_register' => '注册时间和充值时间必须同一天',
  16. 'no_user_match' => '无匹配用户(ip切换或者非落地页用户)',
  17. 'feedback_user' => '已回传用户(非首充)',
  18. 'percent_filter' => '百分比过滤',
  19. 'protected_eligible' => '计划保护范围(不算在比例基数里面)',
  20. ];
  21. const platform = [
  22. 'tiktok' => '抖音',
  23. 'iqiyi' => '爱奇艺',
  24. 'uc' => 'UC',
  25. 'weibo' => '微博粉丝通',
  26. 'tencent' => '腾讯',
  27. 'kuaishou' => '快手',
  28. 'baidu' => '百度',
  29. ];
  30. public function transform($item)
  31. {
  32. return [
  33. 'order_no' => $item->trade_no,
  34. 'uid' => $item->uid,
  35. 'register_time' => $item->user ? (string)$item->user->created_at : '',
  36. 'register_ip' => $item->user ? $item->user->register_ip : '',
  37. 'amount' => $item->price,
  38. 'pay_time' => (string)$item->created_at,
  39. 'charge_ip' => $item->create_ip,
  40. 'bind_id' => $item->reportUser ? $item->reportUser->id : 0,
  41. 'adid' => $item->reportUser ? $item->reportUser->adid : 0,
  42. 'aid_name' => $item->reportUser ? urldecode($item->reportUser->aid_name) ?? '' : '',
  43. 'platform' => $this->getPlatform($item),
  44. 'status' => $item->reportOrder ? $item->reportOrder->status : 0,
  45. 'type' => $item->reportOrder ? $item->reportOrder->type : '',
  46. 'content' => $item->reportOrder && $item->reportOrder->status == 1 ? '' : $this->getType($item),
  47. 'report_percent' => ($item->reportOrder ? $item->reportOrder->report_percent * 100 : 0) . '%',
  48. 'config_percent' => ($item->reportOrder ? $item->reportOrder->config_percent * 100 : 0) . '%',
  49. ];
  50. }
  51. private function getPlatform(Order $item)
  52. {
  53. return $item->reportUser ? self::platform[$item->reportUser->platform] : '';
  54. }
  55. private function getType(Order $item)
  56. {
  57. return $item->reportOrder ?
  58. (array_key_exists($item->reportOrder->type, self::REPORT_TYPE) ? self::REPORT_TYPE[$item->reportOrder->type] : '')
  59. : self::REPORT_TYPE['no_log'];
  60. }
  61. }