|
|
@@ -19,7 +19,7 @@ class ProductClass extends BaseClass
|
|
|
const PRICE_LABEL_CHANGE = 2; //改价
|
|
|
const LOCK_STOCK = 'lock_stock';//修改库存锁
|
|
|
const LOCK_PRICE = 'lock_price'; //改价锁
|
|
|
-
|
|
|
+
|
|
|
//根据itemIds获取相应的花材信息
|
|
|
public static function getProductInfoByItemIds(array $itemIds, $shopId)
|
|
|
{
|
|
|
@@ -28,7 +28,7 @@ class ProductClass extends BaseClass
|
|
|
$data = self::groupItemBaseInfo($data);
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据花材ID,获取花材名称,图片
|
|
|
public static function groupItemBaseInfo($list)
|
|
|
{
|
|
|
@@ -67,15 +67,15 @@ class ProductClass extends BaseClass
|
|
|
}
|
|
|
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)
|
|
|
{
|
|
|
@@ -99,7 +99,7 @@ class ProductClass extends BaseClass
|
|
|
'smallNum' => $smallNum,
|
|
|
];
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 根据 花材ID,将花材大小数量 换算成小数
|
|
|
* @param $bigNum 大单位 数量
|
|
|
@@ -112,9 +112,9 @@ class ProductClass extends BaseClass
|
|
|
$unitNum = xhItemService::getItemUnitNum($itemId);
|
|
|
return self::mergeItemNum($bigNum, $smallNum, $unitNum);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//花材扎、支 合并转换 小数
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @param $bigNum 大单位 数量
|
|
|
* @param $smallNum 小单位 数量
|
|
|
@@ -130,8 +130,8 @@ class ProductClass extends BaseClass
|
|
|
$itemNum = bcadd($bigNum, $stockDecimal, 2);
|
|
|
return $itemNum;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//获取常用的itemIds
|
|
|
public static function getOftenItemIds($shopId)
|
|
|
{
|
|
|
@@ -141,11 +141,11 @@ class ProductClass extends BaseClass
|
|
|
}
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//加库存,允许负库存,负数数量(盘点时)
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @param $productId 门店下的花材ID(xhGhsItemInfo 主键ID)
|
|
|
* @param $itemNumBundle 花材数量(扎)
|
|
|
@@ -166,10 +166,10 @@ class ProductClass extends BaseClass
|
|
|
self::updateStockById($productId, $newStock);
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//todo 库存修改 加锁
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 对商品ID 加库存
|
|
|
* @param $productId 商品ID
|
|
|
@@ -186,7 +186,7 @@ class ProductClass extends BaseClass
|
|
|
self::updateStockById($productId, $newStock);
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//减库存,允许负库存,负数数量(盘点时)
|
|
|
//todo 库存修改 加锁
|
|
|
/**
|
|
|
@@ -209,8 +209,8 @@ class ProductClass extends BaseClass
|
|
|
self::updateStockById($productId, $newStock);
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//根据数量减库存
|
|
|
//todo 库存修改 加锁
|
|
|
/**
|
|
|
@@ -228,11 +228,11 @@ class ProductClass extends BaseClass
|
|
|
self::updateStockById($productId, $newStock);
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//计算价格
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @param $productId 门店下的花材ID(xhGhsItemInfo 主键ID)
|
|
|
* @param $bigNum 花材数量(扎)
|
|
|
@@ -257,11 +257,11 @@ class ProductClass extends BaseClass
|
|
|
$piecePrice = bcmul($unitPrice, $smallNum, 2);
|
|
|
}
|
|
|
$bundlePrice = bcmul($price, $bigNum, 2);
|
|
|
-
|
|
|
+
|
|
|
$total = bcadd($bundlePrice, $piecePrice, 2);
|
|
|
return $total;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据门店ID, 平台花材ID, 获取门店的花材ID
|
|
|
public static function getGhsProductId($shopId, $itemId)
|
|
|
{
|
|
|
@@ -271,7 +271,7 @@ class ProductClass extends BaseClass
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public static function getGhsProductDataByItemId($shopId, $itemId)
|
|
|
{
|
|
|
$where = [
|
|
|
@@ -281,7 +281,7 @@ class ProductClass extends BaseClass
|
|
|
$data = self::getByCondition($where);
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据多个itemIds shopId 获取对应的 productId linqh 2021.1.24
|
|
|
public static function getGhsProductDataByItemIds($shopId, $itemIds)
|
|
|
{
|
|
|
@@ -289,14 +289,14 @@ class ProductClass extends BaseClass
|
|
|
$data = self::getAllByCondition($where, null, "*");
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//补全itemId (针对入库时 当前门店下无对应的花材 itemId) linqh 2021.1.24
|
|
|
public static function complementProduct($merchantId, $shopId, $itemInfo)
|
|
|
{
|
|
|
$itemIds = array_column($itemInfo, "itemId");
|
|
|
$itemData = array_column($itemInfo, null, "itemId");
|
|
|
$productData = self::getGhsProductDataByItemIds($shopId, $itemIds);
|
|
|
-
|
|
|
+
|
|
|
if (count($productData) !== count($itemIds)) {
|
|
|
$productDataItemIds = array_column($productData, 'itemId');
|
|
|
//取差集
|
|
|
@@ -314,7 +314,7 @@ class ProductClass extends BaseClass
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//有效花材判断,包括id有效、同个门店等 shish 2021.1.19
|
|
|
public static function valid($list, $shopId)
|
|
|
{
|
|
|
@@ -333,13 +333,13 @@ class ProductClass extends BaseClass
|
|
|
util::fail('商品不存在');
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//通过ids 批量获取花材商品的信息
|
|
|
public static function getProductByIds($ids)
|
|
|
{
|
|
|
return self::getByIds($ids);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//修改花材商品的库存: 统一方法
|
|
|
//todo 库存修改 加锁
|
|
|
public static function updateStockById($id, $stock, $adminId = 0)
|
|
|
@@ -357,7 +357,7 @@ class ProductClass extends BaseClass
|
|
|
util::unlock($key);
|
|
|
return $res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//订单退回库存
|
|
|
public static function backStockByOrderItemInfo($orderItemInfo)
|
|
|
{
|
|
|
@@ -365,8 +365,8 @@ class ProductClass extends BaseClass
|
|
|
ProductClass::addStockByItemNum($v['productId'], $v['itemNum']);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//库存告警的itemIds (库存数量少于告警数量) linqh 2021.1.26
|
|
|
public static function getItemIdsWarning($merchantId, $shopId)
|
|
|
{
|
|
|
@@ -378,7 +378,7 @@ class ProductClass extends BaseClass
|
|
|
$productItemStock[$v['itemId']] = $v['stock'];
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//获取merchantId 下 对应的itemId=>stockWaring
|
|
|
$itemData = ItemClass::getAllList("itemId,stockWarning", ['merchantId' => $merchantId]);
|
|
|
$itemStockWaring = [];
|
|
|
@@ -387,32 +387,31 @@ class ProductClass extends BaseClass
|
|
|
$itemStockWaring[$v['itemId']] = $v['stockWarning'];
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//取库存数量少于告警数量 的itemId
|
|
|
$itemIds = [];
|
|
|
foreach ($productItemStock as $k => $v) {
|
|
|
$stockWaring = $itemStockWaring[$k] ?? 0;
|
|
|
- if ($v < $stockWaring) {
|
|
|
+ if ($v <= $stockWaring) {
|
|
|
$itemIds[] = $k;
|
|
|
}
|
|
|
}
|
|
|
return $itemIds;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//获取当前门店下商品信息 linqh 2021.1.28
|
|
|
public static function getProductData($id, $shopId, $obj = false)
|
|
|
{
|
|
|
return ProductClass::getByCondition(['id' => $id, 'shopId' => $shopId], $obj);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//修改价格 linqh 2021.1.28
|
|
|
public static function changePrice($id, $shopId, $price, $priceLabel)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
$res = ProductClass::updateByCondition(['id' => $id, 'shopId' => $shopId], ['price' => $price, 'priceLabel' => $priceLabel]);
|
|
|
return $res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//下单时计算商品的价格 linqh 2021.1.28
|
|
|
//itemInfo : [{"classId":5,"productId":3,"bigNum":1,"smallNum":2},{"classId":5,"productId":4,"bigNum":1,"smallNum":5}]
|
|
|
//返回 [{"productId":3,"price":2.1}]
|
|
|
@@ -445,7 +444,7 @@ 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']);
|
|
|
@@ -456,10 +455,10 @@ class ProductClass extends BaseClass
|
|
|
$tmp['num'] = $itemNum;
|
|
|
$tmp['bigNum'] = $v['bigNum'];
|
|
|
$tmp['smallNum'] = $v['smallNum'];
|
|
|
-
|
|
|
+
|
|
|
$data[] = $tmp;
|
|
|
}
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|