Stat.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\weapp\shop\controller;
  11. use addon\weapp\model\Stat as StatModel;
  12. use app\shop\controller\BaseShop;
  13. /**
  14. * 微信小程序访问统计
  15. */
  16. class Stat extends BaseShop
  17. {
  18. protected $replace = []; //视图输出字符串内容替换 相当于配置文件中的'view_replace_str'
  19. public function __construct()
  20. {
  21. parent::__construct();
  22. $this->replace = [
  23. 'WEAPP_CSS' => __ROOT__ . '/addon/weapp/shop/view/public/css',
  24. 'WEAPP_JS' => __ROOT__ . '/addon/weapp/shop/view/public/js',
  25. 'WEAPP_IMG' => __ROOT__ . '/addon/weapp/shop/view/public/img',
  26. 'WEAPP_SVG' => __ROOT__ . '/addon/weapp/shop/view/public/svg',
  27. ];
  28. }
  29. public function stat()
  30. {
  31. return $this->fetch('stat/stat', [], $this->replace);
  32. }
  33. /**
  34. * 统计昨日的数据
  35. */
  36. public function visitData()
  37. {
  38. if (request()->isAjax()) {
  39. $date_type = input("date_type", "month");
  40. $stat_model = new StatModel();
  41. $result = $stat_model->visitData($date_type);
  42. return $result;
  43. }
  44. }
  45. /**
  46. * 获取微信小程序 数据分析统计
  47. */
  48. public function visitStatistics()
  49. {
  50. $stat_model = new StatModel();
  51. $daterange = input("daterange", "");
  52. $result = $stat_model->visitStatistics($daterange);
  53. return $result;
  54. }
  55. /**
  56. * 得到时间间隔
  57. * @param $date_type
  58. * @param string $daterange
  59. * @return array
  60. */
  61. public function getDaterange($date_type, $daterange = "")
  62. {
  63. $today_date = date('Ymd');//当前日日期
  64. $begin_date = "";
  65. $end_date = "";
  66. switch ($date_type) {
  67. case 'today':
  68. $begin_date = $today_date;
  69. $end_date = $today_date;
  70. break;
  71. case 'yesterday':
  72. $begin_date = date('Ymd', strtotime('-1 days'));
  73. $end_date = date('Ymd', strtotime('-1 days'));
  74. break;
  75. case 'week':
  76. $begin_date = date('Ymd', strtotime('-6 days'));
  77. $end_date = $today_date;
  78. break;
  79. case 'month':
  80. $begin_date = date('Ymd', strtotime('-29 days'));
  81. $end_date = $today_date;
  82. break;
  83. case 'daterange':
  84. if (!empty($daterange)) {
  85. $daterange_array = explode(" - ", $daterange);
  86. $begin_date = date_format(date_create($daterange_array[0]), "Ymd");
  87. $end_date = date_format(date_create($daterange_array[1]), "Ymd");
  88. }
  89. $begin_date = date('Ymd', strtotime($begin_date));//开始日期
  90. $end_date = date('Ymd', strtotime($end_date));//结束日期
  91. break;
  92. }
  93. return array("begin_date" => $begin_date, "end_date" => $end_date);
  94. }
  95. }