fonchain-fiee/pkg/service/artistInfo/asPush/unipush2V0ParamsBuilder.go

69 lines
2.0 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
// Package asPush -----------------------------
// @file : unipush2V0ParamsBuilder.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2024/12/24 09:27
// -------------------------------------------
package asPush
import (
"encoding/json"
"fmt"
)
func NewUnipush2V0ParamsBuilder() *Unipush2V0ParamsBuilder {
builder := &Unipush2V0ParamsBuilder{}
builder.InitParams()
return builder
}
type Unipush2V0ParamsBuilder struct {
Params map[string]any
}
func (u *Unipush2V0ParamsBuilder) InitParams() {
u.Params = map[string]any{
"push_clientid": nil, //手机端app获取到的cid可以[]string或者string类型。如果是nil会向所有客户端进行app推送
"title": "", //标题
"content": "", //消息内容
"force_notification": true, //用于显示横幅默认为true
"payload": map[string]any{}, //这个是自定义参数
"options": map[string]any{}, //这个是手机厂商的参数
}
}
func (u *Unipush2V0ParamsBuilder) ClientId(value ...string) {
fmt.Println("inputClientId:", value)
switch len(value) {
case 0:
return
case 1:
u.Params["push_clientid"] = value[0]
default:
u.Params["push_clientid"] = value
}
}
func (u *Unipush2V0ParamsBuilder) Title(value string) {
u.Params["title"] = value
}
func (u *Unipush2V0ParamsBuilder) Content(value string) {
u.Params["content"] = value
}
func (u *Unipush2V0ParamsBuilder) forceNotification(value bool) {
u.Params["force_notification"] = value
}
// 自定义参数 ViewPathOfPayload
func (u *Unipush2V0ParamsBuilder) ViewPathOfPayload(value string) {
u.Params["payload"].(map[string]any)["viewPath"] = value
}
func (u *Unipush2V0ParamsBuilder) OptionsOfParams(options ...IUnipushOptionsBuilder) {
for _, option := range options {
u.Params = option.BuildOptionParams(u.Params)
}
}
func (u *Unipush2V0ParamsBuilder) JsonData() []byte {
data, _ := json.Marshal(u.Params)
return data
}