242 lines
15 KiB
SQL
242 lines
15 KiB
SQL
-- =============================================================================
|
|
-- گلد علی — اسکریپت محافظهکارانه (بعد از deploy کد Abshode_Khanegi مرجشده)
|
|
--
|
|
-- اصول:
|
|
-- • هیچ ردیفی DELETE نمیشود
|
|
-- • value ردیفهای موجود عمداً عوض نمیشود (فقط INSERT اگر key نبود)
|
|
-- • استثنا: price_provider (کلید جدید) + montzar_price اگر وجود داشت → false
|
|
-- • title_fa فقط جایی که NULL یا خالی است پر میشود
|
|
--
|
|
-- قبل از اجرا: بکاپ + USE دیتابیس
|
|
-- =============================================================================
|
|
|
|
-- USE `goldali_db`;
|
|
|
|
START TRANSACTION;
|
|
|
|
-- =============================================================================
|
|
-- بخش ۱ — عنوان فارسی (بدون تغییر value)
|
|
-- =============================================================================
|
|
|
|
UPDATE `settings` SET `title_fa` = 'نام فارسی اپ' WHERE `key` = 'name_fa' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'نام انگلیسی اپ' WHERE `key` = 'name_en' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'آدرس اپ (کاربر)' WHERE `key` = 'app_url' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'آدرس پایه' WHERE `key` = 'bace_url' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'لوگوی صفحه ورود' WHERE `key` = 'logo_register' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'آدرس پنل ادمین' WHERE `key` = 'admin_url' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'عنوان PWA' WHERE `key` = 'title_pwa' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'عنوان favicon' WHERE `key` = 'title_fav' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'متن قوانین' WHERE `key` = 'text_rule' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'متن درباره ما' WHERE `key` = 'text_about' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'صفحه کسب درآمد' WHERE `key` = 'has_page_earn_money' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'صفحه صندوق' WHERE `key` = 'has_page_fund' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'صفحه مجوزها' WHERE `key` = 'has_page_permission' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'صفحه هشدار قیمت' WHERE `key` = 'has_page_price_trigger' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'صفحه طلای فیزیکی' WHERE `key` = 'has_page_physical_gold' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'رنگ اصلی' WHERE `key` = 'color_primary' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'رنگ ثانویه' WHERE `key` = 'color_secondary' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'کارمزد (قدیمی — درصد)' WHERE `key` = 'fee' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'چت پشتیبانی' WHERE `key` = 'has_chat' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'آدرس API سرور' WHERE `key` = 'server_url' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'کلید داخلی اپ' WHERE `key` = 'key' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'تعداد معرف برای هدیه' WHERE `key` = 'referral_count_for_gift' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'مبلغ پاداش معرف' WHERE `key` = 'referral_bonus_amount' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'حداقل برداشت (ریال)' WHERE `key` = 'min_withdraw' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `settings` SET `title_fa` = 'حداقل اولین خرید (ریال)' WHERE `key` = 'min_first_buy' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
|
|
UPDATE `const` SET `title_fa` = 'سقف قیمت محدود' WHERE `key` = 'limited_price' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `const` SET `title_fa` = 'باز بودن درگاه پرداخت' WHERE `key` = 'is_gateway_open' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
UPDATE `const` SET `title_fa` = 'بنر بالای صفحه' WHERE `key` = 'header_banner' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
|
|
-- =============================================================================
|
|
-- بخش ۲ — کلیدهای جدید کد (فقط INSERT اگر نبودند؛ value فعلی دست نخورده)
|
|
-- =============================================================================
|
|
|
|
-- منبع قیمت: اتحادیه (تنها منبع فعال در کد مرجشده)
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'price_provider', 'main_product', 'منبع قیمت',
|
|
1, 1, 'montzar | taban_gohar | main_product | zaarbox'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'price_provider' LIMIT 1);
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'main_product', '13', 'شناسه محصول آبشده', 1, 1, 'اول settings، بعد const'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'main_product' LIMIT 1);
|
|
|
|
-- کارمزد نمایش buy/sell در /api/price/last — کد fee_single میخواند (نه fee)
|
|
-- مقدار 500000 = پیشفرض config/fee.php؛ اگر برای گلد علی عدد دیگری دارید بعداً در پنل عوض کنید
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'fee_single', '500000', 'اختلاف قیمت پایه (ریال)', 1, 1, 'پیشفرض Laravel fee.single'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'fee_single' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'buy_fee', '500000', 'سود/اختلاف خرید (ریال)', 1, 1, 'اگر خالی باشد از fee_single'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'buy_fee' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'sell_fee', '500000', 'سود/اختلاف فروش (ریال)', 1, 1, 'اگر خالی باشد از fee_single'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'sell_fee' LIMIT 1);
|
|
|
|
-- ثبتنام: فقط referral_id (required = اجباری)
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'referral_id', 'required', 'الزام کد معرف', 1, 1, 'required = اجباری؛ خالی = اختیاری|required,'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'referral_id' LIMIT 1);
|
|
UPDATE `settings` SET
|
|
`can_edit` = 1,
|
|
`description` = 'required = اجباری؛ خالی = اختیاری|required,'
|
|
WHERE `key` = 'referral_id';
|
|
|
|
-- legacy is_requaire_referral → referral_id
|
|
UPDATE `settings` AS r
|
|
SET
|
|
r.`value` = 'required',
|
|
r.`is_active` = 1,
|
|
r.`updated_at` = NOW()
|
|
WHERE r.`key` = 'referral_id'
|
|
AND EXISTS (
|
|
SELECT 1
|
|
FROM (
|
|
SELECT `value`, `is_active`
|
|
FROM `settings`
|
|
WHERE `key` = 'is_requaire_referral'
|
|
LIMIT 1
|
|
) AS leg
|
|
WHERE leg.`is_active` = 1
|
|
AND LOWER(TRIM(COALESCE(leg.`value`, ''))) IN ('true', '1', 'yes')
|
|
)
|
|
AND TRIM(COALESCE(r.`value`, '')) <> 'required';
|
|
|
|
DELETE FROM `settings` WHERE `key` = 'is_requaire_referral';
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'profit_gold_api_enabled', 'true', 'API سود طلا', 0, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'profit_gold_api_enabled' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'open_register', '1', 'ثبتنام باز', 1, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'open_register' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'balance_report_exclude_customer_id', '12', 'حذف مشتری از تراز', 0, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'balance_report_exclude_customer_id' LIMIT 1);
|
|
|
|
-- =============================================================================
|
|
-- بخش ۳ — فقط چند UPDATE مطمئن (کلیدهای مربوط به کد جدید)
|
|
-- =============================================================================
|
|
|
|
UPDATE `settings` SET `value` = 'main_product', `title_fa` = COALESCE(NULLIF(TRIM(`title_fa`), ''), 'منبع قیمت')
|
|
WHERE `key` = 'price_provider';
|
|
UPDATE `settings` SET `value` = '13' WHERE `key` = 'main_product';
|
|
UPDATE `settings` SET `value` = 'true' WHERE `key` = 'profit_gold_api_enabled';
|
|
UPDATE `settings` SET `is_active` = 1 WHERE `key` = 'open_register';
|
|
UPDATE `settings` SET `value` = '12' WHERE `key` = 'balance_report_exclude_customer_id';
|
|
|
|
INSERT INTO `const` (`key`, `value`, `title_fa`)
|
|
SELECT 'is_gateway_open', '1', 'باز بودن درگاه پرداخت'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'is_gateway_open' LIMIT 1);
|
|
|
|
INSERT INTO `const` (`key`, `value`, `title_fa`)
|
|
SELECT 'gram', '1', 'گرم پیشفرض ثبتنام'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'gram' LIMIT 1);
|
|
|
|
INSERT INTO `const` (`key`, `value`, `title_fa`)
|
|
SELECT 'first_customer_wallet_value', '0', 'حداقل موجودی اول خرید'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'first_customer_wallet_value' LIMIT 1);
|
|
|
|
-- legacy price_method حذف شد — از price_provider + zaarbox_price_key استفاده کنید.
|
|
|
|
-- =============================================================================
|
|
-- بخش ۳ب — درگاه پرداخت گلد علی (payment.goldaliii.com)
|
|
-- =============================================================================
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'payping_start_url', 'https://payment.goldaliii.com/payment/start', 'آدرس شروع درگاه', 1, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_start_url' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'payping_verify_url', 'https://payment.goldaliii.com/payment/verify', 'آدرس تأیید درگاه', 1, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_verify_url' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'payping_gateway_name', 'sepal', 'نام gateway درگاه', 1, 1, 'مثال: sepal'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_gateway_name' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'payping_gateway_items', 'sDsB,gp1Q,GPH4,AMAX,TbQl,AAQl', 'لیست item (چرخشی)', 1, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_gateway_items' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'payping_round_toman', 'true', 'گرد کردن مبلغ به تومان', 0, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_round_toman' LIMIT 1);
|
|
|
|
INSERT INTO `settings` (`key`, `value`, `title_fa`, `can_edit`, `is_active`, `description`)
|
|
SELECT 'payping_strict_failed_withdraw', 'true', 'اولویت تراکنش ناموفق', 0, 1, NULL
|
|
WHERE NOT EXISTS (SELECT 1 FROM `settings` WHERE `key` = 'payping_strict_failed_withdraw' LIMIT 1);
|
|
|
|
UPDATE `settings` SET `value` = 'https://payment.goldaliii.com/payment/start' WHERE `key` = 'payping_start_url';
|
|
UPDATE `settings` SET `value` = 'https://payment.goldaliii.com/payment/verify' WHERE `key` = 'payping_verify_url';
|
|
UPDATE `settings` SET `value` = 'sepal' WHERE `key` = 'payping_gateway_name';
|
|
UPDATE `settings` SET `value` = 'sDsB,gp1Q,GPH4,AMAX,TbQl,AAQl' WHERE `key` = 'payping_gateway_items';
|
|
UPDATE `settings` SET `value` = 'true' WHERE `key` IN ('payping_round_toman', 'payping_strict_failed_withdraw');
|
|
|
|
-- =============================================================================
|
|
-- بخش ۴ — const (حداقلی)
|
|
-- =============================================================================
|
|
|
|
UPDATE `const` SET `title_fa` = 'بسته بودن اپ' WHERE `key` = 'app_closed' AND (`title_fa` IS NULL OR TRIM(`title_fa`) = '');
|
|
|
|
INSERT INTO `const` (`key`, `value`, `title_fa`)
|
|
SELECT 'app_closed', 'false', 'بسته بودن اپ'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `const` WHERE `key` = 'app_closed' LIMIT 1);
|
|
|
|
-- =============================================================================
|
|
-- بخش ۵ — products: محدودیت مبلغ سفارش (فقط ستون؛ مقدار از پنل ادمین)
|
|
-- patch: database/sql/add_product_order_limit_columns.sql
|
|
-- =============================================================================
|
|
|
|
SET @db = DATABASE();
|
|
|
|
SET @sql = IF(
|
|
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'order_limit_enabled') = 0,
|
|
'ALTER TABLE `products` ADD COLUMN `order_limit_enabled` TINYINT(1) NOT NULL DEFAULT 0 AFTER `percent_fee_buy`',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @sql = IF(
|
|
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'min_order_cash') = 0,
|
|
'ALTER TABLE `products` ADD COLUMN `min_order_cash` BIGINT UNSIGNED NULL DEFAULT NULL AFTER `order_limit_enabled`',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @sql = IF(
|
|
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'products' AND COLUMN_NAME = 'max_order_cash') = 0,
|
|
'ALTER TABLE `products` ADD COLUMN `max_order_cash` BIGINT UNSIGNED NULL DEFAULT NULL AFTER `min_order_cash`',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- =============================================================================
|
|
-- بررسی — بعد از COMMIT اینها را بزن
|
|
-- =============================================================================
|
|
-- SELECT `key`, `title_fa`, `value` FROM `settings`
|
|
-- WHERE `key` IN (
|
|
-- 'price_provider', 'profit_gold_api_enabled',
|
|
-- 'fee_single', 'buy_fee', 'sell_fee',
|
|
-- 'referral_id',
|
|
-- 'payping_start_url', 'payping_verify_url', 'payping_gateway_name'
|
|
-- )
|
|
-- ORDER BY `key`;
|
|
|
|
COMMIT;
|
|
|
|
-- اگر جدولت `setting` است نه `settings`، همه `settings` را به `setting` عوض کن.
|