浏览代码

添加修改密码,验证码登录功能修改

huangyan 10 月之前
父节点
当前提交
b7514ed06b
共有 9 个文件被更改,包括 65 次插入12 次删除
  1. 31 0
      app/controller/user.go
  2. 2 0
      app/e/code_msg.go
  3. 1 1
      app/router.go
  4. 1 0
      app/routers/user.go
  5. 23 8
      app/service/imp/user_imp.go
  6. 1 0
      app/service/user_service.go
  7. 1 1
      configs/config.yaml
  8. 0 2
      global/redis.go
  9. 5 0
      models/user.go

+ 31 - 0
app/controller/user.go

@@ -12,6 +12,7 @@ import (
 	"context"
 	"github.com/astaxie/beego/validation"
 	"github.com/gin-gonic/gin"
+	"github.com/go-playground/validator/v10"
 )
 
 var users service.User = &imp.User{}
@@ -192,3 +193,33 @@ func DeleteUserById(c *gin.Context) {
 	}
 
 }
+
+// UpdatePassword 修改账号密码
+// @Tags 用户管理
+// @Summary 手机号注册
+// @Success 200 {object}  e.R
+// @Fail 400 {object}  e.R
+// @Param req body models.UserRegist true "注册信息"
+// @Accept application/json
+// @Router /user [post]
+func UpdatePassword(c *gin.Context) {
+	var userRegist models.UserUpdate
+	err := c.ShouldBindJSON(&userRegist)
+	if err != nil {
+		e.ResponseError(c, e.JSONParsingFailed)
+		return
+	}
+	validate := validator.New()
+	err = validate.Struct(userRegist)
+	if err != nil {
+		e.ResponseWithMsg(c, e.ERROR, err.Error())
+		return
+	}
+	rescode := users.UpdatePassword(userRegist)
+	if rescode == e.SUCCESS {
+		e.ResponseSuccess(c, nil)
+		return
+	} else {
+		e.ResponseWithMsg(c, rescode, rescode.GetMsg())
+	}
+}

+ 2 - 0
app/e/code_msg.go

@@ -27,6 +27,7 @@ const (
 	ThePasswordIsWrongOrThePhoneNumberIsIncorrect
 	HasSend
 	TheUserIsEmpty
+	GoToRegister
 )
 
 var MsgFlags = map[Rescode]string{
@@ -51,6 +52,7 @@ var MsgFlags = map[Rescode]string{
 	TokenIsExpired: "Token 过期",
 	TokenIsFaild:   "Token 生成失败",
 	TheUserIsEmpty: "用户为空",
+	GoToRegister:   "请前往注册",
 }
 
 func (c Rescode) GetMsg() string {

+ 1 - 1
app/router.go

@@ -13,7 +13,7 @@ import (
 func InitRouter() error {
 	engine := gin.New()
 	//记录日志
-	engine.Use(middleware.LoggerToFile())
+	//	engine.Use(middleware.LoggerToFile())
 	engine.Use(middleware.Cors())
 	engine.GET("/swagger/*any", ginSwagger.DisablingWrapHandler(swaggerFiles.Handler, "NAME_OF_ENV_VARIABLE"))
 	gin.SetMode(global.ServerSetting.Mode)

+ 1 - 0
app/routers/user.go

@@ -12,6 +12,7 @@ func UserRouter(r *gin.Engine) {
 	group.POST("/sendcode", controller.SendCode)
 	group.POST("/login", controller.Login)
 	group.POST("/codelogin", controller.CodeLogin)
+	group.POST("/updatepassword", controller.UpdatePassword)
 
 	adminGroup := r.Group("/api/admin")
 	adminGroup.Use(middleware.Authentication())

+ 23 - 8
app/service/imp/user_imp.go

@@ -12,6 +12,28 @@ import (
 
 type User struct{}
 
+func (u *User) UpdatePassword(user models.UserUpdate) e.Rescode {
+	//TODO implement me
+	var users models.User
+	tx := global.DBLink.Where("phone=?", user.Phone).Find(&users)
+	ctx := context.Background()
+	result, err := global.Rdb.Get(ctx, user.Phone).Result()
+	if err != nil {
+		return e.CodeIsError
+	} else if result != user.Code {
+		return e.CodeIsError
+	}
+	if tx.RowsAffected > 0 {
+		user.Password = utils.MD5(user.Password)
+		tx = global.DBLink.Model(&users).Where("phone=?", user.Phone).Update("password", user.Password)
+		if tx.RowsAffected > 0 {
+			return e.SUCCESS
+		}
+		return e.ERROR
+	}
+	return e.TheSystemIsAbnormal
+}
+
 func (u *User) PhoneRegist(userRegist models.UserRegist) e.Rescode {
 	//查找账号是否注册或者手机号已经注册,一个手机号只能注册一个账号
 	tx := global.DBLink.Where("account = ?", userRegist.Account).Find(&models.User{})
@@ -89,14 +111,7 @@ func (u *User) CodeLogin(userRegist models.UserRegist) (models.UserDto, e.Rescod
 		userdto.ID = user.ID
 		return userdto, e.SUCCESS
 	} else {
-		user.Account = userRegist.Account
-		user.Phone = userRegist.Phone
-		user.State = true
-		create := global.DBLink.Create(&user)
-		if create.RowsAffected > 0 {
-			return userdto, e.SUCCESS
-		}
-		return userdto, e.TheSystemIsAbnormal
+		return models.UserDto{}, e.GoToRegister
 	}
 }
 

+ 1 - 0
app/service/user_service.go

@@ -18,4 +18,5 @@ type User interface {
 	UpdateUser(id any, user models.UserVo) e.Rescode
 	// DeleteUser 删除用户信息
 	DeleteUser(ids []string) e.Rescode
+	UpdatePassword(user models.UserUpdate) e.Rescode
 }

+ 1 - 1
configs/config.yaml

@@ -35,7 +35,7 @@ subMail:
   appid: "97173"
   signature: "f639a60e41ee0554921d89884f5ff87e"
 redis:
-  addr: "192.168.11.68:6379"
+  addr: "192.168.11.33:6379"
   password: ""
   db: 0
 nats:

+ 0 - 2
global/redis.go

@@ -3,7 +3,6 @@ package global
 import (
 	"Ic_ouath/simple_zap"
 	"context"
-	"fmt"
 	"github.com/go-redis/redis/v8"
 )
 
@@ -22,6 +21,5 @@ func SetupRedisLink() {
 	_, err := Rdb.Ping(ctx).Result()
 	if err != nil {
 		simple_zap.WithCtx(context.Background()).Sugar().Warn("redis连接失败", err)
-		fmt.Println(err)
 	}
 }

+ 5 - 0
models/user.go

@@ -38,6 +38,11 @@ type UserVo struct {
 	State    bool   `json:"state"`
 	Avatar   string `json:"avatar"` //用户状态
 }
+type UserUpdate struct {
+	Phone    string `json:"phone" validate:"required,min=11,max=11"`
+	Code     string `json:"code" validate:"required,min=6,max=6"`
+	Password string `json:"password" validate:"required,min=6,max=20"` // 密码// 验证码//手机号
+}
 type UserDto struct {
 	User
 	Token string `json:"token"`