# 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




