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;
|
|
}
|
|
}
|