OrderStatService.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: hp
  5. * Date: 2017/11/21
  6. * Time: 10:42
  7. */
  8. namespace App\Modules\Trade\Services;
  9. use App\Modules\Trade\Models\OrderStat;
  10. use App\Modules\Trade\Services\OrderDayStatService;
  11. use App\Modules\OfficialAccount\Services\OfficialAccountService;
  12. class OrderStatService
  13. {
  14. /**
  15. * 获取单个渠道数据
  16. * @param $distribution_channel_id 分销渠道ID
  17. * @return object
  18. */
  19. static function getChannelStat($distribution_channel_id)
  20. {
  21. return OrderStat::getByChannelId($distribution_channel_id);
  22. }
  23. /**
  24. * 更新渠道统计数据
  25. * @param $distribution_channel_id 分销渠道ID
  26. * @return object
  27. */
  28. static function add($distribution_channel_id)
  29. {
  30. $sum_data = OrderDayStatService::getSumByChannelId($distribution_channel_id);
  31. $yesterday_sum_data = OrderDayStatService::getYesterdaySumByChannelId($distribution_channel_id);
  32. $current_month_sum_data = OrderDayStatService::getCurrentMonthSumByChannelId($distribution_channel_id);
  33. $last_month_sum_data = OrderDayStatService::getLastMonthSumByChannelId($distribution_channel_id);
  34. $data = [];
  35. $data['pay_success_user_num'] = (float)$sum_data->pay_success_user_num;
  36. $data['unpaid_num'] = (float)$sum_data->unpaid_num;
  37. $data['paid_num'] = (float)$sum_data->paid_num;
  38. $data['total_recharge_amount'] = (float)$sum_data->total_recharge_amount;
  39. $data['send_order_num'] = (float)$sum_data->send_order_num;
  40. $data['real_send_order_num'] = (float)$sum_data->real_send_order_num;
  41. $data['register_user_num'] = (float)$sum_data->register_user_num;
  42. $data['ticket_recharge_pay_user_num'] = (float)$sum_data->ticket_recharge_user_num;
  43. $data['year_pay_user_num'] = (float)$sum_data->year_recharge_user_num;
  44. $data['promotion_total_uv'] = (float)$sum_data->promotion_total_uv;
  45. $data['promotion_total_pv'] = (float)$sum_data->promotion_total_pv;
  46. $data['force_user_num'] = (float)$sum_data->force_user_num;
  47. //昨日
  48. $data['yesterday_paid_num'] = (float)$yesterday_sum_data->paid_num;
  49. $data['yesterday_unpaid_num'] = (float)$yesterday_sum_data->unpaid_num;
  50. $data['yesterday_recharge_amount'] = (float)$yesterday_sum_data->total_recharge_amount;
  51. $data['yesterday_ticket_recharge_paid_num'] = (float)$yesterday_sum_data->ticket_recharge_paid_num;
  52. $data['yesterday_ticket_recharge_unpaid_num'] = (float)$yesterday_sum_data->ticket_recharge_unpaid_num;
  53. $data['yesterday_ticket_recharge_amount'] = (float)$yesterday_sum_data->ticket_recharge_amount;
  54. $data['yesterday_year_recharge_paid_num'] = (float)$yesterday_sum_data->year_recharge_paid_num;
  55. $data['yesterday_year_recharge_unpaid_num'] = (float)$yesterday_sum_data->year_recharge_unpaid_num;
  56. $data['yesterday_year_recharge_amount'] = (float)$yesterday_sum_data->year_recharge_amount;
  57. //当月
  58. $data['current_month_paid_num'] = (float)$current_month_sum_data->paid_num;
  59. $data['current_month_unpaid_num'] = (float)$current_month_sum_data->unpaid_num;
  60. $data['current_month_recharge_amount'] = (float)$current_month_sum_data->total_recharge_amount;
  61. $data['current_month_ticket_recharge_paid_num'] = (float)$current_month_sum_data->ticket_recharge_paid_num;
  62. $data['current_month_ticket_recharge_unpaid_num'] = (float)$current_month_sum_data->ticket_recharge_unpaid_num;
  63. $data['current_month_ticket_recharge_amount'] = (float)$current_month_sum_data->ticket_recharge_amount;
  64. $data['current_month_year_recharge_paid_num'] = (float)$current_month_sum_data->year_recharge_paid_num;
  65. $data['current_month_year_recharge_unpaid_num'] = (float)$current_month_sum_data->year_recharge_unpaid_num;
  66. $data['current_month_year_recharge_amount'] = (float)$current_month_sum_data->year_recharge_amount;
  67. //上月
  68. $data['last_month_paid_num'] = (float)$last_month_sum_data->paid_num;
  69. $data['last_month_unpaid_num'] = (float)$last_month_sum_data->unpaid_num;
  70. $data['last_month_recharge_amount'] = (float)$last_month_sum_data->total_recharge_amount;
  71. $data['last_month_ticket_recharge_paid_num'] = (float)$last_month_sum_data->ticket_recharge_paid_num;
  72. $data['last_month_ticket_recharge_unpaid_num'] = (float)$last_month_sum_data->ticket_recharge_unpaid_num;
  73. $data['last_month_ticket_recharge_amount'] = (float)$last_month_sum_data->ticket_recharge_amount;
  74. $data['last_month_year_recharge_paid_num'] = (float)$last_month_sum_data->year_recharge_paid_num;
  75. $data['last_month_year_recharge_unpaid_num'] = (float)$last_month_sum_data->year_recharge_unpaid_num;
  76. $data['last_month_year_recharge_amount'] = (float)$last_month_sum_data->year_recharge_amount;
  77. //获取公众号数量
  78. $official_accounts = OfficialAccountService::officialAuthAccountBydistributionChannelId(compact('distribution_channel_id'));
  79. $official_account_names = [];
  80. foreach ($official_accounts as $official_account)
  81. {
  82. array_push($official_account_names,$official_account->nickname);
  83. }
  84. $data['official_account_num'] = count($official_accounts);
  85. $data['official_account_names'] = implode(',', $official_account_names);
  86. return OrderStat::add($distribution_channel_id,$data);
  87. }
  88. static function getList($distribution_channel_id,$phone, $is_all=false)
  89. {
  90. return OrderStat::getList($distribution_channel_id,$phone,$is_all);
  91. }
  92. static function getChannelTotalStat($distribution_channel_ids)
  93. {
  94. return OrderStat::getChannelTotalStat($distribution_channel_ids);
  95. }
  96. static function getRechargeAmount($distribution_channel_ids)
  97. {
  98. return OrderStat::getRechargeAmount($distribution_channel_ids);
  99. }
  100. }