This commit is contained in:
@@ -82,7 +82,7 @@ func (p *ReminderPublisher) appendShopNotification(ctx context.Context, tx *gorm
|
||||
ResourceType: candidate.AssetType, ResourceID: assetID, BusinessKey: eventID,
|
||||
Payload: notificationapp.AdminDynamicPayload{
|
||||
TargetKind: constants.NotificationTargetKindShop, TargetID: shopID,
|
||||
NotificationType: constants.NotificationTypePackageExpiring, TemplateData: map[string]string{},
|
||||
NotificationType: constants.NotificationTypePackageExpiring, TemplateData: expiryTemplateData(candidate),
|
||||
RefType: constants.NotificationRefTypeExpiringAsset, RefID: shopIDText,
|
||||
ExpiresAt: candidate.EstimatedFinalExpiresAt,
|
||||
},
|
||||
@@ -160,7 +160,7 @@ func (p *ReminderPublisher) appendNotification(ctx context.Context, tx *gorm.DB,
|
||||
ResourceType: candidate.AssetType, ResourceID: assetID, BusinessKey: eventID,
|
||||
Payload: notificationapp.PersonalCustomerDirectPayload{
|
||||
RecipientID: customerID, NotificationType: constants.NotificationTypePackageExpiring,
|
||||
TemplateData: map[string]string{}, RefType: constants.NotificationRefTypeAsset,
|
||||
TemplateData: expiryTemplateData(candidate), RefType: constants.NotificationRefTypeAsset,
|
||||
RefID: assetID, RefKey: candidate.Identifier, ExpiresAt: candidate.EstimatedFinalExpiresAt,
|
||||
},
|
||||
})
|
||||
@@ -170,6 +170,28 @@ func (p *ReminderPublisher) appendNotification(ctx context.Context, tx *gorm.DB,
|
||||
return nil
|
||||
}
|
||||
|
||||
// expiryTemplateData 为后台和个人客户生成同口径的资产到期文案数据。
|
||||
func expiryTemplateData(candidate dto.ExpiringAssetItem) map[string]string {
|
||||
status := "即将到期"
|
||||
if candidate.DaysUntilFinalExpiry != nil {
|
||||
switch {
|
||||
case *candidate.DaysUntilFinalExpiry < 0:
|
||||
status = "已到期"
|
||||
case *candidate.DaysUntilFinalExpiry == 0:
|
||||
status = "今天到期"
|
||||
}
|
||||
}
|
||||
expiryDate := ""
|
||||
if candidate.EstimatedFinalExpiresAt != nil {
|
||||
expiryDate = candidate.EstimatedFinalExpiresAt.In(shanghaiLocation).Format("2006-01-02")
|
||||
}
|
||||
return map[string]string{
|
||||
"asset_identifier": candidate.Identifier,
|
||||
"expiry_status": status,
|
||||
"expiry_date": expiryDate,
|
||||
}
|
||||
}
|
||||
|
||||
func recipientKey(assetType string, assetID uint) string {
|
||||
return fmt.Sprintf("%s:%d", assetType, assetID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user