Pārlūkot izejas kodu

Merge branch 'master' of http://192.168.3.207:10080/group3/SwordFish_Interface_Service

jiaojiao7 4 gadi atpakaļ
vecāks
revīzija
e894188fbc
2 mainītis faili ar 12 papildinājumiem un 11 dzēšanām
  1. 4 3
      model/product.go
  2. 8 8
      utils/cost_by_account_balance.go

+ 4 - 3
model/product.go

@@ -31,7 +31,8 @@ type UserProduct struct {
 	InterfaceStatus      int       `json:"interface_status"`         //接口状态(0开启|-1停用|-2异常|-3维护)
 	CallTimesLimitDay    int       `json:"call_times_limit_day"`     //接口调用次数每日上限
 	DataNumLimitOneTimes int       `json:"data_num_limit_one_times"` //接口每次返回数据量上限
-	UpdateAt             time.Time `json:"-" gorm:"autoUpdateTime"`
+	UpdateAt             time.Time `json:"-" gorm:"autoUpdateTime"`  //更新时间
+	Discount             int       `json:"discount"`                 //用户产品折扣
 }
 
 func (p *UserProduct) TableName() string {
@@ -48,8 +49,8 @@ type UserProductModel struct {
 	InterfaceStatus      int       `json:"interface_status"`         //接口状态(0开启|-1停用|-2异常|-3维护)
 	CallTimesLimitDay    int       `json:"call_times_limit_day"`     //接口调用次数每日上限
 	DataNumLimitOneTimes int       `json:"data_num_limit_one_times"` //接口每次返回数据量上限
-	UpdateAt             time.Time `json:"-" gorm:"autoUpdateTime"`
-	Discount             int       `json:"discount"` //折扣
+	UpdateAt             time.Time `json:"-" gorm:"autoUpdateTime"`  //更新时间
+	Discount             int       `json:"discount"`                 //用户产品折扣
 }
 
 func (p *UserProductModel) TableName() string {

+ 8 - 8
utils/cost_by_account_balance.go

@@ -60,22 +60,22 @@ func costByAccountBalance(getData func() ([]map[string]interface{}, int, error),
 func beforeCheck(productType, unitPrice, dataLen int, userProduct *model.UserProduct) (bool, int) {
 	userAccount := &model.UserAccount{}
 	db.GetSFISDB().First(userAccount, &model.UserAccount{AppID: userProduct.AppID})
-	money := 0
+	money := float64(0)
 	switch productType {
 	case 0:
-		money = unitPrice
+		money = float64(unitPrice) / 10 * float64(userProduct.Discount)
 		//按次扣费-判断left_num
-		if money > userAccount.Money {
-			return false, money
+		if money > float64(userAccount.Money) {
+			return false, int(money)
 		}
 	case 1:
-		money = unitPrice * dataLen
+		money = (float64(unitPrice) / 10 * float64(userProduct.Discount)) * float64(dataLen)
 		//按条扣费-判断单次调用的limit
-		if money > userAccount.Money {
-			return false, money
+		if money > float64(userAccount.Money) {
+			return false, int(money)
 		}
 	}
-	return true, money
+	return true, int(money)
 }
 
 func afterCheck(dataLen, payMoney int, userProduct *model.UserProduct, statusCode int, param, ip string) (string, error) {