diff --git a/controllers/order_controller.go b/controllers/order_controller.go index 5cdd6d2..3778e8a 100644 --- a/controllers/order_controller.go +++ b/controllers/order_controller.go @@ -13,8 +13,8 @@ func CreateOrder(c *gin.Context) { param = &struct { OrderType string `json:"order_type" form:"order_type" binding:"required"` //订单类型,流量充值等 Origin string `json:"origin" form:"origin" binding:"required"` //订单来源,小程序,开放后台 - ThingID string `json:"thing_id" form:"thing_id" binding:"required"` //订单充值项目ID,充流量就是iccid - TypeID string `json:"type_id" form:"type_id" binding:"required"` //类型ID,充流量就是套餐对应的id + ThingID string `json:"thing_id" form:"thing_id" binding:"required"` //订单充值项目ID,充流量,有效期就是iccid + TypeID string `json:"type_id" form:"type_id" binding:"required"` //类型ID,充流量就是套餐对应的id,有效期就是充几个月 }{} ) if err = c.ShouldBind(¶m); err != nil { diff --git a/model/model.go b/model/model.go index 7abdb9f..b8220a5 100644 --- a/model/model.go +++ b/model/model.go @@ -37,7 +37,8 @@ const ( ) const ( - OrderTypeFlow = "flow" + OrderTypeFlow = "flow" //充流量 + OrderTypeCardValid = "cardValid" //卡有效期 OrderOriginWxMini = "weixinmini" OrderOriginOpenAPI = "openAPI" diff --git a/services/order.go b/services/order.go index f6be586..0686cea 100644 --- a/services/order.go +++ b/services/order.go @@ -32,6 +32,18 @@ var ( } 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){ @@ -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) sumExpend, _ := dao.GetSimFlowExpendSum(db, iccID, monthBegin, monthEnd) @@ -91,6 +103,10 @@ var ( } 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() ) err = payFinishedFunc[order.OrderType](db, order) + if err != nil { + order.Comment = err.Error() + dao.Update(db, order, "Comment") + } return err } diff --git a/services/sim.go b/services/sim.go index 93898be..e5d4d45 100644 --- a/services/sim.go +++ b/services/sim.go @@ -92,12 +92,12 @@ func SimFlowMonthSettle() { printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0) for _, v := range printers { 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 ( now = time.Now() ) @@ -106,9 +106,9 @@ func FlowIncome(db *sqlx.DB, iccID string, flow float64, unit string) (err error CreatedAt: &now, UpdatedAt: &now, LastOperator: "jxadmin", - IncomeType: model.FlowIncomeTypeJX, Flow: 30, FlowUnit: "MB", + IncomeType: incomeType, } dao.Insert(db, flowIncome) return err