aiden пре 2 месеци
родитељ
комит
8addef6f53

+ 10 - 0
app/common/CommonUtils.php

@@ -47,6 +47,16 @@ class CommonUtils
         return (float)$balance;
     }
 
+    /**
+     * 格式化为整数
+     */
+    public static function convertToInt($value, int $defaultValue = 0) {
+        if (isset($value)) {
+            return (int)$value;
+        }
+        return $defaultValue;
+    }
+
     // 生成转账流水ID
     public static function generateUuidSn($key = 'OD')
     {

+ 3 - 0
app/common/GameGameConfig.php

@@ -81,6 +81,9 @@ $GLOBALS['FeedUserConfig'] = [
     ]
 ];
 
+// 佣金费率
+$GLOBALS['CommissionRate'] = 0.08;
+
 // 静态Domain
 $GLOBALS['gameGameStaticDomain'] = Env::get('GAME_STATIC_DOMAIN', 'game.w115.net');
 // 游戏布局Domain

+ 51 - 22
app/controller/MerchantStatis.php

@@ -4,10 +4,8 @@ declare (strict_types = 1);
 namespace app\controller;
 
 use app\BaseController;
-use app\model\GameBetGameModel;
-use app\model\GameBetOrderModel;
+use app\model\MerchantsUserModel;
 use app\model\MerchantStatisModel;
-use app\common\CommonUtils;
 use think\facade\Request;
 
 class MerchantStatis extends BaseController
@@ -41,11 +39,12 @@ class MerchantStatis extends BaseController
 
             // 格式化数据
             foreach ($result['list'] as &$item) {
-                $item['game_profit'] = CommonUtils::convertBalance($item['game_profit'], false);
-                $item['bet_amount'] = CommonUtils::convertBalance($item['bet_amount'], false);
-                $item['commission_amount'] = CommonUtils::convertBalance($item['game_profit'] * 0.08, false);
-                $item['platform_fee'] = CommonUtils::convertBalance($item['bet_amount'] * 0.08, false);
-                $item['buy_free_bet'] = $item['buy_free_bet_count'] ?? 0;
+                $item['game_profit'] = (float)$item['game_profit'];
+                $item['bet_amount'] = (float)$item['bet_amount'];
+                $item['total_winning_score'] = (float)$item['total_winning_score'];
+                $item['commission_amount'] = (float)bcmul((string)$item['game_profit'], (string)$GLOBALS['CommissionRate'], 2);
+                $item['platform_fee'] = (float)bcmul((string)$item['bet_amount'], (string)$GLOBALS['CommissionRate'], 2);
+                $item['buy_free_bet'] = intval($item['buy_free_bet_count'] ?? 0);
             }
             
             return json_success($result, '获取成功');
