提供文件上传及静态服务
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.4 KiB

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
}