Browse Source

用户信息修改

May1145 1 year ago
parent
commit
5e7ce37754

+ 35 - 0
trading-go/controller/usercontroller.go

@@ -1,6 +1,7 @@
 package controller
 package controller
 
 
 import (
 import (
+	"errors"
 	"github.com/gin-gonic/gin"
 	"github.com/gin-gonic/gin"
 	"trading-go/model"
 	"trading-go/model"
 	"trading-go/response"
 	"trading-go/response"
@@ -63,3 +64,37 @@ func Login(c *gin.Context) {
 	}
 	}
 	response.Success(c.Writer, "success", data)
 	response.Success(c.Writer, "success", data)
 }
 }
+
+// Modify
+// @Tags 用户模块
+// @Summary 修改用户信息
+// @param uid formData string false "用户ID"
+// @param avatar formData string false "头像"
+// @param name formData string false "用户名"
+// @param phone formData string false "电话"
+// @Success 200 {string} json{"code","data","token"}
+// @Router /user/modify [post]
+func Modify(c *gin.Context) {
+	var user model.User
+	user.Uid = c.PostForm("uid")
+	user.Phone = c.PostForm("phone")
+	user.Avatar = c.PostForm("avatar")
+	user.Name = c.PostForm("name")
+	//fmt.Printf("%#v", user)
+	if err := user.SPhone(); err != nil {
+		if errors.Is(err, util.PhoneBeUsed) {
+			response.Fail(c.Writer, err.Error(), 403)
+		} else {
+			response.Fail(c.Writer, err.Error(), 500)
+		}
+		return
+	}
+	err := user.Modify()
+	if err != nil {
+		msg := err.Error()
+		response.Fail(c.Writer, msg, 500)
+	} else {
+		msg := "modify succeed"
+		response.Success(c.Writer, msg, nil)
+	}
+}

+ 42 - 0
trading-go/docs/docs.go

@@ -45,6 +45,48 @@ const docTemplate = `{
                 }
                 }
             }
             }
         },
         },
+        "/user/modify": {
+            "post": {
+                "tags": [
+                    "用户模块"
+                ],
+                "summary": "修改用户信息",
+                "parameters": [
+                    {
+                        "type": "string",
+                        "description": "用户ID",
+                        "name": "uid",
+                        "in": "formData"
+                    },
+                    {
+                        "type": "string",
+                        "description": "头像",
+                        "name": "avatar",
+                        "in": "formData"
+                    },
+                    {
+                        "type": "string",
+                        "description": "用户名",
+                        "name": "name",
+                        "in": "formData"
+                    },
+                    {
+                        "type": "string",
+                        "description": "电话",
+                        "name": "phone",
+                        "in": "formData"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "code\",\"data\",\"token\"}",
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                }
+            }
+        },
         "/user/register": {
         "/user/register": {
             "post": {
             "post": {
                 "tags": [
                 "tags": [

+ 42 - 0
trading-go/docs/swagger.json

@@ -38,6 +38,48 @@
                 }
                 }
             }
             }
         },
         },
+        "/user/modify": {
+            "post": {
+                "tags": [
+                    "用户模块"
+                ],
+                "summary": "修改用户信息",
+                "parameters": [
+                    {
+                        "type": "string",
+                        "description": "用户ID",
+                        "name": "uid",
+                        "in": "formData"
+                    },
+                    {
+                        "type": "string",
+                        "description": "头像",
+                        "name": "avatar",
+                        "in": "formData"
+                    },
+                    {
+                        "type": "string",
+                        "description": "用户名",
+                        "name": "name",
+                        "in": "formData"
+                    },
+                    {
+                        "type": "string",
+                        "description": "电话",
+                        "name": "phone",
+                        "in": "formData"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "code\",\"data\",\"token\"}",
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                }
+            }
+        },
         "/user/register": {
         "/user/register": {
             "post": {
             "post": {
                 "tags": [
                 "tags": [

+ 27 - 0
trading-go/docs/swagger.yaml

@@ -25,6 +25,33 @@ paths:
       summary: 登录
       summary: 登录
       tags:
       tags:
       - 用户模块
       - 用户模块
+  /user/modify:
+    post:
+      parameters:
+      - description: 用户ID
+        in: formData
+        name: uid
+        type: string
+      - description: 头像
+        in: formData
+        name: avatar
+        type: string
+      - description: 用户名
+        in: formData
+        name: name
+        type: string
+      - description: 电话
+        in: formData
+        name: phone
+        type: string
+      responses:
+        "200":
+          description: code","data","token"}
+          schema:
+            type: string
+      summary: 修改用户信息
+      tags:
+      - 用户模块
   /user/register:
   /user/register:
     post:
     post:
       parameters:
       parameters:

+ 32 - 0
trading-go/model/user.go

@@ -1,6 +1,7 @@
 package model
 package model
 
 
 import (
 import (
+	"fmt"
 	"trading-go/common"
 	"trading-go/common"
 	"trading-go/util"
 	"trading-go/util"
 )
 )
@@ -39,3 +40,34 @@ func (u User) Login() (err error, nu User) {
 	err = db.Get(&nu, sqlStr, u.Uid)
 	err = db.Get(&nu, sqlStr, u.Uid)
 	return
 	return
 }
 }
+
+func (u User) SPhone() error {
+	var nu User
+	db := common.DB
+	fmt.Println(u.Phone)
+	sqlStr := "SELECT * FROM users WHERE phone = ?"
+	err := db.Get(&nu, sqlStr, u.Phone)
+	if err != nil && err.Error() == "sql: no rows in result set" {
+		return nil
+	} else if err != nil {
+		return err
+	}
+	return util.PhoneBeUsed
+}
+
+func (u User) Modify() error {
+	db := common.DB
+	sqlStr := "UPDATE users set name = ?,avatar = ?, phone = ? WHERE uid = ?"
+	exec, err := db.Exec(sqlStr, u.Name, u.Avatar, u.Phone, u.Uid)
+	if err != nil {
+		return err
+	}
+	affected, err := exec.RowsAffected()
+	if err != nil {
+		return err
+	}
+	if affected != 1 {
+		return util.UpdateFailError
+	}
+	return nil
+}

+ 1 - 0
trading-go/routine/routine.go

@@ -18,6 +18,7 @@ func GetRoutine() *gin.Engine {
 
 
 	user := r.Group("user")
 	user := r.Group("user")
 	{
 	{
+		user.POST("modify", controller.Modify)
 		user.POST("login", controller.Login)
 		user.POST("login", controller.Login)
 		user.POST("register", controller.Register)
 		user.POST("register", controller.Register)
 	}
 	}

+ 3 - 1
trading-go/util/error.go

@@ -3,6 +3,8 @@ package util
 import "errors"
 import "errors"
 
 
 var (
 var (
-	InsertFailError = errors.New("insert failed")
+	InsertFailError = errors.New("fail to insert")
 	NoSuchUserError = errors.New("no such user")
 	NoSuchUserError = errors.New("no such user")
+	PhoneBeUsed     = errors.New("phone number already be used")
+	UpdateFailError = errors.New("fail to update")
 )
 )