/** * @param $openid * @param null $userData * @return User|static * @throws Exception */ public function save($openid, $userData = null) { $user = User::model()->findByPk($openid); if (!empty($user)) { if (!empty($userData['nickname'])) { $user->nickname = $userData['nickname']; } if (!empty($userData['headimgurl'])) { $user->avatar = $userData['headimgurl']; } } else { $ip = YII_DEBUG ? '121.32.52.217' : CommonTool::getClientIp(); $info = CommonTool::getCity($ip); $count = User::model()->count(); $user = new User(); $user->attributes = array('user_id' => $openid, 'nickname' => empty($userData['nickname']) ? '微信用户' . (25874 + $count) : CommonTool::emojiFilter($userData['nickname']), 'avatar' => !empty($userData['headimgurl']) ? $userData['headimgurl'] : 'http://appmcdn.m0.hk/avatar.jpg', 'ip' => $ip, 'city' => $info['city'], 'created_at' => time()); } if (!$user->save()) { CommonTool::log($user->getErrors()); throw new Exception('创建用户失败!'); } return $user; }
/** * 记录日志 * @param string $message */ public static function log($message = '', $class = __CLASS__) { $traceMessage = ''; $traces = debug_backtrace(); foreach ($traces as $trace) { if (isset($trace['file'], $trace['line']) && strpos($trace['file'], YII_PATH) !== 0) { $traceMessage .= "\nin " . $trace['file'] . ' (' . $trace['line'] . ')'; } } if (!is_string($message)) { $message = print_r($message, 1); } self::$memoryTime = microtime(true); Yii::getLogger()->autoFlush = 1; Yii::getLogger()->autoDump = true; $openid = ''; if (!Yii::app()->user->isGuest) { $openid = Yii::app()->user->id; } Yii::getLogger()->log(CommonTool::getClientIp() . "[" . $openid . "]:" . $_SERVER['REQUEST_URI'] . "\n" . $message . "\n---------------\n" . $traceMessage . "\n" . print_r($_POST, 1) . "\n" . print_r($_GET, 1) . "\n" . print_r($_REQUEST, 1)); }