From ffab326aa07d1f511a115d63e4f55fa9f559f353 Mon Sep 17 00:00:00 2001 From: mohammad sedighi Date: Wed, 1 Jul 2026 23:59:59 +0330 Subject: [PATCH] fix some bugs --- app/Services/ConfigService.php | 4 ++-- database/sql/deploy_settings_const.sql | 8 ++++---- ...loy_settings_const_preserve_value_sync_can_edit.sql | 9 +++++++-- database/sql/fee_deduct_from_gold_patch.sql | 10 +++++----- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/Services/ConfigService.php b/app/Services/ConfigService.php index 092d98e..2bb640f 100644 --- a/app/Services/ConfigService.php +++ b/app/Services/ConfigService.php @@ -140,8 +140,8 @@ class ConfigService } /** - * روشن: کارمزد از مقدار طلا (فروش = واریز ریالی گرد دقیق، خرید = دریافت کامل طلا). - * خاموش (پیش‌فرض): کارمزد از ریال در فروش و از طلا در خرید — رفتار قبلی. + * روشن: فروش = مبلغ ریالی دقیق (کارمزد از طلا)؛ خرید = وزن دقیق (کارمزد از ریال). + * خاموش: فروش = کارمزد از ریال واریزی؛ خرید = کارمزد از وزن طلای واریزی. */ public function feeDeductFromGold(): bool { diff --git a/database/sql/deploy_settings_const.sql b/database/sql/deploy_settings_const.sql index f21db71..f8184bf 100644 --- a/database/sql/deploy_settings_const.sql +++ b/database/sql/deploy_settings_const.sql @@ -428,7 +428,7 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_service_charge_per -- fee_deduct_from_gold: value پیش‌فرض false فقط در INSERT اولیه؛ اجرای مجدد value/is_active را overwrite نمی‌کند INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`) -SELECT 'fee_deduct_from_gold', 'false', 'کارمزد از مقدار طلا', 1, 1, NULL, 'switch' +SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1, NULL, 'switch' WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_deduct_from_gold' LIMIT 1); INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`) @@ -902,7 +902,7 @@ UPDATE `settings` SET `description` = 'مبلغ کسر (ریال) از قیمت UPDATE `settings` SET `description` = 'درصد کارمزد هر سفارش از مبلغ معامله (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).' WHERE `key` = 'fee_service_charge_percentage'; UPDATE `settings` SET `type` = 'switch', - `description` = 'روشن: کارمزد از مقدار طلا کسر می‌شود — در فروش مبلغ ریالی دقیق واریز می‌شود. خاموش: کارمزد از ریال فروش کم می‌شود (رفتار قبلی).' + `description` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).' WHERE `key` = 'fee_deduct_from_gold'; UPDATE `settings` SET `description` = 'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. ۰ = غیرفعال.' WHERE `key` = 'fee_free'; UPDATE `settings` SET `description` = 'حداقل مبلغ درخواست برداشت وجه (ریال). درخواست‌های کمتر رد می‌شوند.' WHERE `key` = 'min_withdraw'; @@ -923,7 +923,7 @@ UPDATE `settings` SET `description` = 'مقدار پاداش (معمولاً و UPDATE `settings` SET `description` = 'مقدار پاداش (معمولاً وزن فلز) که به کاربر تازه‌ثبت‌نام‌شده (معرف‌شونده) داده می‌شود. ۰ = بدون پاداش.' WHERE `key` = 'gift_for_referral'; UPDATE `settings` SET `description` = 'روشن: پس از ثبت‌نام کاربر جدید، پیامک اطلاع‌رسانی برای معرف ارسال می‌شود.' WHERE `key` = 'register_referral_sms_to_referrer'; UPDATE `settings` SET `description` = 'روشن: متن پاداش معرف در پیامک خوش‌آمد ثبت‌نام گنجانده می‌شود.' WHERE `key` = 'register_referral_bonus_message'; -UPDATE `settings` SET `description` = 'روشن: پاداش معرف (gift_for_referrer) و پاداش معرف‌شونده (gift_for_referral) پس از اولین سفارش معرف‌شونده واریز می‌شود؛ خاموش = واریز هنگام ثبت‌نام/تأیید احراز (رفتار قبلی).' WHERE `key` = 'referral_gift_on_first_order'; +UPDATE `settings` SET `description` = 'روشن: پاداش معرف و معرف‌شونده پس از تکمیل اولین سفارش معرف‌شونده به کیف واریز می‌شود. خاموش: پاداش بلافاصله پس از ثبت‌نام موفق یا تأیید احراز هویت واریز می‌شود.' WHERE `key` = 'referral_gift_on_first_order'; UPDATE `settings` SET `description` = 'حداکثر تعداد دعوت‌های مجاز برای هر کاربر. خالی = بدون محدودیت.' WHERE `key` = 'referral_limit'; UPDATE `settings` SET `description` = 'مبلغ یا مقدار پاداش معرف (متن آزاد — بسته به پیاده‌سازی پیامک/اعتبار). برای نمایش در پیام‌ها.' WHERE `key` = 'referral_bonus_amount'; UPDATE `settings` SET `description` = 'روشن: تطبیق شماره کارت بانکی کاربر با سرویس احراز هویت جیبیت هنگام ثبت/ویرایش کارت.' WHERE `key` = 'jibit_verification'; @@ -1035,7 +1035,7 @@ UPDATE `settings` SET `title_fa` = 'فعال‌سازی API سفارش خارج UPDATE `settings` SET `title_fa` = 'کارمزد (قدیمی — درصد)' WHERE `key` = 'fee'; UPDATE `settings` SET `title_fa` = 'تعداد سفارش اول بدون کارمزد' WHERE `key` = 'fee_free'; UPDATE `settings` SET `title_fa` = 'درصد کارمزد سفارش' WHERE `key` = 'fee_service_charge_percentage'; -UPDATE `settings` SET `title_fa` = 'کارمزد از مقدار طلا' WHERE `key` = 'fee_deduct_from_gold'; +UPDATE `settings` SET `title_fa` = 'اعمال مبلغ دقیق در معامله مشتری' WHERE `key` = 'fee_deduct_from_gold'; UPDATE `settings` SET `title_fa` = 'اختلاف پایه نمایش' WHERE `key` = 'fee_single'; UPDATE `settings` SET `title_fa` = 'پاداش معرف‌شونده' WHERE `key` = 'gift_for_referral'; UPDATE `settings` SET `title_fa` = 'پاداش معرف' WHERE `key` = 'gift_for_referrer'; diff --git a/database/sql/deploy_settings_const_preserve_value_sync_can_edit.sql b/database/sql/deploy_settings_const_preserve_value_sync_can_edit.sql index 1f7d12b..edfd7aa 100644 --- a/database/sql/deploy_settings_const_preserve_value_sync_can_edit.sql +++ b/database/sql/deploy_settings_const_preserve_value_sync_can_edit.sql @@ -426,7 +426,7 @@ WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_service_charge_per -- fee_deduct_from_gold: value پیش‌فرض false فقط در INSERT اولیه؛ اجرای مجدد value/is_active را overwrite نمی‌کند INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`) -SELECT 'fee_deduct_from_gold', 'false', 'کارمزد از مقدار طلا', 1, 1, NULL, 'switch' +SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1, NULL, 'switch' WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_deduct_from_gold' LIMIT 1); INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`) @@ -928,6 +928,11 @@ UPDATE `settings` SET `description` = 'اختلاف پایه (ریال) بین UPDATE `settings` SET `description` = 'مبلغ اضافه (ریال) روی قیمت پایه برای سمت خرید. خالی = استفاده از «اختلاف پایه».' WHERE `key` = 'buy_fee'; UPDATE `settings` SET `description` = 'مبلغ کسر (ریال) از قیمت پایه برای سمت فروش. خالی = استفاده از «اختلاف پایه».' WHERE `key` = 'sell_fee'; UPDATE `settings` SET `description` = 'درصد کارمزد هر سفارش از مبلغ معامله (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).' WHERE `key` = 'fee_service_charge_percentage'; +UPDATE `settings` SET + `type` = 'switch', + `title_fa` = 'اعمال مبلغ دقیق در معامله مشتری', + `description` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).' +WHERE `key` = 'fee_deduct_from_gold'; UPDATE `settings` SET `description` = 'تعداد اولین سفارش‌های هر کاربر که از کارمزد معاف می‌شوند. ۰ = غیرفعال.' WHERE `key` = 'fee_free'; UPDATE `settings` SET `description` = 'حداقل مبلغ درخواست برداشت وجه (ریال). درخواست‌های کمتر رد می‌شوند.' WHERE `key` = 'min_withdraw'; UPDATE `settings` SET `description` = 'حداقل مبلغ اولین خرید هر کاربر (ریال). برای فعال‌سازی کیف یا احراز سطح اول استفاده می‌شود.' WHERE `key` = 'min_first_buy'; @@ -947,7 +952,7 @@ UPDATE `settings` SET `description` = 'مقدار پاداش (معمولاً و UPDATE `settings` SET `description` = 'مقدار پاداش (معمولاً وزن فلز) که به کاربر تازه‌ثبت‌نام‌شده (معرف‌شونده) داده می‌شود. ۰ = بدون پاداش.' WHERE `key` = 'gift_for_referral'; UPDATE `settings` SET `description` = 'روشن: پس از ثبت‌نام کاربر جدید، پیامک اطلاع‌رسانی برای معرف ارسال می‌شود.' WHERE `key` = 'register_referral_sms_to_referrer'; UPDATE `settings` SET `description` = 'روشن: متن پاداش معرف در پیامک خوش‌آمد ثبت‌نام گنجانده می‌شود.' WHERE `key` = 'register_referral_bonus_message'; -UPDATE `settings` SET `description` = 'روشن: پاداش معرف (gift_for_referrer) و پاداش معرف‌شونده (gift_for_referral) پس از اولین سفارش معرف‌شونده واریز می‌شود؛ خاموش = واریز هنگام ثبت‌نام/تأیید احراز (رفتار قبلی).' WHERE `key` = 'referral_gift_on_first_order'; +UPDATE `settings` SET `description` = 'روشن: پاداش معرف و معرف‌شونده پس از تکمیل اولین سفارش معرف‌شونده به کیف واریز می‌شود. خاموش: پاداش بلافاصله پس از ثبت‌نام موفق یا تأیید احراز هویت واریز می‌شود.' WHERE `key` = 'referral_gift_on_first_order'; UPDATE `settings` SET `description` = 'حداکثر تعداد دعوت‌های مجاز برای هر کاربر. خالی = بدون محدودیت.' WHERE `key` = 'referral_limit'; UPDATE `settings` SET `description` = 'مبلغ یا مقدار پاداش معرف (متن آزاد — بسته به پیاده‌سازی پیامک/اعتبار). برای نمایش در پیام‌ها.' WHERE `key` = 'referral_bonus_amount'; UPDATE `settings` SET `description` = 'روشن: تطبیق شماره کارت بانکی کاربر با سرویس احراز هویت جیبیت هنگام ثبت/ویرایش کارت.' WHERE `key` = 'jibit_verification'; diff --git a/database/sql/fee_deduct_from_gold_patch.sql b/database/sql/fee_deduct_from_gold_patch.sql index 73f6246..5fb3459 100644 --- a/database/sql/fee_deduct_from_gold_patch.sql +++ b/database/sql/fee_deduct_from_gold_patch.sql @@ -1,17 +1,17 @@ --- سوییچ «کارمزد از مقدار طلا» — برای نصب‌های موجود (مثلاً abshodehrahimi) +-- سوییچ «اعمال مبلغ دقیق در معامله مشتری» — برای نصب‌های موجود (مثلاً abshodehrahimi) -- idempotent: چند بار قابل اجرا -- • اولین بار: INSERT با value='false' (پیش‌فرض خاموش) -- • اجرای مجدد: value و is_active دست نمی‌خورند — فقط title_fa / description / type / can_edit INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`, `type`) -SELECT 'fee_deduct_from_gold', 'false', 'کارمزد از مقدار طلا', 1, 1, - 'روشن: کارمزد از طلا — فروش = واریز ریالی دقیق. خاموش: کارمزد از ریال فروش (پیش‌فرض).', +SELECT 'fee_deduct_from_gold', 'false', 'اعمال مبلغ دقیق در معامله مشتری', 1, 1, + 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).', 'switch' WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_deduct_from_gold' LIMIT 1); UPDATE `settings` -SET `title_fa` = 'کارمزد از مقدار طلا', - `description` = 'روشن: مبالغ رند — فروش = دریافت دقیق ریال (کارمزد از طلا)؛ خرید = دریافت دقیق وزن (کارمزد از ریال). خاموش: کارمزد از طرف مقابل — رفتار قبلی.', +SET `title_fa` = 'اعمال مبلغ دقیق در معامله مشتری', + `description` = 'روشن: مشتری دقیقاً همان مبلغ یا وزنی را که وارد کرده دریافت می‌کند. در فروش، مثلاً ۱۰۰ میلیون ریال درخواست → همان ۱۰۰ میلیون واریز و کارمزد از طلای کیف کسر می‌شود. در خرید، مثلاً ۱۰ گرم درخواست → همان ۱۰ گرم واریز و کارمزد به ریال قابل پرداخت اضافه می‌شود. خاموش (پیش‌فرض): در فروش کارمزد از مبلغ ریالی واریزی کم می‌شود (مشتری مبلغ کمتری می‌گیرد). در خرید کارمزد از وزن طلای واریزی کم می‌شود (مشتری طلای کمتری می‌گیرد).', `type` = 'switch', `can_edit` = 1 WHERE `key` = 'fee_deduct_from_gold';