diff --git a/apollostruct/auto_response.go b/apollostruct/auto_response.go index 6703fb53..925c3cf1 100644 --- a/apollostruct/auto_response.go +++ b/apollostruct/auto_response.go @@ -3,5 +3,6 @@ package apollostruct type AutoResponseCfg struct { StartTime string `json:"start_time"` EndTime string `json:"end_time"` + Delay int64 `json:"delay"` Message string `json:"message"` } diff --git a/app/mix/service/apiservice.go b/app/mix/service/apiservice.go index 94cf560f..a4ab4e0b 100644 --- a/app/mix/service/apiservice.go +++ b/app/mix/service/apiservice.go @@ -2031,19 +2031,20 @@ func (s *Service) ApiCreateContactCustomerService(ctx *gin.Context, req *contact return } if createTimes.CreateTimes == 0 { - err := _DefaultContactCustomerService.OpCreate(ctx, &contact_customer_service_proto.OpCreateReq{ - ContactCustomerService: &dbstruct.ContactCustomerService{ - SessionId: req.ContactCustomerService.SessionId, - Predicate: goproto.Int64(consts.ContactCustomerService_FromSupportor), - Message: goproto.String(cfg.Message), - IsRead: goproto.Int64(consts.ContactCustomerService_NotRead), - }, - }) - if err != nil { - logger.Error("OpCreate fail, req: %v, err: %v", util.ToJson(req), err) - ec = errcode.ErrCodeContactCustomerServiceSrvFail - return - } + go func() { + time.Sleep(time.Duration(cfg.Delay) * time.Second) + err := _DefaultContactCustomerService.OpCreate(ctx, &contact_customer_service_proto.OpCreateReq{ + ContactCustomerService: &dbstruct.ContactCustomerService{ + SessionId: req.ContactCustomerService.SessionId, + Predicate: goproto.Int64(consts.ContactCustomerService_FromSupportor), + Message: goproto.String(cfg.Message), + IsRead: goproto.Int64(consts.ContactCustomerService_NotRead), + }, + }) + if err != nil { + logger.Error("OpCreate fail, req: %v, err: %v", util.ToJson(req), err) + } + }() isAutoResponsed = consts.ContactCustomerService_AutoResponsed } }