修复一些错误

This commit is contained in:
liu
2026-08-14 22:20:13 +08:00
parent 228212f8e3
commit 4bdaf2a219
12 changed files with 454 additions and 37 deletions
+9 -5
View File
@@ -14,9 +14,9 @@ class BillDetailService
{
/**
* 合并后的商品明细:按商品聚合账单关联的全部订单明细
* 单价为加权平均口径(Σ金额÷Σ数量),保证 单价×数量=金额
* 单价为加权平均口径(Σ金额÷Σ数量),保证 单价×数量=金额;附商品首图
*
* @return array<int, array{product_id: int, product_name: string, product_spec: string, unit: string, price: string, quantity: int, weight: string, amount: string}>
* @return array<int, array{product_id: int, product_name: string, product_spec: string, unit: string, price: string, quantity: int, weight: string, amount: string, image: string}>
*/
public function mergedItems(BillModel $bill): array
{
@@ -33,7 +33,7 @@ class BillDetailService
* 用于账单合并导出,单价同为加权平均口径
*
* @param array<int, int> $billIds 账单ID列表
* @return array<int, array{product_id: int, product_name: string, product_spec: string, unit: string, price: string, quantity: int, weight: string, amount: string}>
* @return array<int, array{product_id: int, product_name: string, product_spec: string, unit: string, price: string, quantity: int, weight: string, amount: string, image: string}>
*/
public function mergedItemsOfBills(array $billIds): array
{
@@ -47,10 +47,10 @@ class BillDetailService
/**
* 按商品聚合订单明细:数量累加、重量/金额 bc 累加、单价加权平均,
* 按「分类sort → 商品sort」排序
* 首图取明细快照 image_ids 批量解析,按「分类sort → 商品sort」排序
*
* @param Collection<int, StoreOrderItemModel> $items
* @return array<int, array{product_id: int, product_name: string, product_spec: string, unit: string, price: string, quantity: int, weight: string, amount: string}>
* @return array<int, array{product_id: int, product_name: string, product_spec: string, unit: string, price: string, quantity: int, weight: string, amount: string, image: string}>
*/
private function aggregateItems(Collection $items): array
{
@@ -85,6 +85,7 @@ class BillDetailService
'quantity' => $quantity,
'weight' => $weight,
'amount' => $amount,
'image_ids' => (array) $first->image_ids,
'category_sort' => (int) ($product->category->sort ?? 9999),
'product_sort' => (int) ($product->sort ?? 9999),
];
@@ -93,6 +94,9 @@ class BillDetailService
[$a['category_sort'], $a['product_sort'], $a['product_id']]
<=> [$b['category_sort'], $b['product_sort'], $b['product_id']]);
// 首图批量解析(写入 image、移除 image_ids
app(ItemImageResolver::class)->resolve($rows);
return array_map(static function (array $row): array {
unset($row['category_sort'], $row['product_sort']);
return $row;