fix
zhangqian
2023-10-28 ff1ee6b076586cb5009e452bb9d39822df91973e
fix
4个文件已修改
34 ■■■■■ 已修改文件
middleware/jwt.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
middleware/refresh_user.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/user.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/lru.go 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
middleware/jwt.go
@@ -98,11 +98,8 @@
        // parseToken 解析token包含的信息
        claims, err := j.ParseToken(token)
        if err != nil {
            if err == utils.TokenExpired {
                c.Next()
                return
            }
            c.Next()
            ctx.Fail(ecode.JWTDisabled)
            c.Abort()
            return
        }
        userInfo := service.GetUserBaseCache(claims.UserId)
@@ -110,6 +107,11 @@
            SyncUserInfo([]string{claims.UserId})
            userInfo = service.GetUserBaseCache(claims.UserId)
        }
        if userInfo == nil {
            ctx.Fail(ecode.JWTDisabled)
            c.Abort()
            return
        }
        SetActiveTime(claims.UserId)
middleware/refresh_user.go
@@ -43,6 +43,7 @@
        intervalRefreshUserMinute: intervalRefreshUserMinute,
        ctx:                       ctx,
        cancel:                    cancel,
        Users:                     map[string]*CurrentActiveUser{},
    }
}
model/user.go
@@ -314,11 +314,11 @@
func (slf *UserSearch) UUID2CrmUserId(userIds []string) ([]*IdPair, error) {
    var (
        records = make([]*IdPair, 0)
        db      = slf.build()
        db      = slf.Orm.Model(&User{})
    )
    db = db.Where("uuid in ?", userIds)
    if err := db.Find(&records).Error; err != nil {
    if err := db.Select("user.id, user.uuid").Find(&records).Error; err != nil {
        return records, fmt.Errorf("find all err: %v", err)
    }
service/lru.go
@@ -20,18 +20,23 @@
}
func GetUserBaseCache(adminUserId string) *UserBaseInfo {
    userCache, ok := userCache.Get(adminUserId)
    cache, ok := userCache.Get(adminUserId)
    if !ok {
        userService := UserService{}
        userRecord, err := userService.GetUserInfo(adminUserId)
        if err != nil {
            return nil
        }
        subIds, _, err := userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ","))
        subIds = append(subIds, userRecord.ID)
        if err != nil {
            return nil
        var subIds []int
        if len(userRecord.SubUserIds) > 0 {
            subIds, _, err = userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ","))
            if err != nil {
                return nil
            }
        }
        subIds = append(subIds, userRecord.ID)
        baseInfo := &UserBaseInfo{
            UserId:     userRecord.ID,
            NickName:   userRecord.NickName,
@@ -40,7 +45,7 @@
        SetUserBaseCache(adminUserId, baseInfo)
        return baseInfo
    }
    return userCache
    return cache
}
func SetUserBaseCache(adminUserId string, user *UserBaseInfo) {