@@ -69,17 +68,32 @@ class MerchantStatis extends BaseController
         ];
 
         try {
-            // 获取商户每日数据
+            // 获取商户游戏记录每日数据
             $result = MerchantStatisModel::getMerchantHistory($userInfo['merchant_id'], $filters);
+            // 获取商户登录、注册每日数据
+            $result['login_users'] = 0;
+            $result['register_users'] = 0;            
+            $playerData = MerchantsUserModel::getPlayerStatistics($userInfo['merchant_id'], $filters);
+            if ($playerData) {
+                foreach ($playerData as $key => $row) {
+                    if ($key == 'register') {
+                        $result['register_users'] = array_sum(array_column($row, 'count'));
+                    }
+                    if ($key == 'login') {
+                        $result['login_users'] = array_sum(array_column($row, 'count'));
+                    }
+                }
+            }
             
             // 格式化数据
-            $result['rtp'] = !is_null($result["rtp"]) ? $result["rtp"] : 0;
+            $result['rtp'] = (float)bcmul(bcdiv($result['total_winning_score'], $result['bet_amount'], 4), '100', 2);
             $result['date_stage'] = implode(' ~ ', $filters);
-            $result['game_profit'] = CommonUtils::convertBalance($result['game_profit'], false);
-            $result['bet_amount'] = CommonUtils::convertBalance($result['bet_amount'], false);
-            $result['commission_amount'] = CommonUtils::convertBalance($result['game_profit'] * 0.08, false);
-            $result['platform_fee'] = CommonUtils::convertBalance($result['bet_amount'] * 0.08, false);
-            $result['buy_free_bet'] = $result['buy_free_bet_count'] ?? 0;
+            $result['game_profit'] = (float)$result['game_profit'];
+            $result['bet_amount'] = (float)$result['bet_amount'];
+            $result['total_winning_score'] = (float)$result['total_winning_score'];
+            $result['commission_amount'] = (float)bcmul((string)$result['game_profit'], (string)$GLOBALS['CommissionRate'], 2);
+            $result['platform_fee'] = (float)bcmul((string)$result['bet_amount'], (string)$GLOBALS['CommissionRate'], 2);
+            $result['buy_free_bet'] = intval($result['buy_free_bet_count'] ?? 0);
             
             return json_success($result, '获取成功');
         } catch (\Exception $e) {
@@ -95,15 +109,30 @@ class MerchantStatis extends BaseController
         $userInfo = $this->request->userInfo;
         
         try {
-            // 获取商户每日数据
+            // 获取商户历史数据
             $result = MerchantStatisModel::getMerchantHistory($userInfo['merchant_id']);
-            
+            // 获取商户登录、注册历史数据
+            $result['login_users'] = 0;
+            $result['register_users'] = 0;            
+            $playerData = MerchantsUserModel::getPlayerStatistics($userInfo['merchant_id']);
+            if ($playerData) {
+                foreach ($playerData as $key => $row) {
+                    if ($key == 'register') {
+                        $result['register_users'] = array_sum(array_column($row, 'count'));
+                    }
+                    if ($key == 'login') {
+                        $result['login_users'] = array_sum(array_column($row, 'count'));
+                    }
+                }
+            }            
             // 格式化数据
-            $result['game_profit'] = CommonUtils::convertBalance($result['game_profit'], false);
-            $result['bet_amount'] = CommonUtils::convertBalance($result['bet_amount'], false);
-            $result['commission_amount'] = CommonUtils::convertBalance($result['game_profit'] * 0.08, false);
-            $result['platform_fee'] = CommonUtils::convertBalance($result['bet_amount'] * 0.08, false);
-            $result['buy_free_bet'] = $result['buy_free_bet_count'] ?? 0;
+            $result['rtp'] = (float)bcmul(bcdiv($result['total_winning_score'], $result['bet_amount'], 4), '100', 2);
+            $result['game_profit'] = (float)$result['game_profit'];
+            $result['bet_amount'] = (float)$result['bet_amount'];
+            $result['total_winning_score'] = (float)$result['total_winning_score'];
+            $result['commission_amount'] = (float)bcmul((string)$result['game_profit'], (string)$GLOBALS['CommissionRate'], 2);
+            $result['platform_fee'] = (float)bcmul((string)$result['bet_amount'], (string)$GLOBALS['CommissionRate'], 2);
+            $result['buy_free_bet'] = intval($result['buy_free_bet_count'] ?? 0);
             
             return json_success($result, '获取成功');
         } catch (\Exception $e) {

+ 23 - 18
app/controller/Overview.php

@@ -4,10 +4,10 @@ namespace app\controller;
 
 use app\BaseController;
 use app\model\MerchantStatisModel;
-use app\model\UserBehaviorLogModel;
 use app\common\CommonUtils;
 use app\model\GameBetGameModel;
 use app\model\MerchantsUserModel;
+use app\model\PlayerLoginLogModel;
 use think\facade\Request;
 
 class Overview extends BaseController
@@ -23,8 +23,8 @@ class Overview extends BaseController
             // 获取昨、今日时间范围
             $today = date('Y-m-d');
             $filtter = [
-                'start_time' => date('Y-m-d', strtotime($today) - 86400),
-                'end_time' => date('Y-m-d', strtotime($today) + 86400),
+                'start_time' => date('Y-m-d', strtotime('yesterday')),
+                'end_time' => date('Y-m-d', strtotime('tomorrow')),
             ];       
             $merchantId = $userInfo['merchant_id'];
             
@@ -34,9 +34,11 @@ class Overview extends BaseController
             $playerSummary = MerchantsUserModel::getPlayerStatistics($merchantId, $filtter);
             $tempPlayerData = [];
             if ($playerSummary) {
-                foreach ($playerSummary as $row) {
-                    $date = $row['date'] == $today ? 'today' : 'yesterday';
-                    $tempPlayerData[$date] = $row;
+                foreach ($playerSummary as $key => $row) {
+                    foreach ($row as $date => $item) {
+                        $date = $date == $today ? 'today' : 'yesterday';
+                        $tempPlayerData[$key][$date] = $item;
+                    }
                 }                
             }
 
@@ -44,19 +46,20 @@ class Overview extends BaseController
                 foreach ($dailySummary as $row) {
 
                     $date = $row['date'] == $today ? 'today' : 'yesterday';
-                    $row['commission'] = CommonUtils::convertBalance($row['game_profit'] * 0.08, false);
-                    $row['bet_amount'] = CommonUtils::convertBalance($row['bet_amount'], false);
-                    $row['game_profit'] = CommonUtils::convertBalance($row['game_profit'], false);
-                    $row['register_users'] = $tempPlayerData[$date]['register_users'] ?? 0;
-                    $row['login_users'] = $tempPlayerData[$date]['login_users'] ?? 0;
-                    $row['online_users'] = 0;
+                    $row['commission'] = (float)bcmul($row['game_profit'], $GLOBALS['CommissionRate'], 2);
+                    $row['bet_amount'] = (float)$row['bet_amount'];
+                    $row['game_profit'] = (float)$row['game_profit'];
+                    $row['register_users'] = CommonUtils::convertToInt($tempPlayerData['register'][$date]['count'] ?? 0);
+                    $row['login_users'] = CommonUtils::convertToInt($tempPlayerData['login'][$date]['count'] ?? 0);
+                    $row['online_users'] = CommonUtils::convertToInt($tempPlayerData['login'][$date]['count'] ?? 0);
+                    $row['buy_free_bet_count'] = CommonUtils::convertToInt($row['buy_free_bet_count']);
                     $dashboardData[$date] = $row;
                 }
             }
                       
             // 在线人数、登录数据
-            $dashboardData['online_data'] = [];
-            $dashboardData['login_data'] = [];
+            $dashboardData['online_data'] = PlayerLoginLogModel::getLoginHourCount($merchantId, $filtter);;
+            $dashboardData['login_data'] = $dashboardData['online_data'];
 
             return json_success($dashboardData, '获取成功');
             
@@ -94,12 +97,14 @@ class Overview extends BaseController
             
             // 格式化数据
             foreach ($result['list'] as &$item) {
-                $item['game_profit'] = CommonUtils::convertBalance($item['game_profit'], false);
+                $item['game_profit'] = (float)$item['game_profit'];
                 $item['game_profit_usdt'] = $item['game_profit'];
-                $item['bet_amount'] = CommonUtils::convertBalance($item['bet_amount'], false);
-                $item['bet_amount_usdt'] = $item['bet_amount'];
-                $item['platform_fee'] = CommonUtils::convertBalance($item['bet_amount'] * 0.08, false);
+                $item['bet_amount'] = (float)$item['bet_amount'];
+                $item['bet_amount_usdt'] = (int)$item['bet_amount'];
+                $item['platform_fee'] = (float)bcmul($item['bet_amount'], $GLOBALS['CommissionRate'], 2);
                 $item['platform_fee_usdt'] = $item['platform_fee'];
+                $item['buy_free_bet_count'] = (int)$item['buy_free_bet_count'];
+                $item['total_winning_score'] = (float)$item['total_winning_score'];
                 $item['region'] = '';
             }
             

+ 41 - 22
app/controller/TrendStatis.php

@@ -87,15 +87,16 @@ class TrendStatis extends BaseController
         
         try {
             // 获取输赢走势数据
-            $list = TrendStatisModel::getWinLoseTrend(
-                $userInfo['merchant_id'],
-                $filters
-            );
-
-            if ($list) {
+            $result = TrendStatisModel::getWinLoseTrend($userInfo['merchant_id'],$filters);
+            for ($i = 0; $i < 24; $i++) {
+                $list[] = ['hour' => $i, 'total_win' => 0];
+            }
+            if ($result) {
+                $result = array_column($result, null, 'hour');
                 foreach ($list as &$item) {  
-                    $item['hour']  = (int) $item['hour'];          
-                    $item['total_win'] = CommonUtils::convertBalance($item['total_win'], false);
+                    if (isset($result[$item['hour']])) {
+                        $item['total_win'] = (float)$result[$item['hour']]['total_win'];
+                    }
                 }
             }
                         
@@ -122,17 +123,22 @@ class TrendStatis extends BaseController
         
         try {
             // 获取输赢走势数据
-            $list = TrendStatisModel::getMultipleTrend(
+            $result = TrendStatisModel::getMultipleTrend(
                 $userInfo['merchant_id'],
                 $filters
             );
 
-            if ($list) {
+            for ($i = 0; $i < 24; $i++) {
+                $list[] = ['hour' => $i, 'total_win' => 0];
+            }  
+            if ($result) {
+                $result = array_column($result, null, 'hour');
                 foreach ($list as &$item) {  
-                    $item['hour']  = (int) $item['hour'];          
-                    $item['total_multiple'] = (int) $item['total_multiple'];
+                    if (isset($result[$item['hour']])) {
+                        $item['total_multiple'] = (float)$result[$item['hour']]['total_multiple'];
+                    }
                 }
-            }
+            }                      
                         
             usort($list, function ($a, $b) {
                 return (int)$a['hour'] < (int)$b['hour'] ? -1 : 1;                
@@ -158,19 +164,32 @@ class TrendStatis extends BaseController
         
         try {
             // 获取商户每日走势数据
-            $list = TrendStatisModel::getMerchantDailyTrend(
+            $result = TrendStatisModel::getMerchantDailyTrend(
                 $userInfo['merchant_id'],
                 $filters
             );
+            for ($i = strtotime($filters['start_time']); $i <= strtotime($filters['end_time']); $i += 86400) {
+                $list[] = [
+                    'date' => intval(date('Ymd', $i)), 
+                    'total_win' => 0,
+                    'total_bet' => 0,
+                    'bet_count' => 0,
+                    'bet_users' => 0,
+                    'rtp' => 0,
+                ];
+            }              
 
-            if ($list) {
-                foreach ($list as &$item) {  
-                    $item['date']  = (int) $item['date'];  
-                    $item['total_win'] = CommonUtils::convertBalance($item['total_win'], false);
-                    $item['total_bet'] = CommonUtils::convertBalance($item['total_bet'], false);
-                    $item['bet_count'] = (int) $item['bet_count'];
-                    $item['bet_users'] = (int) $item['bet_users'];
-                    $item['rtp'] = round($item['total_win'] / $item['total_bet'], 2) * 100;
+            if ($result) {
+                $result = array_column($result, null, 'date');
+                foreach ($list as &$item) { 
+                    if (isset($result[$item['date']])) {
+                        $rowData = $result[$item['date']];
+                        $item['total_win'] = (float)$rowData['total_win'];
+                        $item['total_bet'] = (float)$rowData['total_bet'];
+                        $item['bet_count'] = (int) $rowData['bet_count'];
+                        $item['bet_users'] = (int) $rowData['bet_users'];
+                        $item['rtp'] = (float)bcmul(bcdiv((string)$rowData['total_win'], (string)$rowData['total_bet'], 4), '100', 2);
+                    }
                 }
             }            
             

+ 4 - 2
app/model/GameBetGameModel.php

@@ -354,11 +354,13 @@ class GameBetGameModel extends Model
         
         // 时间筛选
         if (!empty($filters['start_time'])) {
-            $where[] = ['create_time', '>=', $filters['start_time']];
+            $startTime = strtotime($filters['start_time']);
+            $where[] = ['create_time', '>=', $startTime];
         }
         
         if (!empty($filters['end_time'])) {
-            $where[] = ['create_time', '<=', $filters['end_time']];
+            $endTime = strtotime($filters['end_time']);
+            $where[] = ['create_time', '<=', $endTime];
         }
 
         if (!empty($filters['game_id'])) {

+ 8 - 10
app/model/MerchantStatisModel.php

@@ -32,12 +32,12 @@ class MerchantStatisModel extends Model
         
         // 时间筛选
         if (!empty($filters['start_time'])) {
-            $startTime = strtotime($filters['start_time'] . " 00:00:00");
+            $startTime = strtotime($filters['start_time']);
             $where[] = ['create_time', '>=', $startTime];
         }
         
         if (!empty($filters['end_time'])) {
-            $endTime = strtotime($filters['end_time']. " 23:59:59");
+            $endTime = strtotime($filters['end_time']. " +1 day");
             $where[] = ['create_time', '<=', $endTime];
         }
         $query = self::where($where);
@@ -46,10 +46,10 @@ class MerchantStatisModel extends Model
         // 获取列表数据
         $list = $query->field([
                     "FROM_UNIXTIME(create_time, '%Y-%m-%d') as date", // 日期
-                    'AVG(rtp) AS rtp', // 平均RTP
                     'COUNT(DISTINCT uname) as bet_users',  // 投注用户数
                     'COUNT(id) as bet_count',  // 注单数
                     'SUM(bet) as bet_amount',  // 注单金额(下注分数)
+                    'SUM(winning_score) as total_winning_score', // 总赢金额
                     'SUM(total_win_amount) as game_profit',  // 游戏输赢(金额变化)
                     'COUNT(DISTINCT game_id) as game_count',  // 游戏数量
                     'SUM(is_buy_game) as buy_free_bet_count'
@@ -64,8 +64,9 @@ class MerchantStatisModel extends Model
         
         foreach ($list as &$row)
         {
-            $row['login_users'] = $merchantsUserStatic[$row['date']]['login_users'] ?? 0;
-            $row['register_users'] = $merchantsUserStatic[$row['date']]['register_users'] ?? 0;
+            $row['rtp'] = (float)bcmul(bcdiv($row['total_winning_score'], $row['bet_amount'], 4), '100', 2);
+            $row['login_users'] = $merchantsUserStatic['login'][$row['date']]['count'] ?? 0;
+            $row['register_users'] = $merchantsUserStatic['register'][$row['date']]['count'] ?? 0;
         }
         
         return [
@@ -104,19 +105,16 @@ class MerchantStatisModel extends Model
 
         // 获取列表数据
         $data = $query->field([
-                    'AVG(rtp) AS rtp', // 平均RTP
                     'COUNT(DISTINCT uname) as bet_users',  // 投注用户数
                     'COUNT(id) as bet_count',  // 注单数
                     'SUM(bet) as bet_amount',  // 注单金额(下注分数)
                     'SUM(total_win_amount) as game_profit',  // 游戏输赢(金额变化)
+                    'SUM(winning_score) as total_winning_score',  // 游戏赢总额
                     'COUNT(DISTINCT game_id) as game_count',  // 游戏数量
                     'SUM(is_buy_game) as buy_free_bet_count'
         ])
             ->find()
-            ->toArray();
-        // 获取登录用户、注册用户 
-        $data['login_users'] = MerchantsUserModel::where($getWhere('login_time'))->count(); 
-        $data['register_users'] = MerchantsUserModel::where($getWhere('create_time'))->count();  
+            ->toArray(); 
         
         return $data;
     }

+ 11 - 22
app/model/MerchantsUserModel.php

@@ -171,13 +171,13 @@ class MerchantsUserModel extends Model
         $userBalanceConfig = MerchantsUserBalanceModel::getUsersBalanceList($merchantId, $user_ids);
         // 获取今日登录次数
         $loginFilter = [
-            'start_time' => strtotime(date('Y-m-d')),
-            'end_time' => strtotime(date('Y-m-d') . " +1 day"),
+            'start_time' => date('Y-m-d'),
+            'end_time' => date('Y-m-d', strtotime('tomorrow')),
         ];
-        $loginCount = PlayerLoginLogModel::getLoginCount($merchantId, $user_ids, $loginFilter);
+        $loginCount = PlayerLoginLogModel::getLoginPlayerCount($merchantId, $user_ids, $loginFilter);
         $betGameFilter = [
-            'start_time' => strtotime(date('Y-m-d')),
-            'end_time' => strtotime(date('Y-m-d') . " +1 day"),
+            'start_time' => date('Y-m-d'),
+            'end_time' => date('Y-m-d', strtotime('tomorrow')),
             'user_ids' => $user_ids,
         ];        
         // 获取今日输赢、今日下注
@@ -291,29 +291,18 @@ class MerchantsUserModel extends Model
             return $where;
         };
 
-        // 获取注册用户数
+        // 获取每日注册用户数
         $registerUsers = self::where($getWhere('create_time'))->field([
                     "FROM_UNIXTIME(create_time, '%Y-%m-%d') as date", // 日期
-                    'COUNT(user_id) as register_users',  // 注册用户数
+                    'COUNT(user_id) as count',  // 注册用户数
             ])
             ->group('date')
             ->select()
             ->toArray();
-        // 获取登录用户数
-        $loginUsers = self::where($getWhere('login_time'))->field([
-                    "FROM_UNIXTIME(login_time, '%Y-%m-%d') as date", // 日期
-                    'COUNT(user_id) as login_users',  // 登录用户数
-            ])
-            ->group('date')
-            ->select()
-            ->toArray(); 
-            
-        $staticData = [];    
-        $loginUsers = array_column($loginUsers, null, 'login_users');
-        foreach ($registerUsers as $key => $row) {
-            $row['login_users'] = $loginUsers[$key]['login_users'] ?? 0;
-            $staticData[$key] = $row;
-        }
+        // 获取每日登录用户数
+        $loginUsers = PlayerLoginLogModel::getLoginDateCount($merchantId, $filters);
+
+        $staticData = ['register' => array_column($registerUsers, null, 'date'), 'login' => $loginUsers];
         return $staticData;
     }
 }

+ 44 - 11
app/model/PlayerLoginLogModel.php

@@ -33,15 +33,9 @@ class PlayerLoginLogModel extends Model
     ];
 
     /**
-     * 获取玩家登录次数
+     * 获取查询条件
      */
-    public static function getLoginCount($merchant_id, $player_ids, $filter = []) {
-        // 支持单个或多个player_id
-        $player_ids = is_array($player_ids) ? $player_ids : [$player_ids];
-        
-        $query = self::where('merchant_id', $merchant_id)
-                     ->whereIn('player_id', $player_ids);
-        
+    private static function _getWhere($query, $filter) {
         // 处理可选过滤条件
         if (!empty($filter['game_id'])) {
             $query->where('game_id', $filter['game_id']);
@@ -56,19 +50,58 @@ class PlayerLoginLogModel extends Model
         }
         
         if (!empty($filter['start_time'])) {
-            $query->where('login_time', '>=', $filter['start_time']);
+            $startTime = strtotime($filter['start_time']);
+            $query->where('login_time', '>=', $startTime);
         }
         
         if (!empty($filter['end_time'])) {
-            $query->where('login_time', '<=', $filter['end_time']);
+            $endTime = strtotime($filter['end_time']);
+            $query->where('login_time', '<=', $endTime);
         }
         
         if (!empty($filter['login_ip'])) {
             $query->where('login_ip', $filter['login_ip']);
         }
+        return $query;
+    }
+
+    /**
+     * 获取每日登录用户数
+     */
+    public static function getLoginDateCount($merchant_id, $filter = []) {
+        $query = self::where('merchant_id', $merchant_id);
+        // 按player_id分组统计
+        $result = self::_getWhere($query, $filter)->field("FROM_UNIXTIME(login_time, '%Y-%m-%d') as date, COUNT(*) as count")
+                       ->group('date')
+                       ->select()
+                       ->toArray();
+        return array_column($result, null, 'date');
+    }
+
+    /**
+     * 获取每小时登录用户数
+     */
+    public static function getLoginHourCount($merchant_id, $filter = []) {
+        $query = self::where('merchant_id', $merchant_id);
+        // 按player_id分组统计
+        $result = self::_getWhere($query, $filter)->field("FROM_UNIXTIME(login_time, '%Y%m%d%H') as hour, COUNT(*) as count")
+                       ->group('hour')
+                       ->select()
+                       ->toArray();
+        return $result;
+    }    
+
+    /**
+     * 获取玩家登录次数
+     */
+    public static function getLoginPlayerCount($merchant_id, $player_ids, $filter = []) {
+        // 支持单个或多个player_id
+        $player_ids = is_array($player_ids) ? $player_ids : [$player_ids];
+        $query = self::where('merchant_id', $merchant_id)
+                     ->whereIn('player_id', $player_ids);
         
         // 按player_id分组统计
-        $result = $query->field('player_id, COUNT(*) as count')
+        $result = self::_getWhere($query, $filter)->field('player_id, COUNT(*) as count')
                        ->group('player_id')
                        ->select()
                        ->toArray();

+ 2 - 3
app/model/TrendStatisModel.php

@@ -51,8 +51,7 @@ class TrendStatisModel extends Model
             ])
             ->group('hour')
             ->select()
-            ->toArray();        
-        
+            ->toArray();  
         return $data;
     }
     
@@ -107,7 +106,7 @@ class TrendStatisModel extends Model
         }
         
         if (!empty($filters['end_time'])) {
-            $endTime = strtotime($filters['end_time']);
+            $endTime = strtotime($filters['end_time'] . ' +1 day');
             $wheres[] = ['create_time', '<=', $endTime];
         }