From 578ba51f9ad3a6b869375ff79c6be3817af7930d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 25 Feb 2021 10:21:13 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store.go | 18 +++++ business/model/dao/store.go | 110 ++++++++++++++++++++++++++ controllers/cms_store.go | 14 ++++ routers/commentsRouter_controllers.go | 9 +++ 4 files changed, 151 insertions(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 81f28604c..b656cdfa3 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -4037,3 +4037,21 @@ func StoreConfirmAct(ctx *jxcontext.Context, status, msgStatusID int) (err error _, err = dao.UpdateEntity(db, msgStatus, "ConfirmStatus") return err } + +func GetStoreAcctBalance(ctx *jxcontext.Context, storeID int) (storeAcct *model.StoreAcct, err error) { + var ( + db = dao.GetDB() + ) + totalIncome, err := dao.GetStoreAcctIncomeTotal(db, storeID, 0, utils.ZeroTimeValue, utils.ZeroTimeValue) + if err != nil { + return nil, err + } + totalExpend, err := dao.GetStoreAcctExpendTotal(db, storeID, 0, utils.ZeroTimeValue, utils.ZeroTimeValue) + if err != nil { + return nil, err + } + return &model.StoreAcct{ + StoreID: storeID, + AccountBalance: totalIncome - totalExpend, + }, err +} diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 94357ed47..00f246931 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -978,3 +978,113 @@ func GetBrands(db *DaoDB, name string, brandID int) (brands []*model.Brand, err err = GetRows(db, &brands, sql, sqlParams) return brands, err } + +func GetStoreAcctIncome(db *DaoDB, storeID, incomeType int, fromTime, toTime time.Time) (storeAcctIncomes []*model.StoreAcctIncome, err error) { + sql := ` + SELECT * + FROM store_acct_income + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if storeID != 0 { + sql += " AND store_id = ?" + sqlParams = append(sqlParams, storeID) + } + if incomeType != 0 { + sql += " AND type = ?" + sqlParams = append(sqlParams, incomeType) + } + if utils.IsTimeZero(fromTime) { + sql += " AND created_at >= ?" + sqlParams = append(sqlParams, fromTime) + } + if utils.IsTimeZero(toTime) { + sql += " AND created_at <= ?" + sqlParams = append(sqlParams, toTime) + } + err = GetRows(db, &storeAcctIncomes, sql, sqlParams) + return storeAcctIncomes, err +} + +func GetStoreAcctIncomeTotal(db *DaoDB, storeID, incomeType int, fromTime, toTime time.Time) (incomeTotal int, err error) { + var income *model.StoreAcctIncome + sql := ` + SELECT SUM(income_price) income_price + FROM store_acct_income + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if storeID != 0 { + sql += " AND store_id = ?" + sqlParams = append(sqlParams, storeID) + } + if incomeType != 0 { + sql += " AND type = ?" + sqlParams = append(sqlParams, incomeType) + } + if utils.IsTimeZero(fromTime) { + sql += " AND created_at >= ?" + sqlParams = append(sqlParams, fromTime) + } + if utils.IsTimeZero(toTime) { + sql += " AND created_at <= ?" + sqlParams = append(sqlParams, toTime) + } + err = GetRow(db, &income, sql, sqlParams) + return income.IncomePrice, err +} + +func GetStoreAcctExpend(db *DaoDB, storeID, expendType int, fromTime, toTime time.Time) (storeAcctExpends []*model.StoreAcctExpend, err error) { + sql := ` + SELECT * + FROM store_acct_expend + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if storeID != 0 { + sql += " AND store_id = ?" + sqlParams = append(sqlParams, storeID) + } + if expendType != 0 { + sql += " AND type = ?" + sqlParams = append(sqlParams, expendType) + } + if utils.IsTimeZero(fromTime) { + sql += " AND created_at >= ?" + sqlParams = append(sqlParams, fromTime) + } + if utils.IsTimeZero(toTime) { + sql += " AND created_at <= ?" + sqlParams = append(sqlParams, toTime) + } + err = GetRows(db, &storeAcctExpends, sql, sqlParams) + return storeAcctExpends, err +} + +func GetStoreAcctExpendTotal(db *DaoDB, storeID, expendType int, fromTime, toTime time.Time) (expendTotal int, err error) { + var expend *model.StoreAcctExpend + sql := ` + SELECT SUM(expend_price) expend_price + FROM store_acct_expend + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if storeID != 0 { + sql += " AND store_id = ?" + sqlParams = append(sqlParams, storeID) + } + if expendType != 0 { + sql += " AND type = ?" + sqlParams = append(sqlParams, expendType) + } + if utils.IsTimeZero(fromTime) { + sql += " AND created_at >= ?" + sqlParams = append(sqlParams, fromTime) + } + if utils.IsTimeZero(toTime) { + sql += " AND created_at <= ?" + sqlParams = append(sqlParams, toTime) + } + err = GetRow(db, &expend, sql, sqlParams) + return expend.ExpendPrice, err +} diff --git a/controllers/cms_store.go b/controllers/cms_store.go index 8b9e61029..acce34986 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -1053,3 +1053,17 @@ func (c *StoreController) StoreConfirmAct() { return retVal, "", err }) } + +// @Title 查询门店账户余额 +// @Description 查询门店账户余额 +// @Param token header string true "认证token" +// @Param storeID formData int true "门店ID" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetStoreAcctBalance [get] +func (c *StoreController) GetStoreAcctBalance() { + c.callGetStoreAcctBalance(func(params *tStoreGetStoreAcctBalanceParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.GetStoreAcctBalance(params.Ctx, params.StoreID) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index cb6d13271..8c665f924 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -2160,6 +2160,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "GetStoreAcctBalance", + Router: `/GetStoreAcctBalance`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.ControllerComments{ Method: "GetStoreAlertList",