// Package asPush ----------------------------- // @file : jiguang.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2024/12/19 14:01 // ------------------------------------------- package asPush 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/config" "github.com/fonchain_enterprise/fonchain-main/pkg/service" ) var _ IArtistInfoNotifyPush = new(ArtistInfoJiGuangAppPush) // JiGuangAppPush 极光推送(画家宝3.0之前使用的推送功能) type ArtistInfoJiGuangAppPush struct { } func NewArtistInfoJiGuangAppPush() IArtistInfoNotifyPush { return &ArtistInfoJiGuangAppPush{} } func (p ArtistInfoJiGuangAppPush) ArtworkSystemAuthNotice(userId int64, artworkName string, authState int) error { return nil } func (p ArtistInfoJiGuangAppPush) ArtworkWaitToBeMailedNotice(userId int64) error { return nil } func (p ArtistInfoJiGuangAppPush) ArtworkWaitToBeReceivedNotice(userId int64) error { return nil } func (p ArtistInfoJiGuangAppPush) ContractOnWaitToBeSignedNotice(userId int64) error { return nil } func (p ArtistInfoJiGuangAppPush) AuthpaymentWaitToBePaidNotice(userId int64) error { return nil } func (p ArtistInfoJiGuangAppPush) InvitationLetterWaitToBeConfirmedNotice(userId int64) error { var thisUser, err = service.GrpcArtistInfoUserImpl.FindUsers(context.Background(), &artistInfoUser.FindUsersRequest{UserId: userId}) if err != nil { fmt.Printf("app通知发送失败。获取画家信息失败:%s\n", err.Error()) return err } appPusher := push.DefaultArtistinfoPusher() appPusher.Audience.SetAlias([]string{fmt.Sprintf("user_%d_%s", userId, thisUser.Data[0].TelNum)}) appPusher.Notice.Title = "恭喜您收到了一张画展邀请函!" appPusher.Notice.Alert = "请进入画家宝点击邀请函以查看详情。" appPusher.SetAndroidIntentPage("action=com.jiyi.jy_jpush_third.JYThirdActivity;component=uni.UNID335ADB/com.jiyi.jy_jpush_third.JYThirdActivity") if config.Env == "test" { //测试环境 appPusher.SetExtrasKeyVale("pageLink", "http://artisttest.szjixun.cn/pages/invite/index") } else { //生成环境 appPusher.SetExtrasKeyVale("pageLink", "/pages/invite/index") } //appPusher.SetIosPageLink("/pages/invite/index") err = appPusher.PushNotify() if err != nil { fmt.Println("app通知发送失败:" + err.Error()) } return nil } // 实名信息申请成功 func (p ArtistInfoJiGuangAppPush) RealNameApplySuccess(userId int64) error { var Title = "实名信息提交成功!" var Alert = "请耐心等待审批结果" return p.CommonPush(userId, Title, Alert) } // 实名信息审批结果通知 func (p ArtistInfoJiGuangAppPush) RealNameAuditResultNotice(userId int64, auditResult string) error { var Title = "实名信息审批结果通知" var Alert = "您的实名信息审批[" + auditResult + "],请进入画家宝查看详情。" return p.CommonPush(userId, Title, Alert) } // 画作补充信息发起通知 func (p ArtistInfoJiGuangAppPush) ArtworkSupplementNotice(userId int64) error { var Title = "您有待补充的画作数据" var Alert = "您的多个待补充的画作数据,请及时进入画家宝查看。" return p.CommonPush(userId, Title, Alert) } // 画作基本信息/补充信息审批通知 func (p ArtistInfoJiGuangAppPush) 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 ArtistInfoJiGuangAppPush) ArtistArtshowSupplementBeginNotice(userId int64) error { return p.CommonPush(userId, "您有待补充的画展数据", "您有多个待补充的画展数据,请及时查看。") } // 画展审批通知 func (p ArtistInfoJiGuangAppPush) 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 ArtistInfoJiGuangAppPush) ArtworkSystemDigitNotice(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 ArtistInfoJiGuangAppPush) 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 }