支持客服主动发起申诉

This commit is contained in:
yml2213
2026-07-26 09:54:27 +08:00
parent 4bc25b87d8
commit 9ccc16e068
20 changed files with 522 additions and 25 deletions
+2 -2
View File
@@ -14,7 +14,7 @@ import (
func (r *Repository) CancelByOrder(ctx context.Context, userID uint64, orderID uint64) (*DisputeDTO, error) {
var row model.Dispute
if err := r.db.WithContext(ctx).
Where("order_id = ? AND initiator_id = ? AND status IN ?", orderID, userID, []string{"open", "processing"}).
Where("order_id = ? AND initiator_type = ? AND initiator_id = ? AND status IN ?", orderID, disputeInitiatorUser, userID, []string{"open", "processing"}).
Order("id DESC").
First(&row).Error; err != nil {
return nil, err
@@ -28,7 +28,7 @@ func (r *Repository) Cancel(ctx context.Context, userID uint64, id uint64) (*Dis
if err := tx.Clauses(clause.Locking{Strength: "UPDATE"}).First(&row, id).Error; err != nil {
return err
}
if row.InitiatorID != userID {
if effectiveInitiatorType(row) != disputeInitiatorUser || row.InitiatorID != userID {
return ErrPermissionDenied
}
if row.Status != "open" && row.Status != "processing" {