LOGIN_USER_UTIL_README.md 2.9 KB

LoginUserUtil 工具类 - 快速开始

简介

LoginUserUtil 是一个用于在web端商户平台中快速获取当前登录用户信息的工具类。所有方法都是静态方法,可以直接调用。


快速使用

1. 获取用户ID(最常用)

Integer userId = LoginUserUtil.getCurrentUserId();
if (userId != null) {
    // 用户已登录,使用userId
} else {
    // 用户未登录
}

2. 获取完整用户信息

StoreUser storeUser = LoginUserUtil.getCurrentStoreUser();
if (storeUser != null) {
    Integer userId = storeUser.getId();
    String phone = storeUser.getPhone();
    Integer storeId = storeUser.getStoreId();
    // ... 使用其他字段
}

3. 验证用户登录

if (LoginUserUtil.isLogin()) {
    // 已登录
} else {
    // 未登录
}

4. 权限验证

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层自动填充

@Service
public class OrderServiceImpl {
    
    public void createOrder(Order order) {
        // 自动填充当前用户信息
        order.setUserId(LoginUserUtil.getCurrentUserId());
        order.setStoreId(LoginUserUtil.getCurrentStoreId());
        orderMapper.insert(order);
    }
}

权限控制

@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

使用示例代码:LoginUserUtilExample.java


版本: v1.0
日期: 2025-11-17
作者: ssk