161 lines
5.9 KiB
Go
161 lines
5.9 KiB
Go
|
// 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
|
|||
|
}
|