package mtwm import ( "time" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) const ( RefreshCommentTime = 36 * time.Hour RefreshCommentTimeInterval = 60 * time.Minute BAD_COMMENTS_MAX_MODIFY_TIME = 24 // 小时 ) func (c *PurchaseHandler) StartRefreshComment() { if globals.ReallyCallPlatformAPI { 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) { if globals.EnableMtwmStoreWrite { storeMapList, err2 := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDMTWM}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "") if err = err2; err != nil { return err } task := tasksch.NewParallelTask("mtwm RefreshComment", nil, jxcontext.AdminCtx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { storeMap := batchItemList[0].(*model.StoreMap) startDateStr := time.Now().Format("20060102") endDateStr := time.Now().Add(-RefreshCommentTime).Format("20060102") commentList, err2 := api.MtwmAPI.CommentQuery(storeMap.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusAll) if err = err2; err != nil { return nil, err } return commentList, nil }, storeMapList) task.Run() resultList, err2 := task.GetResult(0) if err = err2; err != nil { return err } var orderCommentList []*model.OrderComment for _, result := range resultList { mtwmComment := result.(*mtwmapi.OrderComment) orderComment := &model.OrderComment{ VendorID: model.VendorIDMTWM, TagList: mtwmComment.CommentLables, Score: int8(mtwmComment.FoodCommentScore), } orderCommentList = append(orderCommentList, orderComment) } } return err } func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error) { if globals.EnableMtwmStoreWrite { err = api.MtwmAPI.CommentAddReply(orderComment.VendorStoreID, utils.Str2Int64(orderComment.UserCommentID), replyComment) } return err }