111
liyaozhi
2025-11-09 c13b8914228e6a404bd60ee36bf2479383da8f23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
 
namespace app\supplier\service\statistics;
 
use app\supplier\model\user\Favorite as FavoriteModel;
use app\supplier\model\user\Visit as VisitModel;
/**
 * 用户数据概况
 */
class UserService
{
    // 商户id
    private $shop_supplier_id;
 
    public function __construct($shop_supplier_id)
    {
        $this->shop_supplier_id = $shop_supplier_id;
    }
    /**
     * 获取数据概况
     */
    public function getData()
    {
        $today = date('Y-m-d');
        $yesterday = date('Y-m-d', strtotime('-1 day'));
        $data = [
            // 店铺收藏
            'fav_store' => [
                'today' => number_format($this->getFavData($today, null, '10')),
                'yesterday' => number_format($this->getFavData($yesterday, null, '10'))
            ],
            // 商品收藏
            'fav_product' => [
                'today' => number_format($this->getFavData($today, null, '20')),
                'yesterday' => number_format($this->getFavData($yesterday, null, '20'))
            ],
            // 访客数
            'visit_user' => [
                'today' => number_format($this->getVisitUserData($today, null)),
                'yesterday' => number_format($this->getVisitUserData($yesterday, null))
            ],
            // 访问量
            'visit_total' => [
                'today' => number_format($this->getVisitData($today, null)),
                'yesterday' => number_format($this->getVisitData($yesterday, null))
            ],
        ];
        return $data;
    }
 
    /**
     * 通过时间段查询访问量
     */
    public function getVisitByDate($days)
    {
        $data = [];
        foreach ($days as $day) {
            $data[] = [
                'day' => $day,
                'fav_store' => $this->getFavData($day, null, '10'),
                'fav_product' => $this->getFavData($day, null, '20'),
                'visit_user' => $this->getVisitUserData($day, null),
                'visit_total' => $this->getVisitData($day, null)
            ];
        }
        return $data;
    }
 
    /**
     * 获取店铺关注数据
     */
    private function getFavData($startDate = null, $endDate = null, $type)
    {
        return (new FavoriteModel())->getFavData($startDate, $endDate, $type, $this->shop_supplier_id);
    }
 
    /**
     * 访问量
     */
    private function getVisitData($startDate = null, $endDate = null){
        return (new VisitModel())->getVisitData($startDate, $endDate, $this->shop_supplier_id);
    }
 
    private function getVisitUserData($startDate = null, $endDate = null){
        return (new VisitModel())->getVisitUserData($startDate, $endDate, $this->shop_supplier_id);
    }
}