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