package user import ( "errors" logger "eta/eta_mini_ht_api/common/component/log" userDao "eta/eta_mini_ht_api/models/user" "gorm.io/gorm" ) type UserDTO struct { Id int Username string Mobile string OpenId string UnionId string } type FeedbackDTO struct { Mobile string `json:"mobile"` UserId int `json:"userId"` Message string `json:"message"` } func convertUserDTO(user userDao.TemplateUser) UserDTO { return UserDTO{ Id: user.Id, Username: user.Username, Mobile: user.Mobile, OpenId: user.OpenId, } } func GetUserByMobile(mobile string) (UserDTO, error) { var dto UserDTO templateUser, err := userDao.GetUserByMobile(mobile) if err != nil { if !errors.Is(err, gorm.ErrRecordNotFound) { logger.Error("查询用户失败:%v", err) } return dto, err } dto = convertUserDTO(templateUser) return dto, nil } func RegisterTemplateUser(dto *UserDTO) (err error) { templateUser := convertToTemplateUser(dto) err = userDao.RegisterTemplateUser(&templateUser) if err != nil { logger.Error("创建临时用户失败:%v", err) return } convertToUserDTO(templateUser, dto) return } func GetTemplateUserByOpenId(openId string) (user UserDTO, err error) { templateUser, err := userDao.GetUserByOpenId(openId) if err != nil { logger.Error("获取用户信息失败:%v", err) return } user = convertUserDTO(templateUser) return } func FeedBack(dto FeedbackDTO) (err error) { feedBackEntity := userDao.FeedBack{ Message: dto.Message, Mobile: dto.Mobile, UserID: dto.UserId, } return userDao.InsertFeedBack(feedBackEntity) } func convertToTemplateUser(dto *UserDTO) userDao.TemplateUser { return userDao.TemplateUser{ Username: dto.Username, Mobile: dto.Mobile, OpenId: dto.OpenId, UnionId: dto.UnionId, } } func convertToUserDTO(templateUser userDao.TemplateUser, dto *UserDTO) { dto.Id = templateUser.Id dto.Username = templateUser.Username dto.Mobile = templateUser.Mobile dto.OpenId = templateUser.OpenId dto.UnionId = templateUser.UnionId } func BindUserMobile(userId int, mobile string) (err error) { err = userDao.BindMobile(userId, mobile) if err != nil { if !errors.Is(err, gorm.ErrRecordNotFound) { logger.Error("绑定手机号失败:%v", err) } return } return }