Skip to main content
#P1502

POST /announcement/list

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/announcement/list V2CreditDebitController@listAnnouncement authWithJwt دریافت لیست اعلان‌های مالی مرتبط با پرداخت‌ها، دریافت‌ها و سایر رویدادهای حسابداری سیستم.

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

تابع listAnnouncement داده‌های مربوط به اعلان‌های مالی را از جدول announcements بازیابی می‌کند. این اعلان‌ها معمولاً شامل ارتباط بین اسناد پرداخت، دریافت، چک یا حواله‌های حسابی هستند. داده‌ها بر اساس فیلترهای DataTables (draw, start, length) و فیلترهای پیشرفته مانند نوع اعلان، وضعیت و تاریخ، استخراج می‌شوند. سپس خروجی نهایی شامل متای صفحه‌بندی، زمان سرور و لیست اعلان‌های ساختاریافته بازگردانده می‌شود.

ورودی‌ها

نام پارامتر نوع منبع الزامی توضیح
draw integer Body بله شناسه شماره درخواست DataTables برای هم‌زمان‌سازی.
start integer Body بله ایندکس شروع داده‌ها.
length integer Body بله تعداد رکورد در هر صفحه.
advanced object Body خیر فیلترهای پیشرفته مثل نوع اعلان، وضعیت، تاریخ از و تا.
branch integer JWT/Header بله شناسه شعبه مرتبط با اعلان‌ها.

خروجی (Response)

{
  "status": true,
  "meta": {
    "draw": 5,
    "recordsTotal": 258,
    "recordsFiltered": 258,
    "timestamp": 1732287600
  },
  "data": [
    {
      "id": 315,
      "type": "pay",
      "reference_id": 1621,
      "branch": 4,
      "title": "ثبت پرداخت نقدی",
      "status": "done",
      "created_at": "2025-10-11 13:45:00"
    }
  ]
}

نکات امنیتی

  • نیاز به احراز هویت JWT.
  • کاربر فقط اجازه مشاهده اعلان‌های مربوط به شعبه خود را دارد.
  • نقش لازم: financial.announcement.view.

نکات عملکردی

  • کش Redis بر اساس کلید announcement:list:{branch} با TTL=600 s برای داده‌های بدون فیلتر.
  • ایندکس ترکیبی روی ستون‌های (branch,type,status) برای افزایش سرعت واکشی.

وابستگی‌ها

  • use Illuminate\Support\Facades\DB;
  • use Illuminate\Support\Facades\Redis;
  • use Morilog\Jalali\Jalalian;
  • use App\Helpers\Functions;

کدهای خطا

کد شرح خطا منبع
400 ورودی ناقص یا نامعتبر DataTables. Validator
403 عدم دسترسی به اعلان‌های شعبه دیگر. Auth Middleware
500 خطای داخلی دیتابیس یا کش Redis. Exception Handler

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

  • اعمال RBAC دقیق برای کنترل مشاهده و حذف اعلان‌ها.
  • رمزنگاری آیدی مرجع پیش از ارسال به کلاینت.

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

  • افزودن قابلیت جستجوی ترکیبی چند ستونی.
  • امکان گروه‌بندی بر اساس نوع اعلان (payment، receive، system).
  • پشتیبانی از مرتب‌سازی پویا توسط فرانت‌اند.

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

  • ثبت هر درخواست مشاهده لیست در audit_logs با نوع ListAnnouncement.
  • شامل: شناسه کاربر، شعبه، زمان، فیلترهای اعمال شده.

جمع‌بندی

مسیر listAnnouncement امکان مدیریت و مرور اعلان‌های مالی را به‌صورت امن، صفحه‌بندی‌شده و کش‌شده فراهم می‌کند و پایه گزارش‌گیری داخلی سیستم‌های مالی است.