|
@@ -48,7 +48,7 @@ class RechargeBonusTest extends TestCase
|
|
|
'balance_logs' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,member_id TEXT,type INTEGER DEFAULT 1,amount TEXT,change_type TEXT,before_balance TEXT,after_balance TEXT,related_id INTEGER,remark TEXT,frozen_status INTEGER,created_at TEXT,updated_at TEXT',
|
|
'balance_logs' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,member_id TEXT,type INTEGER DEFAULT 1,amount TEXT,change_type TEXT,before_balance TEXT,after_balance TEXT,related_id INTEGER,remark TEXT,frozen_status INTEGER,created_at TEXT,updated_at TEXT',
|
|
|
'payment_orders' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,member_id TEXT,type INTEGER,channel TEXT,status INTEGER,state TEXT,amount TEXT,order_no TEXT,callback_data TEXT,remark TEXT,created_at TEXT,updated_at TEXT',
|
|
'payment_orders' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,member_id TEXT,type INTEGER,channel TEXT,status INTEGER,state TEXT,amount TEXT,order_no TEXT,callback_data TEXT,remark TEXT,created_at TEXT,updated_at TEXT',
|
|
|
'recharges' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,member_id TEXT,type INTEGER,status INTEGER DEFAULT 0,coin TEXT,net TEXT,txid TEXT,amount TEXT,exchange_rate TEXT,created_at TEXT,updated_at TEXT',
|
|
'recharges' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,member_id TEXT,type INTEGER,status INTEGER DEFAULT 0,coin TEXT,net TEXT,txid TEXT,amount TEXT,exchange_rate TEXT,created_at TEXT,updated_at TEXT',
|
|
|
- 'recharge_channel' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,data_type INTEGER,type TEXT,name TEXT,sort INTEGER DEFAULT 0,status INTEGER DEFAULT 1,deleted_at TEXT,min TEXT,max TEXT,fixed TEXT,rate TEXT DEFAULT "0.02"',
|
|
|
|
|
|
|
+ 'recharge_channel' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,data_type INTEGER,type TEXT,name TEXT,sort INTEGER DEFAULT 0,status INTEGER DEFAULT 1,deleted_at TEXT,min TEXT,max TEXT,fixed TEXT,rate TEXT DEFAULT "0.02",created_at TEXT,updated_at TEXT',
|
|
|
'recharge_channel_group' => 'id INTEGER PRIMARY KEY,activity_type TEXT,recharge_type TEXT,withdraw_type TEXT,deleted_at TEXT',
|
|
'recharge_channel_group' => 'id INTEGER PRIMARY KEY,activity_type TEXT,recharge_type TEXT,withdraw_type TEXT,deleted_at TEXT',
|
|
|
'payment_providers' => 'id INTEGER PRIMARY KEY,code TEXT,status INTEGER',
|
|
'payment_providers' => 'id INTEGER PRIMARY KEY,code TEXT,status INTEGER',
|
|
|
'operation_audits' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,resource_type TEXT,resource_id INTEGER,action TEXT,changes TEXT,operator_id INTEGER,operator_name TEXT,created_at TEXT',
|
|
'operation_audits' => 'id INTEGER PRIMARY KEY AUTOINCREMENT,resource_type TEXT,resource_id INTEGER,action TEXT,changes TEXT,operator_id INTEGER,operator_name TEXT,created_at TEXT',
|
|
@@ -61,6 +61,7 @@ class RechargeBonusTest extends TestCase
|
|
|
(require dirname(__DIR__, 2) . '/database/migrations/2026_10_27_140000_add_promotion_activity_translations.php')->up();
|
|
(require dirname(__DIR__, 2) . '/database/migrations/2026_10_27_140000_add_promotion_activity_translations.php')->up();
|
|
|
(require dirname(__DIR__, 2) . '/database/migrations/2026_10_28_140000_create_recharge_bonuses.php')->up();
|
|
(require dirname(__DIR__, 2) . '/database/migrations/2026_10_28_140000_create_recharge_bonuses.php')->up();
|
|
|
(require dirname(__DIR__, 2) . '/database/migrations/2026_10_28_150000_add_recharge_channel_logo.php')->up();
|
|
(require dirname(__DIR__, 2) . '/database/migrations/2026_10_28_150000_add_recharge_channel_logo.php')->up();
|
|
|
|
|
+ (require dirname(__DIR__, 2) . '/database/migrations/2026_10_28_160000_create_recharge_method_logos.php')->up();
|
|
|
DB::table('recharge_channel_group')->insert(['id' => 1, 'activity_type' => '', 'recharge_type' => 'JDpay,rgcz,usdt']);
|
|
DB::table('recharge_channel_group')->insert(['id' => 1, 'activity_type' => '', 'recharge_type' => 'JDpay,rgcz,usdt']);
|
|
|
foreach (['JDpay', 'rgcz', 'usdt'] as $type) DB::table('recharge_channel')->insert(['data_type' => 1, 'type' => $type, 'name' => $type]);
|
|
foreach (['JDpay', 'rgcz', 'usdt'] as $type) DB::table('recharge_channel')->insert(['data_type' => 1, 'type' => $type, 'name' => $type]);
|
|
|
foreach (['huishui_percentage' => '0', 'huishui_restriction' => '0', 'recharge_rate' => '0', 'recharges_bibi_return' => '0'] as $field => $val) DB::table('config')->insert(compact('field', 'val'));
|
|
foreach (['huishui_percentage' => '0', 'huishui_restriction' => '0', 'recharge_rate' => '0', 'recharges_bibi_return' => '0'] as $field => $val) DB::table('config')->insert(compact('field', 'val'));
|
|
@@ -197,6 +198,12 @@ class RechargeBonusTest extends TestCase
|
|
|
$this->assertSame('5', $methods['JDpay']['bonus_percent']);
|
|
$this->assertSame('5', $methods['JDpay']['bonus_percent']);
|
|
|
$this->assertSame('https://admin.example.test/storage/images/jd.png', $methods['JDpay']['logo']);
|
|
$this->assertSame('https://admin.example.test/storage/images/jd.png', $methods['JDpay']['logo']);
|
|
|
$this->assertSame('', $methods['usdt']['logo']);
|
|
$this->assertSame('', $methods['usdt']['logo']);
|
|
|
|
|
+ (new \App\Services\Payment\RechargeChannelLogoService())->save(['channel_type' => 'JDpay', 'logo' => '/storage/images/shared.png']);
|
|
|
|
|
+ $updated = (new \App\Http\Controllers\api\Wallet())->getChannel()->getData(true);
|
|
|
|
|
+ $this->assertSame('https://admin.example.test/storage/images/shared.png', array_column($updated['data']['list'], null, 'value')['JDpay']['logo']);
|
|
|
|
|
+ (new \App\Services\Payment\RechargeChannelLogoService())->save(['channel_type' => 'JDpay', 'logo' => null]);
|
|
|
|
|
+ $cleared = (new \App\Http\Controllers\api\Wallet())->getChannel()->getData(true);
|
|
|
|
|
+ $this->assertSame('', array_column($cleared['data']['list'], null, 'value')['JDpay']['logo']);
|
|
|
$this->assertSame('0.02', $methods['JDpay']['config']['rate']);
|
|
$this->assertSame('0.02', $methods['JDpay']['config']['rate']);
|
|
|
$this->assertArrayNotHasKey('bonus_percent', \App\Models\RechargeChannel::first()->toArray());
|
|
$this->assertArrayNotHasKey('bonus_percent', \App\Models\RechargeChannel::first()->toArray());
|
|
|
$request->user = \App\Models\User::find(2);
|
|
$request->user = \App\Models\User::find(2);
|