文件
mashangyoujiu/_ai_archive/scripts/test_complete_flow.php

129 行
4.3 KiB
PHP

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?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>";
?>