Level.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Score\Lib;
  3. use Dever;
  4. class Level
  5. {
  6. # 获取当前用户的等级信息
  7. public function get($uid, $level_type_id = 1, $prefix = 'vip')
  8. {
  9. $result = $this->config($prefix);
  10. $userLevel = Dever::db('score/user_level')->one(array('uid' => $uid, 'level_type_id' => $level_type_id));
  11. if ($userLevel) {
  12. $level = Dever::db('score/level')->one($userLevel['level_id']);
  13. $next_level = Dever::db('score/level')->one(array('level_type_id' => $level_type_id, 'level' => $level['level'] + 1));
  14. $result['current']['id'] = $level['id'];
  15. $result['current']['name'] = $level['name'];
  16. $result['current']['level'] = $level['level'];
  17. $result['current']['key'] .= $level['level'];
  18. if ($next_level) {
  19. $result['next']['id'] = $next_level['id'];
  20. $result['next']['name'] = $next_level['name'];
  21. $result['next']['level'] = $next_level['level'];
  22. $result['next']['key'] .= $next_level['level'];
  23. }
  24. }
  25. return $result;
  26. }
  27. private function config($prefix)
  28. {
  29. $result = array
  30. (
  31. # 当前等级
  32. 'current' => array
  33. (
  34. # id
  35. 'id' => '',
  36. # 名称
  37. 'name' => '',
  38. # 等级数字
  39. 'level' => '',
  40. # 唯一key
  41. 'key' => $prefix,
  42. ),
  43. # 下一级
  44. 'next' => array
  45. (
  46. # id
  47. 'id' => '',
  48. # 名称
  49. 'name' => '',
  50. # 等级数字
  51. 'level' => '',
  52. # 唯一key
  53. 'key' => $prefix,
  54. ),
  55. );
  56. return $result;
  57. }
  58. }