xuzhiheng 4 роки тому
батько
коміт
9b8f62414d
5 змінених файлів з 15 додано та 21 видалено
  1. 2 3
      lock/lock.go
  2. 1 1
      main.go
  3. 12 11
      middleware/auth.go
  4. 0 3
      utils/cost_by_account_balance.go
  5. 0 3
      utils/cost_by_left_num.go

+ 2 - 3
lock/lock.go

@@ -5,9 +5,8 @@ import (
 )
 )
 
 
 var (
 var (
-	UserLockMap   = map[string]*sync.Mutex{}
-	MainLock      = sync.Mutex{}
-	OrderCodeLock = sync.Mutex{}
+	UserLockMap = map[string]*sync.Mutex{}
+	MainLock    = sync.Mutex{}
 )
 )
 
 
 func InitUserLock(appID string) {
 func InitUserLock(appID string) {

+ 1 - 1
main.go

@@ -41,7 +41,7 @@ func main() {
 		db.GetSFISDB().Find(&apis)
 		db.GetSFISDB().Find(&apis)
 		for _, api := range apis {
 		for _, api := range apis {
 			utils.ProductCaches.Map.Store(api.ID, api)
 			utils.ProductCaches.Map.Store(api.ID, api)
-			utils.ApiUrlCache.Store(api.Path, *api)
+			utils.ApiUrlCache.Store(api.Path, api.ID)
 		}
 		}
 		global.Logger.Info("初始化产品缓存信息,", zap.Any("产品数量:", len(apis)))
 		global.Logger.Info("初始化产品缓存信息,", zap.Any("产品数量:", len(apis)))
 	}
 	}

+ 12 - 11
middleware/auth.go

@@ -5,7 +5,6 @@ import (
 	"sfbase/global"
 	"sfbase/global"
 	sutils "sfbase/utils"
 	sutils "sfbase/utils"
 
 
-	// "sfis/model"
 	"sfis/model/response"
 	"sfis/model/response"
 	"sfis/utils"
 	"sfis/utils"
 	"strconv"
 	"strconv"
@@ -29,16 +28,18 @@ func TokenAuth() gin.HandlerFunc {
 			requestIP  string
 			requestIP  string
 		)
 		)
 		requestUrl = context.Request.URL.String()
 		requestUrl = context.Request.URL.String()
-		requestUrl = strings.Split(requestUrl, "?")[0]
-		a := strings.Split(requestUrl, "/")
-		requestUrl = a[4]
-		// if p, ok := utils.ApiUrlCache.Load(requestUrl); ok {
-		// 	productID = p.(*model.Product).ID
-		// } else {
-		// 	response.FailWithDetailed(response.ParamError, nil, "url错误", context)
-		// 	context.Abort()
-		// 	return
-		// }
+		global.Logger.Info(requestUrl)
+		requestUrl = strings.Split(requestUrl, "v1")[1]
+		global.Logger.Info(requestUrl)
+		// a := strings.Split(requestUrl, "/")
+		// requestUrl = a[4]
+		if p, ok := utils.ApiUrlCache.Load(requestUrl); ok {
+			productID = p.(int)
+		} else {
+			response.FailWithDetailed(response.ParamError, nil, "url错误", context)
+			context.Abort()
+			return
+		}
 		productID = 1000
 		productID = 1000
 		token = context.Request.Header.Get("token")
 		token = context.Request.Header.Get("token")
 		timestamp = context.Request.Header.Get("timestamp")
 		timestamp = context.Request.Header.Get("timestamp")

+ 0 - 3
utils/cost_by_account_balance.go

@@ -7,7 +7,6 @@ import (
 	"sfbase/global"
 	"sfbase/global"
 	"sfbase/utils"
 	"sfbase/utils"
 	"sfis/db"
 	"sfis/db"
-	"sfis/lock"
 	"sfis/model"
 	"sfis/model"
 
 
 	"go.uber.org/zap"
 	"go.uber.org/zap"
@@ -81,9 +80,7 @@ func afterCheck(dataLen, payMoney int, userProduct *model.UserProduct, statusCod
 	userAccount := &model.UserAccount{}
 	userAccount := &model.UserAccount{}
 	db.GetSFISDB().First(userAccount, &model.UserAccount{AppID: userProduct.AppID})
 	db.GetSFISDB().First(userAccount, &model.UserAccount{AppID: userProduct.AppID})
 	var errs error
 	var errs error
-	lock.OrderCodeLock.Lock()
 	orderCode := utils.CreateOrderCode()
 	orderCode := utils.CreateOrderCode()
-	lock.OrderCodeLock.Unlock()
 	//按次扣费-(每调一次剩余量-1)
 	//按次扣费-(每调一次剩余量-1)
 	errs = db.GetSFISDB().Transaction(func(tx *gorm.DB) error {
 	errs = db.GetSFISDB().Transaction(func(tx *gorm.DB) error {
 		orderBefore := userAccount.Money
 		orderBefore := userAccount.Money

+ 0 - 3
utils/cost_by_left_num.go

@@ -6,7 +6,6 @@ import (
 	"sfbase/global"
 	"sfbase/global"
 	"sfbase/utils"
 	"sfbase/utils"
 	"sfis/db"
 	"sfis/db"
-	"sfis/lock"
 	"sfis/model"
 	"sfis/model"
 
 
 	"gorm.io/gorm"
 	"gorm.io/gorm"
@@ -85,9 +84,7 @@ func after(productType int, dataLen int, userProduct *model.UserProduct, statusC
 	productID := userProduct.ProductID
 	productID := userProduct.ProductID
 	userProductID := userProduct.ID
 	userProductID := userProduct.ID
 	var errs error
 	var errs error
-	lock.OrderCodeLock.Lock()
 	orderCode := utils.CreateOrderCode()
 	orderCode := utils.CreateOrderCode()
-	lock.OrderCodeLock.Unlock()
 	switch productType {
 	switch productType {
 	case 0:
 	case 0:
 		//按次扣费-(每调一次剩余量-1)
 		//按次扣费-(每调一次剩余量-1)