package service import ( "errors" "service-api/global" "service-api/model" "service-api/model/request" "service-api/utils" "time" uuid "github.com/satori/go.uuid" "gorm.io/gorm" ) func FindUserByUuid(uuid string) (err error, user *model.User) { var u model.User if err = global.MG_DB.Where("`uuid` = ?", uuid).First(&u).Error; err != nil { return errors.New("user not exist"), &u } return nil, &u } func FindUserByEmail(email string) (err error, user *model.User) { var u model.User if err = global.MG_DB.Where("`email` = ?", email).First(&u).Error; err != nil { return errors.New("user not exist"), &u } return nil, &u } func CheckUserByEmailExist(email string) (err error, res bool) { var u model.User if err = global.MG_DB.Where("`email` = ?", email).First(&u).Error; err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { return errors.New("find user error"), true } return nil, false } //@function: ForgetPassword //@description: 修改用户密码 //@param: u *model.SysUser, newPassword string //@return: err error, userInter *model.SysUser func ForgetPassword(u request.ForgetPasswordStruct) (err error, userInter *model.User) { var user model.User auth := RedisGet("forget:email" + u.Email) if auth != u.Auth { return errors.New("认证码不正确"), &user } err = global.MG_DB.Where("email = ?", u.Email).First(&user).Update("password", utils.MD5V([]byte(u.NewPassword))).Error return err, &user } func Login(u *model.User) (err error, userInter *model.User) { var user model.User u.Password = utils.MD5V([]byte(u.Password)) err = global.MG_DB.Where("email = ? AND password = ?", u.Email, u.Password).First(&user).Error return err, &user } func Register(u model.User) (err error, userInter model.User) { var user model.User if !errors.Is(global.MG_DB.Where("email = ?", u.Username).First(&user).Error, gorm.ErrRecordNotFound) { // 判断邮箱是否注册 return errors.New("email is exist"), userInter } // 否则 附加uuid 密码md5简单加密 注册 u.Password = utils.MD5V([]byte(u.Password)) u.UUID = uuid.NewV4().String() now := time.Now() u.RegTime = &now u.Username = "user_" + utils.GetInvitation() err = global.MG_DB.Create(&u).Error if err != nil { err = errors.New("register failed") } return err, u } func UpdateUserDetail(p *request.UpdateUserDetailParams, userID string) error { return global.MG_DB.Model(&model.User{}).Where("uuid=?", userID).Updates(&p.UserDesc).Error }