- dao.GetLastTotalRowCount

This commit is contained in:
gazebo
2018-12-21 11:07:18 +08:00
parent acb073cb92
commit c7577e6005
5 changed files with 26 additions and 40 deletions

View File

@@ -379,7 +379,6 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, fromDateStr, toDateStr
sqlParams = append(sqlParams, pageSize, offset) sqlParams = append(sqlParams, pageSize, offset)
var orders []*model.GoodsOrderExt var orders []*model.GoodsOrderExt
pagedInfo = &model.PagedInfo{}
db := dao.GetDB() db := dao.GetDB()
dao.Begin(db) dao.Begin(db)
defer func() { 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 { if err = dao.GetRows(db, &orders, sql, sqlParams...); err == nil {
countInfo := &struct{ Ct int }{} pagedInfo = &model.PagedInfo{
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { TotalCount: dao.GetLastTotalRowCount(db),
pagedInfo.TotalCount = countInfo.Ct Data: orders,
pagedInfo.Data = orders
} }
} }
dao.Commit(db) dao.Commit(db)
@@ -470,7 +468,6 @@ func (c *OrderManager) GetWaybills(ctx *jxcontext.Context, fromDateStr, toDateSt
` `
sqlParams = append(sqlParams, pageSize, offset) sqlParams = append(sqlParams, pageSize, offset)
var waybills []*tWaybillExt var waybills []*tWaybillExt
pagedInfo = &model.PagedInfo{}
db := dao.GetDB() db := dao.GetDB()
dao.Begin(db) dao.Begin(db)
defer func() { 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 { if err = dao.GetRows(db, &waybills, sql, sqlParams...); err == nil {
countInfo := &struct{ Ct int }{} pagedInfo = &model.PagedInfo{
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { TotalCount: dao.GetLastTotalRowCount(db),
pagedInfo.TotalCount = countInfo.Ct Data: waybills,
pagedInfo.Data = waybills
} }
} }
dao.Commit(db) dao.Commit(db)

View File

@@ -384,21 +384,18 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, params map[string]inter
// globals.SugarLogger.Debug(sqlData) // globals.SugarLogger.Debug(sqlData)
// globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false)) // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil { if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
countInfo := &struct{ Ct int }{} skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { for _, skuName := range skuNamesInfo.SkuNames {
skuNamesInfo.TotalCount = countInfo.Ct if skuName.SkusStr != "" {
for _, skuName := range skuNamesInfo.SkuNames { if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil {
if skuName.SkusStr != "" { dao.Rollback(db)
if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil { return nil, err
dao.Rollback(db)
return nil, err
}
} }
if skuName.PlacesStr != "" { }
if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil { if skuName.PlacesStr != "" {
dao.Rollback(db) if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil {
return nil, err dao.Rollback(db)
} return nil, err
} }
} }
} }

View File

@@ -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(utils.Format4Output(sqlParams, false))
// globals.SugarLogger.Debug(sql) // globals.SugarLogger.Debug(sql)
if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil { if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil {
countInfo := &struct{ Ct int }{} retVal.TotalCount = dao.GetLastTotalRowCount(db)
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
retVal.TotalCount = countInfo.Ct
}
for _, v := range retVal.Stores { for _, v := range retVal.Stores {
if v.StoreMapStr != "" { if v.StoreMapStr != "" {
if err = utils.UnmarshalUseNumber([]byte(v.StoreMapStr), &v.StoreMaps); err != nil { 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) globals.SugarLogger.Debug(sql)
if err = dao.GetRows(db, &commentList, sql, utils.Int2Str(storeID), size, (page-1)*size); err == nil { if err = dao.GetRows(db, &commentList, sql, utils.Int2Str(storeID), size, (page-1)*size); err == nil {
countInfo := &struct{ Ct int }{} retVal = map[string]interface{}{
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { "total": dao.GetLastTotalRowCount(db),
dao.Commit(db) "list": commentList,
retVal = map[string]interface{}{
"total": countInfo.Ct,
"list": commentList,
}
} }
dao.Commit(db)
} }
return retVal, err return retVal, err
} }

View File

@@ -628,12 +628,10 @@ func GetJdPromotions(ctx *jxcontext.Context, keyword string, params map[string]i
} }
} }
} }
pagedInfo = &model.PagedInfo{} pagedInfo = &model.PagedInfo{
countInfo := &struct{ Ct int }{} TotalCount: dao.GetLastTotalRowCount(db),
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { Data: promotionList,
pagedInfo.TotalCount = countInfo.Ct
} }
pagedInfo.Data = promotionList
} }
dao.Commit(db) dao.Commit(db)
return pagedInfo, err return pagedInfo, err

View File

@@ -170,6 +170,7 @@ func ExecuteSQL(db *DaoDB, sql string, params ...interface{}) (num int64, err er
return num, err return num, err
} }
// 此函数要求db在事务中否则可能导致取得到的是另一个连接的数据
func GetLastTotalRowCount(db *DaoDB) int { func GetLastTotalRowCount(db *DaoDB) int {
countInfo := &struct{ Ct int }{} countInfo := &struct{ Ct int }{}
if err := GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { if err := GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {