# @Date: 2022-04-15 20:22:03 # @Email: fm453@lukegzs.com # @Last modified by: fm453 # @Last modified time: 2024-08-09T09:02:06+08:00 # @Copyright: www.hiluker.cn //前端用户入口 namespace api\controllers\client\v1; use Yii; use yii\web\Controller; use common\models\Fans; //‘from’字段为ctms的数据 use addons\models\AcFansExt; class Common extends Controller { protected $pid = 0; protected $user_id = 0; protected $site_id = 0; protected $user_info; protected $postdata = []; //重新整理一下客户端传输的数据 protected $imgHttp = TRUE; //图片附件地址生成http(s) //false:不生成http网址; true:仅生成http网址; https:生成https网址 protected $page = 1; //当前数据分页 protected $pageSize = 10; //默认数据分页大小 public $enableCsrfValidation = FALSE; protected $timestamp = TIMESTAMP; //替代常规的_construct 析构函数;其他方法调用前执行 public function init() { parent::init(); //判断请求内容类型 content-type,支持 json请求 $postdata = Yii::$app->request->post(); $headers = Yii::$app->request->headers; $contentType = $headers->get('content-type'); if ($contentType == "application/json") { $postdata = json_decode(file_get_contents('php://input'), TRUE); } $this->postdata = $postdata; $session = Yii::$app->session; if (isset($postdata['pid'])) { if ((int)$postdata['pid'] > 0) { $this->pid = (int)$postdata['pid']; $session->set('pid', $this->pid); } else { $session->set('pid', 0); } } else if (isset($_GET['pid'])) { if ((int)$_GET['pid'] > 0) { $this->pid = $_GET['pid']; $session->set('pid', $this->pid); } else { $session->set('pid', 0); } } else { $session->set('pid', 0); } $this->site_id = Yii::$app->params['siteId']; if (isset($postdata['uid']) && (int)$postdata['uid'] > 0) { $this->user_id = (int)$postdata['uid']; } if ($this->user_id) { $userModel = new Fans(); $res = $userModel->findOne($this->user_id); if (!$res) { $this->user_id = 0; } else { $this->user_info = $res; } //TBD 后期需加上更多登陆验证逻辑 } $page = isset($postdata['page']) ? (int)$postdata['page'] : 1; $this->page = $page <= 0 ? 1 : $page; $pageSize = isset($postdata['psize']) ? (int)$postdata['psize'] : 10; $this->pageSize = $pageSize <= 0 ? 10 : $pageSize; } public function result($msg, $data = NULL, $code = 0) { $return = []; $return['code'] = $code; $return['msg'] = $msg; if ($data) { $return['data'] = $data; } exit(json_encode($return, JSON_UNESCAPED_UNICODE)); } public function fansToken($user = [], $refresh = FALSE, $expire = NULL) { //生成token(用户数据,是否强制更新,过期时间 // TBD 具体方法有待优化 $expire = $expire ? $expire : '+1 day'; $token = Yii::$app->session->get('fansToken'); $tokenExpired = Yii::$app->session->get('fansTokenExpired'); if (!$token || $refresh) { $tokenExpired = strtotime($expire) * 1000; $token = md5('username=' . $user['username'] . '&mobile=' . $user['mobile'] . '&time=' . $tokenExpired); Yii::$app->session->set('fansToken', $token); Yii::$app->session->set('fansTokenExpired', $tokenExpired); } $user['token'] = $token; $user['tokenExpired'] = $tokenExpired; return $user; } }