修改门店评分细节

This commit is contained in:
Rosy-zhudan
2019-09-16 16:20:46 +08:00
parent 22f8d169d0
commit e35d86f690
6 changed files with 104 additions and 60 deletions

View File

@@ -73,8 +73,3 @@ type OrderFinancialSkuExt struct {
OrderSkuFinancial
Image string `json:"image"`
}
type OrderPickupTime struct {
StatusTime time.Time
PickDeadline time.Time
}

View File

@@ -291,51 +291,70 @@ func GetStoreAfsOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishe
return afsSkuList, err
}
func GetDailyFinishOrderList(db *DaoDB, storeID int) (orderList []*model.OrderPickupTime, err error) {
func GetDailyFinishOrderList(db *DaoDB, storeID int, dateTime time.Time) (orderList []*model.OrderPickupTime, err error) {
sql := `
select t2.status_time, t1.pick_deadline
from goods_order t1
left join order_status t2 on t1.vendor_order_id = t2.vendor_order_id
where t1.jx_store_id = ? and t2.order_type = ? and t2.status = ? and DATE(t1.order_finished_at) = CURDATE()
SELECT t2.status_time, t1.pick_deadline
FROM goods_order t1
JOIN order_status t2 ON t1.vendor_order_id = t2.vendor_order_id AND t1.vendor_id = t2.vendor_id
WHERE t1.jx_store_id = ? AND t2.order_type = ? AND t2.status = ? AND DATE(t1.order_finished_at) = DATE(?)
`
sqlParams := []interface{}{
storeID,
1,
model.OrderStatusFinishedPickup,
dateTime,
}
return orderList, GetRows(db, &orderList, sql, sqlParams...)
}
func GetDailyBadCommentOrderCount(db *DaoDB) (storeCountList []*model.StoreCount, err error) {
sql := `select jxstoreid store_id, COUNT(*) count from jx_bad_comments where DATE(createtime) = CURDATE() GROUP BY jxstoreid`
err = GetRows(db, &storeCountList, sql)
func GetDailyBadCommentOrderCount(db *DaoDB, dateTime time.Time) (storeCountList []*model.StoreCount, err error) {
sql := `
SELECT jxstoreid store_id, COUNT(*) count
FROM jx_bad_comments
WHERE DATE(createtime) = DATE(?)
GROUP BY jxstoreid
`
sqlParams := []interface{}{
dateTime,
}
err = GetRows(db, &storeCountList, sql, sqlParams)
return storeCountList, err
}
func GetDailyUnFinishOrderCount(db *DaoDB) (storeCountList []*model.StoreCount, err error) {
return GetDailyEndOrderCount(db, []int{model.OrderStatusCanceled}, false)
func GetDailyUnFinishOrderCount(db *DaoDB, dateTime time.Time) (storeCountList []*model.StoreCount, err error) {
return GetDailyEndOrderCount(db, []int{model.OrderStatusCanceled}, false, dateTime)
}
func GetDailyFinishOrderCount(db *DaoDB) (storeCountList []*model.StoreCount, err error) {
return GetDailyEndOrderCount(db, []int{model.OrderStatusFinished}, false)
func GetDailyFinishOrderCount(db *DaoDB, dateTime time.Time) (storeCountList []*model.StoreCount, err error) {
return GetDailyEndOrderCount(db, []int{model.OrderStatusFinished}, false, dateTime)
}
func GetDailyAbsentGoodsOrderCount(db *DaoDB) (storeCountList []*model.StoreCount, err error) {
return GetDailyEndOrderCount(db, []int{model.OrderStatusFinished, model.OrderStatusCanceled}, true)
func GetDailyAbsentGoodsOrderCount(db *DaoDB, dateTime time.Time) (storeCountList []*model.StoreCount, err error) {
return GetDailyEndOrderCount(db, []int{model.OrderStatusFinished, model.OrderStatusCanceled}, true, dateTime)
}
func GetDailyEndOrderCount(db *DaoDB, statusList []int, isAbsentOrder bool) (storeCountList []*model.StoreCount, err error) {
sql := `SELECT jx_store_id store_id, COUNT(*) count FROM goods_order
WHERE DATE(order_finished_at) = CURDATE()
AND status IN (` + GenQuestionMarks(len(statusList)) + `)`
func GetDailyEndOrderCount(db *DaoDB, statusList []int, isAbsentOrder bool, dateTime time.Time) (storeCountList []*model.StoreCount, err error) {
sql := `
SELECT jx_store_id store_id, COUNT(*) count
FROM goods_order
WHERE DATE(order_finished_at) = DATE(?)
`
sqlParams := []interface{}{
dateTime,
}
if len(statusList) > 0 {
sql += ` AND status IN (` + GenQuestionMarks(len(statusList)) + `)`
sqlParams = append(sqlParams, statusList)
}
if isAbsentOrder {
sql += `
AND adjust_count > 0`
AND adjust_count > 0
`
}
sql += `
GROUP BY jx_store_id`
err = GetRow(db, &storeCountList, sql)
err = GetRow(db, &storeCountList, sql, sqlParams)
return storeCountList, err
}

View File

@@ -6,7 +6,6 @@ import (
"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)
@@ -17,7 +16,7 @@ func GetLatestWeeklyStoreScoreList(db *DaoDB, storeID, weekNum int) (storeScoreL
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(
AND DATE(t1.ScoreDate) >= DATE_SUB(
DATE_SUB(
CURDATE(),
INTERVAL
@@ -29,7 +28,7 @@ func GetLatestWeeklyStoreScoreList(db *DaoDB, storeID, weekNum int) (storeScoreL
),
INTERVAL ? DAY
)
AND DATE(t1.created_at) <= DATE_SUB(
AND DATE(t1.ScoreDate) <= DATE_SUB(
CURDATE(),
INTERVAL
IF (
@@ -38,7 +37,7 @@ func GetLatestWeeklyStoreScoreList(db *DaoDB, storeID, weekNum int) (storeScoreL
DAYOFWEEK(CURDATE()) - 1
) DAY
)
ORDER BY created_at DESC
ORDER BY ScoreDate DESC
`
if weekNum <= 0 {
weekNum = 1
@@ -51,3 +50,18 @@ func GetLatestWeeklyStoreScoreList(db *DaoDB, storeID, weekNum int) (storeScoreL
err = GetRows(db, &storeScoreList, sql, sqlParams)
return storeScoreList, err
}
func CheckHasStoreScoreData(db *DaoDB, dateTime time.Time) (hasStoreScoreData bool, err error) {
sql := `
SELECT COUNT(*) count
FROM store_score
WHERE DATE(createtime) = DATE(?)
`
sqlParams := []interface{}{
dateTime,
}
count := 0
err = GetRow(db, &count, sql, sqlParams)
hasStoreScoreData = count > 0
return hasStoreScoreData, err
}

View File

@@ -20,6 +20,7 @@ const (
type StoreScore struct {
ID int `orm:"column(id)" json:"id"`
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
ScoreDate time.Time `orm:"auto_now_add;type(datetime)" json:"scoreDate"`
StoreID int `orm:"column(store_id)" json:"storeID"`
StoreOpenTime int `orm:"column(store_open_time)" json:"storeOpenTime"`
@@ -52,3 +53,8 @@ type StoreCount struct {
StoreID int `orm:"column(store_id)"`
Count int
}
type OrderPickupTime struct {
StatusTime time.Time
PickDeadline time.Time
}