From 574fa1b4aafc23950ce98b418eb326dd4673f7b1 Mon Sep 17 00:00:00 2001 From: "s.esmaeili" Date: Sun, 11 Oct 2026 14:31:32 +0330 Subject: [PATCH] feat: catalog read cache (api + user apps) and clearer Zarrin accounting errors Co-authored-by: Cursor --- .../src/views/manage/accounting.vue | 91 ++++++++++-- apps/api/src/app.module.ts | 2 + .../accounting-config.service.ts | 8 +- .../accounting-hooks.service.ts | 30 ++-- .../providers/zarrin.provider.spec.ts | 88 ++++++++++-- .../providers/zarrin.provider.ts | 130 +++++++++++++----- .../modules/catalog/catalog-cache.module.ts | 14 ++ .../catalog/catalog-cache.service.spec.ts | 97 +++++++++++++ .../modules/catalog/catalog-cache.service.ts | 83 +++++++++++ .../src/modules/catalog/catalog.service.ts | 12 +- apps/user-app-v2/src/api/cachedReads.ts | 18 +++ .../src/composables/useOrderItemProduct.ts | 35 +---- .../src/composables/useProductDetail.ts | 21 +-- .../src/composables/useProducts.ts | 31 +++-- apps/user-app-v2/src/layout/MasterLayout.vue | 17 ++- apps/user-app-v2/src/router/index.ts | 7 +- apps/user-app-v2/src/stores/cartStore.ts | 7 +- apps/user-app-v2/src/stores/catalogStore.ts | 65 +++++++++ apps/user-app-v2/src/stores/configStore.ts | 21 +-- apps/user-app-v2/src/stores/queryCache.ts | 100 ++++++++++++++ apps/user-app-v2/src/views/CartView.vue | 7 +- apps/user-app-v2/src/views/HomeView.vue | 58 ++++---- apps/user-app-v2/src/views/NewestView.vue | 6 +- .../src/views/search/CollectionView.vue | 11 +- .../src/views/search/SearchView.vue | 18 ++- .../src/views/user/CompleteProfileView.vue | 2 + .../src/views/user/DashboardView.vue | 49 ++++--- .../src/views/user/FavoritesView.vue | 11 +- .../user-app-v2/src/views/user/OrdersView.vue | 24 ++-- .../src/views/user/ProfileView.vue | 20 +-- .../src/views/user/TransactionsView.vue | 11 +- apps/user-app/src/api/cachedReads.ts | 18 +++ .../src/composables/useOrderItemProduct.ts | 35 +---- .../src/composables/useProductDetail.ts | 21 +-- apps/user-app/src/composables/useProducts.ts | 31 +++-- apps/user-app/src/composables/useReveal.ts | 10 +- apps/user-app/src/layout/MasterLayout.vue | 17 ++- apps/user-app/src/router/index.ts | 7 +- apps/user-app/src/stores/cartStore.ts | 7 +- apps/user-app/src/stores/catalogStore.ts | 65 +++++++++ apps/user-app/src/stores/configStore.ts | 21 +-- apps/user-app/src/stores/queryCache.ts | 100 ++++++++++++++ apps/user-app/src/views/CartView.vue | 7 +- apps/user-app/src/views/HomeView.vue | 50 ++++--- apps/user-app/src/views/NewestView.vue | 6 +- .../src/views/search/CollectionView.vue | 11 +- apps/user-app/src/views/search/SearchView.vue | 25 ++-- .../src/views/user/CompleteProfileView.vue | 2 + .../user-app/src/views/user/DashboardView.vue | 49 ++++--- .../user-app/src/views/user/FavoritesView.vue | 11 +- apps/user-app/src/views/user/OrdersView.vue | 24 ++-- apps/user-app/src/views/user/ProfileView.vue | 20 +-- .../src/views/user/TransactionsView.vue | 11 +- 53 files changed, 1241 insertions(+), 401 deletions(-) create mode 100644 apps/api/src/modules/catalog/catalog-cache.module.ts create mode 100644 apps/api/src/modules/catalog/catalog-cache.service.spec.ts create mode 100644 apps/api/src/modules/catalog/catalog-cache.service.ts create mode 100644 apps/user-app-v2/src/api/cachedReads.ts create mode 100644 apps/user-app-v2/src/stores/catalogStore.ts create mode 100644 apps/user-app-v2/src/stores/queryCache.ts create mode 100644 apps/user-app/src/api/cachedReads.ts create mode 100644 apps/user-app/src/stores/catalogStore.ts create mode 100644 apps/user-app/src/stores/queryCache.ts diff --git a/apps/admin-panel/src/views/manage/accounting.vue b/apps/admin-panel/src/views/manage/accounting.vue index 536a5e5..f524c13 100644 --- a/apps/admin-panel/src/views/manage/accounting.vue +++ b/apps/admin-panel/src/views/manage/accounting.vue @@ -119,42 +119,110 @@
اسناد سفارش همیشه «موقت» ثبت می‌شوند و تا حسابدار نهایی نکند روی مانده‌ی حسابداری اثر ندارند. - سقف اعتبار سفارش همچنان با دفتر داخلی اپ چک می‌شود. + سقف اعتبار سفارش همچنان با دفتر داخلی منتزر چک می‌شود.
ذخیره + + +

