diff --git a/business/model/dao/dao_order_sku_financial.go b/business/model/dao/dao_order_sku_financial.go index 79dc317ad..d059abefd 100644 --- a/business/model/dao/dao_order_sku_financial.go +++ b/business/model/dao/dao_order_sku_financial.go @@ -8,13 +8,12 @@ import ( ) // GetBadCommentOrderId 根据差评商品列表获取订单号 -func GetBadCommentOrderId(jxStoreId int, startTime, endTime time.Time, foodNameList []string) (string, error) { +func GetBadCommentOrderId(jxStoreId int, startTime, endTime time.Time, foodNameList []string, skuList []int) (string, error) { sqlParams := []interface{}{} sql := ` SELECT count(s.vendor_order_id) count,s.vendor_order_id FROM goods_order g LEFT JOIN order_sku s ON g.vendor_order_id = s.vendor_order_id - WHERE g.jx_store_id = ? AND g.vendor_id = ? AND g.order_created_at >= ? AND g.order_created_at <= ? AND s.sku_name IN (` + dao.GenQuestionMarks(len(foodNameList)) + `) GROUP BY s.vendor_order_id LIMIT 0, 1000 -` + WHERE g.jx_store_id = ? AND g.vendor_id = ? AND g.order_created_at >= ? AND g.order_created_at <= ?` sqlParams = append(sqlParams, []interface{}{ jxStoreId, model.VendorIDMTWM, @@ -22,6 +21,14 @@ func GetBadCommentOrderId(jxStoreId int, startTime, endTime time.Time, foodNameL endTime, foodNameList, }) + if len(foodNameList) != 0 { + sql += `AND s.sku_name IN (` + dao.GenQuestionMarks(len(foodNameList)) + `) GROUP BY s.vendor_order_id LIMIT 0, 1000` + sqlParams = append(sqlParams, foodNameList) + } + if len(skuList) != 0 { + sql += `AND s.sku_id IN (` + dao.GenQuestionMarks(len(skuList)) + `) GROUP BY s.vendor_order_id LIMIT 0, 1000` + sqlParams = append(sqlParams, skuList) + } commentOrder := make([]*badCommentOrder, 0, 0) if err := GetRows(GetDB(), &commentOrder, sql, sqlParams...); err != nil { diff --git a/business/partner/purchase/mtwm/order_comment.go b/business/partner/purchase/mtwm/order_comment.go index 3a246e979..6693c7014 100644 --- a/business/partner/purchase/mtwm/order_comment.go +++ b/business/partner/purchase/mtwm/order_comment.go @@ -85,10 +85,13 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) } foodNameList := make(map[string]int, 0) + skuIdMap := make(map[string]int, 0) for _, fn := range mtwmComment.PraiseRetailList { + skuIdMap[fn.SkuId] = 1 foodNameList[fn.Name] = 1 } for _, fn := range mtwmComment.CriticRetailList { + skuIdMap[fn.SkuId] = 1 foodNameList[fn.Name] = 1 } @@ -100,14 +103,21 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) } } nameList := make([]string, 0, 0) + skuIdList := make([]int, 0, 0) for k, _ := range foodNameList { nameList = append(nameList, k) } + for k, _ := range skuIdMap { + skuIdList = append(skuIdList, utils.Str2Int(k)) + } if len(foodNameList) > 0 { - vendorOrderID, _ := dao.GetBadCommentOrderId(storeDetail.ID, time.Now().Add(-RefreshCommentTime), startTime, nameList) + vendorOrderID, _ := dao.GetBadCommentOrderId(storeDetail.ID, time.Now().Add(-RefreshCommentTime), startTime, nameList, nil) if vendorOrderID != "" { orderComment.VendorOrderID2 = vendorOrderID + } else { + vendorOrderID, _ = dao.GetBadCommentOrderId(storeDetail.ID, time.Now().Add(-RefreshCommentTime), startTime, nil, skuIdList) + orderComment.VendorOrderID2 = vendorOrderID } } orderCommentList = append(orderCommentList, orderComment) @@ -276,7 +286,7 @@ func CommentListData(db *dao.DaoDB, skuList []*mtwmapi.CommentsList, startTime, for fnl, _ := range foodNameList { foodName = append(foodName, fnl) } - vendorOrderID, _ := dao.GetBadCommentOrderId(store.ID, st.AddDate(0, 0, -7), et.AddDate(0, 0, 7), foodName) + vendorOrderID, _ := dao.GetBadCommentOrderId(store.ID, st.AddDate(0, 0, -7), et.AddDate(0, 0, 7), foodName, nil) if vendorOrderID != "" { orderComment.VendorOrderID2 = vendorOrderID }