StatService.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\service\admin\stat;
  12. use app\service\admin\member\MemberCashOutService;
  13. use app\service\admin\shop\admin\ShopCashOutService;
  14. use app\service\admin\site\SiteService;
  15. use app\service\core\member\CoreMemberService;
  16. use core\base\BaseAdminService;
  17. /**
  18. * 统计服务层
  19. * Class StatService
  20. * @package app\service\admin\stat
  21. */
  22. class StatService extends BaseAdminService
  23. {
  24. public function __construct()
  25. {
  26. parent::__construct();
  27. }
  28. /**
  29. * 获取首页统计数据
  30. * @return array
  31. */
  32. public function getIndexStatData()
  33. {
  34. $data = [
  35. 'order_stat' => [
  36. 'today_order_count' => 0,
  37. 'yesterday_order_count' => 0,
  38. 'total_order_count' => 0,
  39. ],
  40. 'sale_stat' => [
  41. 'today_sale_money' => 0,
  42. 'yesterday_sale_money' => 0,
  43. 'total_sale_money' => 0,
  44. ],
  45. 'refund_stat' => [
  46. 'today_refund_money' => 0,
  47. 'yesterday_refund_money' => 0,
  48. 'total_refund_money' => 0,
  49. ],
  50. 'member_stat' => [
  51. 'today_member_count' => 0,
  52. 'yesterday_member_count' => 0,
  53. 'total_member_count' => 0,
  54. ],
  55. 'site_stat' => [
  56. 'today_site_count' => 0,
  57. 'yesterday_site_count' => 0,
  58. 'total_site_count' => 0,
  59. ],
  60. 'my_order_stat' => [
  61. 'wait_pay_order' => 0,
  62. 'wait_delivery_order' => 0,
  63. 'wait_take_order' => 0,
  64. 'refund_order' => 0,
  65. ],
  66. 'cash_out_stat' => [
  67. 'member_count' => 0,
  68. 'site_count' => 0,
  69. ],
  70. 'goods_stat' => [
  71. 'sale_goods_num' => 0,
  72. 'audit_goods_num' => 0,
  73. ],
  74. ];
  75. $order_stat_array = event('MallOrderStat');
  76. if (!empty($order_stat_array)) {
  77. $order_stat_list = [];
  78. foreach($order_stat_array as $v){
  79. $order_stat_list = empty($order_stat_list) ? $v : array_merge($order_stat_list, $v);
  80. }
  81. $data[ 'order_stat' ] = $order_stat_list[ 'order_stat' ];
  82. $data[ 'sale_stat' ] = $order_stat_list[ 'sale_stat' ];
  83. $data[ 'refund_stat' ] = $order_stat_list[ 'refund_stat' ];
  84. $data[ 'my_order_stat' ] = $order_stat_list[ 'my_order_stat' ];
  85. }
  86. $goods_stat_array = event('MallGoodsStat');
  87. if (!empty($goods_stat_array)) {
  88. $goods_stat_list = [];
  89. foreach($goods_stat_array as $v){
  90. $goods_stat_list = empty($goods_stat_list) ? $v : array_merge($goods_stat_list, $v);
  91. }
  92. $data[ 'goods_stat' ] = $goods_stat_list[ 'goods_stat' ];
  93. }
  94. $data['member_stat']['today_member_count'] = (new CoreMemberService())->getCount(['create_time' => get_start_and_end_time_by_day()]);
  95. $data['member_stat']['yesterday_member_count'] = (new CoreMemberService())->getCount(['create_time' => get_start_and_end_time_by_day(date('Y-m-d', strtotime("-1 day")))]);
  96. $data['member_stat']['total_member_count'] = (new CoreMemberService())->getCount();
  97. $data['site_stat']['today_site_count'] = (new SiteService())->getCount(['create_time' => get_start_and_end_time_by_day()]);
  98. $data['site_stat']['yesterday_site_count'] = (new SiteService())->getCount(['create_time' => get_start_and_end_time_by_day(date('Y-m-d', strtotime("-1 day")))]);
  99. $data['site_stat']['total_site_count'] = (new SiteService())->getCount();
  100. $data['cash_out_stat']['member_count'] = (new MemberCashOutService())->getCount();
  101. $data['cash_out_stat']['site_count'] = (new ShopCashOutService())->getCount();
  102. return $data;
  103. }
  104. /**
  105. * 获取首页图表统计数据
  106. * @return array|mixed
  107. */
  108. public function getIndexChartStat()
  109. {
  110. $params = $this->request->params([
  111. ['start_date', date('Y-m-d', strtotime('-6 day')) ],
  112. ['end_date', date('Y-m-d', strtotime('+1 day'))]
  113. ]);
  114. $chart_stat_array = event('MallChartStat', $params);
  115. $chart_stat_list = [];
  116. foreach($chart_stat_array as $v){
  117. $chart_stat_list = empty($chart_stat_list) ? $v : array_merge($chart_stat_list, $v);
  118. }
  119. return $chart_stat_list;
  120. }
  121. }