123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- <?php
- /**
- * 用户信息相关
- */
- defined( 'IN_WEB') or die( 'Include Error!');
- include_once dirname(__FILE__) . "/Base.php";
- class Rank extends Base{
-
- /**
- * 总排行榜 合并体力、金币、等级接口
- * @return string
- * Created by: hss
- * Created on: 2020/6/1 11:40
- */
- public function index($param){
- $sidList = oo::functions()->uint($param['sidList']);
- $type = oo::functions()->escape($param['type']);
- if(empty($sidList)){
- $sidList = 999;
- }
- if(empty($type)){
- $type = 'money';
- }
- $tb = otable::gh_gameserver(1);
- if($sidList == 999){
- $sql = "SELECT mid as uid,{$type} FROM {$tb} ORDER BY {$type} DESC LIMIT 100";
- }else{
- $tbUserinfo = otable::userinfo(1);
- $sql = "SELECT a.mid as uid,a.{$type} FROM {$tb} AS a INNER JOIN {$tbUserinfo} AS b WHERE b.login_plat = {$sidList} AND b.uid = a.mid ORDER BY a.{$type} DESC LIMIT 100";
- }
-
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $uidList = [];
- foreach($ret as $k => $v){
- $uidList[] = $v['uid'];
- }
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
-
- return json_encode(["data"=>$ret,"pay_list"=>$pay_list]);
- }
-
- public function money($param){
- $tb = otable::gh_gameserver(1);
- $sql = "SELECT mid as uid,money FROM {$tb} ORDER BY money DESC LIMIT 100";
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $uidList = [];
- foreach($ret as $k => $v){
- $uidList[] = $v['uid'];
- }
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
-
- return json_encode(["data"=>$ret,"pay_list"=>$pay_list]);
- }
- public function star($param){
- $tb = otable::gh_gameserver(1);
- $sql = "SELECT mid as uid,star FROM {$tb} ORDER BY star DESC LIMIT 100";
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $uidList = [];
- foreach($ret as $k => $v){
- $uidList[] = $v['uid'];
- }
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
-
- return json_encode(["data"=>$ret,"pay_list"=>$pay_list]);
- }
-
- //等级排行榜
- public function level($param){
- $tb = otable::gh_gameserver(1);
- $sql = "SELECT mid as uid,levelId as level FROM {$tb} ORDER BY levelId DESC LIMIT 100";
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $uidList = [];
- foreach($ret as $k => $v){
- $uidList[] = $v['uid'];
- }
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
-
- return json_encode(["data"=>$ret,"pay_list"=>$pay_list]);
- }
-
- //体力排行榜
- public function spins($param){
- $tb = otable::gh_gameserver(1);
- $sql = "SELECT mid as uid,spins FROM {$tb} ORDER BY spins DESC LIMIT 100";
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $uidList = [];
- foreach($ret as $k => $v){
- $uidList[] = $v['uid'];
- }
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
-
- return json_encode(["data"=>$ret,"pay_list"=>$pay_list]);
- }
-
- public function day($param){
- $date = $param['date'];
- //var_dump(date('Ymd'));
- if($date == date('Ymd')){
- $key = ['level','money','spins'];
- $inset = [];
-
- foreach ($key as $row){
- $data = oo::commonOprRedis('common')->hGetAll(okeys::todayDataRank($row));
- arsort($data);
- $data = array_slice($data,0,50,true);
- $inset[$row] = $data;
-
- $uidList = [];
- foreach($data as $k => $v){
- $uidList[] = $k;
- }
-
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
- $inset[$row."Vip"] = $pay_list;
- }
- return json_encode($inset);
- }
- $tb = otable::dayRank();
- $sql = "SELECT * FROM {$tb} WHERE date={$date} LIMIT 1;";
- $ret = oo::commonOprDb('statistics')->getOne($sql,MYSQLI_ASSOC);
- foreach ($ret as $key=>$row){
- $ret[$key] = json_decode($row,true);
-
- $uidList = [];
- foreach($ret[$key] as $k => $v){
- $uidList[] = $k;
- }
-
- //查出付费用户
- $pay_list = [];
- if(!empty($uidList)){
- $slTable = otable::summarylist();
- $UidStr = empty($uidList) ? '' : " AND sl_uid IN (".implode(',', $uidList).") ";
- $sql = " SELECT DISTINCT sl_uid FROM {$slTable} AS sl WHERE sl.sl_status = 2 AND sl.sl_pusd > 0 {$UidStr}";
- $list = oo::commonOprDB('payment')->getAll($sql, 1);
-
- foreach($list as $k => $v){
- $pay_list[] = $v['sl_uid'];
- }
- }
- $ret[$key."Vip"] = $pay_list;
- }
- return json_encode($ret);
- }
- }
|