// 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 }