+ در این صفحه «منتزر» یعنی همین سامانه: اپ مشتری (جایی که مشتری ثبت‌نام، احراز هویت و سفارش می‌کند و مانده‌اش را می‌بیند) و + پنل مدیریت (همین پنل، جایی که محصول و دسته‌بندی تعریف می‌شود). «حسابداری» یعنی نرم‌افزار حسابداری مغازه (ته‌حساب یا زرین). +

+

+ منتزر و حسابداری هر کدام گروه‌بندی خودشان را دارند. این تب می‌گوید هر چیز در منتزر با کدام گروه در حسابداری متناظر است؛ + خودِ مشتری‌ها و محصول‌ها اینجا وصل نمی‌شوند (آن‌ها در تب «لینک‌ها» دیده می‌شوند). +

+
    +
  1. تنظیمات تب «اتصال» را ذخیره کنید، بعد «دریافت گروه‌ها از حسابداری» را بزنید تا فهرست‌ها از حسابداری پر شوند.
  2. +
  3. + گروه‌های حسابی که مشتری منتزر حساب می‌شوند: در حسابداری صندوق، کارمند و سرمایه‌گذار هم «حساب» هستند. فقط گروه‌هایی را انتخاب کنید که + واقعاً مشتری‌اند؛ سینک مشتری فقط حساب‌های این گروه‌ها را با شماره موبایل به کاربران اپ مشتری وصل می‌کند. اگر خالی بماند سینک مشتری اجرا نمی‌شود. +
  4. +
  5. + گروه مشتری جدید: وقتی کاربری در اپ مشتری احراز هویت شود و در حسابداری حساب نداشته باشد، حسابش در این گروه ساخته می‌شود. + اگر تعیین نشود، ساخت حساب در «لاگ ارسال» با وضعیت «نیاز به بررسی» می‌ماند. +
  6. +
  7. + عیار پایه: عیار وزن‌هایی که در منتزر ثبت می‌شود (وزن محصول‌ها و سفارش‌ها؛ معمولاً ۷۵۰ = ۱۸ عیار). در سند سفارش، وزن با همین عیار به + حسابداری می‌رود؛ در ته‌حساب اجرت هم روی آن اعمال می‌شود (مثلاً ۷۵۰ با اجرت ۱۰٪ می‌شود ۸۲۵). +
  8. +
  9. + کارساخته (فقط زرین): وقتی در پنل مدیریت منتزر محصول جدیدی تعریف شود، برایش یک «کارساخته» در زرین ساخته می‌شود. «نوع» تعیین می‌کند + گرمی است یا تعدادی، و «گروه ساخته» جای آن در زرین است. در جدول پایین برای هر دسته‌بندی محصولِ منتزر می‌توانید گروه جدا بدهید؛ دسته‌ای که + «پیش‌فرض» بماند در «گروه ساخته‌ی پیش‌فرض» می‌رود. اگر نوع یا گروه خالی باشد، ساخت کارساخته در «لاگ ارسال» منتظر بررسی می‌ماند. +
  10. +
+

+ تغییر این تنظیمات فقط روی موارد بعدی اثر دارد؛ حساب‌ها و کارساخته‌هایی که قبلاً ساخته شده‌اند جابه‌جا نمی‌شوند. در آخر «ذخیره» را بزنید. +

+
+
دریافت گروه‌ها از حسابداری {{ e }} + حساب مشتری‌ها + + +
- - + + - + - +