yangys
2024-10-30 25db770e621f1259b8d5b7fd514207f7481c2d0f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.qianwen.smartman.common.cache;
 
import com.qianwen.smartman.common.constant.ExtCacheConstant;
import com.qianwen.core.cache.utils.CacheUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.core.tool.utils.SpringUtil;
import com.qianwen.core.tool.utils.StringUtil;
import com.qianwen.smartman.modules.system.entity.User;
import com.qianwen.smartman.modules.system.service.IUserService;
 
public class UserCache {
    private static final String USER_CACHE_ID = "user:id:";
    private static final String USER_CACHE_ACCOUNT = "user:account:";
    private static final IUserService userService = (IUserService) SpringUtil.getBean(IUserService.class);
 
    public static User getUserByTaskUser(String taskUserId) {
        Long userId = Long.valueOf(Func.toLong(StringUtil.removePrefix(taskUserId, "taskUser_")));
        return getUser(userId);
    }
 
    public static User getUser(Long userId) {
        return CacheUtil.get("blade:user", USER_CACHE_ID, userId, () -> {
            return userService.getById(userId);
        }, ExtCacheConstant.TENANT_MODE);
    }
 
    public static User getUser(String tenantId, String account) {
        return CacheUtil.get("blade:user", USER_CACHE_ACCOUNT, tenantId + "-" + account, () -> {
            return userService.userByAccount(tenantId, account);
        }, ExtCacheConstant.TENANT_MODE);
    }
}