PageRenderTime 43ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/web/admin/module/analysis/rank_list.php

https://gitlab.com/xusasuke6/Slg_php
PHP | 250 lines | 222 code | 16 blank | 12 comment | 54 complexity | 01eee4911e1d805d01c92c7633a195af MD5 | raw file
  1. <?php
  2. define('IN_DATANG_SYSTEM', true);
  3. global $smarty;
  4. include "../../../config/config.php";
  5. include SYSDIR_ADMIN.'/include/global.php';
  6. $rank_type_option = array(
  7. '0' => $buf_lang['new']['select'],
  8. '1' => $buf_lang['left']['level_rank'],
  9. '2' => $buf_lang['left']['rich_rank'],
  10. '3' => $buf_lang['left']['ask_rank'],
  11. // '4' => '守关排行',
  12. '5' => $buf_lang['new']['mount_rank'],
  13. // '6' => '征战排行',
  14. // '7' => '内功排行',
  15. // '8' => '送花排行',
  16. // '9' => '收花排行',
  17. '10' => $buf_lang['new']['fightpower_rank'],
  18. '11' => $buf_lang['new']['jade_rank'],
  19. '12' => $buf_lang['new']['ranking_athletics'],
  20. '13' => $buf_lang['new']['ranking_camp_battle'],
  21. '14' => $buf_lang['new']['meet_fight_rank'],
  22. '15' => $buf_lang['new']['monsterattack_rank'],
  23. );
  24. $rank_type = $_REQUEST['rank_type'];
  25. if ( !isset($_REQUEST['dateStart'])){
  26. $start_day = strtotime("Monday");
  27. $dateStart = strftime("%Y-%m-%d %H:%M:%S",$start_day);
  28. }
  29. else
  30. {
  31. $dateStart = trim(SS($_REQUEST['dateStart']));
  32. }
  33. if ( !isset($_REQUEST['dateEnd']))
  34. {
  35. $dateEnd = strftime ("%Y-%m-%d", time() )." 23:59:59";
  36. }
  37. else
  38. {
  39. $dateEnd = trim(SS($_REQUEST['dateEnd']));
  40. }
  41. $dateStartStamp = strtotime($dateStart);
  42. $dateEndStamp = strtotime($dateEnd);
  43. $dateStartStr = strftime ("%Y-%m-%d %H:%M:%S", $dateStartStamp);
  44. $dateEndStr = strftime ("%Y-%m-%d %H:%M:%S", $dateEndStamp);
  45. $now_date = strftime ("%Y-%m-%d", time()) ;
  46. $start = strtotime($now_date)-3600*24;
  47. $start1 = strtotime($now_date)-3600*48;
  48. $end = strtotime($now_date)-1;
  49. $meet_time = $start+3600*12;
  50. $action = trim($_GET['action']);
  51. if ($action == 'search')
  52. {
  53. if($rank_type == '0')
  54. {
  55. errorExit("请选择排行类型!");
  56. }
  57. else if($rank_type == '1') //等级
  58. {
  59. $level_sql = "SELECT b.role_id, b.role_name, b.account_name, b.family_name, b.category, b.sex, a.level," .
  60. " e.last_offline_time, e.is_online" .
  61. " FROM db_role_attr_p as a, db_role_base_p as b, db_role_ext_p as e" .
  62. " WHERE a.role_id = b.role_id AND a.role_id=e.role_id" .
  63. " ORDER BY a.level desc, a.exp desc, b.role_id desc LIMIT 0, 100";
  64. $level_rank = GFetchRowSet($level_sql);
  65. foreach($level_rank as $key=>$value)
  66. {
  67. $second_cnt = time()-$value['last_offline_time'];
  68. $level_rank[$key]['left_day'] = intval($second_cnt/3600/24);
  69. $level_rank[$key]['left_h_m'] = intval(($second_cnt%86400)/3600).'时'.date('i分s秒',$second_cnt);
  70. }
  71. $smarty->assign("level_rank", $level_rank);
  72. }
  73. else if($rank_type == '2') //财富
  74. {
  75. $wealth_sql = "SELECT b.role_id, b.role_name, b.account_name, b.family_name, b.category, b.sex, a.silver," .
  76. " e.last_offline_time, e.is_online" .
  77. " FROM db_role_attr_p as a, db_role_base_p as b, db_role_ext_p as e" .
  78. " WHERE a.role_id = b.role_id AND a.role_id=e.role_id" .
  79. " ORDER BY a.silver desc, a.level desc, b.role_id desc LIMIT 0, 100";
  80. $wealth_rank = GFetchRowSet($wealth_sql);
  81. foreach($wealth_rank as $key=>$value)
  82. {
  83. $second_cnt = time()-$value['last_offline_time'];
  84. $wealth_rank[$key]['left_day'] = intval($second_cnt/3600/24);
  85. $wealth_rank[$key]['left_h_m'] = intval(($second_cnt%86400)/3600).'时'.date('i分s秒',$second_cnt);
  86. }
  87. $smarty->assign("wealth_rank", $wealth_rank);
  88. }
  89. else if($rank_type == '3') //答题
  90. {
  91. $answer_sql = "SELECT b.role_id, b.role_name, b.account_name, a.family_name, a.category, a.sex, a.score," .
  92. " a.list, e.last_offline_time, e.is_online" .
  93. " FROM db_role_base_p as b, db_role_ext_p as e, db_role_answer_p as a" .
  94. " WHERE a.time>= {$dateStartStamp} and a.time<={$dateEndStamp} and a.roleid = b.role_id AND a.roleid=e.role_id" .
  95. " ORDER BY a.score desc, a.list asc LIMIT 0, 100";
  96. $answer_rank = GFetchRowSet($answer_sql);
  97. foreach($answer_rank as $key=>$value)
  98. {
  99. $second_cnt = time()-$value['last_offline_time'];
  100. $answer_rank[$key]['left_day'] = intval($second_cnt/3600/24);
  101. $answer_rank[$key]['left_h_m'] = intval(($second_cnt%86400)/3600).'时'.date('i分s秒',$second_cnt);
  102. $answer_rank[$key]['answer_h_m'] = intval($value['list']/3600).'时'.date('i分s秒', $value['list']);
  103. }
  104. $smarty->assign("answer_rank", $answer_rank);
  105. }
  106. else if($rank_type == '4') //守关
  107. {
  108. $smarty->assign("defense_rank", $defense_rank);
  109. }
  110. else if($rank_type == '5') //坐骑
  111. {
  112. $mount_sql = "SELECT *" .
  113. " FROM t_ranking_mounts_quality" .
  114. " ORDER BY rank asc LIMIT 0, 100";
  115. $mount_rank = GFetchRowSet($mount_sql);
  116. $smarty->assign("mount_rank", $mount_rank);
  117. }
  118. else if($rank_type == '6') //征战
  119. {
  120. $smarty->assign("fight_rank", $fight_rank);
  121. }
  122. else if($rank_type == '7') //内功
  123. {
  124. $smarty->assign("intern_rank", $intern_rank);
  125. }
  126. else if($rank_type == '8') //送花
  127. {
  128. $smarty->assign("send_flower_rank", $send_flower_rank);
  129. }
  130. else if($rank_type == '9') //收花
  131. {
  132. $smarty->assign("receive_flower_rank", $receive_flower_rank);
  133. }
  134. /* '10' => '战斗力排行',
  135. '11' => '宠物排行',
  136. '12' => '竞技场排行',
  137. '13' => '阵营战排行',
  138. '14' => '遭遇战排行',
  139. '15' => '突厥攻城排行',*/
  140. else if($rank_type == '10') //战斗力排行
  141. {
  142. $fightpower_rank_sql = "SELECT a.level,r.sex,r.role_id,r.role_name,r.fighting_power,r.faction_id,r.family_name,r.category,r.max_phy_attack,r.phy_defence" .
  143. " FROM db_role_base_p as r , db_role_attr_p as a" .
  144. " WHERE r.role_id = a.role_id " .
  145. " ORDER BY r.fighting_power desc LIMIT 0, 100";
  146. $fightpower_rank = GFetchRowSet($fightpower_rank_sql);
  147. $smarty->assign("fightpower_rank", $fightpower_rank);
  148. }
  149. else if($rank_type == '11') //宠物排行
  150. {
  151. $jade_rank_sql = "SELECT *" .
  152. " FROM t_ranking_jade" .
  153. " ORDER BY rank asc LIMIT 0, 100";
  154. $jade_rank = GFetchRowSet($jade_rank_sql);
  155. $smarty->assign("jade_rank", $jade_rank);
  156. }
  157. else if($rank_type == '12') //竞技场排行
  158. {
  159. $ranking_athletics_sql = 'SELECT a.date,a.role_id,a.role_name,a.role_score,b.category,b.family_name,b.faction_id,b.sex,b.fighting_power '.
  160. ' FROM `t_ranking_athletics` as a,`db_role_base_p` as b '.
  161. ' where date>'.$start.' and date<='.$end.' and b.role_id = a.role_id'.
  162. ' order by a.role_score desc limit 0, 100';
  163. $ranking_athletics_tem = GFetchRowSet($ranking_athletics_sql);
  164. if(empty($ranking_athletics_tem))
  165. {
  166. $level_sql = 'SELECT a.date,a.role_id,a.role_name,a.role_score,b.category,b.family_name,b.faction_id,b.sex,b.fighting_power '
  167. . ' FROM `t_ranking_athletics` as a,`db_role_base_p` as b '
  168. . ' where date>'.$start1.' and date<='.$end.' and b.role_id = a.role_id'
  169. . ' order by a.role_score desc limit 0, 100';
  170. $ranking_athletics = GFetchRowSet($level_sql);
  171. }
  172. else
  173. {
  174. $ranking_athletics = $ranking_athletics_tem;
  175. }
  176. $smarty->assign("ranking_athletics", $ranking_athletics);
  177. }
  178. else if($rank_type == '13') //阵营战排行
  179. {
  180. $camp_battle_sql = 'SELECT * FROM `t_ranking_camp_battle`'
  181. . ' where date>'.$start.' and date<='.$end.''
  182. . ' order by add_honor desc limit 0, 100';
  183. $camp_battle_tem = GFetchRowSet($camp_battle_sql);
  184. if(empty($camp_battle_tem))
  185. {
  186. $camp_battle_sql = 'SELECT * FROM `t_ranking_camp_battle`'
  187. . ' where date>'.$start1.' and date<='.$end.''
  188. . ' order by add_honor desc limit 0, 100';
  189. $camp_battle = GFetchRowSet($camp_battle_sql);
  190. }
  191. else
  192. {
  193. $camp_battle = $camp_battle_tem;
  194. }
  195. $smarty->assign("camp_battle", $camp_battle);
  196. }
  197. else if($rank_type == '14') //遭遇战排行
  198. {
  199. $meet_fight11_sql = 'SELECT * FROM `t_ranking_meet_fight`'
  200. . ' where date>'.$start.' and date<='.$meet_time.''
  201. . ' order by rank asc limit 0, 100';
  202. $meet_fight11 = GFetchRowSet($meet_fight11_sql);
  203. $meet_fight21_sql = 'SELECT * FROM `t_ranking_meet_fight`'
  204. . ' where date>'.$meet_time.' and date<='.$end.''
  205. . ' order by rank asc limit 0, 100';
  206. $meet_fight21 = GFetchRowSet($meet_fight21_sql);
  207. $meet_fight = array('meet_fight11'=>$meet_fight11,'meet_fight21'=>$meet_fight21);
  208. //exit(print_r($meet_fight));
  209. $smarty->assign("meet_fight", $meet_fight);
  210. }
  211. else if($rank_type == '15') //突厥攻城排行
  212. {
  213. $wk_day=date("N");
  214. if($wk_day>3)
  215. {
  216. $start_monsterattack = strtotime($now_date)-($wk_day - 3)*24*3600;
  217. }
  218. else
  219. {
  220. $start_monsterattack = strtotime($now_date)-($wk_day)*24*3600;
  221. }
  222. $end_monsterattack = $start_monsterattack+24*3600-1;
  223. $monster_attack_sql = 'SELECT a.date,a.role_id,a.role_name,a.kill,b.category,b.family_name,b.faction_id,b.sex,b.fighting_power FROM `t_ranking_monster_attack` as a ,`db_role_base_p` as b '
  224. . ' where date>'.$start_monsterattack.' and date<='.$end_monsterattack.' and b.role_id = a.role_id'
  225. . ' order by `kill` desc limit 0, 100';
  226. $monster_attack = GFetchRowSet($monster_attack_sql);
  227. $smarty->assign("monster_attack", $monster_attack);
  228. }
  229. }
  230. $smarty->assign("rank_type_option", $rank_type_option);
  231. $smarty->assign("rank_type", $rank_type);
  232. $smarty->assign("search_keyword1", $dateStartStr);
  233. $smarty->assign("search_keyword2", $dateEndStr);
  234. $smarty->display("module/analysis/rank_list.html");