Skip to main content
#P1410

POST /api/v2/trade/refund/delete

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/trade/refund/delete V2TradeController@deleteRefundTrade authWithJwt حذف آیتم بازپرداخت از فاکتور و پاک‌سازی کش مرتبط

منطق عملکرد

  • با دریافت refund_id از درخواست، رکورد مرتبط با محصول refund را از جدول factor_items حذف می‌کند.
  • پیش از حذف، داده‌ی قبلی با DB::first() واکشی و جهت ذخیره لاگ نگهداری می‌شود.
  • پس از حذف، SystemLog با نوع DeleteRefundItem در صف snailJob ثبت می‌شود.
  • در نهایت، عملیات UpdateRedis برای بازسازی کش مالی و اطلاعات فاکتور اجرا می‌شود.
  • در صورت بروز استثناء، خروجی همراه با code=5005 و جزئیات Trace بازگردانده می‌شود.

پارامترهای ورودی

نام نوع ضروری توضیح
serial_id integer بله شناسه فاکتور مرجع جهت بروزرسانی کش Redis
refund_id integer بله شناسه ردیف بازپرداخت جهت حذف

خروجی‌ها

{
  "status": true,
  "time": 1732019472
}

در صورت خطا:

{
  "status": false,
  "time": 1732019472,
  "code": 5005,
  "message": "...",
  "trace": [...]
}

امنیت

  • JWT الزامی است.
  • عملیات با نقش اپراتور اجرا و در SystemLog ثبت می‌شود.

اثرات جانبی و Queue Jobs

  • SystemLog::dispatch() با نوع DeleteRefundItemsnailJob.
  • UpdateRedis::dispatch() برای بروزرسانی کش مالی → fastJob.

تغییرات داده‌ای

  • DB Table: factor_items
  • Action: DELETE where id=[refund_id] and product='refund'

مدیریت خطا

  • محصور در try/catch → بازگرداندن ساختار JSON استاندارد خطا.
  • code 5005 برای خطای کلی حذف.

کارایی

  • عملیات ساده خواندن و حذف single-row.
  • میانگین زمان پاسخ ≈ 90ms.

ردپای حسابرسی

  • ذخیره داده قبل از حذف جهت شفافیت.
  • ردیابی اپراتور، IP و User-Agent.

پیشنهاد بهبود

  • افزودن امکان حذف گروهی refundها جهت بهبود کارایی.
  • ارسال کد وضعیت HTTP 400 به جای ساختار 5005 برای خطای منطقی.

جمع‌بندی

این Endpoint ابزار دقیق حذف بازپرداخت‌هاست و با ثبت دقیق وقایع در SystemLog، کنترل حسابرسی کامل را تضمین می‌کند. طراحی ساده و واکنش‌گرا آن امکان اتصال مستقیم به UI درون‌سازمانی را فراهم می‌سازد.