micro-account/pkg/serializer/user.go

108 lines
3.1 KiB
Go
Raw Normal View History

2025-02-20 08:18:23 +00:00
package serializer
import (
"github.com/fonchain_enterprise/micro-account/api/account"
"github.com/fonchain_enterprise/micro-account/pkg/common/utils"
"github.com/fonchain_enterprise/micro-account/pkg/model"
)
type User struct {
ID uint `json:"id"`
Account string `json:"account"`
NickName string `json:"nickName"`
Type int `json:"type"`
TelNum string `json:"telNum"`
Status string `json:"status"`
Avatar string `json:"avatar"`
CreateAt int64 `json:"createAt"`
RealNameID uint `json:"realNameId"`
RealName string `json:"realName"`
IDNum string `json:"idNum"`
}
// BuildUser 序列化用户
func BuildUser(user *model.User) *account.AccountInfo {
var realName = ""
var IdNum = ""
var videos []*account.TrainVideo
//if user.RealName != nil {
// realName = user.RealName.Name
// IdNum, _ = user.RealName.GetIDNum(user)
//}
//extend := &account.Extend{
// JumpTo: user.Extend.JumpTo,
// Lang: user.Extend.Lang,
// CanScan: user.Extend.CanScan,
// ResolutionRatio: user.Extend.ResolutionRatio,
//}
//
//if user.InvitationCode == "" {
// user.InvitationCode, _ = SynInvitationCode(user.ID)
//}
return &account.AccountInfo{
ID: uint64(user.ID),
TelNum: user.TelNum,
Status: int32(user.Status),
//Avatar: user.AvatarURL(),
CreateAt: user.CreatedAt.Format("2006-01-02 15:04:05"),
RealName: realName,
Domain: *user.Domain,
IDNum: IdNum,
TrainVideos: videos,
UpdatedAt: user.UpdatedAt.Format("2006-01-02 15:04:05"),
}
}
func BuildUsers(items []*model.User) (users []*account.AccountInfo) {
for _, item := range items {
user := BuildUser(item)
users = append(users, user)
}
return users
}
func BuildUserList(user []*model.User) []*account.UserListInfo {
if len(user) == 0 {
return []*account.UserListInfo{}
}
var userList []*account.UserListInfo
for _, i := range user {
userList = append(userList, &account.UserListInfo{
Id: uint64(i.ID),
Status: int32(i.Status),
Name: i.RealName.Name,
Sex: int32(i.RealName.Sex),
Nationality: i.RealName.Nationality,
DocumentType: int32(i.RealName.DocumentType),
CertificatePicture: i.RealName.CertificatePicture,
Validity: i.RealName.Validity,
PlaceOfResidence: i.RealName.PlaceOfResidence,
GroupPhoto: i.RealName.GroupPhoto,
Attachment: i.RealName.Attachment,
RegistrationTime: i.RegistrationTime,
AuditTime: i.AuditTime,
SubNum: i.SubNum,
NotPassRemarks: i.NotPassRemarks,
TelNum: i.TelNum,
})
}
return userList
}
func SynInvitationCode(userId uint) (string, error) {
//保存实名信息
var user *model.User
if err := model.DB.Model(&model.User{}).First(&user, userId).Error; err != nil {
return "", err
}
invitationCode := utils.DecimalToAny(int(userId))
updateMap := map[string]interface{}{"invitation_code": invitationCode}
return invitationCode, model.DB.Model(&model.User{}).Where(&model.User{ID: userId}).Updates(updateMap).Error
}