Parcourir la source

修复:订单导出未显示商品规格

Yahoo il y a 4 ans
Parent
commit
ac456052df
2 fichiers modifiés avec 19 ajouts et 1 suppressions
  1. 14 0
      app/common/service/Goods.php
  2. 5 1
      app/store/service/order/Export.php

+ 14 - 0
app/common/service/Goods.php

@@ -57,4 +57,18 @@ class Goods extends BaseService
     {
     {
         return GoodsSkuModel::detail($goodsId, $goodsSkuId);
         return GoodsSkuModel::detail($goodsId, $goodsSkuId);
     }
     }
+
+    /**
+     * SKU的规格属性转换为可读的字符串
+     * @param array $goodsPops
+     * @return string
+     */
+    public static function goodsPropsToAttr(array $goodsPops): string
+    {
+        $goodsAttr = '';
+        foreach ($goodsPops as $pop) {
+            $goodsAttr .= "{$pop['group']['name']}: {$pop['value']['name']}; ";
+        }
+        return $goodsAttr;
+    }
 }
 }

+ 5 - 1
app/store/service/order/Export.php

@@ -17,6 +17,7 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 use app\store\model\{Order as OrderModel, order\Export as ExportModel, OrderAddress as OrderAddressModel};
 use app\store\model\{Order as OrderModel, order\Export as ExportModel, OrderAddress as OrderAddressModel};
 use app\common\library\helper;
 use app\common\library\helper;
 use app\common\service\BaseService;
 use app\common\service\BaseService;
+use app\common\service\Goods as GoodsService;
 use app\common\enum\order\{
 use app\common\enum\order\{
     PayType as PayTypeEnum,
     PayType as PayTypeEnum,
     PayStatus as PayStatusEnum,
     PayStatus as PayStatusEnum,
@@ -275,7 +276,10 @@ class Export extends BaseService
         $content = '';
         $content = '';
         foreach ($order['goods'] as $key => $goods) {
         foreach ($order['goods'] as $key => $goods) {
             $content .= ($key + 1) . ".商品名称:{$goods['goods_name']}\n";
             $content .= ($key + 1) . ".商品名称:{$goods['goods_name']}\n";
-            !empty($goods['goods_attr']) && $content .= " 商品规格:{$goods['goods_attr']}\n";
+            if (!empty($goods['goods_props'])) {
+                $goodsAttr = GoodsService::goodsPropsToAttr($goods['goods_props']);
+                $content .= " 商品规格:{$goodsAttr}\n";
+            }
             $content .= " 购买数量:{$goods['total_num']}\n";
             $content .= " 购买数量:{$goods['total_num']}\n";
             $content .= " 商品总价:{$goods['total_price']}元\n\n";
             $content .= " 商品总价:{$goods['total_price']}元\n\n";
         }
         }