User.class.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace Cas\Module;
  3. use Cas\Dao\UserInfo;
  4. use KIF\Verify;
  5. use KIF\Cookie;
  6. use KIF\Core\Request;
  7. /**
  8. *
  9. * CAS 用户模型
  10. *
  11. * @author lihuanchun@qq.com
  12. */
  13. class User {
  14. private $objDUserInfo;
  15. public function __construct() {
  16. $this->objDUserInfo = new UserInfo ();
  17. }
  18. /**
  19. * 页面中调用获取 当前用户信息的方法
  20. */
  21. public function getRunTimeUserData() {
  22. $JsonUserData = Cookie::get ( 'CAS_USER_DATA' );
  23. $objDUser = new User ();
  24. if (empty ( $JsonUserData )) {
  25. $info = array ();
  26. $uid = $objDUser->initUser ( $info );
  27. } else {
  28. $userData = json_decode ( $userData );
  29. if ($userData ['key'] != Math::md5_16 ( $userData ['id'] )) {
  30. return false;
  31. }
  32. $uid = $userData ['id'];
  33. }
  34. $userData = $objDUser->get ( $uid );
  35. $userData ['key'] = Math::md5_16 ( $uid );
  36. $userData = json_decode ( $userData );
  37. Cooke::set ( 'CAS_USER_DATA', $userData, 60 * 60 * 24 * 20 ,'.'.$_SERVER['HTTP_HOST']);
  38. return $userData;
  39. }
  40. /**
  41. * 通过$passport_uid 获取用户信息
  42. */
  43. public function getUserDataPasspord($passport_uid){
  44. $condition = array(
  45. 'passport_uid' => $passport_uid
  46. );
  47. $ids = $this->objDUserInfo -> findIdsBy($condition,1);
  48. $userData = $this->objDUserInfo -> gets($ids);
  49. $userData = array_pop($userData);
  50. return $userData;
  51. }
  52. /**
  53. * 初始化一个新用户 返回ID
  54. */
  55. public function initUser() {
  56. $info = array (
  57. 'is_new' => UserInfo::NEW_USER ,
  58. 'passport_uid' => '-1',
  59. );
  60. return $this->objDUserInfo->add ( $info );
  61. }
  62. /**
  63. * 绑定一个新用户
  64. */
  65. public function bindingUser($info, $uid) {
  66. $info ['is_new'] = UserInfo::OLD_USER;
  67. return $this->objDUserInfo->modify ( $info, array (
  68. 'id' => $uid
  69. ) );
  70. }
  71. /**
  72. * 通过本平台的UID 获取用户信息
  73. */
  74. public function get($uid) {
  75. $result = array ();
  76. if (! Verify::unsignedInt ( $uid )) {
  77. return $result;
  78. }
  79. $result = $this->objDUserInfo->gets ( array (
  80. $uid
  81. ) );
  82. if (! $result) {
  83. return array ();
  84. }
  85. return array_pop ( $result );
  86. }
  87. /**
  88. * 通过本平台的UIDS 批量获取用户信息
  89. */
  90. public function gets(array $uids) {
  91. $result = array ();
  92. if (! $uids) {
  93. return $result;
  94. }
  95. $result = $this->objDUserInfo->gets ( $uids );
  96. return $result;
  97. }
  98. }