fix: 修复更名退款逻辑、审核列表显示及更名消耗确认提示

- 首次更名审核被拒不再退款,首次免费未扣费不产生退款
- 审核列表提交者列改用 UID,当前用户名列显示当前用户名
- 更名消耗提示改为确认弹窗,首次/非首次动态显示不同文案
This commit is contained in:
2026-06-02 22:09:41 +08:00
parent dd6efd0c50
commit 7d944cfa35
6 changed files with 59 additions and 24 deletions

View File

@ -45,18 +45,28 @@ func (s *AuditService) review(reviewerID uint, submissionID uint, approved bool,
} else {
submission.Status = model.AuditStatusRejected
submission.RejectReason = &reason
// 通知用户审核被拒(改名审核追加域能返还提示)
// 改名审核被拒 → 仅非首次改名(已扣费)才退还域能
// 首次改名免费,被拒不退还
shouldRefund := false
if submission.AuditType == model.AuditTypeUsername && s.energyRefundSvc != nil {
if s.levelSvc != nil {
hasCompleted, _ := s.levelSvc.HasCompletedTask(submission.UserID, "username")
shouldRefund = hasCompleted
}
if shouldRefund {
_ = s.energyRefundSvc.RefundOnRenameReject(submission.UserID)
}
}
// 通知用户审核被拒(仅实际退款时追加域能返还提示)
if s.notifier != nil {
reasonMsg := reason
if submission.AuditType == model.AuditTypeUsername {
if shouldRefund {
reasonMsg += "。扣除的域能已被返还"
}
s.notifier.NotifyAuditRejected(submission.UserID, submission.AuditType, reasonMsg, submission.ID)
}
// 改名审核被拒 → 返还域能
if submission.AuditType == model.AuditTypeUsername && s.energyRefundSvc != nil {
_ = s.energyRefundSvc.RefundOnRenameReject(submission.UserID)
}
}
return s.auditRepo.Update(submission)
}

View File

@ -40,6 +40,7 @@ type auditNotifier interface {
// auditTaskCompleter 审核通过时触发首次任务奖励的接口
type auditTaskCompleter interface {
CompleteTask(userID uint, taskType string) (newExp int, levelUp bool, err error)
HasCompletedTask(userID uint, taskType string) (bool, error)
}
// energyRenameRefunder 改名审核被拒时返还域能的接口ISP