,columns:array}> */ public static function map(): array { return [ 'taobao-wechat' => [ 'title' => '淘系微信账户', 'groups' => [ ['基础信息', 7], ['账户与交易', 5], ['金额', 2], ['业务关联', 2], ['维护信息', 2], ], 'columns' => [ ['记录编码', 'record_code', 'num'], ['店铺', 'store_name', 'text'], ['财务备注', 'finance_remark', 'text'], ['订单号', 'order_no', 'num'], ['金额', 'amount', 'money'], ['自定义备注', 'custom_remark', 'text'], ['账单项目', 'bill_item', 'tag'], ['线上单号', 'payload.online_order_no', 'num'], ['淘宝订单编号', 'payload.taobao_order_no', 'num'], ['支付流水号', 'payload.pay_serial_no', 'num'], ['入账时间', 'occurred_at', 'date'], ['入账类型', 'payload.entry_type', 'text'], ['收入金额', 'income', 'money_in'], ['支出金额', 'expense', 'money_out'], ['业务描述', 'payload.business_desc', 'text'], ['备注', 'remark', 'text'], ['JST拉取时间', 'payload.jst_pulled_at', 'date'], ['修改人', 'modifier', 'text'], ], ], 'pinduoduo' => [ 'title' => '拼多多账户', 'columns' => [ ['记录编码', 'record_code', 'num'], ['店铺', 'store_name', 'text'], ['财务备注', 'finance_remark', 'text'], ['订单', 'order_no', 'num'], ['金额', 'amount', 'money'], ['自定义备注', 'custom_remark', 'text'], ['账单项目', 'bill_item', 'tag'], ['商户订单号', 'payload.merchant_order_no', 'num'], ['线上单号', 'payload.online_order_no', 'num'], ['财务类型', 'payload.finance_type', 'text'], ['类型', 'payload.type', 'text'], ['发生时间', 'occurred_at', 'date'], ['收入金额', 'income', 'money_in'], ['支出金额', 'expense', 'money_out'], ['备注', 'remark', 'text'], ['修改时间', 'updated_at', 'date'], ['修改人', 'modifier', 'text'], ], ], 'jd-wallet' => [ 'title' => '京东网银钱包账户', 'columns' => [ ['记录编码', 'record_code', 'num'], ['店铺', 'store_name', 'text'], ['财务备注', 'finance_remark', 'text'], ['订单', 'order_no', 'num'], ['金额', 'amount', 'money'], ['自定义备注', 'custom_remark', 'text'], ['账单项目', 'bill_item', 'tag'], ['线上单号', 'payload.online_order_no', 'num'], ['单据编号', 'payload.doc_no', 'num'], ['订单编号', 'payload.order_no_2', 'num'], ['商户订单号', 'payload.merchant_order_no', 'num'], ['单据类型', 'payload.doc_type', 'text'], ['商品编码', 'payload.goods_code', 'num'], ['商品名称', 'payload.goods_name', 'text'], ['费用结算时间', 'occurred_at', 'date'], ['费用发生时间', 'payload.fee_occurred_at', 'date'], ['费用项', 'payload.fee_item', 'text'], ['收入金额', 'income', 'money_in'], ['支出金额', 'expense', 'money_out'], ['币种', 'payload.currency', 'text'], ['钱包结算备注', 'payload.wallet_remark', 'text'], ['备注', 'remark', 'text'], ['店铺号', 'payload.store_no', 'num'], ['京东门店编码', 'payload.jd_store_code', 'num'], ['品牌门店编号', 'payload.brand_store_no', 'num'], ['门店名称', 'payload.store_name_2', 'text'], ['账户代码', 'payload.account_code', 'num'], ['修改时间', 'updated_at', 'date'], ['修改人', 'modifier', 'text'], ], ], 'jd-transactions' => [ 'title' => '京东流水', 'columns' => [ ['记录编码', 'record_code', 'num'], ['店铺', 'store_name', 'text'], ['财务备注', 'finance_remark', 'text'], ['订单', 'order_no', 'num'], ['金额', 'amount', 'money'], ['自定义备注', 'custom_remark', 'text'], ['账单项目', 'bill_item', 'tag'], ['线上单号', 'payload.online_order_no', 'num'], ['流水号', 'payload.serial_no', 'num'], ['交易订单号', 'payload.tx_order_no', 'num'], ['账户名称', 'payload.account_name', 'text'], ['费用结算时间', 'occurred_at', 'date'], ['账单日期', 'payload.bill_date', 'date'], ['商户订单号', 'payload.merchant_order_no', 'num'], ['交易备注', 'payload.tx_remark', 'text'], ['交易类型', 'payload.tx_type', 'text'], ['收入金额', 'income', 'money_in'], ['支出金额', 'expense', 'money_out'], ['账户余额', 'balance', 'balance'], ['币种', 'payload.currency', 'text'], ['记账请求号', 'payload.book_request_no', 'num'], ['业务订单号', 'payload.business_order_no', 'num'], ['修改时间', 'updated_at', 'date'], ['修改人', 'modifier', 'text'], ], ], 'douyin' => [ 'title' => '抖音账户', 'columns' => [ ['记录编码', 'record_code', 'num'], ['店铺', 'store_name', 'text'], ['财务备注', 'finance_remark', 'text'], ['订单', 'order_no', 'num'], ['金额', 'amount', 'money'], ['自定义备注', 'custom_remark', 'text'], ['商户主体名称', 'payload.merchant_name', 'text'], ['账单项目', 'bill_item', 'tag'], ['动账流水号', 'payload.move_serial_no', 'num'], ['订单号', 'payload.order_no_2', 'num'], ['线上单号', 'payload.online_order_no', 'num'], ['子订单号', 'payload.sub_order_no', 'num'], ['商品ID', 'payload.goods_id', 'num'], ['账务类型', 'payload.account_type', 'text'], ['结算时间', 'occurred_at', 'date'], ['动账摘要', 'payload.move_summary', 'text'], ['下单时间', 'payload.order_placed_at', 'date'], ['业务类型', 'payload.business_type', 'text'], ['结算账户', 'payload.settle_account', 'text'], ['动账场景', 'payload.move_scene', 'text'], ['达人ID', 'payload.talent_id', 'num'], ['达人名称', 'payload.talent_name', 'text'], ['备注', 'remark', 'text'], ['收入', 'income', 'money_in'], ['支出', 'expense', 'money_out'], ['创建时间', 'created_at', 'date'], ['修改时间', 'updated_at', 'date'], ['修改人', 'modifier', 'text'], ], ], 'dewu' => [ 'title' => '得物账户', 'columns' => [ ['记录编码', 'record_code', 'num'], ['店铺', 'store_name', 'text'], ['财务备注', 'finance_remark', 'text'], ['金额', 'amount', 'money'], ['订单号', 'order_no', 'num'], ['线上单号', 'payload.online_order_no', 'num'], ['自定义备注', 'custom_remark', 'text'], ['账单项目', 'bill_item', 'tag'], ['店铺', 'payload.store_2', 'text'], ['订单类型', 'payload.order_type', 'text'], ['商品名称', 'payload.goods_name', 'text'], ['商品货号', 'payload.goods_no', 'num'], ['数量', 'payload.quantity', 'num'], ['渠道', 'payload.channel', 'text'], ['业务类型', 'payload.business_type', 'text'], ['收入金额', 'income', 'money_in'], ['支出金额', 'expense', 'money_out'], ['线上单号对应实际店铺', 'payload.online_real_store', 'text'], ['订单创建时间', 'payload.order_created_at', 'date'], ['支付/退款时间', 'occurred_at', 'date'], ['发货/退货时间', 'payload.ship_return_at', 'date'], ['结算状态', 'payload.settle_status', 'text'], ['收款账期', 'payload.pay_period', 'text'], ['拉取时间', 'payload.pulled_at', 'date'], ['修改时间', 'updated_at', 'date'], ['修改人', 'modifier', 'text'], ], ], ]; } public static function types(): array { return array_keys(self::map()); } public static function has(string $type): bool { return isset(self::map()[$type]); } /** * @return array{title:string,groups:array,columns:array} */ public static function for(string $type): ?array { $map = self::map(); if (! isset($map[$type])) { return null; } $columns = array_map(function ($c) { return ['label' => $c[0], 'field' => $c[1], 'kind' => $c[2]]; }, $map[$type]['columns']); $groups = array_map(function ($group) { return ['label' => $group[0], 'span' => $group[1]]; }, $map[$type]['groups'] ?? []); return [ 'title' => $map[$type]['title'], 'groups' => $groups, 'columns' => $columns, ]; } }