122 lines
3.8 KiB
PHP
Executable File
122 lines
3.8 KiB
PHP
Executable File
<?php
|
||
|
||
# @Author: 嗨噜客(三亚) <fm453>
|
||
# @Date: 2022-04-15 20:22:03
|
||
# @Email: fm453@lukegzs.com
|
||
# @Last modified by: fm453
|
||
# @Last modified time: 2024-07-08T16:02:30+08:00
|
||
# @Copyright: www.hiluker.cn
|
||
//平台用户入口
|
||
|
||
namespace api\controllers\gm\v1;
|
||
|
||
use Yii;
|
||
use yii\web\Controller;
|
||
use common\models\Member as User;
|
||
use addons\models\AcUserExt;
|
||
use addons\models\AcStore;
|
||
use addons\models\AcEmployee;
|
||
|
||
class Common extends Controller
|
||
{
|
||
protected int $pid = 0;
|
||
protected int $user_id = 0;
|
||
protected int $site_id = 0;
|
||
protected int $store_id = 0;
|
||
protected int $employee_id = 0;
|
||
protected object $user_info;
|
||
protected array $postdata = []; //重新整理一下客户端传输的数据
|
||
protected bool $imgHttp = TRUE; //图片附件地址生成http(s) //false:不生成http网址; true:仅生成http网址; https:生成https网址
|
||
protected int $page = 1; //当前数据分页
|
||
protected int $pageSize = 10; //默认数据分页大小
|
||
public $enableCsrfValidation = FALSE;
|
||
//替代常规的_construct 析构函数;其他方法调用前执行
|
||
protected int $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 User();
|
||
$res = $userModel->findOne($this->user_id);
|
||
if (!$res) {
|
||
$this->user_id = 0;
|
||
} else {
|
||
$this->user_info = $res;
|
||
}
|
||
//TBD 后期需加上更多登陆验证逻辑
|
||
}
|
||
if (isset($postdata['employee_id']) && (int)$postdata['employee_id'] > 0) {
|
||
$this->employee_id = (int)$postdata['employee_id'];
|
||
}
|
||
|
||
$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 userToken($user = [], $refresh = FALSE, $expire = NULL)
|
||
{
|
||
//生成token(用户数据,是否强制更新,过期时间 // TBD 具体方法有待优化
|
||
$expire = $expire ? $expire : '+1 day';
|
||
$token = Yii::$app->session->get('memberToken');
|
||
$tokenExpired = Yii::$app->session->get('memberTokenExpired');
|
||
if (!$token || $refresh) {
|
||
$tokenExpired = strtotime($expire) * 1000;
|
||
$token = md5('username=' . $user['username'] . '&mobile=' . $user['mobile'] . '&time=' . $tokenExpired);
|
||
Yii::$app->session->set('memberToken', $token);
|
||
Yii::$app->session->set('memberTokenExpired', $tokenExpired);
|
||
}
|
||
$user['token'] = $token;
|
||
$user['tokenExpired'] = $tokenExpired;
|
||
return $user;
|
||
}
|
||
}
|