Jelajahi Sumber

优化订单,丰富计算价格方法

林琦海 5 tahun lalu
induk
melakukan
3953188cae

+ 15 - 1
app/shop/controllers/ItemController.php

@@ -17,7 +17,7 @@ class ItemController extends BaseController
     {
         //classId
         $classId = Yii::$app->request->get('classId',0);
-        $where['merchantId'] =  $this->sjId;
+        $where['sjId'] =  $this->sjId;
         $where['classId'] =  $classId;
         $list = ItemClass::getItemList($where);
         util::success($list);
@@ -42,6 +42,19 @@ class ItemController extends BaseController
         util::complete('修改成功');
     }
 
+    //排序
+    public function actionChangeSort()
+    {
+        //[id=>sort]
+        $data = Yii::$app->request->post();
+        if(empty($data)){
+            util::fail('参数错误');
+        }
+        //循环修改
+
+
+    }
+
     public function actionDelete()
     {
         $get = Yii::$app->request->get();
@@ -56,6 +69,7 @@ class ItemController extends BaseController
         $py = Yii::$app->request->get('py','');
         $where = [];
         if($py){
+            $py = strtolower($py);
             $where = ['py' => $py];
         }
         $list = xhItemService::getItemList('*',$where,'id desc');

+ 1 - 0
biz-ghs/order/classes/CheckOrderClass.php

@@ -43,6 +43,7 @@ class CheckOrderClass extends BaseClass
 
         $data['orderSn'] = $orderSn;
         $ghsItemInfo = $data['itemInfo']; // [{bigNum:0,smallNum:0,productId:1}]
+        $ghsItemInfo = self::mergeItemInfo($ghsItemInfo);
 
         $sumNum = self::sumNumByItemInfo($ghsItemInfo);
         $data['bigNum'] = $sumNum['bigNum'];// 总的大单位数量 总共多少扎

+ 1 - 0
biz-ghs/order/classes/PurchaseOrderClass.php

@@ -42,6 +42,7 @@ class PurchaseOrderClass extends BaseClass
         $orderSn = orderSn::getGhsPurchaseSn();
         $data['orderSn'] = $orderSn;
         $ghsItemInfo = $data['itemInfo']; // [{itemId:0,bigNum:0,smallNum:0,productId:1.0,itemPrice:1}]
+        $ghsItemInfo = self::mergeItemInfo($ghsItemInfo);
         //计算出总共多少扎,多少支
         $bigNum = 0; //总共多少扎
         $smallNum = 0; //总共多少支

+ 1 - 1
biz-ghs/order/classes/StockOutOrderClass.php

@@ -40,7 +40,7 @@ class StockOutOrderClass extends BaseClass
         $orderSn =orderSn::getGhsStockOutSn();
         $data['orderSn'] = $orderSn;
         $ghsItemInfo = $data['itemInfo']; // [{bigNum:0,smallNum:0,productId:1}]
-
+        $ghsItemInfo = self::mergeItemInfo($ghsItemInfo);
         $sumNum = self::sumNumByItemInfo($ghsItemInfo);
         $data['bigNum'] = $sumNum['bigNum'];// 总的大单位数量 总共多少扎
         $data['smallNum'] = $sumNum['smallNum']; //总的小单位数量 总共多少支

+ 23 - 7
biz-ghs/order/traits/OrderTrait.php

@@ -14,7 +14,7 @@ use common\services\xhItemService;
 
 trait OrderTrait
 {
-	
+
 	//二维数组拼装admin信息
 	public static function groupAdminList($list)
 	{
@@ -31,7 +31,7 @@ trait OrderTrait
 		}
 		return $list;
 	}
-	
+
 	//2021.1.22 linqh 一维数组拼装admin信息
 	public static function groupAdmin($data)
 	{
@@ -41,9 +41,9 @@ trait OrderTrait
 		$data['nickName'] = $adminInfo['nickName']??'';
 		$data['avatar'] = $adminInfo['avatar']??'';
 		return $data;
-		
+
 	}
-	
+
 	public static function groupSupplierList($list)
 	{
 		if (empty($list)) {
@@ -61,7 +61,7 @@ trait OrderTrait
 		}
 		return $list;
 	}
-	
+
 	//通过itemInfo 获取商品ID 对应数据(库存) linqh 2021.1.23
 	public static function getProductMapData($itemInfo)
 	{
@@ -70,7 +70,7 @@ trait OrderTrait
 		$productData = array_column($productData, NULL, 'id');
 		return $productData;
 	}
-	
+
 	//通过itemInfo  求和大、小单位数  linqh 2021.1.25
 	public static function sumNumByItemInfo($itemInfo)
 	{
@@ -87,5 +87,21 @@ trait OrderTrait
 			'smallNum' => $smallNum
 		];
 	}
