package ebai import ( "git.rosy.net.cn/jx-callback/business/model/dao" "time" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) // 饿百的评价不是一点一点出来的,而是一下把前一天的全部崩出来。。。 const ( RefreshCommentTime = 84 * time.Hour RefreshCommentTimeInterval = 60 * time.Minute EBAI_BAD_COMMENTS_MAX_MODIFY_TIME = 24 // 小时 ) func (c *PurchaseHandler) StartRefreshComment() { utils.AfterFuncWithRecover(5*time.Second, func() { c.refreshCommentOnce() }) } func (c *PurchaseHandler) refreshCommentOnce() { c.RefreshComment(time.Now().Add(-RefreshCommentTime), time.Now()) utils.AfterFuncWithRecover(RefreshCommentTimeInterval, func() { c.refreshCommentOnce() }) } func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) { var orderCommentList []*model.OrderComment //stepGap := 24 * time.Hour //stepFromTime := fromTime //for { //stepToTime := stepFromTime.Add(stepGap - time.Second) //if stepToTime.Sub(toTime) > 0 { // stepToTime = toTime //} //if stepToTime.Sub(stepFromTime) == 0 { // break //} storeIDs, _ := dao.GetOrderStoreIDs(dao.GetDB(), fromTime, toTime, model.VendorIDEBAI) for _, v := range storeIDs { if commentList, err := api.EbaiAPI.OrderCommetGet(utils.Int2Str(v), 0, fromTime, toTime, 0); err == nil { for _, comment := range commentList { if comment.CanReply == "1" { orderComment := &model.OrderComment{ VendorOrderID: utils.Int64ToStr(comment.OrderID), VendorID: model.VendorIDEBAI, UserCommentID: utils.Int64ToStr(comment.OrderRateList[0].CommentID), TagList: "", Score: int8(comment.OrderRateList[0].ServiceRating), Content: comment.OrderRateList[0].RatingContent, CommentCreatedAt: utils.Timestamp2Time(comment.OrderRateList[0].RatingAt), IsReplied: int8(utils.Str2Int(comment.AnonymousRating)), ModifyDuration: EBAI_BAD_COMMENTS_MAX_MODIFY_TIME, OriginalMsg: string(utils.MustMarshal(comment)), } if orderComment.VendorOrderID == "0" { orderComment.VendorOrderID = orderComment.UserCommentID } // 直接得到的订单是饿了么的,尝试统一成饿百 if order, err := partner.CurOrderManager.LoadOrder(orderComment.VendorOrderID, model.VendorIDEBAI); err == nil { orderComment.VendorOrderID = order.VendorOrderID orderComment.VendorOrderID2 = order.VendorOrderID2 orderComment.VendorID = model.VendorIDEBAI orderComment.VendorStoreID = order.VendorStoreID orderComment.StoreID = jxutils.GetSaleStoreIDFromOrder(order) orderComment.ConsigneeMobile = order.ConsigneeMobile } else { globals.SugarLogger.Infof("RefreshComment, load orderID:%s failed", orderComment.VendorOrderID) } orderCommentList = append(orderCommentList, orderComment) } } } } //resultList, err2 := api.EbaiAPI.GetEleCommentList(stepFromTime, stepToTime, "", "", ebaiapi.ReplyStatusAll, ebaiapi.CommentLevelAll, ebaiapi.CommentContentAll) //if err = err2; err == nil { // for _, result := range resultList { // orderComment := &model.OrderComment{ // VendorOrderID: utils.Interface2String(result["order_id"]), // VendorID: model.VendorIDELM, // UserCommentID: utils.Int64ToStr(utils.MustInterface2Int64(result["comment_id"])), // // VendorStoreID: utils.Int64ToStr(utils.MustInterface2Int64(result["shop_id"])), // 这个shop_id是饿了么ID,不是饿百ID // TagList: "", // Score: int8(utils.MustInterface2Int64(result["service_rating"])), // Content: utils.Interface2String(result["content"]), // CommentCreatedAt: utils.Str2Time(utils.Interface2String(result["create_time"])), // IsReplied: int8(1 - utils.MustInterface2Int64(result["can_reply"])), // ModifyDuration: EBAI_BAD_COMMENTS_MAX_MODIFY_TIME, // OriginalMsg: string(utils.MustMarshal(result)), // } // // 直接得到的订单是饿了么的,尝试统一成饿百 // if order, err := partner.CurOrderManager.LoadOrder2(orderComment.VendorOrderID, model.VendorIDEBAI); err == nil { // orderComment.VendorOrderID = order.VendorOrderID // orderComment.VendorOrderID2 = order.VendorOrderID2 // orderComment.VendorID = model.VendorIDEBAI // // orderComment.VendorStoreID = order.VendorStoreID // orderComment.StoreID = jxutils.GetSaleStoreIDFromOrder(order) // orderComment.ConsigneeMobile = order.ConsigneeMobile // } else { // } // orderCommentList = append(orderCommentList, orderComment) // } //} //if stepToTime.Sub(toTime) == 0 { // break //} //stepFromTime = stepToTime.Add(time.Second) //} if err == nil && len(orderCommentList) > 0 { err = partner.CurOrderManager.OnOrderComments(orderCommentList) } return err } func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { if orderComment.VendorStoreID != "" && orderComment.UserCommentID != "" { if globals.EnableEbaiStoreWrite { err = api.EbaiAPI.OrderRatesReply("", utils.Str2Int64(orderComment.VendorStoreID), orderComment.UserCommentID, replyComment) } } return err }