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

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 查询订单的运单记录
func (c *OrderManager) GetWaybillStatusList(orderId, waybillID string, waybillVendorId int) ([]*model.OrderStatus, error) {
sql := `SELECT *
FROM order_status t1
WHERE t1.vendor_order_id = ? AND t1.ref_vendor_order_id = ? AND t1.vendor_id = ?`
sqlParams := []interface{}{
waybillID,
orderId,
waybillVendorId,
}
sql += ` ORDER BY status_time ASC `
var result []*model.OrderStatus
if err := dao.GetRows(dao.GetDB(), &result, sql, sqlParams...); err != nil {
return nil, err
}
return result, nil
}
//func (c *OrderManager) GetWaybillStatusList(orderId, waybillID string, waybillVendorId int) ([]*model.OrderStatus, error) {
// sql := `SELECT *
// FROM order_status t1
// WHERE t1.vendor_order_id = ? AND t1.ref_vendor_order_id = ? AND t1.vendor_id = ?`
// sqlParams := []interface{}{
// waybillID,
// orderId,
// waybillVendorId,
// }
// sql += ` ORDER BY status_time ASC `
// var result []*model.OrderStatus
// if err := dao.GetRows(dao.GetDB(), &result, sql, sqlParams...); err != nil {
// return nil, err
// }
// 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
import (
"fmt"
"strings"
"time"
@@ -47,7 +48,9 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
//if err = err2; err != nil {
// 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")
storeIDs, _ := dao.GetOrderStoreIDs(dao.GetDB(), fromTime, toTime, model.VendorIDMTWM)
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)
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "")
// 查询门店差评
commentList, _ := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).CommentQuery(storeDetail.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusNotReplied)
var orderCommentList []*model.OrderComment
if len(commentList) == model.NO || commentList == nil {
@@ -84,6 +88,20 @@ func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error)
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)
}
}