畅销商品
This commit is contained in:
@@ -2169,6 +2169,77 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE
|
||||
return storeSkuNameExt, err
|
||||
}
|
||||
|
||||
func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNameAndPlaceList []*dao.SkuNameAndPlace, err error) {
|
||||
db := dao.GetDB()
|
||||
orderCreate := time.Now().AddDate(0, -1, 0)
|
||||
skuNameAndPlace, err := dao.GetTopSkusByCityCode(db, cityCode, orderCreate)
|
||||
if storeID > 0 {
|
||||
var skuNameList []*model.SkuName
|
||||
//未关注,不可售的商品nameID列表
|
||||
sql := `
|
||||
SELECT DISTINCT b.name_id
|
||||
FROM store_sku_bind a
|
||||
JOIN sku b ON a.sku_id = b.id AND b.deleted_at = ?
|
||||
WHERE a.deleted_at = ?
|
||||
AND a.store_id = ?
|
||||
AND a.status <> ?
|
||||
AND b.name_id NOT IN(SELECT DISTINCT b.name_id
|
||||
FROM store_sku_bind a
|
||||
JOIN sku b ON a.sku_id = b.id AND b.deleted_at = ?
|
||||
WHERE a.deleted_at = ?
|
||||
AND a.store_id = ?
|
||||
AND a.status = ?)
|
||||
UNION
|
||||
SELECT DISTINCT a.name_id
|
||||
FROM sku a
|
||||
LEFT JOIN (SELECT DISTINCT b.name_id
|
||||
FROM store_sku_bind a
|
||||
JOIN sku b ON a.sku_id = b.id
|
||||
WHERE a.deleted_at = ?
|
||||
AND store_id = ?)b ON a.name_id = b.name_id
|
||||
WHERE a.status = ?
|
||||
AND a.deleted_at = ?
|
||||
AND b.name_id IS NULL
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
storeID,
|
||||
model.StoreSkuBindStatusNormal,
|
||||
utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
storeID,
|
||||
model.StoreSkuBindStatusNormal,
|
||||
utils.DefaultTimeValue,
|
||||
storeID,
|
||||
model.StoreSkuBindStatusNormal,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
err = dao.GetRows(db, &skuNameList, sql, sqlParams...)
|
||||
var skuNameMap = make(map[int]*model.SkuName)
|
||||
for _, v := range skuNameList {
|
||||
skuNameMap[v.ID] = v
|
||||
}
|
||||
for _, v := range skuNameAndPlace {
|
||||
if skuNameMap[v.ID] != nil {
|
||||
skuNameAndPlaceList = append(skuNameAndPlaceList, v)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
skuNameAndPlace = skuNameAndPlaceList
|
||||
}
|
||||
i := 1
|
||||
for _, v := range skuNameAndPlaceList {
|
||||
v.Sequence = i
|
||||
i++
|
||||
}
|
||||
if len(skuNameAndPlaceList) <= 100 {
|
||||
return skuNameAndPlaceList, err
|
||||
} else {
|
||||
return skuNameAndPlaceList[0:100], err
|
||||
}
|
||||
}
|
||||
|
||||
func GetTopCategoriesByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) {
|
||||
var (
|
||||
skuCategory2 []*model.SkuCategory
|
||||
|
||||
Reference in New Issue
Block a user