From d4bc6f1946957f0151439c457a417f9a41f6b2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 17 Jul 2024 16:55:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BE=8E=E5=9B=A2=E5=B7=AE?= =?UTF-8?q?=E8=AF=84=E6=98=AF=E8=8E=B7=E5=8F=96=E5=88=B0=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 32 ++++++------- business/model/dao/dao_order_sku_financial.go | 46 +++++++++++++++++++ .../partner/purchase/mtwm/order_comment.go | 20 +++++++- 3 files changed, 81 insertions(+), 17 deletions(-) create mode 100644 business/model/dao/dao_order_sku_financial.go diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index c57eb3c5d..e7217ef57 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -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 +//} diff --git a/business/model/dao/dao_order_sku_financial.go b/business/model/dao/dao_order_sku_financial.go new file mode 100644 index 000000000..8d76d140b --- /dev/null +++ b/business/model/dao/dao_order_sku_financial.go @@ -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"` +} diff --git a/business/partner/purchase/mtwm/order_comment.go b/business/partner/purchase/mtwm/order_comment.go index 1d54e3e80..21cead18e 100644 --- a/business/partner/purchase/mtwm/order_comment.go +++ b/business/partner/purchase/mtwm/order_comment.go @@ -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) } }