OrderTransformer.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Date: 2017/3/31
  5. * Time: 14:02
  6. */
  7. namespace General\Controllers\CompanyAuth\Transformers;
  8. use General\Helpers\CommonHelper;
  9. use General\Models\OfficialAccount\WechatKeywordMsgs;
  10. use General\Models\Order\Order;
  11. class OrderTransformer
  12. {
  13. public function transform($item)
  14. {
  15. return [
  16. 'uid' => $item->uid,
  17. 'price' => (float) $item->price,
  18. 'trade_no' => $item->trade_no,
  19. 'status' => $item->status,
  20. 'created_at' => (string)$item->created_at,
  21. 'pay_end_at' => $item->pay_end_at,
  22. 'send_order_id' => $item->send_order_id,
  23. 'send_order_name' => $item->send_order_name,
  24. 'order_type' => $this->getOrderType($item->order_type),
  25. 'activity_name' => ($item->pay_merchant_source == 'MONTH') ? '包月' : ($item->activity ? (string) $item->activity->name : ''),
  26. 'keyword' => $this->getKeyword($item),
  27. 'user_charge_times' => (isset($item->pay_type) && $item->status == 'PAID') ? $item->pay_type : 0,
  28. 'bid' => CommonHelper::book_hash_encode($item->from_bid),
  29. 'register_time' => $item->user ? (string)$item->user->created_at : '',
  30. 'book_name' => $item->book ? $item->book->book_name : '',
  31. 'promotion_url' => $item->send_order ? CommonHelper::getPromotionUrl($item->send_order) : '',
  32. 'app_id' => $item->user && $item->user->force_subscribe_user ? $item->$item->user->force_subscribe_user->appid : '',
  33. 'opend_id' => $item->user && $item->user->force_subscribe_user ? $item->$item->user->force_subscribe_user->opend_id : '',
  34. 'subscribe_time' => $item->user && $item->user->force_subscribe_user ? $item->$item->user->force_subscribe_user->ubscribe_time : '',
  35. 'wechat_name' => $item->user && $item->user->force_subscribe_user && $item->user->force_subscribe_user->official_account ? $item->$item->user->force_subscribe_user->official_account->nickname : '',
  36. ];
  37. }
  38. protected function getOrderType(string $type)
  39. {
  40. switch ($type) {
  41. case 'RECHARGE':
  42. return '普通充值';
  43. case 'MONTH':
  44. return '包月';
  45. case 'QUARTER':
  46. return '包季';
  47. case 'YEAR':
  48. return '包年';
  49. }
  50. }
  51. protected function getKeyword(Order $order)
  52. {
  53. if ($order->from_type && starts_with($order->from_type, 'keyword')) {
  54. $key_array = explode('_', $order->from_type);
  55. if (isset($key_array[1]) && !empty($key_array[1])) {
  56. $keyword_info = WechatKeywordMsgs::find($key_array[1]);
  57. $order->keyword = sprintf('%s(%s)', $keyword_info->keyword, $keyword_info->book_name);
  58. }
  59. }
  60. }
  61. }