94 lines
3.7 KiB
Go
94 lines
3.7 KiB
Go
package service
|
||
|
||
import (
|
||
"fmt"
|
||
"strings"
|
||
|
||
"github.com/QuantumNous/new-api/common"
|
||
"github.com/QuantumNous/new-api/dto"
|
||
"github.com/QuantumNous/new-api/logger"
|
||
"github.com/QuantumNous/new-api/model"
|
||
)
|
||
|
||
func notifyDistributorUser(userId int, notifyType string, title string, content string) {
|
||
if userId <= 0 {
|
||
return
|
||
}
|
||
u, err := model.GetUserById(userId, false)
|
||
if err != nil || u == nil {
|
||
return
|
||
}
|
||
msg := &model.UserMessage{
|
||
ReceiverUserID: userId,
|
||
Type: notifyType,
|
||
Title: title,
|
||
Content: content,
|
||
BizType: "distributor",
|
||
}
|
||
if err := PublishUserMessage(msg); err != nil {
|
||
common.SysLog("distributor notify (站内): " + err.Error())
|
||
}
|
||
if err := NotifyUser(userId, u.Email, u.GetSetting(), dto.NewNotify(notifyType, title, content, nil)); err != nil {
|
||
common.SysLog(fmt.Sprintf("distributor notify (channel): user=%d %s", userId, err.Error()))
|
||
}
|
||
}
|
||
|
||
// NotifyDistributorApplicationApproved 资料审核通过,已成为代理。
|
||
func NotifyDistributorApplicationApproved(userId int) {
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorApplicationApproved, "代理认证已通过",
|
||
"您的代理资料审核已通过,已开通代理中心相关功能。您可在个人中心查看邀请与收益。")
|
||
}
|
||
|
||
// NotifyDistributorApplicationRejected 资料审核被驳回。
|
||
func NotifyDistributorApplicationRejected(userId int, reason string) {
|
||
content := "您的代理入驻申请未通过审核。"
|
||
if reason != "" {
|
||
content += "原因:" + reason
|
||
}
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorApplicationRejected, "代理认证未通过", content)
|
||
}
|
||
|
||
// NotifyDistributorRoleGranted 管理员将账号设为代理。
|
||
func NotifyDistributorRoleGranted(userId int) {
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorRoleGranted, "已设为代理",
|
||
"管理员已为您的账号开通代理资格,可使用代理中心邀请与收益功能。")
|
||
}
|
||
|
||
// NotifyDistributorRoleRevoked 管理员取消代理资格。
|
||
func NotifyDistributorRoleRevoked(userId int) {
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorRoleRevoked, "已取消代理资格",
|
||
"管理员已取消您的代理资格,代理中心相关功能将不可用。")
|
||
}
|
||
|
||
// withdrawalNotifyAmount 站内通知用金额文案(去掉「额度」后缀,并精简小数)
|
||
func withdrawalNotifyAmount(quotaAmount int) string {
|
||
return strings.TrimSuffix(logger.LogQuotaConcise(quotaAmount), " 额度")
|
||
}
|
||
|
||
// NotifyDistributorWithdrawalSubmitted 用户提交提现申请。
|
||
func NotifyDistributorWithdrawalSubmitted(userId int, quotaAmount int) {
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorWithdrawalSubmitted, "提现申请已提交",
|
||
fmt.Sprintf("您已经发起了一笔提现申请,金额为%s,请等待审核。", withdrawalNotifyAmount(quotaAmount)))
|
||
}
|
||
|
||
// NotifyDistributorWithdrawalApproved 提现审核通过。
|
||
func NotifyDistributorWithdrawalApproved(userId int) {
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorWithdrawalApproved, "提现审核已通过",
|
||
"您发起了一笔提现申请,已通过审核。")
|
||
}
|
||
|
||
// NotifyDistributorWithdrawalRejected 提现被驳回。
|
||
func NotifyDistributorWithdrawalRejected(userId int, reason string) {
|
||
content := "您发起了一笔提现申请,未通过审核。"
|
||
if reason != "" {
|
||
content += "原因:" + reason
|
||
}
|
||
notifyDistributorUser(userId, dto.NotifyTypeDistributorWithdrawalRejected, "提现审核未通过", content)
|
||
}
|
||
|
||
// NotifyUserDemotedFromAdmin 管理员将用户从管理员降为普通用户。
|
||
func NotifyUserDemotedFromAdmin(userId int) {
|
||
notifyDistributorUser(userId, dto.NotifyTypeUserDemotedFromAdmin, "账号身份已调整",
|
||
"您的账号已由管理员调整为普通用户。")
|
||
}
|