Files
bl/modules/base/service/base.bbs.go
昔念 5320dffdd8 ```
feat(user): 添加QQ绑定功能并重构用户登录逻辑

- 在BaseSysUser模型中添加QQ字段,移除密码字段(暂时注释)
- 移除base.bbs.go中的GetUserInfo函数,将其迁移至base_sys_user.go
- 将登录服务中的外部API调用逻辑整合到BaseSysUserService
- 新增BindQQ方法实现QQ号绑定功能,包含重复绑定检查
- 更新GetUserInfo方法,完善用户信息获取和同步逻辑
- 优化导入包,移除未使用的依赖项
```
2026-03-24 11:56:36 +08:00

94 lines
3.4 KiB
Go

package service
// TokenResponse 用来解析第一次请求返回的 JSON
type TokenResponse struct {
Token string `json:"token"`
UserID int `json:"userId"`
}
// UserResponse 最外层响应
type UserResponse struct {
Data UserData `json:"data"`
Included []Group `json:"included"`
}
// UserData 用户数据
type UserData struct {
Type string `json:"type"`
ID string `json:"id"`
Attributes UserAttributes `json:"attributes"`
Relationships Relationships `json:"relationships"`
}
// UserAttributes 用户详细属性
type UserAttributes struct {
Username string `json:"username"`
DisplayName string `json:"displayName"`
AvatarUrl string `json:"avatarUrl"`
Slug string `json:"slug"`
JoinTime string `json:"joinTime"`
DiscussionCount int `json:"discussionCount"`
CommentCount int `json:"commentCount"`
CanEdit bool `json:"canEdit"`
CanEditCredentials bool `json:"canEditCredentials"`
CanEditGroups bool `json:"canEditGroups"`
CanDelete bool `json:"canDelete"`
LastSeenAt string `json:"lastSeenAt"`
Achievements []string `json:"achievements"`
Followed *bool `json:"followed"` // 可能为 null
FollowerCount int `json:"followerCount"`
FollowingCount int `json:"followingCount"`
Money float64 `json:"money"`
CanEditMoney bool `json:"canEditMoney"`
CanSuspend bool `json:"canSuspend"`
LastCheckinTime string `json:"lastCheckinTime"`
TotalContinuousCheckIn int `json:"totalContinuousCheckIn"`
CheckInCompatibleExtensions []string `json:"checkInCompatibleExtensions"`
CanCheckin bool `json:"canCheckin"`
CanCheckinContinuous bool `json:"canCheckinContinuous"`
CanBeFollowed bool `json:"canBeFollowed"`
FofUploadUploadCountCurrent int `json:"fof-upload-uploadCountCurrent"`
FofUploadUploadCountAll int `json:"fof-upload-uploadCountAll"`
BestAnswerCount int `json:"bestAnswerCount"`
IsBanned bool `json:"isBanned"`
CanBanIP bool `json:"canBanIP"`
CanEditNickname bool `json:"canEditNickname"`
}
// Relationships 用户关系
type Relationships struct {
Groups RelationshipData `json:"groups"`
Achievements RelationshipData `json:"achievements"`
}
// RelationshipData 关系数据
type RelationshipData struct {
Data []RelationshipItem `json:"data"`
}
// RelationshipItem 关系项
type RelationshipItem struct {
Type string `json:"type"`
ID string `json:"id"`
}
// Group 组信息
type Group struct {
Type string `json:"type"`
ID string `json:"id"`
Attributes GroupAttributes `json:"attributes"`
}
// GroupAttributes 组属性
type GroupAttributes struct {
NameSingular string `json:"nameSingular"`
NamePlural string `json:"namePlural"`
Color string `json:"color"`
Icon string `json:"icon"`
IsHidden int `json:"isHidden"`
}
var bbsurl = "http://43.248.3.21:45632"
// GetUserInfo 输入用户名和密码,返回用户信息结构体