You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

81 lines
2.3 KiB

package user
import (
"yunyan/comm"
"yunyan/lego/sys/log"
"yunyan/lego/sys/mysql"
"yunyan/pb"
"yunyan/sys/ipinfo"
"time"
)
// @Summary 获取用户信息
// @Description 使用token获取用户信息
// @Tags User
// @Accept json
// @Produce json
// @Security BearerAuth
// @Param user body pb.UserGetInfoReq true "获取用户信息"
// @Success 200 {object} comm.HttpResult{data=pb.UserGetInfoResp} "成功返回用户信息"
// @Router /api/home/user_getinfo [post]
func (this *apiComp) GetInfo(session comm.IUserSession, req *pb.UserGetInfoReq) (resp *pb.UserGetInfoResp, errdata *pb.ErrorData) {
var (
user *pb.DBUser
divices []*pb.DBUserDivice
ipdata *ipinfo.IPData
// isNew bool
err error
)
if user, err = this.module.model.findforid(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Message: err.Error(),
}
this.module.Error("登录失败!", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "err", Value: err.Error()})
return
}
if user.Version != "" && user.Version != req.Version {
user.Version = req.Version
// isNew = true
}
if user.Channel != 0 && user.Channel != req.Channel {
user.Channel = req.Channel
// isNew = true
}
ipdata, _ = ipinfo.GetIPInfo(session.GetIP())
// if isNew {
user.Lastsgintime = time.Now().Unix()
this.module.model.save(user)
// }
if ipdata != nil {
user.ContinentCode = ipdata.ContinentCode
user.CountryCode = ipdata.CountryCode
}
if divices, err = this.module.model.getDevices(user.Uid); err != nil && err != mysql.ErrNoDocuments {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Message: err.Error(),
}
this.module.Error("获取用户设备失败!", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "err", Value: err.Error()})
return
}
// if user.Phone != "" {
// user.Phone = aes.AesDecryptCBC(user.Phone, this.options.CBCKey)
// }
// if user.Mail != "" {
// user.Mail = aes.AesDecryptCBC(user.Mail, this.options.CBCKey)
// }
// if user.Name != "" {
// user.Name = aes.AesDecryptCBC(user.Name, this.options.CBCKey)
// }
// if user.Avatar != "" {
// user.Avatar = aes.AesDecryptCBC(user.Avatar, this.options.CBCKey)
// }
resp = &pb.UserGetInfoResp{
User: user,
Devices: divices,
}
return
}