#P1499
POST /check/operation/update
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/check/operation/update | V2CreditDebitController@operationUpdateCheck | authWithJwt | بهروزرسانی اطلاعات عملیات چک (operation record) شامل نوع، تاریخ و توضیحات، و بروز رسانی کش مالی. |
منطق عملکرد تابع
تابع operationUpdateCheck برای تغییر جزئیات یک عملیات ثبتشده روی چک استفاده میشود، مانند اصلاح نوع عملیات (type)، تاریخ اجرا، توضیحات یا وضعیت آن.
ابتدا رکورد عملیات از جدول check_operations واکشی و اعتبارسنجی میشود. سپس تغییرات ذخیره شده و هرگونه وابستگی مبلغ یا وضعیت چک هماهنگ میگردد. پس از آن کش Redis مرتبط با گزارش چک و مالی شعبه ریفرش میشود.
ورودیها
| نام پارامتر | نوع | منبع | الزامی | توضیح |
| operation_id | integer | Body | بله | شناسه عملیات چک که باید بروزرسانی شود. |
| type | string | Body | خیر | نوع جدید عملیات (مانند assignment، cash، clearing). |
| date | string (YYYY-MM-DD) | Body | خیر | تاریخ جدید عملیات. |
| description | string | Body | خیر | توضیحات عملیات. |
| branch | integer | JWT/Header | بله | شناسه شعبه مالی مرتبط. |
| operator | object | JWT | بله | اطلاعات کاربری اجراکننده تغییر. |
خروجی (Response)
{
"status": true,
"time": 1732287600,
"result": {
"operation_id": 305,
"updated_fields": ["type", "description"],
"cache": "financial:branch:5:refreshed",
"message": "جزئیات عملیات چک با موفقیت بروزرسانی شد"
}
}
نکات امنیتی
- مجوز نقش:
financial.check.operation.updateضروری است. - رکورد عملیات باید به شعبه کاربر تعلق داشته باشد.
- تمام تغییرات در جدول ممیزی
audit_logsذخیره میشود.
نکات عملکردی
- عملیات بروزرسانی در تراکنش پایگاه داده انجام میشود.
- بازسازی کش محدود به این چک و شعبه انجام میگیرد.
- TTL کشهای جدید: 300 ثانیه.
وابستگیها
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Redis;
- use Carbon\Carbon;
- use App\Models\CheckOperation;
- use App\Helpers\Functions;
کدهای خطا
| کد | شرح خطا | منبع |
| 400 | ورودیها ناقص یا نامعتبر. | Validator |
| 403 | دسترسی غیرمجاز برای بروزرسانی عملیات چک. | authWithJwt |
| 404 | شناسه عملیات یافت نشد. | DB |
| 500 | خطا در بهروزرسانی یا بازسازی کش. | Exception Handler |
پیشنهادهای امنیتی
- اعمال تأیید دومرحلهای برای تغییرات حساس.
- ثبت IP و User-Agent اپراتور در لاگ ممیزی.
- اعمال محدودیت تعداد تغییر در بازه زمانی مشخص.
پیشنهادهای بهبود
- افزودن پشتیبانی از نسخهبندی تغییرات عملیات چک.
- امکان بروزرسانی گروهی عملیاتهای مشابه.
- ارسال اعلان خودکار به ذینفعان در تغییر وضعیت عملیات.
ممیزی و لاگها
- نوع لاگ:
OperationUpdateCheck. - فیلدها:
operation_id, branch, operator_id, updated_fields, timestamp. - مدت نگهداری: ۹۰ روز.
جمعبندی
تابع operationUpdateCheck ابزار اصلی برای اصلاح دادههای عملیات ثبتشده روی چک است و با اعتبارسنجی، حفظ وابستگیها و بازسازی کشها دادهها را پایدار و بهروز نگه میدارد.