增加美团差评是获取到真实订单号

This commit is contained in:
邹宗楠
2024-07-17 16:55:37 +08:00
parent 97b0ed93ef
commit d4bc6f1946
3 changed files with 81 additions and 17 deletions

View File

@@ -1756,19 +1756,19 @@ func GetOrderUserBuyFirst(ctx *jxcontext.Context, vendorOrderID string) (isFirst
} }
// GetWaybillStatusList 查询订单的运单记录 // GetWaybillStatusList 查询订单的运单记录
func (c *OrderManager) GetWaybillStatusList(orderId, waybillID string, waybillVendorId int) ([]*model.OrderStatus, error) { //func (c *OrderManager) GetWaybillStatusList(orderId, waybillID string, waybillVendorId int) ([]*model.OrderStatus, error) {
sql := `SELECT * // sql := `SELECT *
FROM order_status t1 // FROM order_status t1
WHERE t1.vendor_order_id = ? AND t1.ref_vendor_order_id = ? AND t1.vendor_id = ?` // WHERE t1.vendor_order_id = ? AND t1.ref_vendor_order_id = ? AND t1.vendor_id = ?`
sqlParams := []interface{}{ // sqlParams := []interface{}{
waybillID, // waybillID,
orderId, // orderId,
waybillVendorId, // waybillVendorId,
} // }
sql += ` ORDER BY status_time ASC ` // sql += ` ORDER BY status_time ASC `
var result []*model.OrderStatus // var result []*model.OrderStatus
if err := dao.GetRows(dao.GetDB(), &result, sql, sqlParams...); err != nil { // if err := dao.GetRows(dao.GetDB(), &result, sql, sqlParams...); err != nil {
return nil, err // return nil, err
} // }
return result, nil // return result, nil
} //}

View File

@@ -0,0 +1,46 @@
package dao
import (
"git.rosy.net.cn/jx-print/dao"
"time"
)
// GetBadCommentOrderId 根据差评商品列表获取订单号
func GetBadCommentOrderId(jxStoreId int, startTime, endTime time.Time, foodNameList []string) (string, error) {
sqlParams := []interface{}{}
sql := `
SELECT count(vendor_order_id) count,vendor_order_id FROM
order_sku_financial WHERE jx_store_id = ? AND created_at >= ? AND created_at <= ? AND name IN (` + dao.GenQuestionMarks(len(foodNameList)) + `)" GROUP BY vendor_order_id LIMIT 0, 1000`
sqlParams = append(sqlParams, []interface{}{
jxStoreId,
startTime,
endTime,
foodNameList,
})
commentOrder := make([]*badCommentOrder, 0, 0)
if err := GetRows(GetDB(), &commentOrder, sql, sqlParams...); err != nil {
return "", err
}
// 全等于的话就是目标订单
for _, v := range commentOrder {
if v.Count == len(foodNameList) {
return v.VendorOrderId, nil
}
}
// 是在不行误差有一两个商品也行
for _, v := range commentOrder {
if v.Count == len(foodNameList)-1 {
return v.VendorOrderId, nil
}
}
return "", nil
}
type badCommentOrder struct {
Count int `json:"count"`
VendorOrderId string `json:"vendor_order_id"`
}

View File

@@ -1,6 +1,7 @@
package mtwm package mtwm
import ( import (
"fmt"
"strings" "strings"
"time" "time"
@@ -47,7 +48,9 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
//if err = err2; err != nil { //if err = err2; err != nil {
// return err // return err
//} //}
endDateStr := time.Now().Add(-24 * time.Hour).Format("20060102") startTime := time.Now().Add(-24 * time.Hour)
endTime := time.Now().Add(-RefreshCommentTime)
endDateStr := startTime.Format("20060102")
startDateStr := time.Now().Add(-RefreshCommentTime).Format("20060102") startDateStr := time.Now().Add(-RefreshCommentTime).Format("20060102")
storeIDs, _ := dao.GetOrderStoreIDs(dao.GetDB(), fromTime, toTime, model.VendorIDMTWM) storeIDs, _ := dao.GetOrderStoreIDs(dao.GetDB(), fromTime, toTime, model.VendorIDMTWM)
task := tasksch.NewParallelTask("mtwm RefreshComment", nil, jxcontext.AdminCtx, task := tasksch.NewParallelTask("mtwm RefreshComment", nil, jxcontext.AdminCtx,
@@ -55,6 +58,7 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
storeID := batchItemList[0].(int) storeID := batchItemList[0].(int)
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "") storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "")
// 查询门店差评
commentList, _ := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).CommentQuery(storeDetail.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusNotReplied) commentList, _ := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).CommentQuery(storeDetail.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusNotReplied)
var orderCommentList []*model.OrderComment var orderCommentList []*model.OrderComment
if len(commentList) == model.NO || commentList == nil { if len(commentList) == model.NO || commentList == nil {
@@ -84,6 +88,20 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
orderComment.CommentCreatedAt = updatedTime orderComment.CommentCreatedAt = updatedTime
} }
} }
if len(mtwmComment.CommentOrderDetail) > 0 {
foodNameList := make([]string, len(mtwmComment.CommentOrderDetail))
for _, fn := range mtwmComment.CommentOrderDetail {
if len(fn.FoodName)-strings.LastIndex(fn.FoodName, "") > 3 {
foodNameList = append(foodNameList, fn.FoodName)
} else {
foodNameList = append(foodNameList, fn.FoodName[0:strings.LastIndex(fn.FoodName, "")])
}
}
vendorOrderID, _ := dao.GetBadCommentOrderId(storeDetail.ID, startTime, endTime, foodNameList)
orderComment.VendorOrderID = fmt.Sprintf("%s:%s", vendorOrderID, orderComment.VendorOrderID)
}
orderCommentList = append(orderCommentList, orderComment) orderCommentList = append(orderCommentList, orderComment)
} }
} }