Skip to main content
#P1499

POST /check/operation/update

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/check/operation/update V2CreditDebitController@updateCheckV2CreditDebitController@operationUpdateCheck authWithJwt ویرایشبه‌روزرسانی اطلاعات عملیات چک (operation record) شامل نوع، تاریخ و بروزرسانی اطلاعات چک مالی، با اعتبارسنجی مقادیرتوضیحات، و بروزرسانیبروز رسانی کش مالی سیستم.مالی.

منطق عملکرد تابع

تابع updateCheckoperationUpdateCheck نخستبرای شناسهتغییر جزئیات یک عملیات ثبت‌شده روی چک رااستفاده می‌شود، مانند اصلاح نوع عملیات (type)، تاریخ اجرا، توضیحات یا وضعیت آن.

ابتدا رکورد عملیات از ورودی دریافت می‌کند، سپس داده‌های موردنظر برای بروزرسانی را اعتبارسنجی کرده و در جدول payscheck_operations ثبتواکشی و اعتبارسنجی می‌کند.شود. اینسپس داده‌هاتغییرات ممکنذخیره استشده شاملو اصلاحهرگونه مبلغ،وابستگی تاریخمبلغ سررسید، شماره پیگیری،یا وضعیت فعال/مسدودچک وهماهنگ توضیحاتمی‌گردد. باشند.

پس

دراز پایان، برای حفظ سازگاری در داده‌های گزارش مالی،آن کش Redis مربوطمرتبط بهبا کلیدهایگزارش check:{id}:informationچک و financial:branch:{branch}مالی بازسازیشعبه ریفرش می‌شود.

ورودی‌ها

اجراکننده
نام پارامتر نوع منبع الزامی توضیح
idoperation_id integer Body بله شناسه عملیات چک موردکه نظرباید برایبروزرسانی بروزرسانی.شود.
datatype objectstring Body بلهخیر داده‌هاینوع بروزرسانیجدید شاملعملیات (مانند amountassignment، statuscash، deadlineclearing،).
datestring (YYYY-MM-DD)Bodyخیرتاریخ جدید عملیات.
description.stringBodyخیرتوضیحات عملیات.
branch integer JWT/Header بله شناسه شعبه مالی مرتبط.
operator object JWT بله اپراتوراطلاعات اجراکننده‌یکاربری عملیات.
reasonstringBodyخیرتوضیح یا علت تغییر برای ثبت در لاگ ممیزی.تغییر.

خروجی (Response)

{
  "status": true,
  "time": 1732287600,
  "result": {
    "check_id"operation_id": 145,305,
    "changes"updated_fields": ["amount"type", "deadline", "status"description"],
    "cache": "financial:branch:5:refreshed",
    "message": "اطلاعاتجزئیات عملیات چک با موفقیت بروزرسانی شد"
  }
}

نکات امنیتی

  • احرازمجوز هویتنقش: JWTfinancial.check.operation.update الزامیضروری است.
  • مجوزرکورد نقش مالی financial.check.updateعملیات باید بررسیبه شود.شعبه کاربر تعلق داشته باشد.
  • ورودی‌هاتمام باتغییرات Validatorدر سمتجدول سرورممیزی تاییدaudit_logs ذخیره می‌شوند تا از تزریق داده و تغییر غیرمجاز جلوگیری گردد.شود.

نکات عملکردی

  • به‌روزرسانیعملیات چکبروزرسانی در تراکنش DB::transactionپایگاه داده انجام می‌شود تا Atomic باشد.شود.
  • بازسازی کش Redis محدود به داده‌هایاین تغییرچک یافتهو برایشعبه جلوگیریانجام از فشار غیرضروری است.می‌گیرد.
  • TTL کش‌های چکجدید: و300 شعبه به‌ترتیب 60 و 600 ثانیه تعیین شده‌اند.ثانیه.

وابستگی‌ها

  • use Illuminate\Support\Facades\DB;
  • use Illuminate\Support\Facades\Redis;
  • use Carbon\Carbon;
  • use App\Models\Pay;CheckOperation;
  • use App\Http\Controllers\TradeController;
  • use App\Http\Controllers\StaticController;Helpers\Functions;

کدهای خطا

کد شرح خطا منبع
400 داده‌های ورودیورودی‌ها ناقص یا نامعتبر. Validator
403 عدمدسترسی مجوزغیرمجاز برای انجامبروزرسانی تغییر.عملیات چک. authWithJwt
404 چکشناسه موردعملیات نظر پیدایافت نشد. DB
500 خطا در تراکنش پایگاه دادهبه‌روزرسانی یا بروزرسانیبازسازی کش. Exception Handler

پیشنهادهای امنیتی

  • اعمال تأیید دومرحله‌ای برای تغییرات حساس.
  • ثبت IP و User-Agent اپراتور در لاگ ممیزی.
  • اعمال محدودیت زمانیتعداد برای ویرایش چک پس از تسویه.
  • رمزنگاری شناسه چکتغییر در سمتبازه کلاینت.زمانی مشخص.

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

  • افزودن فیلد updated_by برای نمایش نام کاربر ویرایشگر در گزارش‌ها.
  • افزودن قابلیت ویرایش گروهی چک‌های انتخاب‌شده.
  • پشتیبانی از ثبت تاریخچهنسخه‌بندی تغییرات (versioning) برای هرعملیات چک.
  • امکان بروزرسانی گروهی عملیات‌های مشابه.
  • ارسال اعلان خودکار به ذینفعان در تغییر وضعیت عملیات.

ممیزی و لاگ‌ها

  • نوع لاگ: UpdateCheckOperationUpdateCheck.
  • فیلدهای ذخیره‌شده:فیلدها: check_id,operation_id, branch, operator_id, branch,updated_fields, changes, reasontimestamp.
  • سطحمدت لاگ: Audit.
  • نگهداری: ۹۰ روز۹۰ در جدول audit_logs.روز.

جمع‌بندی

تابع updateCheckoperationUpdateCheck به‌صورتابزار ایمناصلی وبرای اتمیک اطلاعات چک را در جدول مالی بروزرسانی کرده و کش‌های مرتبط را همزمان بازسازی می‌کند. پیاده‌سازی فعلی با تمرکز بر صحت تراکنش و یکپارچگیاصلاح داده‌های مالیعملیات طراحیثبت‌شده شده‌است.روی چک است و با اعتبارسنجی، حفظ وابستگی‌ها و بازسازی کش‌ها داده‌ها را پایدار و به‌روز نگه می‌دارد.