浏览代码

创建用户

fuwencai 4 年之前
父节点
当前提交
af46a143a4
共有 3 个文件被更改,包括 48 次插入10 次删除
  1. 32 1
      manage/user/user.go
  2. 3 3
      model/user.go
  3. 13 6
      test/manage/user_test.go

+ 32 - 1
manage/user/user.go

@@ -4,6 +4,14 @@ import (
 	"github.com/gin-gonic/gin"
 	"go.uber.org/zap"
 	"sfbase/global"
+	sutils "sfbase/utils"
+	"sfis/db"
+	"sfis/lock"
+	"sfis/model"
+	"sfis/model/response"
+	"sfis/utils"
+	"sync"
+	"time"
 )
 
 func DevUserManageRegister(router *gin.Engine) {
@@ -14,6 +22,29 @@ func DevUserManageRegister(router *gin.Engine) {
 	}
 }
 
+// 创建用户
 func userCreate(context *gin.Context) {
-	global.Logger.Info("创建user", zap.Any("app_id:", "yhet6332h"), zap.Any("secret_key", "ffh2273hjd"))
+	var user model.User
+	if err := context.ShouldBind(&user); err != nil {
+		response.Fail(context)
+		return
+	}
+	t := time.Now()
+	appId := utils.GetAppID(t.Unix())
+	key := sutils.GetComplexRandom(8, 3, 5)
+	user.SecretKey = key
+	user.AppID = appId
+	result := db.GetSFISDB().Create(&user)
+	if result.Error != nil {
+		global.Logger.Error("userCreate Error", zap.Any("user", user), zap.Any("error", result.Error))
+		response.Fail(context)
+	} else {
+		global.Logger.Info("userCreate Success", zap.Any("user", user))
+		// 生全局内存锁
+		lock.MainLock.Lock()
+		lock.UserLockMap[appId] = &sync.Mutex{}
+		lock.MainLock.Unlock()
+		response.OkWithData(user, context)
+	}
+
 }

+ 3 - 3
model/user.go

@@ -2,11 +2,11 @@ package model
 
 type User struct {
 	BaseModel
-	Name        string `json:"name"`
-	Phone       string `json:"phone"`
+	Name        string `json:"name" form:"name" binding:"required"`
+	Phone       string `json:"phone" form:"phone"`
 	AppID       string `json:"app_id"`
 	SecretKey   string `json:"secret_key"`
-	IpWhiteList string `json:"ip_white_list"`
+	IpWhiteList string `json:"ip_white_list" form:"ip_white_list"`
 }
 
 func (user *User) TableName() string {

+ 13 - 6
test/manage/user_test.go

@@ -2,10 +2,9 @@ package manage
 
 import (
 	"log"
+	"net/url"
 	sutil "sfbase/utils"
-	"sfis/utils"
 	"testing"
-	"time"
 )
 
 /*var (
@@ -33,11 +32,19 @@ func init() {
 	//todo init connection db operation
 }
 func Test_CreateUser(t *testing.T) {
-	//log.Println("devUserCreate testing......")
-	appID := utils.GetAppID(time.Now().Unix())
-	secretKey := sutil.GetComplexRandom(8, 3, 5)
+	log.Println("devUserCreate testing......")
+	//appID := utils.GetAppID(time.Now().Unix())
+	//secretKey := sutil.GetComplexRandom(8, 3, 5)
 
-	log.Printf("create successful appID:[%s],secretKey:[%s]", appID, secretKey)
+	data := make(url.Values)
+	data["name"] = []string{"河南拓普"}
+	data["phone"] = []string{"18238182402"}
+	data["ip_white_list"] = []string{"*"}
+
+	bs, _ := sutil.HttpPostForm("http://localhost:8080/manage/user/create", map[string]string{}, data)
+	log.Print(string(bs))
+
+	//log.Printf("create successful appID:[%s],secretKey:[%s]", appID, secretKey)
 
 	//创建用户、给用户开通接口产品时候有以下几种情况
 	//1.线上给账户充值10000块(user_account),不去实际购买产品,无购买记录,用户产品表无剩余量(left_num为0).此时又分两种情况