|
|
@@ -10,9 +10,9 @@ use common\services\xhItemService;
|
|
|
|
|
|
class ProductClass extends BaseClass
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
public static $baseFile = '\bizGhs\product\models\Product';
|
|
|
-
|
|
|
+
|
|
|
//根据itemIds获取相应的花材信息
|
|
|
public static function getProductInfoByItemIds(array $itemIds)
|
|
|
{
|
|
|
@@ -21,7 +21,7 @@ class ProductClass extends BaseClass
|
|
|
$data = self::groupItemBaseInfo($data);
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据花材ID,获取花材名称,图片
|
|
|
public static function groupItemBaseInfo($list)
|
|
|
{
|
|
|
@@ -37,24 +37,24 @@ class ProductClass extends BaseClass
|
|
|
$unitNum = $data[$v['itemId']]['unitNum']??0;
|
|
|
$stockInfo = self::formatStock($v['stock'], $unitNum);
|
|
|
$list[$k]['cover'] = $coverInfo['coverUrl'];
|
|
|
- $list[$k]['bigNum'] = $stockInfo['bigNum'];
|
|
|
+ $list[$k]['num'] = $stockInfo['num'];
|
|
|
$list[$k]['smallNum'] = $stockInfo['smallNum'];
|
|
|
$list[$k]['itemName'] = $data[$v['itemId']]['name']??'';
|
|
|
$list[$k]['unitCount'] = $unitNum ? 2 : 1;
|
|
|
- $list[$k]['bigUnit'] = xhItemService::getUnitName($data[$v['itemId']]['bigUnit']);
|
|
|
+ $list[$k]['unit'] = xhItemService::getUnitName($data[$v['itemId']]['bigUnit']);
|
|
|
$list[$k]['smallUnit'] = xhItemService::getUnitName($data[$v['itemId']]['smallUnit']);
|
|
|
}
|
|
|
}
|
|
|
return $list;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据花材ID,库存=》 计算出多少扎,多少支
|
|
|
public static function formatStockByItemId($itemId, $stock)
|
|
|
{
|
|
|
$unitNum = xhItemService::getItemUnitNum($itemId);
|
|
|
return self::formatStock($stock, $unitNum);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//花材的库存转换: 库存是小数,根据各个花材的unitNum, 计算出多少扎,多少支
|
|
|
public static function formatStock($stock, $unitNum)
|
|
|
{
|
|
|
@@ -65,29 +65,43 @@ class ProductClass extends BaseClass
|
|
|
$stockPiece = bcdiv(bcmul($stockArr[1], $unitNum, 1), 100);
|
|
|
}
|
|
|
return [
|
|
|
- 'bigNum' => $stockBundle,
|
|
|
+ 'num' => $stockBundle,
|
|
|
'smallNum' => (int)$stockPiece,
|
|
|
];
|
|
|
}
|
|
|
-
|
|
|
- public static function mergeItemNumByItemId($itemNumBundle, $itemNumPiece, $itemId)
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据 花材ID,将花材大小数量 换算成小数
|
|
|
+ * @param $num 大单位 数量
|
|
|
+ * @param $smallNum 小单位 数量
|
|
|
+ * @param $itemId 花材ID
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ public static function mergeItemNumByItemId($num, $smallNum, $itemId)
|
|
|
{
|
|
|
$unitNum = xhItemService::getItemUnitNum($itemId);
|
|
|
- return self::mergeItemNum($itemNumBundle, $itemNumPiece, $unitNum);
|
|
|
+ return self::mergeItemNum($num, $smallNum, $unitNum);
|
|
|
}
|
|
|
-
|
|
|
- //花材扎、支 转换 统一数
|
|
|
- public static function mergeItemNum($itemNumBundle, $itemNumPiece, $unitNum)
|
|
|
+
|
|
|
+ //花材扎、支 合并转换 小数
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param $num 大单位 数量
|
|
|
+ * @param $smallNum 小单位 数量
|
|
|
+ * @param $unitNum 花材比例
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ public static function mergeItemNum($num, $smallNum, $unitNum)
|
|
|
{
|
|
|
$stockDecimal = 0;
|
|
|
if ($unitNum > 0) {
|
|
|
- $stockDecimal = bcdiv($itemNumPiece, $unitNum, 2);
|
|
|
+ $stockDecimal = bcdiv($smallNum, $unitNum, 2);
|
|
|
}
|
|
|
- $itemNum = bcadd($itemNumBundle, $stockDecimal, 2);
|
|
|
+ $itemNum = bcadd($num, $stockDecimal, 2);
|
|
|
return $itemNum;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//获取常用的itemIds
|
|
|
public static function getOftenItemIds($merchantId)
|
|
|
{
|
|
|
@@ -97,11 +111,11 @@ class ProductClass extends BaseClass
|
|
|
}
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//加库存,允许负库存,负数数量(盘点时)
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @param $productId 门店下的花材ID(xhGhsItemInfo 主键ID)
|
|
|
* @param $itemNumBundle 花材数量(扎)
|
|
|
@@ -122,8 +136,15 @@ class ProductClass extends BaseClass
|
|
|
self::updateById($productId, ['stock' => $newStock]);
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
- //根据数量加库存
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 对商品ID 加库存
|
|
|
+ * @param $productId 商品ID
|
|
|
+ * @param $itemNum 数量
|
|
|
+ * @return bool
|
|
|
+ */
|
|
|
public static function addStockByItemNum($productId, $itemNum)
|
|
|
{
|
|
|
$productData = self::getById($productId, true);
|
|
|
@@ -135,9 +156,9 @@ class ProductClass extends BaseClass
|
|
|
$productData->save();
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//减库存,允许负库存,负数数量(盘点时)
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @param $productId 门店下的花材ID(xhGhsItemInfo 主键ID)
|
|
|
* @param $itemNumBundle 花材数量(扎)
|
|
|
@@ -159,8 +180,8 @@ class ProductClass extends BaseClass
|
|
|
$productData->save();
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//根据数量加库存
|
|
|
public static function decreaseStockByItemNum($productId, $itemNum)
|
|
|
{
|
|
|
@@ -172,9 +193,9 @@ class ProductClass extends BaseClass
|
|
|
self::updateById($productId, ['stock' => $newStock]);
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//计算价格
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @param $productId 门店下的花材ID(xhGhsItemInfo 主键ID)
|
|
|
* @param $itemNumBundle 花材数量(扎)
|
|
|
@@ -199,11 +220,11 @@ class ProductClass extends BaseClass
|
|
|
$piecePrice = bcmul($unitPrice, $itemNumPiece, 2);
|
|
|
}
|
|
|
$bundlePrice = bcmul($price, $itemNumBundle, 2);
|
|
|
-
|
|
|
+
|
|
|
$total = bcadd($bundlePrice, $piecePrice, 2);
|
|
|
return $total;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据门店ID, 平台花材ID, 获取门店的花材ID
|
|
|
public static function getGhsProductId($shopId, $itemId)
|
|
|
{
|
|
|
@@ -213,7 +234,7 @@ class ProductClass extends BaseClass
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static function getGhsProductDataByItemId($shopId, $itemId)
|
|
|
{
|
|
|
$where = [
|
|
|
@@ -223,7 +244,7 @@ class ProductClass extends BaseClass
|
|
|
$data = self::getByCondition($where);
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//有效花材判断,包括id有效、同个门店等 shish 2021.1.19
|
|
|
public static function valid($ids, $shopId)
|
|
|
{
|
|
|
@@ -238,7 +259,14 @@ class ProductClass extends BaseClass
|
|
|
if (count($productList) != count($ids)) {
|
|
|
util::fail('存在无效商品');
|
|
|
}
|
|
|
- }
|
|
|
+ }else{
|
|
|
+ util::fail('商品不存在');
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ //通过ids 批量获取花材商品的信息
|
|
|
+ public static function getProductByIds($ids)
|
|
|
+ {
|
|
|
+ return self::getByIds($ids);
|
|
|
+ }
|
|
|
}
|