allowPage(); $this->bill('vipshop', '2761547331', '销售订单', '2026-07-31 20:38:40', 39.00, 0.00); $this->bill('vipshop', '2761292184', '订单退款', '2026-07-31 19:34:32', 0.00, 20.00); $this->bill('vipshop-jx', '4675', '差异详情-处罚款', '2026-07-16 00:00:00', 0.00, 8.00); $response = $this->loginAs() ->getJson(route('ecommerce-finance.account-bills.index', ['bill_type' => 'vipshop', 'limit' => 20])) ->assertOk() ->assertJsonPath('columns.title', '唯品会MP账户') ->assertJsonPath('total', 2) ->assertJsonPath('data.0.payload.settle_period', '2026-08') ->assertJsonPath('data.1.payload.settle_period', '2026-08'); $this->assertSame( ['全局ID', '店铺ID', '店铺名称', '总账备注', '订单签收或退款时间', '订单结算时间', '订单类型名称'], array_slice(array_column($response->json('columns.columns'), 'label'), 0, 7), ); } private function bill(string $billType, string $recordCode, string $item, string $occurredAt, float $income, float $expense): void { AccountBill::create([ 'company_id' => $this->company->id, 'bill_type' => $billType, 'record_code' => $recordCode, 'store_name' => $billType === 'vipshop' ? '卓禾家具特卖旗舰店' : '唯品会JITX_亿家达', 'order_no' => '26072734938113', 'amount' => $income - $expense, 'bill_item' => $item, 'occurred_at' => $occurredAt, 'income' => $income, 'expense' => $expense, // 现财务系统中唯品会MP账户的订单结算时间均为 2026-08。 'payload' => ['shop_id' => 'ST64055434', 'settle_period' => '2026-08'], ]); } private function allowPage(): void { $this->user->attachPermission( Permission::where('name', 'read-admin-panel')->firstOrFail() ); } }