70 lines
2.8 KiB
Go
70 lines
2.8 KiB
Go
package sysin
|
|
|
|
import (
|
|
"context"
|
|
"hotgo/internal/consts"
|
|
"hotgo/internal/library/dict"
|
|
"hotgo/internal/model/input/form"
|
|
"strings"
|
|
|
|
"github.com/gogf/gf/v2/encoding/gjson"
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
)
|
|
|
|
type ImNotificationTemplateListInp struct {
|
|
form.PageReq
|
|
TenantId int64 `json:"tenantId" dc:"租户ID"`
|
|
Scene string `json:"scene" dc:"通知场景"`
|
|
Status *int `json:"status" dc:"状态"`
|
|
}
|
|
|
|
func (in *ImNotificationTemplateListInp) Filter(ctx context.Context) (err error) { return }
|
|
|
|
type ImNotificationTemplateListModel struct {
|
|
TenantId int64 `json:"tenantId" dc:"租户ID"`
|
|
TenantName string `json:"tenantName" dc:"租户名称"`
|
|
Id int64 `json:"id" dc:"ID"`
|
|
Scene string `json:"scene" dc:"通知场景"`
|
|
Name string `json:"name" dc:"场景名称"`
|
|
InAppEnabled int `json:"inAppEnabled" dc:"站内通知"`
|
|
PushEnabled int `json:"pushEnabled" dc:"Push通知"`
|
|
SmsEnabled int `json:"smsEnabled" dc:"短信通知"`
|
|
Status int `json:"status" dc:"状态"`
|
|
TitleTemplate string `json:"titleTemplate" dc:"标题模板"`
|
|
ContentTemplate string `json:"contentTemplate" dc:"内容模板"`
|
|
PayloadJson string `json:"payloadJson" dc:"扩展JSON"`
|
|
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
|
|
}
|
|
|
|
type ImNotificationTemplateUpdateInp struct {
|
|
TenantId int64 `json:"tenantId" dc:"租户ID"`
|
|
Scene string `json:"scene" v:"required#通知场景不能为空" dc:"通知场景"`
|
|
InAppEnabled int `json:"inAppEnabled" dc:"站内通知"`
|
|
PushEnabled int `json:"pushEnabled" dc:"Push通知"`
|
|
SmsEnabled int `json:"smsEnabled" dc:"短信通知"`
|
|
Status int `json:"status" dc:"状态"`
|
|
TitleTemplate string `json:"titleTemplate" dc:"标题模板"`
|
|
ContentTemplate string `json:"contentTemplate" dc:"内容模板"`
|
|
PayloadJson *gjson.Json `json:"payloadJson" dc:"扩展JSON"`
|
|
}
|
|
|
|
func (in *ImNotificationTemplateUpdateInp) Filter(ctx context.Context) (err error) {
|
|
in.Scene = strings.TrimSpace(in.Scene)
|
|
in.TitleTemplate = strings.TrimSpace(in.TitleTemplate)
|
|
in.ContentTemplate = strings.TrimSpace(in.ContentTemplate)
|
|
if !dict.HasOptionKey(consts.ImNotificationSceneOptions, in.Scene) {
|
|
return gerror.New("通知场景不合法")
|
|
}
|
|
if !dict.HasOptionKey(consts.ImNotificationTemplateStatusOptions, in.Status) {
|
|
return gerror.New("通知模板状态不合法")
|
|
}
|
|
if in.TitleTemplate == "" {
|
|
return gerror.New("标题模板不能为空")
|
|
}
|
|
if in.ContentTemplate == "" {
|
|
return gerror.New("内容模板不能为空")
|
|
}
|
|
return nil
|
|
}
|