SiteStatService.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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\model\order\RechargeOrder;
  13. use app\service\admin\site\SiteService;
  14. use core\base\BaseAdminService;
  15. use think\db\exception\DbException;
  16. /**
  17. * 站点统计服务层
  18. * Class StatService
  19. * @package app\service\admin\stat
  20. */
  21. class SiteStatService extends BaseAdminService
  22. {
  23. public function __construct()
  24. {
  25. parent::__construct();
  26. }
  27. /**
  28. * 获取站点统计数据
  29. * @return int[]
  30. */
  31. public function getIndexData(){
  32. $data = [
  33. 'site_info' => '',
  34. ];
  35. $data['site_info'] = (new SiteService())->getInfo($this->site_id);
  36. $site_create_time = strtotime($data['site_info']['create_time']);
  37. $site_expire_time = strtotime($data['site_info']['expire_time']);
  38. $data['site_info']['mix'] = (number_format((time() - $site_create_time) / ($site_expire_time - $site_create_time), 2) * 100).'%';
  39. $data['site_info']['over_date'] = $site_expire_time - time() > 0 ? number_format(($site_expire_time - time())/ 86400, 2) : 0;
  40. return $data;
  41. }
  42. /**
  43. * 订单金额
  44. * @param $start_time
  45. * @param $end_time
  46. * @return float
  47. */
  48. public function orderMoney($start_time, $end_time)
  49. {
  50. $where[] = [
  51. ['site_id', '=', $this->site_id],
  52. ['order_status', '>', 0],
  53. ['create_time', 'between', [$start_time, $end_time]]
  54. ];
  55. return (new RechargeOrder())->where($where)->sum('order_money');
  56. }
  57. /**
  58. * 订单数量
  59. * @param $start_time
  60. * @param $end_time
  61. * @return int
  62. * @throws DbException
  63. */
  64. public function orderCount($start_time, $end_time)
  65. {
  66. $where[] = [
  67. ['site_id', '=', $this->site_id],
  68. ['order_status', '>', 0],
  69. ['create_time', 'between', [$start_time, $end_time]]
  70. ];
  71. return (new RechargeOrder())->where($where)->count('order_id');
  72. }
  73. }