diff --git a/application/api/model/Ranking.php b/application/api/model/Ranking.php index a5cd9ca..5bba80e 100644 --- a/application/api/model/Ranking.php +++ b/application/api/model/Ranking.php @@ -55,7 +55,7 @@ class Ranking extends Model ->where($where) ->order('total desc') ->group('a.user_id') - ->page($this->page, $this->page_limit) +// ->page($this->page, $this->page_limit) ->select(); if($lists){ @@ -105,7 +105,7 @@ class Ranking extends Model ->where($where) ->order('total desc') ->group('a.gift_user') - ->page($this->page, $this->page_limit) +// ->page($this->page, $this->page_limit) ->select(); if($lists){ @@ -149,7 +149,8 @@ class Ranking extends Model } } } - + //截取20条 + $lists = array_slice($lists,0,20); $data = [ 'my_ranking' => $my_ranking, 'lists' => $lists @@ -171,7 +172,7 @@ class Ranking extends Model ->join('vs_room b','a.from_id = b.id','left') ->where($where)->field($field)->group('a.from_id') ->order('total desc') - ->page($this->page, $this->page_limit) +// ->page($this->page, $this->page_limit) ->select(); $my_ranking = null; if($lists){ @@ -242,6 +243,8 @@ class Ranking extends Model $my_ranking['room_name'] = $myRoom['room_name']; $my_ranking['room_cover'] = $myRoom['room_cover']; } + //截取20条 + $lists = array_slice($lists,0,20); $data = [ 'my_ranking' => $my_ranking, 'lists' => $lists diff --git a/application/api/model/UserGiftPack.php b/application/api/model/UserGiftPack.php index fd86b3f..1ce8250 100644 --- a/application/api/model/UserGiftPack.php +++ b/application/api/model/UserGiftPack.php @@ -107,7 +107,7 @@ class UserGiftPack extends Model ->page($page, $page_limit) ->select(); if (empty($log_model)) { - return ['code' => 0, 'msg' => '没有数据', 'data' => null]; + return ['code' => 0, 'msg' => '', 'data' => null]; } $list = []; foreach ($log_model as $k => $v){ @@ -134,7 +134,7 @@ class UserGiftPack extends Model ->page($page, $page_limit) ->select(); if (empty($log_model)) { - return ['code' => 0, 'msg' => '没有数据', 'data' => null]; + return ['code' => 0, 'msg' => '', 'data' => null]; } $list = []; foreach ($log_model as $k => $v){ diff --git a/application/common.php b/application/common.php index 2dd6d5e..2cb9ad5 100644 --- a/application/common.php +++ b/application/common.php @@ -941,12 +941,130 @@ function get_user_constellation($birthday) } //数字格式话 -function numberFormat($number) { - $num = round($number / 10000, 2); - if ($num > 1) { - $number = $num . 'w'; +//function numberFormat($number) { +// $num = round($number / 10000, 2); +// if ($num > 1) { +// $number = $num . 'w'; +// } +// return $number; +//} + +/** + * 数字格式化方法 + * @param int|float $number 需要格式化的数字 + * @param string $format 格式类型: 'short'(默认简写), 'thousand'(千分位), 'custom'(自定义) + * @param int $decimals 小数位数 + * @param array $options 其他选项 + * @return string 格式化后的数字字符串 + */ +function numberFormat($number, $format = 'short', $decimals = 2, $options = []) { + + // 确保输入是数字 + if (!is_numeric($number)) { + return '0'; } - return $number; + + switch ($format) { + case 'short': + return formatShortNumber($number, $decimals); + + case 'thousand': + return formatThousandNumber($number, $decimals); + + case 'custom': + return formatCustomNumber($number, $options); + + default: + return formatShortNumber($number, $decimals); + } +} + +/** + * 简写格式化数字 (如: 1.23w, 2.56亿) + */ +function formatShortNumber($number, $decimals = 2) { + $units = ['', 'w', '亿', '万亿']; + $unit_index = 0; + + // 处理负数 + $is_negative = $number < 0; + $number = abs($number); + + // 根据数值大小选择合适的单位 + while ($number >= 10000 && $unit_index < count($units) - 1) { + $number /= 10000; + $unit_index++; + } + + // 格式化数字 + $formatted = round($number, $decimals); + + // 如果是整数且小数部分为0,则不显示小数 + if ($decimals > 0 && floor($formatted) == $formatted) { + $formatted = number_format($formatted, 0); + } else { + $formatted = number_format($formatted, $decimals, '.', ''); + } + + return ($is_negative ? '-' : '') . $formatted . $units[$unit_index]; +} + +/** + * 千分位格式化数字 (如: 1,234,567.89) + */ +function formatThousandNumber($number, $decimals = 2) { + return number_format($number, $decimals, '.', ','); +} + +/** + * 自定义格式化数字 + */ +function formatCustomNumber($number, $options = []) { + $defaults = [ + 'decimals' => 2, + 'decimal_point' => '.', + 'thousands_sep' => ',', + 'suffix' => '', + 'prefix' => '' + ]; + + $options = array_merge($defaults, $options); + + $formatted = number_format($number, $options['decimals'], $options['decimal_point'], $options['thousands_sep']); + + return $options['prefix'] . $formatted . $options['suffix']; +} + +/** + * 简化版本的数字格式化 (改进原方法) + * @param int|float $number 需要格式化的数字 + * @param int $decimals 小数位数 + * @return string 格式化后的数字字符串 + */ +function simpleNumberFormat($number, $decimals = 2) { + if (!is_numeric($number)) { + return '0'; + } + + // 处理负数 + $is_negative = $number < 0; + $number = abs($number); + + if ($number >= 100000000) { // 1亿以上 + $result = round($number / 100000000, $decimals) . '亿'; + } elseif ($number >= 10000) { // 1万以上 + $result = round($number / 10000, $decimals) . 'w'; + } elseif ($number >= 1000) { // 1千以上 + $result = round($number / 1000, $decimals) . 'k'; + } else { + $result = round($number, $decimals); + // 如果是整数且小数部分为0,则不显示小数 + if (floor($result) == $result) { + $result = (int)$result; + } + } + + return ($is_negative ? '-' : '') . $result; } function generateRandomRoomName() {