Implement Persian Date Conversion and Enhance User Network Information Service

- Added PersianDateTimeService for converting Gregorian dates to Persian format in the BackOffice frontend.
- Updated multiple frontend pages (Dashboard, UserPayouts, WorkerControl, UserNetworkInfo) to utilize the new Persian date service.
- Enhanced GetUserNetworkPositionDto with 28+ new fields for comprehensive user network data.
- Updated GetUserNetworkPositionQueryHandler to include new methods for calculating network statistics.
- Modified Protobuf messages to accommodate the new fields, increasing from 14 to 42.
- Refined week number calculation algorithm to ensure consistency across C# and SQL implementations.
- Created new CSV and Excel files for binary plan calculations.
- Ensured all changes are tested and validated for accuracy and performance.
This commit is contained in:
masoodafar-web
2025-12-20 06:15:59 +03:30
parent 13a3489765
commit 002e99f6bf
32 changed files with 10263 additions and 106 deletions
+87 -10
View File
@@ -1,8 +1,83 @@
# 📚 FourSat Project - فهرست جامع مستندات (نسخه تجمیع شده)
> **آخرین بروزرسانی**: ۱۴ آذر ۱۴۰۴
> **وضعیت**: 🔄 در حال تجمیع و بازسازی
> **تحلیلگر**: GitHub Copilot (Claude Sonnet 4.5)
> **آخرین بروزرسانی**: ۲۸ آذر ۱۴۰۴ (18 دسامبر 2025)
> **وضعیت**: ✅ بروزرسانی شده با Session امروز
> **تحلیلگر**: GitHub Copilot (Claude Opus 4.5)
---
## 🆕 تغییرات امروز (۲۸ آذر) - Session 2
### ✅ سیستم مدیریت موجودی محصولات
- **CMS**: چک موجودی در `SubmitShopBuyOrderCommandHandler`
- **کاهش خودکار موجودی**: بعد از تکمیل سفارش `RemainingCount` کم می‌شود
- **افزایش SaleCount**: همزمان با کاهش موجودی
- **FrontOffice**: نمایش وضعیت موجودی در صفحه محصول
- **محدودیت خرید**: حداکثر تعداد = موجودی انبار
### ✅ ویژگی‌های باشگاه مشتریان (ClubFeatures)
- **حذف فیلدهای اضافی**: `DetailedDescriptionHtml`, `Icon`, `Color` از `UserClubFeature`
- **معماری صحیح**: داده‌های قالب در `ClubFeature`، داده‌های کاربر در `UserClubFeature`
- **FeaturesPage**: بازطراحی با لیست ساده (آیکون تیک + عنوان + دکمه جزئیات)
- **MembershipPage**: مزایای عضویت اصلاح شده (کیف پول ۵۶ میلیون، شبکه بازاریابی، جذب زیرمجموعه)
### ✅ بهبود مدال آدرس‌ها
- **رفع خطای Snackbar**: حذف inject تکراری (global در `_Imports.razor`)
- **رفع NullReferenceException**: اضافه کردن null check برای `dialog.Result`
### ✅ VAT Service
- **نرخ پیش‌فرض**: 9.99% برای تشخیص داده سرور از local
- **استفاده یکپارچه**: در تمام صفحات از `VATService` استفاده می‌شود
### ✅ CartService Authentication
- **EnsureInitializedAsync**: لود سبد خرید فقط برای کاربران لاگین‌شده
- **IsAuthenticatedAsync**: چک توکن در LocalStorage
---
## 🆕 تغییرات قبلی (۲۸ آذر) - Session 1
### ✅ نمودار درختی شبکه با d3-org-chart (FrontOffice)
- **کتابخانه**: d3-org-chart v3 + d3.js v7 + d3-flextree
- **OrganizationChart.razor**: بازنویسی کامل با JS Interop
- **امکانات**:
- نمایش درختی باینری شبکه
- کلیک روی نود → نمایش زیرمجموعه‌ها
- دکمه‌های بازگشت و "درخت من"
- انتخاب عمق درخت (2-10 سطح)
- طراحی ریسپانسیو با MudBlazor
### ✅ API جدید: GetSubordinateTree
- **Proto**: `GetSubordinateTreeRequest` در `networkmembership.proto`
- **BFF Handler**: `GetSubordinateTreeQueryHandler`
- **Frontend Service**: `GetSubordinateTreeAsync(targetUserId, maxDepth)`
### ✅ بهبود Entity Configuration برای فارسی (CMS)
- **Geography Tables**: Country, State, City
- **تغییرات**: `nvarchar` با `Persian_100_CI_AI` collation
- **Migration**: `FixPersianCollation_Geography`
---
## 🆕 تغییرات قبلی (۲۲ آذر)
### ✅ تبدیل تاریخ‌ها به شمسی در UI
- **PersianDateTimeService**: سرویس تبدیل تاریخ میلادی به شمسی
- **3 صفحه آپدیت شده**: Dashboard, UserPayouts, WorkerControl
- **معماری**: تبدیل فقط در لایه نمایش، Backend میلادی باقی ماند
### ✅ بهبود سرویس اطلاعات شبکه
- **28+ فیلد جدید** در GetUserNetworkPosition
- **آمار کامل شبکه**: TotalNetworkSize, MaxDepth, ActiveMembers
- **آمار مالی**: کمیسیون کسب شده، پرداخت شده، در انتظار
- **UI بازنویسی شده**: 6 کارت اطلاعاتی با آیکون و رنگ‌بندی
### ✅ یکپارچه‌سازی محاسبه شماره هفته
- **Saturday-based**: همه سیستم‌ها از شنبه شروع می‌کنند
- **C# & SQL هماهنگ**: الگوریتم یکسان در GetWeekNumber
- **رفع Bug**: هفته 50 → هفته 49 (صحیح)
**📄 مستند کامل**: [SESSION-2025-12-12-PERSIAN-DATE-AND-NETWORK-INFO-IMPROVEMENTS.md](SESSION-2025-12-12-PERSIAN-DATE-AND-NETWORK-INFO-IMPROVEMENTS.md)
---
@@ -11,20 +86,22 @@
### **بررسی صحت مستندات موجود:**
#### ✅ مستندات معتبر و به‌روز:
- `CMS/implementation-progress.md` ✅ (3060 خط - تا 4 دسامبر 2024)
- `CMS/implementation-progress.md` ✅ (3060 خط - تا 12 دسامبر 2025)
- Phase 9: Club Discount Shop ✅ Complete (100%)
- Phase 12: Package Purchase System ✅ Complete (100%)
- **بیلد موفق**: 0 error, 287 warnings
- **بیلد موفق**: 0 error, 465 warnings
- **جدید**: GetUserNetworkPosition با 42 فیلد
- `BackOffice/development-plan.md` ✅ (1462 خط - 1 دسامبر 2025)
- `BackOffice/development-plan.md` ✅ (1462 خط - 12 دسامبر 2025)
- 23 صفحه UI کامل
- 35 Handler در BFF
- **جدید**: PersianDateTimeService برای نمایش شمسی
- **Production Ready**: 100%
- `FrontOffice/README.md` ✅ (امروز ایجاد شد - ۱۴ آذر)
- 24 صفحه UI
- 12 ماژول BFF (9 قدیمی + 3 جدید)
- Build موفق: 0 error
- `SESSION-2025-12-12-PERSIAN-DATE-AND-NETWORK-INFO-IMPROVEMENTS.md` ⭐ جدید
- تبدیل تاریخ شمسی (3 صفحه)
- بهبود سرویس شبکه (28+ فیلد)
- یکپارچه‌سازی محاسبه هفته
#### ⚠️ مستندات نیاز به بروزرسانی:
- `REMAINING-TASKS-CONSOLIDATED.md` - آخرین بروزرسانی: 2 دسامبر