Files
jx-callback/business/model/dao/store_sku_sales.go
2019-09-19 16:57:24 +08:00

70 lines
1.7 KiB
Go

package dao
import (
"git.rosy.net.cn/jx-callback/business/model"
)
func GetSkuSalesCntList(db *DaoDB, storeID, cityCode, dayNum, limit int, skuIDs []int) (skuCountList []*model.SkuCount, err error) {
sql := `
SELECT t2.jx_sku_id sku_id, SUM(t2.count) count
FROM goods_order t1
JOIN order_sku t2 on t1.vendor_order_id = t2.vendor_order_id and t1.vendor_id = t2.vendor_id
JOIN store t3 on t1.jx_store_id = t3.id
WHERE DATE(t1.order_finished_at) BETWEEN DATE_SUB(CURDATE(), INTERVAL ? DAY) and CURDATE()
AND t1.status = ?
AND t2.jx_sku_id <> 0
AND t3.city_code = ?
`
if dayNum < 0 {
dayNum = 30
}
sqlParams := []interface{}{
dayNum - 1,
model.OrderStatusFinished,
cityCode,
}
if storeID > 0 {
sql += `
AND t1.jx_store_id = ?
`
sqlParams = append(sqlParams, storeID)
}
if len(skuIDs) > 0 {
sql += `
AND t2.jx_sku_id IN (` + GenQuestionMarks(len(skuIDs)) + `)`
sqlParams = append(sqlParams, skuIDs)
}
sql += `
GROUP BY jx_sku_id
ORDER BY count DESC
`
if limit > 0 {
sql += `
LIMIT ?
`
sqlParams = append(sqlParams, limit)
}
err = GetRows(db, &skuCountList, sql, sqlParams)
return skuCountList, err
}
func GetSkuBadCommentCntList(db *DaoDB, storeID, dayNum int) (skuCountList []*model.SkuCount, err error) {
sql := `
SELECT t2.jx_sku_id sku_id, COUNT(*) count
FROM jx_bad_comments t1
JOIN order_sku t2 ON t1.order_id = t2.vendor_order_id
WHERE DATE(t1.createtime) BETWEEN DATE_SUB(CURDATE(), INTERVAL ? DAY) and CURDATE()
AND t1.jxstoreid = ?
GROUP BY t2.jx_sku_id
`
if dayNum < 0 {
dayNum = 30
}
sqlParams := []interface{}{
dayNum - 1,
storeID,
}
err = GetRows(db, &skuCountList, sql, sqlParams)
return skuCountList, err
}