@@ -6,6 +6,7 @@ import (
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
@@ -16,17 +17,15 @@ import (
)
const (
RefreshCommentTime = 36 * time . Hour
RefreshCommentTime = 3 * 24 * time . Hour // 此值必须大于24小时
RefreshCommentTimeInterval = 60 * time . Minute
BAD_COMMENTS_MAX_MODIFY_TIME = 24 // 小时
)
func ( c * PurchaseHandler ) StartRefreshComment ( ) {
if globals . ReallyCallPlatformAPI {
utils . AfterFuncWithRecover ( 5 * time . Second , fu nc( ) {
c . refreshCommentOnce ( )
} )
}
utils . AfterFuncWithRecover ( 5 * time . Second , func ( ) {
c . refreshCommentO nce ( )
} )
}
func ( c * PurchaseHandler ) refreshCommentOnce ( ) {
@@ -37,42 +36,67 @@ func (c *PurchaseHandler) 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 . New ParallelTask( "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 ) ,
storeMapList , err2 := dao . GetStoresMapList ( dao . GetDB ( ) , [ ] int { model . VendorIDMTWM } , nil , model . StoreStatusAll , model . StoreIsSyncYes , "" )
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 )
endDateStr := time . Now ( ) . Add ( - 24 * time . Hour ) . Format ( "20060102" )
startDateStr := time . Now ( ) . Add ( - RefreshCommentTime ) . Format( "20060102" )
commentList , err2 := api . MtwmAPI . CommentQuery ( storeMap . VendorStoreID , startDateStr , endDateStr , 0 , 0 , mtwmapi . CommentReplyStatusAll )
var orderCommentList [ ] * model . OrderComment
if err = err2 ; err != nil {
return nil , err
}
order CommentList = append ( orderCommentList , orderComment )
}
for _ , mtwm Comment : = range commentList {
createdTime , err := utils . TryStr2Time ( mtwmComment . CommentTime )
if err == nil {
orderComment := & model . OrderComment {
VendorOrderID : utils . Int64ToStr ( mtwmComment . CommentID ) , // 美团评价不能得到订单号, 以评价ID代替
VendorID : model . VendorIDMTWM ,
UserCommentID : utils . Int64ToStr ( mtwmComment . CommentID ) ,
VendorStoreID : storeMap . VendorStoreID ,
TagList : mtwmComment . CommentLables ,
Score : int8 ( mtwmComment . FoodCommentScore ) ,
ModifyDuration : BAD_COMMENTS_MAX_MODIFY_TIME ,
OriginalMsg : string ( utils . MustMarshal ( mtwmComment ) ) ,
IsReplied : int8 ( mtwmComment . ReplyStatus ) ,
}
if orderComment . IsReplied == 0 {
orderComment . Content = mtwmComment . CommentContent
orderComment . CommentCreatedAt = createdTime
} else {
orderComment . Content = mtwmComment . AddComment
if updatedTime , err := utils . TryStr2Time ( mtwmComment . CommentTime ) ; err == nil {
orderComment . CommentCreatedAt = updatedTime
}
}
orderCommentList = append ( orderCommentList , orderComment )
}
}
return orderCommentList , nil
} , storeMapList )
task . Run ( )
resultList , err2 := task . GetResult ( 0 )
if err = err2 ; err != nil {
return err
}
var orderCommentList [ ] * model . OrderComment
for _ , result := range resultList {
orderComment := result . ( * model . OrderComment )
orderCommentList = append ( orderCommentList , orderComment )
}
if len ( orderCommentList ) > 0 {
err = partner . CurOrderManager . OnOrderComments ( orderCommentList )
}
return err
}
func ( c * PurchaseHandler ) ReplyOrderComment ( ctx * jxcontext . Context , orderComment * model . OrderComment , replyComment string ) ( err error ) {
globals . SugarLogger . Debugf ( "mtwm ReplyOrderComment, orderComment:%s, replyComment:%s" , utils . Format4Output ( orderComment , true ) , replyComment )
if globals . EnableMtwmStoreWrite {
err = api . MtwmAPI . CommentAddReply ( orderComment . VendorStoreID , utils . Str2Int64 ( orderComment . UserCommentID ) , replyComment )
}