diff --git a/controllers/sim_controller.go b/controllers/sim_controller.go index de2ada7..f33e279 100644 --- a/controllers/sim_controller.go +++ b/controllers/sim_controller.go @@ -36,3 +36,33 @@ func GetCardsInfo(c *gin.Context) { } return } + +func GetChargeInfo(c *gin.Context) { + var ( + err error + tokenInfo *model.TokenInfo + param = &struct { + AppID int `json:"app_id" form:"app_id" binding:"required"` + PrintNo string `json:"print_no" form:"print_no"` //打印机编号 + IccID string `json:"icc_id" form:"icc_id"` + BeginDate string `json:"begin_date" form:"begin_date"` //充值时间开始 + EndDate string `json:"end_date" form:"end_date"` + Offset int `json:"offset" form:"offset"` + PageSize int `json:"page_size" form:"page_size" binding:"required"` + }{} + ) + if err = c.ShouldBind(¶m); err != nil { + buildErrJson(c, err) + return + } + if tokenInfo = checkToken(c); tokenInfo == nil { + return + } + if !callFunc(c, func() (retVal interface{}, errCode string, err error) { + retVal, err = services.GetChargeInfo(tokenInfo, param.AppID, param.PrintNo, param.IccID, param.BeginDate, param.EndDate, param.Offset, param.PageSize) + return retVal, "", err + }) { + return + } + return +} diff --git a/dao/sim_dao.go b/dao/sim_dao.go index d910340..d8b2e8d 100644 --- a/dao/sim_dao.go +++ b/dao/sim_dao.go @@ -87,3 +87,73 @@ func GetSimFlowIncomeSum(db *sqlx.DB, iccid string, createdAtBegin, createdAtEnd } return simFlowIncome, err } + +type GetChargeInfoResult struct { + model.PayOrder + PrintNo string `json:"print_no" db:"print_no"` + PrintName string `json:"print_name" db:"print_name"` + Flow float64 `json:"flow"` + FlowUnit string `json:"flow_unit" db:"flow_unit"` +} + +func GetChargeInfo(db *sqlx.DB, appID int, printNo string, iccID, beginDate, endDate string, offset, pageSize int) (page *model.PagedInfo, err error) { + var ( + results []*GetChargeInfoResult + count int + beginTime, endTime time.Time + ) + if beginDate == "" { + beginTime = utils.Time2Date(time.Now().AddDate(0, 0, -7)) + } else { + beginTime = utils.Str2Time(beginDate) + } + if endDate == "" { + endTime = utils.Str2Time(utils.Time2Str(utils.Time2Date(time.Now())) + " 23:59:59") + } else { + endTime = utils.Str2Time(endDate) + } + sqlCount := ` + SELECT COUNT(*) count + ` + sql := ` + SELECT a.*, d.flow, d.flow_unit, c.print_no, c.name print_name + ` + sqlOhter := ` + FROM pay_order a + JOIN apps b ON b.user_id = a.user_id AND b.app_id = ? AND b.deleted_at = ? + LEFT JOIN printer c ON c.icc_id = a.thing_id AND c.deleted_at = ? + LEFT JOIN sim_flow_income d ON d.order_id = a.order_id + WHERE 1 = 1 + ` + sqlParams := []interface{}{appID, utils.DefaultTimeValue, utils.DefaultTimeValue} + if printNo != "" { + sqlOhter += " AND c.print_no = ?" + sqlParams = append(sqlParams, printNo) + } + if iccID != "" { + sqlOhter += " AND a.thing_id = ?" + sqlParams = append(sqlParams, iccID) + } + if beginTime != utils.ZeroTimeValue { + sqlOhter += " AND a.created_at > ?" + sqlParams = append(sqlParams, beginTime) + } + if endTime != utils.ZeroTimeValue { + sqlOhter += " AND a.created_at < ?" + sqlParams = append(sqlParams, endTime) + } + //查总数 + row := db.DB.QueryRow(sqlCount+sqlOhter, sqlParams...) + if err = row.Scan(&count); err != nil { + return page, err + } + sqlOhter += " LIMIT ? OFFSET ?" + sqlParams = append(sqlParams, pageSize, offset) + if err = db.Select(&results, sql+sqlOhter, sqlParams...); err == nil { + return &model.PagedInfo{ + TotalCount: count, + Data: results, + }, err + } + return page, err +} diff --git a/model/model.go b/model/model.go index 893105c..6957493 100644 --- a/model/model.go +++ b/model/model.go @@ -207,6 +207,7 @@ type SimFlowIncome struct { Flow float64 `json:"flow"` //流量数 FlowUnit string `json:"flow_unit" db:"flow_unit"` //流量单位 IncomeType int `json:"income_type" db:"income_type"` //1 表示系统每月自动划转,2 表示商户自己冲的 + OrderID string `json:"order_id" db:"order_id"` //订单号 } type PayOrder struct { diff --git a/routers/router.go b/routers/router.go index b6c8aac..4aff0b7 100644 --- a/routers/router.go +++ b/routers/router.go @@ -33,6 +33,7 @@ func Init(r *gin.Engine) { //sim sim := v2.Group("/sim") sim.GET("/getCardsInfo", controllers.GetCardsInfo) + sim.GET("/getChargeInfo", controllers.GetChargeInfo) //v1是不需要token的 v1 := r.Group("v1") diff --git a/services/sim.go b/services/sim.go index 8172717..15ccee7 100644 --- a/services/sim.go +++ b/services/sim.go @@ -157,3 +157,7 @@ func GetCardsInfo(tokenInfo *model.TokenInfo, appID int, printNo string, cardSta } return cardInfo, err } + +func GetChargeInfo(tokenInfo *model.TokenInfo, appID int, printNo string, iccID, beginDate, endDate string, offset, pageSize int) (paged *model.PagedInfo, err error) { + return dao.GetChargeInfo(globals.GetDB(), appID, printNo, iccID, beginDate, endDate, offset, pageSize) +}