|
|
@@ -18,6 +18,7 @@ class GoodsClass extends BaseClass
|
|
|
public static $baseFile = '\bizHd\goods\models\Goods';
|
|
|
|
|
|
const LOCK_STOCK_GOODS = 'lock_stock_goods_';//修改库存锁
|
|
|
+
|
|
|
//获取商品完整详情,包括商品的分类 ssh 2019.12.3
|
|
|
public static function getGoodsInfo($id)
|
|
|
{
|
|
|
@@ -39,9 +40,10 @@ class GoodsClass extends BaseClass
|
|
|
|
|
|
$currentData = current($list);
|
|
|
$sjId = $currentData['sjId'];
|
|
|
- $rise = GoodsSettingClass::getRise($sjId);
|
|
|
+ $mainId = $currentData['mainId'] ?? 0;
|
|
|
+ $rise = GoodsSettingClass::getRise($mainId);
|
|
|
|
|
|
- $sjHasCategory = CategoryClass::getCategory($sjId);
|
|
|
+ $sjHasCategory = CategoryClass::getCategory($mainId);
|
|
|
|
|
|
foreach ($list as $key => $val) {
|
|
|
$id = $val['id'];
|
|
|
@@ -81,76 +83,26 @@ class GoodsClass extends BaseClass
|
|
|
|
|
|
public static function addGoods($data)
|
|
|
{
|
|
|
- $categoryIdList = isset($data['categoryIdList']) && !empty($data['categoryIdList']) ? $data['categoryIdList'] : [];
|
|
|
- unset($data['categoryIdList']);
|
|
|
- if (empty($categoryIdList)) {
|
|
|
- util::fail('没有选择分类');
|
|
|
- }
|
|
|
- $goodsStyleList = isset($data['goodsStyleList']) && !empty($data['goodsStyleList']) ? $data['goodsStyleList'] : [];
|
|
|
-
|
|
|
- if (isset($data['goodsStyle']) && $data['goodsStyle'] == 1) {
|
|
|
- if (empty($goodsStyleList)) {
|
|
|
- util::fail('请填写款式');
|
|
|
- }
|
|
|
- foreach ($goodsStyleList as $goodsStyle) {
|
|
|
- if (empty($goodsStyle['styleName'])) {
|
|
|
- util::fail('请填写款式名称');
|
|
|
- }
|
|
|
- if (isset($goodsStyle['price']) == false || is_numeric($goodsStyle['price']) == false) {
|
|
|
- util::fail('请填写款式价格');
|
|
|
- }
|
|
|
- if (empty($goodsStyle['picture'])) {
|
|
|
- util::fail('请上传款式图片');
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (isset($data['price']) == false || is_numeric($data['price']) == false) {
|
|
|
- util::fail('请填写商品价格');
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //用商户id生成商品的编号
|
|
|
- $sjId = $data['sjId'];
|
|
|
$data['createTime'] = date("Y-m-d H:i:s");
|
|
|
- $data['shopImg'] = json_encode($data['shopImg']);
|
|
|
- $data['briefContent'] = isset($data['briefContent']) ? $data['briefContent'] : '';
|
|
|
- $data['content'] = isset($data['content']) ? $data['content'] : '';
|
|
|
- $data['stock'] = isset($data['stock']) && is_numeric($data['stock']) && $data['stock'] >= 0 ? $data['stock'] : Goods::FULL_STOCK;
|
|
|
- $data['sold'] = isset($data['sold']) && is_numeric($data['sold']) && $data['sold'] >= 0 ? $data['sold'] : 0;
|
|
|
+ if (isset($data['shopImg']) && !empty($data['shopImg'])) {
|
|
|
+ $data['shopImg'] = json_encode($data['shopImg']);
|
|
|
+ }
|
|
|
$data['py'] = stringUtil::py($data['name']);
|
|
|
- $goodsInfo = self::add($data);
|
|
|
- $id = $goodsInfo['id'];
|
|
|
- $name = $goodsInfo['name'];
|
|
|
+ $info = self::add($data, true);
|
|
|
+ $id = $info->id;
|
|
|
+ $name = $info->name;
|
|
|
$py = $data['py'] ?? '';
|
|
|
-
|
|
|
- //处理分类
|
|
|
- $categoryData = CategoryClass::getCategory($sjId);
|
|
|
- $hasCategoryIds = array_keys($categoryData);
|
|
|
- $diff = array_diff($categoryIdList, $hasCategoryIds);
|
|
|
- if (!empty($diff)) {
|
|
|
- util::fail('不能使用别人的分类');
|
|
|
- }
|
|
|
- $addCategory = [];
|
|
|
- foreach ($categoryIdList as $categoryId) {
|
|
|
- $cName = $categoryData[$categoryId]['categoryName'];
|
|
|
- $addCategory[] = ['gId' => $id, 'name' => $name, 'cId' => $categoryId, 'cName' => $cName, 'sjId' => $data['sjId'], 'py' => $py];
|
|
|
- }
|
|
|
- GoodsCategoryClass::batchAdd($addCategory);
|
|
|
- // 分类商品数+1
|
|
|
- CategoryClass::counters([
|
|
|
- 'goodsNum' => 1
|
|
|
- ], [
|
|
|
- 'id' => $categoryIdList
|
|
|
- ]);
|
|
|
- //处理款式
|
|
|
- if (!empty($goodsStyleList) && $data['goodsStyle'] == 1) {
|
|
|
- $addStyle = [];
|
|
|
- foreach ($goodsStyleList as $goodsStyle) {
|
|
|
- $addStyle[] = ['styleName' => $goodsStyle['styleName'], 'goodsId' => $id, 'picture' => $goodsStyle['picture'], 'price' => $goodsStyle['price']];
|
|
|
- }
|
|
|
- GoodsStyleClass::batchAdd($addStyle);
|
|
|
+ $sjId = $data['sjId'] ?? 0;
|
|
|
+ $mainId = $data['mainId'] ?? 0;
|
|
|
+ $categoryData = CategoryClass::getCategory($mainId);
|
|
|
+ $catIds = $data['catIds'] ?? [];
|
|
|
+ foreach ($catIds as $catId) {
|
|
|
+ $cName = $categoryData[$catId]['categoryName'];
|
|
|
+ $addCategory = ['gId' => $id, 'name' => $name, 'cId' => $catId, 'cName' => $cName, 'sjId' => $sjId, 'py' => $py, 'mainId' => $mainId];
|
|
|
+ GoodsCategoryClass::add($addCategory);
|
|
|
+ CategoryClass::counters(['goodsNum' => 1], ['id' => $catId]);
|
|
|
}
|
|
|
- return $goodsInfo;
|
|
|
+ return $info;
|
|
|
}
|
|
|
|
|
|
//更新商品 ssh 2019.12.7
|
|
|
@@ -161,12 +113,10 @@ class GoodsClass extends BaseClass
|
|
|
if (empty($categoryIdList)) {
|
|
|
util::fail('没有选择分类');
|
|
|
}
|
|
|
- $goodsStyleList = isset($data['goodsStyleList']) && !empty($data['goodsStyleList']) ? $data['goodsStyleList'] : [];
|
|
|
- unset($data['goodsStyleList']);
|
|
|
$py = stringUtil::py($data['name']);
|
|
|
- //处理分类
|
|
|
- $sjId = $data['sjId'];
|
|
|
- $categoryData = CategoryClass::getCategory($sjId);
|
|
|
+
|
|
|
+ $mainId = $data['mainId'] ?? 0;
|
|
|
+ $categoryData = CategoryClass::getCategory($mainId);
|
|
|
$hasCategoryIds = array_keys($categoryData);
|
|
|
$diff = array_diff($categoryIdList, $hasCategoryIds);
|
|
|
if (!empty($diff)) {
|
|
|
@@ -176,11 +126,7 @@ class GoodsClass extends BaseClass
|
|
|
// 当前商品的分类
|
|
|
$goodsHasCategoryIds = GoodsCategoryService::getGoodsHasCategoryIds($id);
|
|
|
// 分类商品数-1
|
|
|
- CategoryClass::counters([
|
|
|
- 'goodsNum' => -1
|
|
|
- ], [
|
|
|
- 'id' => $goodsHasCategoryIds
|
|
|
- ]);
|
|
|
+ CategoryClass::counters(['goodsNum' => -1], ['id' => $goodsHasCategoryIds]);
|
|
|
GoodsCategoryClass::delGoodsCategory($id);
|
|
|
$addCategory = [];
|
|
|
foreach ($categoryIdList as $categoryId) {
|
|
|
@@ -189,17 +135,7 @@ class GoodsClass extends BaseClass
|
|
|
}
|
|
|
GoodsCategoryClass::batchAdd($addCategory);
|
|
|
// 分类商品数+1
|
|
|
- CategoryClass::counters([
|
|
|
- 'goodsNum' => 1
|
|
|
- ], [
|
|
|
- 'id' => $categoryIdList
|
|
|
- ]);
|
|
|
-
|
|
|
- //处理款式
|
|
|
- if (!empty($goodsStyleList) && $data['goodsStyle'] == 1) {
|
|
|
- GoodsStyleClass::updateGoodsStyle($goodsStyleList, $id);
|
|
|
- }
|
|
|
-
|
|
|
+ CategoryClass::counters(['goodsNum' => 1], ['id' => $categoryIdList]);
|
|
|
$data['shopImg'] = json_encode($data['shopImg']);
|
|
|
$data['py'] = $py;
|
|
|
if (isset($data['stock']) && $data['stock'] === '') {
|
|
|
@@ -246,7 +182,7 @@ class GoodsClass extends BaseClass
|
|
|
|
|
|
//库存变动入口
|
|
|
//加库存
|
|
|
- public static function addStock($goodsId,$mainId,$num)
|
|
|
+ public static function addStock($goodsId, $mainId, $num)
|
|
|
{
|
|
|
$key = self::LOCK_STOCK_GOODS . '_' . $goodsId;
|
|
|
$lock = util::lock($key);
|
|
|
@@ -259,7 +195,7 @@ class GoodsClass extends BaseClass
|
|
|
util::fail("成品不存在");
|
|
|
}
|
|
|
$goodsMainId = $goodsData['mainId'];
|
|
|
- if($mainId !== $goodsMainId){
|
|
|
+ if ($mainId != $goodsMainId) {
|
|
|
util::unlock($key);
|
|
|
util::fail("非法参数");
|
|
|
}
|
|
|
@@ -267,13 +203,13 @@ class GoodsClass extends BaseClass
|
|
|
//改库存
|
|
|
$newStock = $goodsData['stock'] + $num;
|
|
|
$data['stock'] = $newStock;
|
|
|
- self::updateById($goodsId,$data);
|
|
|
+ self::updateById($goodsId, $data);
|
|
|
util::unlock($key);
|
|
|
return ['oldStock' => $goodsData['stock'], 'newStock' => $newStock];
|
|
|
}
|
|
|
|
|
|
//减库存
|
|
|
- public static function decreaseStock($goodsId,$mainId,$num)
|
|
|
+ public static function decreaseStock($goodsId, $mainId, $num)
|
|
|
{
|
|
|
$key = self::LOCK_STOCK_GOODS . '_' . $goodsId;
|
|
|
$lock = util::lock($key);
|
|
|
@@ -286,7 +222,7 @@ class GoodsClass extends BaseClass
|
|
|
util::fail("成品不存在");
|
|
|
}
|
|
|
$goodsMainId = $goodsData['mainId'];
|
|
|
- if($mainId !== $goodsMainId){
|
|
|
+ if ($mainId != $goodsMainId) {
|
|
|
util::unlock($key);
|
|
|
util::fail("非法参数");
|
|
|
}
|
|
|
@@ -294,7 +230,7 @@ class GoodsClass extends BaseClass
|
|
|
//改库存
|
|
|
$newStock = $goodsData['stock'] - $num;
|
|
|
$data['stock'] = $newStock;
|
|
|
- self::updateById($goodsId,$data);
|
|
|
+ self::updateById($goodsId, $data);
|
|
|
util::unlock($key);
|
|
|
return ['oldStock' => $goodsData['stock'], 'newStock' => $newStock];
|
|
|
}
|