- GetStoreSkus support manually pages
This commit is contained in:
@@ -206,7 +206,14 @@ func GetStoreSkus(ctx *jxcontext.Context, storeID int, isFocus bool, keyword str
|
|||||||
ORDER BY t1.id DESC
|
ORDER BY t1.id DESC
|
||||||
LIMIT ? OFFSET ?`
|
LIMIT ? OFFSET ?`
|
||||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
sqlParams = append(sqlParams, pageSize, offset)
|
sqlOffset := offset
|
||||||
|
sqlPageSize := pageSize
|
||||||
|
isSaleInfo := params["stFromTime"] != nil
|
||||||
|
if isSaleInfo {
|
||||||
|
sqlOffset = 0
|
||||||
|
sqlPageSize = jxutils.FormalizePageSize(-1)
|
||||||
|
}
|
||||||
|
sqlParams = append(sqlParams, sqlPageSize, sqlOffset)
|
||||||
skuNamesInfo = &StoreSkuNamesInfo{}
|
skuNamesInfo = &StoreSkuNamesInfo{}
|
||||||
// globals.SugarLogger.Debug(sqlData)
|
// globals.SugarLogger.Debug(sqlData)
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
@@ -237,7 +244,7 @@ func GetStoreSkus(ctx *jxcontext.Context, storeID int, isFocus bool, keyword str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if params["stFromTime"] != nil {
|
if isSaleInfo {
|
||||||
var (
|
var (
|
||||||
saleInfoList []*SkuSaleInfo
|
saleInfoList []*SkuSaleInfo
|
||||||
skuIDs []int
|
skuIDs []int
|
||||||
@@ -258,12 +265,12 @@ func GetStoreSkus(ctx *jxcontext.Context, storeID int, isFocus bool, keyword str
|
|||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// if params["stFromCount"] != nil {
|
if params["stFromCount"] != nil {
|
||||||
// fromCount = params["stFromCount"].(int)
|
fromCount = params["stFromCount"].(int)
|
||||||
// }
|
}
|
||||||
// if params["stToCount"] != nil {
|
if params["stToCount"] != nil {
|
||||||
// toCount = params["stToCount"].(int)
|
toCount = params["stToCount"].(int)
|
||||||
// }
|
}
|
||||||
if saleInfoList, err = GetStoresSkusSaleInfo(ctx, []int{storeID}, skuIDs, timeList[0], timeList[1], fromCount, toCount); err != nil {
|
if saleInfoList, err = GetStoresSkusSaleInfo(ctx, []int{storeID}, skuIDs, timeList[0], timeList[1], fromCount, toCount); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -272,24 +279,34 @@ func GetStoreSkus(ctx *jxcontext.Context, storeID int, isFocus bool, keyword str
|
|||||||
saleInfoMap[int64(saleInfo.StoreID)*100000+int64(saleInfo.SkuID)] = saleInfo
|
saleInfoMap[int64(saleInfo.StoreID)*100000+int64(saleInfo.SkuID)] = saleInfo
|
||||||
}
|
}
|
||||||
storeID2 := int64(storeID) * 100000
|
storeID2 := int64(storeID) * 100000
|
||||||
// var newSkuNames []*StoreSkuNameExt
|
var newSkuNames []*StoreSkuNameExt
|
||||||
for _, skuName := range skuNamesInfo.SkuNames {
|
for _, skuName := range skuNamesInfo.SkuNames {
|
||||||
// var newSkus []map[string]interface{}
|
var newSkus []map[string]interface{}
|
||||||
for _, sku := range skuName.Skus {
|
for _, sku := range skuName.Skus {
|
||||||
saleInfo := saleInfoMap[storeID2+utils.MustInterface2Int64(sku["id"])]
|
saleInfo := saleInfoMap[storeID2+utils.MustInterface2Int64(sku["id"])]
|
||||||
if saleInfo == nil {
|
if saleInfo == nil && fromCount == 0 {
|
||||||
saleInfo = &SkuSaleInfo{}
|
saleInfo = &SkuSaleInfo{}
|
||||||
// newSkus = append(newSkus, sku)
|
|
||||||
}
|
}
|
||||||
|
if saleInfo != nil {
|
||||||
sku["times"] = saleInfo.Times
|
sku["times"] = saleInfo.Times
|
||||||
sku["count"] = saleInfo.Count
|
sku["count"] = saleInfo.Count
|
||||||
|
newSkus = append(newSkus, sku)
|
||||||
}
|
}
|
||||||
// skuName.Skus = newSkus
|
|
||||||
// if len(newSkus) > 0 {
|
|
||||||
// newSkuNames = append(newSkuNames, skuName)
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// skuNamesInfo.SkuNames = newSkuNames
|
if len(newSkus) > 0 {
|
||||||
|
skuName.Skus = newSkus
|
||||||
|
newSkuNames = append(newSkuNames, skuName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
skuNamesInfo.TotalCount = len(newSkuNames)
|
||||||
|
skuNamesInfo.SkuNames = nil
|
||||||
|
if offset < skuNamesInfo.TotalCount {
|
||||||
|
endIndex := offset + pageSize
|
||||||
|
if endIndex > skuNamesInfo.TotalCount {
|
||||||
|
endIndex = skuNamesInfo.TotalCount
|
||||||
|
}
|
||||||
|
skuNamesInfo.SkuNames = newSkuNames[offset:endIndex]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,7 +322,6 @@ func GetStoresSkusSaleInfo(ctx *jxcontext.Context, storeIDs []int, skuIDs []int,
|
|||||||
JOIN goods_order t2 ON t1.vendor_order_id = t2.vendor_order_id AND t1.vendor_id = t2.vendor_id AND t2.status IN (?, ?)
|
JOIN goods_order t2 ON t1.vendor_order_id = t2.vendor_order_id AND t1.vendor_id = t2.vendor_id AND t2.status IN (?, ?)
|
||||||
WHERE t1.order_created_at >= ? AND t1.order_created_at <= ?
|
WHERE t1.order_created_at >= ? AND t1.order_created_at <= ?
|
||||||
AND IF(t2.jx_store_id <> 0, jx_store_id, store_id) IN (` + dao.GenQuestionMarks(len(storeIDs)) + `)
|
AND IF(t2.jx_store_id <> 0, jx_store_id, store_id) IN (` + dao.GenQuestionMarks(len(storeIDs)) + `)
|
||||||
AND IF(t1.jx_sku_id <> 0, t1.jx_sku_id, t1.sku_id) IN (` + dao.GenQuestionMarks(len(skuIDs)) + `)
|
|
||||||
`
|
`
|
||||||
if jxutils.IsTimeEmpty(toTime) {
|
if jxutils.IsTimeEmpty(toTime) {
|
||||||
toTime = time.Now()
|
toTime = time.Now()
|
||||||
@@ -316,8 +332,16 @@ func GetStoresSkusSaleInfo(ctx *jxcontext.Context, storeIDs []int, skuIDs []int,
|
|||||||
fromTime,
|
fromTime,
|
||||||
toTime,
|
toTime,
|
||||||
storeIDs,
|
storeIDs,
|
||||||
skuIDs,
|
|
||||||
}
|
}
|
||||||
|
if len(skuIDs) > 0 {
|
||||||
|
sql += `
|
||||||
|
AND IF(t1.jx_sku_id <> 0, t1.jx_sku_id, t1.sku_id) IN (` + dao.GenQuestionMarks(len(skuIDs)) + `)`
|
||||||
|
sqlParams = append(sqlParams, skuIDs)
|
||||||
|
}
|
||||||
|
sql += `
|
||||||
|
GROUP BY 1,2
|
||||||
|
HAVING 1 = 1
|
||||||
|
`
|
||||||
if fromCount > 0 {
|
if fromCount > 0 {
|
||||||
sql += " AND times >= ?"
|
sql += " AND times >= ?"
|
||||||
sqlParams = append(sqlParams, fromCount)
|
sqlParams = append(sqlParams, fromCount)
|
||||||
@@ -326,7 +350,6 @@ func GetStoresSkusSaleInfo(ctx *jxcontext.Context, storeIDs []int, skuIDs []int,
|
|||||||
sql += " AND times <= ?"
|
sql += " AND times <= ?"
|
||||||
sqlParams = append(sqlParams, toCount)
|
sqlParams = append(sqlParams, toCount)
|
||||||
}
|
}
|
||||||
sql += " GROUP BY 1,2"
|
|
||||||
// fmt.Println(sql)
|
// fmt.Println(sql)
|
||||||
// fmt.Println(utils.Format4Output(sqlParams, false))
|
// fmt.Println(utils.Format4Output(sqlParams, false))
|
||||||
if err = dao.GetRows(db, &saleInfoList, sql, sqlParams...); err == nil {
|
if err = dao.GetRows(db, &saleInfoList, sql, sqlParams...); err == nil {
|
||||||
|
|||||||
@@ -14,9 +14,6 @@ type StoreSkuController struct {
|
|||||||
beego.Controller
|
beego.Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Param stFromCount query int false "统计SKU,结果集起始数量(包括)"
|
|
||||||
// @Param stToToCount query int false "统计SKU,结果集结束数量(包括)"
|
|
||||||
|
|
||||||
// @Title 得到商家商品信息
|
// @Title 得到商家商品信息
|
||||||
// @Description 得到商家商品信息,如下条件之间是与的关系。对于没有认领的商品,按城市限制。但对于已经认领的商品就不限制了,因为已经在平台上可售,可以操作(改价等等)
|
// @Description 得到商家商品信息,如下条件之间是与的关系。对于没有认领的商品,按城市限制。但对于已经认领的商品就不限制了,因为已经在平台上可售,可以操作(改价等等)
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
@@ -34,6 +31,8 @@ type StoreSkuController struct {
|
|||||||
// @Param toStatus query int false "查询结束状态(0:不可售,1:可售)"
|
// @Param toStatus query int false "查询结束状态(0:不可售,1:可售)"
|
||||||
// @Param stFromTime query string false "统计SKU开始时间"
|
// @Param stFromTime query string false "统计SKU开始时间"
|
||||||
// @Param stToTime query string false "统计SKU结束时间"
|
// @Param stToTime query string false "统计SKU结束时间"
|
||||||
|
// @Param stFromCount query int false "统计SKU,结果集起始数量(包括)"
|
||||||
|
// @Param stToToCount query int false "统计SKU,结果集结束数量(包括)"
|
||||||
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
||||||
// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)"
|
// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
|||||||
Reference in New Issue
Block a user