123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- namespace Cas\Module;
- use Cas\Dao\UserInfo;
- use KIF\Verify;
- use KIF\Cookie;
- use KIF\Core\Request;
- use KIF\Core\Config;
- /**
- *
- * CAS 用户模型
- *
- * @author lihuanchun@qq.com
- */
- class User {
- private $objDUserInfo;
- public function __construct() {
- $this->objDUserInfo = new UserInfo ();
- }
-
- /**
- * 页面中调用获取 当前用户信息的方法
- */
- public function getRunTimeUserData() {
- $JsonUserData = Cookie::get ( 'CAS_USER_DATA' );
- $objDUser = new User ();
- if (empty ( $JsonUserData )) {
- $info = array ();
- $uid = $objDUser->initUser ( $info );
- } else {
- $userData = json_decode ( $userData );
- if ($userData ['key'] != Math::md5_16 ( $userData ['id'] )) {
- return false;
- }
- $uid = $userData ['id'];
- }
- $userData = $objDUser->get ( $uid );
- $userData ['key'] = Math::md5_16 ( $uid );
- $userData = json_decode ( $userData );
- Cooke::set ( 'CAS_USER_DATA', $userData, 60 * 60 * 24 * 20 ,'.'.$_SERVER['HTTP_HOST']);
- return $userData;
- }
-
- /**
- * 通过$passport_uid 获取用户信息
- */
- public function getUserDataPasspord($passport_uid){
- $condition = array(
- 'passport_uid' => $passport_uid
- );
- $ids = $this->objDUserInfo -> findIdsBy($condition,1);
-
- $userData = $this->objDUserInfo -> gets($ids);
-
- $userData = array_pop($userData);
-
- return $userData;
-
- }
- /**
- * 获取一个随机头像
- */
- public function getAvatar() {
- $num = 16;
- $config = Config::getInstance ()->get ( 'web_cfg' );
- $file = $config['cdn'] . '/public/avatar/'.rand(1,$num).'.jpg';
- return $file;
- }
- /**
- * 为当前用户分配一个头像
- */
- public function setAvatar() {
- $ids = $this->objDUserInfo -> findIdsBy(array());
-
- $userData = $this->objDUserInfo -> gets($ids);
- if ($userData) {
- foreach ($userData as $k => $v) {
- if (empty($v['headimgurl']) || (isset($v['headimgurl']) && !strstr($v['headimgurl'], 'https://'))) {
- $result['headimgurl'] = $this->getAvatar();
- $this->objDUserInfo->modify (array('headimgurl' => $result['headimgurl']) , array (
- 'id' => $v['id']
- ) );
- }
- }
- }
- }
-
- /**
- * 初始化一个新用户 返回ID
- */
- public function initUser() {
- $info = array (
- 'is_new' => UserInfo::NEW_USER ,
- 'passport_uid' => '-1',
- 'headimgurl' => $this->getAvatar(),
- );
- return $this->objDUserInfo->add ( $info );
- }
-
- /**
- * 绑定一个新用户
- */
- public function bindingUser($info, $uid) {
- $info ['is_new'] = UserInfo::OLD_USER;
- return $this->objDUserInfo->modify ( $info, array (
- 'id' => $uid
- ) );
- }
-
- /**
- * 通过本平台的UID 获取用户信息
- */
- public function get($uid) {
- $result = array ();
-
- if (! Verify::unsignedInt ( $uid )) {
- return $result;
- }
-
- $result = $this->objDUserInfo->gets ( array (
- $uid
- ) );
- if (! $result) {
- return array ();
- }
-
- $result = array_pop ( $result );
- if (empty($result['headimgurl'])) {
- $result['headimgurl'] = $this->getAvatar();
- $this->objDUserInfo->modify (array('headimgurl' => $result['headimgurl']) , array (
- 'id' => $result['id']
- ));
- }
- return $result;
- }
-
- /**
- * 通过本平台的UIDS 批量获取用户信息
- */
- public function gets(array $uids) {
- $result = array ();
- if (! $uids) {
- return $result;
- }
-
- $result = $this->objDUserInfo->gets ( $uids );
- return $result;
- }
- }
|