# LoginUserUtil 工具类 - 快速开始 ## 简介 `LoginUserUtil` 是一个用于在web端商户平台中快速获取当前登录用户信息的工具类。所有方法都是静态方法,可以直接调用。 --- ## 快速使用 ### 1. 获取用户ID(最常用) ```java Integer userId = LoginUserUtil.getCurrentUserId(); if (userId != null) { // 用户已登录,使用userId } else { // 用户未登录 } ``` ### 2. 获取完整用户信息 ```java StoreUser storeUser = LoginUserUtil.getCurrentStoreUser(); if (storeUser != null) { Integer userId = storeUser.getId(); String phone = storeUser.getPhone(); Integer storeId = storeUser.getStoreId(); // ... 使用其他字段 } ``` ### 3. 验证用户登录 ```java if (LoginUserUtil.isLogin()) { // 已登录 } else { // 未登录 } ``` ### 4. 权限验证 ```java Integer targetUserId = 12345; if (LoginUserUtil.isCurrentUser(targetUserId)) { // 是当前用户,允许操作 } else { // 不是当前用户,拒绝操作 } ``` --- ## 核心方法速查 | 方法 | 返回值 | 说明 | 是否查数据库 | |------|--------|------|-------------| | `getCurrentUserId()` | Integer | 用户ID | ❌ | | `getCurrentUserPhone()` | String | 手机号 | ❌ | | `getCurrentUserType()` | String | 用户类型 | ❌ | | `getCurrentUserInfo()` | JSONObject | Token中的用户信息 | ❌ | | `getCurrentStoreUser()` | StoreUser | 完整用户信息 | ✅ | | `getCurrentStoreId()` | Integer | 门店ID | ✅ | | `isLogin()` | boolean | 是否已登录 | ❌ | | `isCurrentUser(userId)` | boolean | 是否为当前用户 | ❌ | --- ## 实际应用示例 ### Service层自动填充 ```java @Service public class OrderServiceImpl { public void createOrder(Order order) { // 自动填充当前用户信息 order.setUserId(LoginUserUtil.getCurrentUserId()); order.setStoreId(LoginUserUtil.getCurrentStoreId()); orderMapper.insert(order); } } ``` ### 权限控制 ```java @Service public class StoreServiceImpl { public void updateStore(Integer storeId, StoreInfo info) { Integer currentStoreId = LoginUserUtil.getCurrentStoreId(); if (!storeId.equals(currentStoreId)) { throw new RuntimeException("只能修改自己的门店"); } // 执行更新 } } ``` --- ## 注意事项 1. ⚠️ 所有方法失败时返回`null`,使用前需判空 2. ⚠️ 带数据库查询的方法(如`getCurrentStoreUser()`)性能较慢,避免频繁调用 3. ⚠️ 如需多个字段,使用`getCurrentStoreUser()`一次性获取,避免多次查询 4. ⚠️ 需要用户已登录(有有效Token)才能正常工作 --- ## 详细文档 请查看完整文档:[LOGIN_USER_UTIL_GUIDE.md](商户登录util) 使用示例代码:[LoginUserUtilExample.java](../src/main/java/shop/alien/storeplatform/example/LoginUserUtilExample.java) --- **版本**: v1.0 **日期**: 2025-11-17 **作者**: ssk