#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() با نوع
DeleteRefundItem→snailJob. - 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 درونسازمانی را فراهم میسازد.