diff --git a/modules/auth/wechat/point.go b/modules/auth/wechat/point.go index 548be506c8..3bd7befe97 100644 --- a/modules/auth/wechat/point.go +++ b/modules/auth/wechat/point.go @@ -12,11 +12,16 @@ type CloudbrainComingToStopMsg struct { } func (CloudbrainComingToStopMsg) Data(ctx *TemplateContext) *DefaultWechatTemplate { + var balance int64 + if ctx.PointAccount != nil { + balance = ctx.PointAccount.Balance + } return &DefaultWechatTemplate{ First: TemplateValue{Value: setting.CloudbrainComingStopTitle}, - Keyword1: TemplateValue{Value: ctx.Cloudbrain.DisplayJobName}, - Keyword2: TemplateValue{Value: getJobTypeDisplayName(ctx.Cloudbrain.JobType)}, - Keyword3: TemplateValue{Value: time.Unix(int64(ctx.EstimatedEndTime), 0).Format("2006-01-02 15:04:05")}, + Keyword1: TemplateValue{Value: ctx.Cloudbrain.DisplayJobName + "(任务名称)"}, + Keyword2: TemplateValue{Value: fmt.Sprintf("%d积分", balance)}, + Keyword3: TemplateValue{Value: setting.CloudbrainComingStopChargeLink}, + Keyword4: TemplateValue{Value: time.Unix(int64(ctx.EstimatedEndTime), 0).Format("2006-01-02 15:04:05") + "(任务即将停止时间)"}, Remark: TemplateValue{Value: setting.CloudbrainComingStopRemark}, } } diff --git a/modules/auth/wechat/template.go b/modules/auth/wechat/template.go index b7ce0c543c..ce5d8ec274 100644 --- a/modules/auth/wechat/template.go +++ b/modules/auth/wechat/template.go @@ -19,6 +19,7 @@ type Template interface { type TemplateContext struct { Cloudbrain *models.Cloudbrain EstimatedEndTime timeutil.TimeStamp + PointAccount *models.PointAccount } func SendTemplateMsg(template Template, ctx *TemplateContext, userId int64) error { diff --git a/modules/notification/base/notifier.go b/modules/notification/base/notifier.go index a355c5c5cd..28edbf376c 100644 --- a/modules/notification/base/notifier.go +++ b/modules/notification/base/notifier.go @@ -65,5 +65,5 @@ type Notifier interface { NotifyChangeUserAvatar(user *models.User, form auth.AvatarForm) NotifyChangeCloudbrainStatus(cloudbrain *models.Cloudbrain, oldStatus string) - NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, endTime timeutil.TimeStamp) + NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, endTime timeutil.TimeStamp, account *models.PointAccount) } diff --git a/modules/notification/base/null.go b/modules/notification/base/null.go index c9a72e887f..73beeea807 100644 --- a/modules/notification/base/null.go +++ b/modules/notification/base/null.go @@ -182,6 +182,6 @@ func (*NullNotifier) NotifyChangeCloudbrainStatus(cloudbrain *models.Cloudbrain, } -func (*NullNotifier) NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, endTime timeutil.TimeStamp) { +func (*NullNotifier) NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, endTime timeutil.TimeStamp, account *models.PointAccount) { } diff --git a/modules/notification/notification.go b/modules/notification/notification.go index 2c8637f396..5742afde76 100644 --- a/modules/notification/notification.go +++ b/modules/notification/notification.go @@ -319,8 +319,8 @@ func NotifyChangeCloudbrainStatus(cloudbrain *models.Cloudbrain, oldStatus strin } // NotifyCloudbrainTaskComingToFinished -func NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, estimatedEndTime timeutil.TimeStamp) { +func NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, estimatedEndTime timeutil.TimeStamp, account *models.PointAccount) { for _, notifier := range notifiers { - notifier.NotifyCloudbrainTaskComingToFinished(cloudbrain, estimatedEndTime) + notifier.NotifyCloudbrainTaskComingToFinished(cloudbrain, estimatedEndTime, account) } } diff --git a/modules/notification/wechat/wechat.go b/modules/notification/wechat/wechat.go index c5ec9f28f4..cb7b92da5d 100644 --- a/modules/notification/wechat/wechat.go +++ b/modules/notification/wechat/wechat.go @@ -36,8 +36,8 @@ func (*wechatNotifier) NotifyChangeCloudbrainStatus(cloudbrain *models.Cloudbrai go wechat.SendTemplateMsg(template, &wechat.TemplateContext{Cloudbrain: cloudbrain}, cloudbrain.UserID) } -func (*wechatNotifier) NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, estimatedEndTime timeutil.TimeStamp) { +func (*wechatNotifier) NotifyCloudbrainTaskComingToFinished(cloudbrain *models.Cloudbrain, endTime timeutil.TimeStamp, account *models.PointAccount) { log.Info("NotifyCloudbrainTaskComingToFinished cloudbrain.id=%d", cloudbrain.ID) template := wechat.ComingStopMsg - go wechat.SendTemplateMsg(template, &wechat.TemplateContext{Cloudbrain: cloudbrain, EstimatedEndTime: estimatedEndTime}, cloudbrain.UserID) + go wechat.SendTemplateMsg(template, &wechat.TemplateContext{Cloudbrain: cloudbrain, EstimatedEndTime: endTime, PointAccount: account}, cloudbrain.UserID) } diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 7ba1a127d0..f68b4646b3 100755 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -697,6 +697,7 @@ var ( CloudbrainStoppedRemark string CloudbrainComingStopTemplateId string CloudbrainComingStopTitle string + CloudbrainComingStopChargeLink string CloudbrainComingStopRemark string CloudbrainComingStopSendFlag bool @@ -1642,8 +1643,9 @@ func NewContext() { CloudbrainStoppedTitle = sec.Key("CLOUDBRAIN_STOPPED_TITLE").MustString("您好,您申请的算力资源已结束使用,任务已完成运行,状态为%s,请您关注运行结果") CloudbrainStoppedRemark = sec.Key("CLOUDBRAIN_STOPPED_REMARK").MustString("感谢您的耐心等待。") CloudbrainComingStopTemplateId = sec.Key("CLOUDBRAIN_COMING_STOP_TEMPLATE_ID").MustString("") - CloudbrainComingStopTitle = sec.Key("CLOUDBRAIN_COMING_STOP_TITLE").MustString("余额不足任务即将停止") - CloudbrainComingStopRemark = sec.Key("CLOUDBRAIN_COMING_STOP_REMARK").MustString("为了不影响您使用,请尽快获取算力积分") + CloudbrainComingStopTitle = sec.Key("CLOUDBRAIN_COMING_STOP_TITLE").MustString("因算力积分余额不足,您正在运行的任务即将停止。") + CloudbrainComingStopChargeLink = sec.Key("CLOUDBRAIN_COMING_STOP_CHARGE_LINK").MustString("请参考“个人中心 > 算力积分”页面的“积分获取说明”获取积分。") + CloudbrainComingStopRemark = sec.Key("CLOUDBRAIN_COMING_STOP_REMARK").MustString("为了不影响您使用,请您尽快获取算力积分。") CloudbrainComingStopSendFlag = sec.Key("CLOUDBRAIN_COMING_STOP_SEND_FLAG").MustBool(true) sec = Cfg.Section("repo-square") diff --git a/services/reward/wechat.go b/services/reward/wechat.go index 99563f8320..b94f110833 100644 --- a/services/reward/wechat.go +++ b/services/reward/wechat.go @@ -40,7 +40,7 @@ func TryToNotifyInsufficientBalance(cloudbrain *models.Cloudbrain, unitPrice int return } log.Info("start to notify CloudbrainTaskComingToFinished.id=%d", cloudbrain.ID) - notification.NotifyCloudbrainTaskComingToFinished(cloudbrain, nextExecuteTime) + notification.NotifyCloudbrainTaskComingToFinished(cloudbrain, nextExecuteTime, account) } func isMsgNotSendBefore(account *models.PointAccount, msgType string, taskId int64) bool {