shish 5 éve
szülő
commit
c55427b701

+ 1 - 0
app-hd/controllers/PurchaseController.php

@@ -94,6 +94,7 @@ class PurchaseController extends BaseController
                 'count' => $count,
             ];
             util::success($data);
+
         } catch (Exception $e) {
             $transaction->rollBack();
             util::fail();

+ 28 - 0
app-hd/controllers/ShopExtController.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace hd\controllers;
+
+use biz\ghs\classes\GhsClass;
+use biz\product\classes\XjClass;
+use biz\shop\classes\ShopExtClass;
+use common\components\util;
+use Yii;
+
+class ShopExtController extends BaseController
+{
+
+    public $guestAccess = [];
+
+    //取出供应商的小菊颜色 shish 20210907
+    public function actionGetGhsXj()
+    {
+        $id = Yii::$app->request->get('ghsId', 0);
+        $ghs = GhsClass::getById($id, true);
+        GhsClass::valid($ghs, $this->shopId);
+        $shopId = $ghs->shopId ?? 0;
+        $ext = ShopExtClass::getByCondition(['shopId' => $shopId], true);
+        $list = XjClass::getSjXj($ext);
+        util::success(['list' => $list]);
+    }
+
+}

+ 2 - 0
biz-ghs/order/services/OrderService.php

@@ -73,6 +73,7 @@ class OrderService extends BaseService
         }
 
         $remark = $data['remark'] ?? '';
+        $xj = $data['xj'] ?? '';
 
         $purchaseData = [
             'product' => $currentProduct,
@@ -95,6 +96,7 @@ class OrderService extends BaseService
             'debt' => $purchaseDebt,
             'getType' => $getType,
             'remark' => $remark,
+            'xj' => $xj,
         ];
         if (isset($data['deadline']) && !empty($data['deadline'])) {
             $purchaseData['deadline'] = $data['deadline'];

+ 1 - 2
biz-ghs/product/classes/ProductClass.php

@@ -893,8 +893,7 @@ class ProductClass extends BaseClass
         foreach ($productList as $k => $v) {
             $itemId = $v['itemId'] ?? 0;
             if (!isset($hdProductData[$itemId])) {
-                //不存在,则新增
-                //获取ptItem信息,写入product
+                //不存在,则从平台新增
                 $ptItem = \biz\item\classes\PtItemClass::getById($itemId);
                 unset($ptItem['addTime']);
                 unset($ptItem['updateTime']);

+ 13 - 0
biz-hd/cg/classes/CgXjClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizHd\cg\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class CgXjClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\cg\models\CgXj';
+
+}

+ 15 - 0
biz-hd/cg/models/CgXj.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\cg\models;
+
+use bizHd\base\models\Base;
+
+class CgXj extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhCgXj';
+    }
+
+}

+ 71 - 5
biz-hd/purchase/classes/PurchaseClass.php

@@ -3,6 +3,7 @@
 namespace bizHd\purchase\classes;
 
 use biz\ghs\classes\GhsClass;
+use biz\product\classes\XjClass;
 use biz\shop\classes\ShopClass;
 use biz\shop\classes\ShopCouponClass;
 use biz\wx\classes\WxMessageClass;
@@ -10,7 +11,9 @@ use bizGhs\admin\classes\AdminClass;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\services\StockRecordService;
+use bizHd\cg\classes\CgXjClass;
 use common\components\dict;
+use common\components\imgUtil;
 use common\components\orderSn;
 use common\components\util;
 use bizHd\base\classes\BaseClass;
@@ -60,9 +63,8 @@ class PurchaseClass extends BaseClass
         $productList = self::mergeItemInfo($productList);
         $data['kindNum'] = count($productList); //多少种花材
 
-        //传过滤的productId 是供应商的,需要转换为零售端(hd)的productId
-        //补充了hdProductId
-        //[{"productId":"113","bigNum":1,"smallNum":0,"classId":"-2","hdProductId":1}]
+        //传过来的是供应商的productId,需要转换为零售端的productId
+        //数据格式 [{"productId":"113","bigNum":1,"smallNum":0,"classId":"-2","hdProductId":1}]
         $shopId = $data['shopId'] ?? 0;
         $sjId = $data['sjId'] ?? 0;
         $productList = ProductClass::toggleProductList($productList, $shopId, $sjId);
@@ -81,6 +83,7 @@ class PurchaseClass extends BaseClass
             $productId = $product['productId'];
             $hdProductId = $product['hdProductId'];
 
+            $variety = $hdProductData[$hdProductId]['variety'] ?? 0;
             $ratio = $hdProductData[$hdProductId]['ratio'] ?? 0; //比例必须一致
             $itemId = $hdProductData[$hdProductId]['itemId'] ?? 0;
             $rank = $hdProductData[$hdProductId]['rank'] ?? 'B';// 花材级别
@@ -121,6 +124,7 @@ class PurchaseClass extends BaseClass
             ];
 
             $productList[$key]['itemInfo'] = json_encode($itemInfo);
