From 59cc2d4ffdbf9c81a402928ea0a8295934937b49 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Tue, 20 Jul 2021 15:10:42 +0800 Subject: [PATCH] flow --- business/jxstore/cms/sim.go | 7 +++++-- business/jxutils/jxutils.go | 6 ++++++ business/model/dao/dao_sim.go | 29 +++++++++++++++++++++++++++-- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sim.go b/business/jxstore/cms/sim.go index 0b24a6ff8..3bbff32f2 100644 --- a/business/jxstore/cms/sim.go +++ b/business/jxstore/cms/sim.go @@ -12,7 +12,9 @@ import ( //每日流量卡流量结算 func SimFlowDaySettle(ctx *jxcontext.Context) { var ( - db = dao.GetDB() + db = dao.GetDB() + monthBegin = utils.Str2Time(utils.Int2Str(time.Now().Year()) + "-" + utils.Int2Str(int(time.Now().Month())) + "-01 00:00:00") + monthEnd = monthBegin.AddDate(0, 0, -1).AddDate(0, 1, 0) ) //找出所有状态不为 超流量的打印机(iccid卡) printers, _ := dao.GetPrinters(db, 0, "", 0, model.PrinterStatusNoFlow) @@ -25,9 +27,10 @@ func SimFlowDaySettle(ctx *jxcontext.Context) { //先查当月用的总的, 减去当月已经用的总的,就是昨天用的 if getCardInfoResultMonth, err2 := api.TibiotAPI.IotDataMonth(v.IccID); err2 == nil { //表示当月用的总的也还没同步。只有去查卡信息中的总流量使用,减去所有总使用,就是昨天用的。。先不写 - if getCardInfoResultMonth == nil || getCardInfoResultMonth.CardFlow == "" { + if getCardInfoResultMonth == nil || getCardInfoResultMonth.CardFlow == "" || getCardInfoResultMonth.CardFlow == "0KB" { //api.TibiotAPI.BatchQueryCardInfo(1) } else if getCardInfoResultMonth.CardFlow != "" { + sumExpend, _ := dao.GetSimFlowExpendSum(db, v.IccID, monthBegin, monthEnd) } } diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index acf30547e..4ee61e977 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -36,6 +36,8 @@ var ( } letterBytes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + + flowUnitMap = map[string]string{} ) const fileExt = ".xlsx" @@ -675,3 +677,7 @@ func BuildErr(errs []error) (err error) { } return fmt.Errorf(errStr.String()) } + +func SplitFlowAndUnit(flowStr string) (flow float64, unit string) { + return flow, unit +} diff --git a/business/model/dao/dao_sim.go b/business/model/dao/dao_sim.go index 066ac6252..e537aa0fe 100644 --- a/business/model/dao/dao_sim.go +++ b/business/model/dao/dao_sim.go @@ -1,6 +1,7 @@ package dao import ( + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" "time" ) @@ -10,7 +11,31 @@ func GetSimFlowExpend(db *DaoDB, iccid string, createdAtBegin, createdAtEnd time return simFlowExpnd, err } -func GetSimFlowExpendSum(db *DaoDB, iccid string, createdAtBegin, createdAtEnd time.Time) (simFlowExpnd []*model.SimFlowExpend, err error) { - +func GetSimFlowExpendSum(db *DaoDB, iccid string, createdAtBegin, createdAtEnd time.Time) (simFlowExpnd *model.SimFlowExpend, err error) { + sql := ` + SELECT SUM( + IF(flow_unit = 'KB', flow, + IF(flow_unit = 'MB', ROUND(flow * 1024)), + IF(flow_unit = "GB", ROUND(flow * 1024 * 1024), 0) + ) + ), icc_id, 'KB' flow_unit + FROM sim_flow_expend + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if iccid != "" { + sql += " AND icc_id = ?" + sqlParams = append(sqlParams, iccid) + } + if !utils.IsTimeZero(createdAtBegin) { + sql += " AND created_at > ?" + sqlParams = append(sqlParams, createdAtBegin) + } + if !utils.IsTimeZero(createdAtEnd) { + sql += " AND created_at < ?" + sqlParams = append(sqlParams, createdAtEnd) + } + sql += " GROUP BY 2, 3" + err = GetRow(db, &simFlowExpnd, sql, sqlParams) return simFlowExpnd, err }