This commit is contained in:
suyl
2021-07-23 16:38:51 +08:00
parent 97dbb36a4c
commit 6042835459
4 changed files with 28 additions and 7 deletions

View File

@@ -13,8 +13,8 @@ func CreateOrder(c *gin.Context) {
param = &struct { param = &struct {
OrderType string `json:"order_type" form:"order_type" binding:"required"` //订单类型,流量充值等 OrderType string `json:"order_type" form:"order_type" binding:"required"` //订单类型,流量充值等
Origin string `json:"origin" form:"origin" binding:"required"` //订单来源,小程序,开放后台 Origin string `json:"origin" form:"origin" binding:"required"` //订单来源,小程序,开放后台
ThingID string `json:"thing_id" form:"thing_id" binding:"required"` //订单充值项目ID,充流量就是iccid ThingID string `json:"thing_id" form:"thing_id" binding:"required"` //订单充值项目ID,充流量,有效期就是iccid
TypeID string `json:"type_id" form:"type_id" binding:"required"` //类型ID充流量就是套餐对应的id TypeID string `json:"type_id" form:"type_id" binding:"required"` //类型ID充流量就是套餐对应的id,有效期就是充几个月
}{} }{}
) )
if err = c.ShouldBind(&param); err != nil { if err = c.ShouldBind(&param); err != nil {

View File

@@ -37,7 +37,8 @@ const (
) )
const ( const (
OrderTypeFlow = "flow" OrderTypeFlow = "flow" //充流量
OrderTypeCardValid = "cardValid" //卡有效期
OrderOriginWxMini = "weixinmini" OrderOriginWxMini = "weixinmini"
OrderOriginOpenAPI = "openAPI" OrderOriginOpenAPI = "openAPI"

View File

@@ -32,6 +32,18 @@ var (
} }
return payPrice, err return payPrice, err
}, },
model.OrderTypeCardValid: func(db *sqlx.DB, typeID string) (payPrice int64, err error) {
var (
avgPrice int64
count = utils.Str2Int(typeID) //充卡有效期代表几个月
)
if config, err2 := dao.GetConfig(db, model.ConfigTypeSys, model.OrderTypeCardValid); err2 == nil && config != nil {
avgPrice = utils.Str2Int64(config.Value)
} else {
err = err2
}
return avgPrice * int64(count), err
},
} }
payFunc = map[string]func(db *sqlx.DB, order *model.PayOrder, vendorPayType string) (err error){ payFunc = map[string]func(db *sqlx.DB, order *model.PayOrder, vendorPayType string) (err error){
@@ -77,7 +89,7 @@ var (
} }
} }
} }
err = FlowIncome(db, iccID, flow, unit) err = FlowIncome(db, iccID, flow, unit, model.FlowIncomeTypeUser)
//冲进去之后重新计算流量超标 //冲进去之后重新计算流量超标
sumIncome, _ := dao.GetSimFlowIncomeSum(db, iccID, monthBegin, monthEnd) sumIncome, _ := dao.GetSimFlowIncomeSum(db, iccID, monthBegin, monthEnd)
sumExpend, _ := dao.GetSimFlowExpendSum(db, iccID, monthBegin, monthEnd) sumExpend, _ := dao.GetSimFlowExpendSum(db, iccID, monthBegin, monthEnd)
@@ -91,6 +103,10 @@ var (
} }
return err return err
}, },
model.OrderTypeCardValid: func(db *sqlx.DB, order *model.PayOrder) (err error) {
_, err = api.TibiotAPI.Submit(order.ThingID, utils.Str2Int(order.TypeID))
return err
},
} }
) )
@@ -166,5 +182,9 @@ func OnPayFinished(order *model.PayOrder) (err error) {
db = globals.GetDB() db = globals.GetDB()
) )
err = payFinishedFunc[order.OrderType](db, order) err = payFinishedFunc[order.OrderType](db, order)
if err != nil {
order.Comment = err.Error()
dao.Update(db, order, "Comment")
}
return err return err
} }

View File

@@ -92,12 +92,12 @@ func SimFlowMonthSettle() {
printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0) printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0)
for _, v := range printers { for _, v := range printers {
if v.IccID != "" { if v.IccID != "" {
FlowIncome(db, v.IccID, 30, "MB") FlowIncome(db, v.IccID, 30, "MB", model.FlowIncomeTypeJX)
} }
} }
} }
func FlowIncome(db *sqlx.DB, iccID string, flow float64, unit string) (err error) { func FlowIncome(db *sqlx.DB, iccID string, flow float64, unit string, incomeType int) (err error) {
var ( var (
now = time.Now() now = time.Now()
) )
@@ -106,9 +106,9 @@ func FlowIncome(db *sqlx.DB, iccID string, flow float64, unit string) (err error
CreatedAt: &now, CreatedAt: &now,
UpdatedAt: &now, UpdatedAt: &now,
LastOperator: "jxadmin", LastOperator: "jxadmin",
IncomeType: model.FlowIncomeTypeJX,
Flow: 30, Flow: 30,
FlowUnit: "MB", FlowUnit: "MB",
IncomeType: incomeType,
} }
dao.Insert(db, flowIncome) dao.Insert(db, flowIncome)
return err return err