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

161 lines
5.9 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
// 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
}