129 行
4.3 KiB
PHP
129 行
4.3 KiB
PHP
<?php
|
||
// 完整的登录和接口调用测试
|
||
|
||
// 启动session
|
||
session_start();
|
||
|
||
echo "<h2>完整登录流程测试</h2>";
|
||
|
||
// 1. 模拟登录
|
||
echo "<h3>1. 执行登录</h3>";
|
||
|
||
// 包含ThinkPHP框架
|
||
define('APP_PATH', './Application/');
|
||
define('RUNTIME_PATH', './Runtime/');
|
||
require './ThinkPHP/ThinkPHP.php';
|
||
|
||
try {
|
||
// 实例化登录控制器
|
||
$loginController = new \Retail\Controller\LoginController();
|
||
|
||
// 模拟POST数据
|
||
$_POST['username'] = '13888888888';
|
||
$_POST['password'] = 'test123';
|
||
|
||
// 捕获登录响应
|
||
ob_start();
|
||
$loginController->doLogin_v1();
|
||
$login_output = ob_get_clean();
|
||
|
||
echo "登录响应: " . $login_output . "<br><br>";
|
||
|
||
// 解析登录响应
|
||
$login_data = json_decode($login_output, true);
|
||
|
||
if ($login_data && $login_data['status'] == 1 && isset($login_data['list']) && !empty($login_data['list'])) {
|
||
$user = $login_data['list'][0];
|
||
echo "选择用户: " . $user['name'] . " (ID: " . $user['id'] . ")<br>";
|
||
|
||
// 2. 设置用户session
|
||
echo "<h3>2. 设置用户Session</h3>";
|
||
|
||
// 模拟doUserLogin方法的逻辑
|
||
if ($user['user_type'] == 0) {
|
||
$user['login_type'] = 3; // 假设是商户
|
||
} else {
|
||
$user['login_type'] = $user['user_type'];
|
||
}
|
||
|
||
// 设置jurisdiction_user session
|
||
$_SESSION['jurisdiction_user'] = $user;
|
||
echo "已设置 jurisdiction_user session<br>";
|
||
|
||
// 根据用户类型设置其他session
|
||
switch ($user['login_type']) {
|
||
case 1:
|
||
// 合伙人
|
||
$_SESSION['admin_userinfo'] = array('id' => $user['system_user_id']);
|
||
echo "已设置合伙人相关session<br>";
|
||
break;
|
||
case 3:
|
||
// 商户
|
||
$_SESSION['merchant_userinfo'] = array('id' => $user['system_user_id']);
|
||
$_SESSION['identity'] = 1;
|
||
echo "已设置商户相关session<br>";
|
||
break;
|
||
case 4:
|
||
// 店长
|
||
$_SESSION['store_userinfo'] = array('id' => $user['system_user_id']);
|
||
$_SESSION['storeid'] = isset($user['storeid']) ? $user['storeid'] : 1;
|
||
$_SESSION['identity'] = 2;
|
||
echo "已设置店长相关session<br>";
|
||
break;
|
||
}
|
||
|
||
echo "Session设置完成<br><br>";
|
||
|
||
// 3. 测试storeSet接口
|
||
echo "<h3>3. 测试storeSet接口</h3>";
|
||
|
||
// 清空之前的POST数据
|
||
$_POST = array();
|
||
|
||
// 设置storeSet的POST数据
|
||
$_POST['store_name'] = '测试门店名称';
|
||
$_POST['store_address'] = '测试门店地址';
|
||
$_POST['store_phone'] = '13800138000';
|
||
|
||
echo "POST数据: ";
|
||
echo "<pre>" . print_r($_POST, true) . "</pre>";
|
||
|
||
// 检查session状态
|
||
echo "Session状态:<br>";
|
||
echo "jurisdiction_user: " . (isset($_SESSION['jurisdiction_user']) ? 'EXISTS' : 'NOT SET') . "<br>";
|
||
if (isset($_SESSION['jurisdiction_user'])) {
|
||
echo "用户ID: " . $_SESSION['jurisdiction_user']['id'] . "<br>";
|
||
echo "用户类型: " . $_SESSION['jurisdiction_user']['user_type'] . "<br>";
|
||
}
|
||
echo "<br>";
|
||
|
||
// 实例化XcxController并调用storeSet
|
||
$xcxController = new \Retail\Controller\XcxController();
|
||
|
||
echo "调用storeSet方法...<br>";
|
||
|
||
// 捕获输出
|
||
ob_start();
|
||
$xcxController->storeSet();
|
||
$storeset_output = ob_get_clean();
|
||
|
||
echo "storeSet方法输出: " . $storeset_output . "<br>";
|
||
|
||
// 如果输出为空,说明方法执行成功但没有返回内容
|
||
if (empty($storeset_output)) {
|
||
echo "<span style='color: green;'>storeSet方法执行成功(无输出内容)</span><br>";
|
||
}
|
||
|
||
} else {
|
||
echo "<span style='color: red;'>登录失败或无用户数据</span><br>";
|
||
}
|
||
|
||
} catch (Exception $e) {
|
||
echo "<span style='color: red;'>执行出错: " . $e->getMessage() . "</span><br>";
|
||
echo "错误文件: " . $e->getFile() . ":" . $e->getLine() . "<br>";
|
||
}
|
||
|
||
echo "<h3>4. Session信息</h3>";
|
||
echo "<pre>" . print_r($_SESSION, true) . "</pre>";
|
||
|
||
?>
|