+            $productList[$key]['variety'] = $variety;
             $productList[$key]['itemId'] = $itemId;
             $productList[$key]['itemNum'] = $itemNum;
             $productList[$key]['price'] = $price;
@@ -136,6 +140,7 @@ class PurchaseClass extends BaseClass
             $prePrice = bcadd($prePrice, $productTotalPrice, 2);
 
         }
+
         $data['itemPrice'] = $prePrice;
         $sendCost = $data['sendCost'] ?? 0.00;
         $prePrice = bcadd($prePrice, $sendCost, 2);
@@ -183,7 +188,32 @@ class PurchaseClass extends BaseClass
         $current = time() + $validTime;
         $data['deadline'] = $data['deadline'] ?? date("Y-m-d H:i:s", $current);
         $respond = self::add($data, true);
-        PurchaseItemClass::batchAdd($productList);
+
+        foreach ($productList as $productKey => $productVal) {
+            $returnItem = PurchaseItemClass::add($productVal, true);
+            //小菊
+            if (isset($returnItem->variety) && $returnItem->variety == 1) {
+                $unitPrice = $returnItem->price ?? 0;
+                $currentId = $returnItem->id ?? 0;
+                if (isset($data['xj']) && !empty($data['xj'])) {
+                    $xjArr = json_decode($data['xj'], true);
+                    if (is_array($xjArr)) {
+                        $ids = array_column($xjArr, 'id');
+                        $sjInfo = XjClass::getByIds($ids, null, 'id');
+                        $xjData = [];
+                        foreach ($xjArr as $xjItem) {
+                            $id = $xjItem['id'] ?? 0;
+                            $num = $xjItem['num'] ?? 0;
+                            $name = $sjInfo[$id]['name'] ?? '';
+                            $cover = $sjInfo[$id]['cover'] ?? '';
+                            $xjData[] = ['xjId' => $id, 'name' => $name, 'num' => $num, 'price' => $unitPrice, 'itemId' => $currentId, 'cover' => $cover];
+                        }
+                        CgXjClass::batchAdd($xjData);
+                    }
+                }
+            }
+        }
+
         $shop = ShopClass::getLockById($shopId);
         if (empty($shop)) {
             util::fail('没有找到门店');
@@ -375,6 +405,7 @@ class PurchaseClass extends BaseClass
                 $orderSn = $val['orderSn'];
                 $orderItem = PurchaseItemClass::getOrderItemDetail($orderSn);
                 $itemData = [];
+                $xjData = [];
                 if ($orderItem) {
                     foreach ($orderItem as $v) {
                         $info = json_decode($v['itemInfo'], true);
@@ -387,12 +418,47 @@ class PurchaseClass extends BaseClass
                         }
                         $tmp['name'] = $tmp['itemName'];
                         $tmp = array_merge($tmp, $v);
-                        $itemData[] = $tmp;
+
+                        //小菊
+                        if (isset($tmp['variety']) && $tmp['variety'] == 1) {
+                            $currentItemId = $tmp['id'] ?? 0;
+                            $xjList = CgXjClass::getAllByCondition(['itemId' => $currentItemId], null, '*');
+                            if (!empty($xjList)) {
+                                foreach ($xjList as $xjKey => $xj) {
+                                    $xjBase = $tmp;
+                                    $num = $xj['num'] ?? 0;
+                                    $name = $xj['name'] ?? '';
+                                    $cover = $xj['cover'] ?? '';
+                                    $price = $xj['price'] ?? '';
+                                    $totalPrice = bcmul($num, $price, 2);
+                                    if ($num > 0) {
+                                        $xjBase['cover'] = imgUtil::groupImg($cover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
+                                        $xjBase['name'] = $name;
+                                        $xjBase['itemNum'] = floatval($num);
+                                        $xjBase['bigNum'] = floatval($num);
+                                        $xjBase['smallNum'] = 0;
+                                        $xjBase['price'] = $price;
+                                        $xjBase['totalPrice'] = $totalPrice;
+                                        $xjAddList[] = $xjBase;
+                                    }
+                                    $xjData[] = $xjBase;
+                                }
+                            }
+                        } else {
+                            $itemData[] = $tmp;
+                        }
+
                     }
+
+                    if (!empty($xjData)) {
+                        $itemData = array_merge($itemData, $xjData);
+                    }
+
                 }
                 $list[$key]['product'] = $itemData;
             }
         }
+
         return $list;
     }
 

+ 2 - 0
biz-hd/purchase/services/PurchaseService.php

@@ -60,6 +60,7 @@ class PurchaseService extends BaseService
         $discountType = $respond->discountType ?? dict::getDict('discountType', 'noDiscount');
         $discountAmount = $respond->discountAmount ?? 0;
         $remark = $data['remark'] ?? '';
+        $xj = $data['xj'] ?? '';
         $arr = [
             'product' => $product,
             'sjId' => $currentSjId,
@@ -88,6 +89,7 @@ class PurchaseService extends BaseService
             'discountType' => $discountType,
             'discountAmount' => $discountAmount,
             'remark' => $remark,
+            'xj' => $xj,
         ];
         $result = OrderClass::addOrder($arr);
         $saleId = $result['id'] ?? 0;