-	
+
+	//itemInfo 相同product合并处理 [{"classId":5,"productId":3,"bigNum":1,"smallNum":2},{"classId":4,"productId":3,"bigNum":1,"smallNum":5}]
+    public static function mergeItemInfo($itemInfo)
+    {
+        $newItemInfo = [];
+        foreach ($itemInfo as $v){
+            $productId = $v['productId'];
+            if(isset($newItemInfo[$productId])){
+                $newItemInfo[$productId]['bigNum'] = bcadd($v['bigNum'],$newItemInfo[$productId]['bigNum'],2);
+                $newItemInfo[$productId]['smallNum'] = bcadd($v['smallNum'],$newItemInfo[$productId]['smallNum'],2);
+            }else{
+                $newItemInfo[$productId] = $v;
+            }
+        }
+        $newItemInfo = array_merge($newItemInfo);
+        return $newItemInfo;
+    }
 }

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

@@ -5,13 +5,14 @@ namespace bizGhs\product\classes;
 
 use bizGhs\base\classes\BaseClass;
 use bizGhs\item\classes\ItemClass;
+use bizGhs\order\traits\OrderTrait;
 use common\components\util;
 use common\services\xhItemService;
 use Yii;
 
 class ProductClass extends BaseClass
 {
-
+    use OrderTrait;
     public static $baseFile = '\bizGhs\product\models\Product';
     const PRICE_LABEL_AUTO = 1; //自动调价
     const PRICE_LABEL_CHANGE = 2; //改价
@@ -419,6 +420,7 @@ class ProductClass extends BaseClass
         if (empty($itemInfo)) {
             return $data;
         }
+        $itemInfo = self::mergeItemInfo($itemInfo);
         $productIds = array_column($itemInfo, 'productId');
         $productData = ProductClass::getProductByIds($productIds);
         $productData = array_column($productData, NULL, 'id');
@@ -439,6 +441,18 @@ class ProductClass extends BaseClass
             $tmp = [];
             $tmp['productId'] = $productId;
             $tmp['price'] = $price;
+
+            $tmp['name'] =   $itemData[$itemId]['name'] ?? '';
+            $tmp['smallUnit'] =   xhItemService::getUnitName($itemData[$itemId]['smallUnit']);
+            $tmp['bigUnit'] =   xhItemService::getUnitName($itemData[$itemId]['bigUnit']);
+            $tmp['cover'] =   self::groupImg($itemData[$itemId]['cover'] ?? '');
+            $tmp['itemId'] = $itemId;
+            $tmp['rank'] = $productData[$productId]['rank'] ?? '';
+            $tmp['unitPrice'] = $itemPrice;
+            $tmp['num'] = $itemNum;
+            $tmp['bigNum'] = $v['bigNum'];
+            $tmp['smallNum'] = $v['smallNum'];
+
             $data[] = $tmp;
         }
         return $data;

+ 1 - 1
biz/item/classes/ItemClass.php

@@ -13,7 +13,7 @@ class ItemClass extends BaseClass
     //列表数据
     public static function getItemList($where)
     {
-        $data = self::getList('*', $where, 'addTime DESC');
+        $data = self::getList('*', $where, 'inTurn DESC');
         $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
         if (empty($list)) {
             return $data;

+ 1 - 0
biz/item/services/ItemService.php

@@ -124,4 +124,5 @@ class ItemService extends BaseService
         return $data;
     }
 
+    //
 }

+ 4 - 0
sql.sql

@@ -1358,3 +1358,7 @@ ALTER TABLE `xhGhsOrderItem` ADD `name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT
 ALTER TABLE `xhGhsOrderItem` ADD cover VARCHAR(500) NOT NULL DEFAULT '' COMMENT '花材封面' AFTER `name`;
 ALTER TABLE xhGhsOrderItem ADD INDEX orderSn(`orderSn`);
 
+=====
+==linqh 2021-03-02
+ALTER TABLE `xhItem`
+ADD COLUMN `inTurn`  int(11) NOT NULL DEFAULT 0 COMMENT '排序,数字越大越靠前' AFTER `unitAddPrice`;