fonchain-fiee/pkg/service/artistInfo/asUser/push.go

120 lines
4.1 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
// Package asAccount -----------------------------
// @file : push.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2023/8/11 11:21
// -------------------------------------------
package asUser
import (
"context"
"errors"
"fmt"
"github.com/fonchain_enterprise/fonchain-main/api/artistInfoUser"
"github.com/fonchain_enterprise/fonchain-main/pkg/common/push"
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
)
var ArtistInfoPushNotice = new(pushTemplate)
// 此功能已弃用已兼容到pkg/service/artistInfo/asPush中
type pushTemplate struct {
}
// 实名信息申请成功
func (p pushTemplate) RealNameApplySuccess(userId int64) error {
var Title = "实名信息提交成功!"
var Alert = "请耐心等待审批结果"
return p.CommonPush(userId, Title, Alert)
}
// 实名信息审批结果通知
func (p pushTemplate) RealNameAuditResultNotice(userId int64, auditResult string) error {
var Title = "实名信息审批结果通知"
var Alert = "您的实名信息审批[" + auditResult + "],请进入画家宝查看详情。"
return p.CommonPush(userId, Title, Alert)
}
// 画作补充信息发起通知
func (p pushTemplate) ArtworkSupplementNotice(userId int64) error {
var Title = "您有待补充的画作数据"
var Alert = "您的多个待补充的画作数据,请及时进入画家宝查看。"
return p.CommonPush(userId, Title, Alert)
}
// 画作基本信息/补充信息审批通知
func (p pushTemplate) ArtworkAuditResultNotice(userId int64, artworkName, auditType string, auditResult string, hasMany ...bool) error {
var title = "画作审批结果通知"
var alert = fmt.Sprintf("您的画作[%s]-[%s]审批%s,请进入画家宝查看详情。", artworkName, auditType, auditResult) //您的画作[艾坤]-[基本信息]审批通过,请进入画家宝查看详情。
if hasMany != nil {
alert = "您的多幅画作审批有新进展,请进入画家宝查看详情。"
}
return p.CommonPush(userId, title, alert)
}
// 画展补充信息发起通知
func (p pushTemplate) ArtistArtshowSupplementBeginNotice(userId int64) error {
return p.CommonPush(userId, "您有待补充的画展数据", "您有多个待补充的画展数据,请及时查看。")
}
type AuditType int
const (
AuditType_Video = iota + 1
AuditType_ArtistInex
AuditType_ArtistSupplement
AuditType_BrokerSupplement
)
// 画展审批通知
func (p pushTemplate) ArtistArtshowSupplementAuditNotice(userId int64, auditType AuditType) error {
var auditTypeStr string
switch auditType {
case AuditType_Video:
auditTypeStr = "画展视频"
case AuditType_ArtistInex:
auditTypeStr = "画家指数"
case AuditType_ArtistSupplement:
auditTypeStr = "画家信息补充"
case AuditType_BrokerSupplement:
auditTypeStr = "经纪人补充"
}
return p.CommonPush(userId, "画展审批进度更新通知", fmt.Sprintf("您的%s审批进度请及时进入画家宝查看。", auditTypeStr))
}
// 画作数字化通知
// digitState 1=已分配、2=已完成
func (p pushTemplate) ArtworkDigitNotice(userId int64, artworkName string, digitState int) error {
var alert string
if digitState == 1 {
alert = fmt.Sprintf("您的画作[%s]已进入数字化流程,进入画家宝可查看画展进度。", artworkName)
} else {
alert = fmt.Sprintf("您的画作[%s]已完成数字化,进入画家宝可查看画展进度。", artworkName)
}
return p.CommonPush(userId, "画展流程进度更新通知", alert)
}
// 通用的消息推送
func (p pushTemplate) CommonPush(userId int64, title, alert string, telnumInput ...string) error {
var telNum string
if len(telnumInput) == 0 {
user, err := service.GrpcArtistInfoUserImpl.GetUserDetail(context.Background(), &artistInfoUser.GetUserByIdRequest{Id: userId})
if err != nil {
return errors.New("发送通知失败:" + err.Error())
}
telNum = user.TelNum
} else {
telNum = telnumInput[0]
}
pusher := push.DefaultArtistinfoPusher()
var alias []string
alias = append(alias, fmt.Sprintf("user_%d_%s", userId, telNum))
pusher.Audience.SetAlias(alias)
pusher.Notice.Title = title
pusher.Notice.Alert = alert
err := pusher.PushNotify()
return err
}