diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 618b40c23..92b7e74a2 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -379,7 +379,6 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr sqlParams = append(sqlParams, pageSize, offset) var orders []*model.GoodsOrderExt - pagedInfo = &model.PagedInfo{} db := dao.GetDB() dao.Begin(db) defer func() { @@ -389,10 +388,9 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr } }() if err = dao.GetRows(db, &orders, sql, sqlParams...); err == nil { - countInfo := &struct{ Ct int }{} - if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { - pagedInfo.TotalCount = countInfo.Ct - pagedInfo.Data = orders + pagedInfo = &model.PagedInfo{ + TotalCount: dao.GetLastTotalRowCount(db), + Data: orders, } } dao.Commit(db) @@ -470,7 +468,6 @@ func (c *OrderManager) GetWaybills(ctx *jxcontext.Context, fromDateStr, toDateSt ` sqlParams = append(sqlParams, pageSize, offset) var waybills []*tWaybillExt - pagedInfo = &model.PagedInfo{} db := dao.GetDB() dao.Begin(db) defer func() { @@ -480,10 +477,9 @@ func (c *OrderManager) GetWaybills(ctx *jxcontext.Context, fromDateStr, toDateSt } }() if err = dao.GetRows(db, &waybills, sql, sqlParams...); err == nil { - countInfo := &struct{ Ct int }{} - if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { - pagedInfo.TotalCount = countInfo.Ct - pagedInfo.Data = waybills + pagedInfo = &model.PagedInfo{ + TotalCount: dao.GetLastTotalRowCount(db), + Data: waybills, } } dao.Commit(db) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 86fad562c..a1f1017d1 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -384,21 +384,18 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, params map[string]inter // globals.SugarLogger.Debug(sqlData) // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil { - countInfo := &struct{ Ct int }{} - if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { - skuNamesInfo.TotalCount = countInfo.Ct - for _, skuName := range skuNamesInfo.SkuNames { - if skuName.SkusStr != "" { - if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil { - dao.Rollback(db) - return nil, err - } + skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db) + for _, skuName := range skuNamesInfo.SkuNames { + if skuName.SkusStr != "" { + if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil { + dao.Rollback(db) + return nil, err } - if skuName.PlacesStr != "" { - if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil { - dao.Rollback(db) - return nil, err - } + } + if skuName.PlacesStr != "" { + if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil { + dao.Rollback(db) + return nil, err } } } diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index cd32e55af..89544e57f 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -220,10 +220,7 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) // globals.SugarLogger.Debug(sql) if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil { - countInfo := &struct{ Ct int }{} - if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { - retVal.TotalCount = countInfo.Ct - } + retVal.TotalCount = dao.GetLastTotalRowCount(db) for _, v := range retVal.Stores { if v.StoreMapStr != "" { if err = utils.UnmarshalUseNumber([]byte(v.StoreMapStr), &v.StoreMaps); err != nil { @@ -498,14 +495,11 @@ func TmpGetJxBadCommentsByStoreId(ctx *jxcontext.Context, storeID, page, size, c }() globals.SugarLogger.Debug(sql) if err = dao.GetRows(db, &commentList, sql, utils.Int2Str(storeID), size, (page-1)*size); err == nil { - countInfo := &struct{ Ct int }{} - if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { - dao.Commit(db) - retVal = map[string]interface{}{ - "total": countInfo.Ct, - "list": commentList, - } + retVal = map[string]interface{}{ + "total": dao.GetLastTotalRowCount(db), + "list": commentList, } + dao.Commit(db) } return retVal, err } diff --git a/business/jxstore/promotion/jd_promotion.go b/business/jxstore/promotion/jd_promotion.go index 475faa6e9..a39dba52c 100644 --- a/business/jxstore/promotion/jd_promotion.go +++ b/business/jxstore/promotion/jd_promotion.go @@ -628,12 +628,10 @@ func GetJdPromotions(ctx *jxcontext.Context, keyword string, params map[string]i } } } - pagedInfo = &model.PagedInfo{} - countInfo := &struct{ Ct int }{} - if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { - pagedInfo.TotalCount = countInfo.Ct + pagedInfo = &model.PagedInfo{ + TotalCount: dao.GetLastTotalRowCount(db), + Data: promotionList, } - pagedInfo.Data = promotionList } dao.Commit(db) return pagedInfo, err diff --git a/business/model/dao/dao.go b/business/model/dao/dao.go index 53bcd0698..7f55f3f10 100644 --- a/business/model/dao/dao.go +++ b/business/model/dao/dao.go @@ -170,6 +170,7 @@ func ExecuteSQL(db *DaoDB, sql string, params ...interface{}) (num int64, err er return num, err } +// 此函数要求db在事务中,否则可能导致取得到的是另一个连接的数据 func GetLastTotalRowCount(db *DaoDB) int { countInfo := &struct{ Ct int }{} if err := GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {