54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package dao
|
|
|
|
import (
|
|
"time"
|
|
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
)
|
|
|
|
// func InsertStoreScore(storeID int, scores map[string]int) error {
|
|
func InsertStoreScore(storeScore *model.StoreScore) error {
|
|
storeScore.CreatedAt = time.Now()
|
|
return CreateEntity(nil, storeScore)
|
|
}
|
|
|
|
func GetLatestWeeklyStoreScoreList(db *DaoDB, storeID, weekNum int) (storeScoreList []*model.StoreScoreEx, err error) {
|
|
sql := `
|
|
SELECT t2.name store_name, t1.* FROM store_score t1
|
|
JOIN store t2 ON t1.store_id = t2.id
|
|
WHERE t1.store_id = ?
|
|
AND DATE(t1.created_at) >= DATE_SUB(
|
|
DATE_SUB(
|
|
CURDATE(),
|
|
INTERVAL
|
|
IF (
|
|
DAYOFWEEK(CURDATE()) - 1 = 0,
|
|
7,
|
|
DAYOFWEEK(CURDATE()) - 1
|
|
) DAY
|
|
),
|
|
INTERVAL ? DAY
|
|
)
|
|
AND DATE(t1.created_at) <= DATE_SUB(
|
|
CURDATE(),
|
|
INTERVAL
|
|
IF (
|
|
DAYOFWEEK(CURDATE()) - 1 = 0,
|
|
7,
|
|
DAYOFWEEK(CURDATE()) - 1
|
|
) DAY
|
|
)
|
|
ORDER BY created_at DESC
|
|
`
|
|
if weekNum <= 0 {
|
|
weekNum = 1
|
|
}
|
|
diffDays := weekNum*7 - 1
|
|
sqlParams := []interface{}{
|
|
storeID,
|
|
diffDays,
|
|
}
|
|
err = GetRows(db, &storeScoreList, sql, sqlParams)
|
|
return storeScoreList, err
|
|
}
|