Commit d5d1e354 authored by luhongguang's avatar luhongguang

update:拼单商品edit

parent abcdffd6
......@@ -549,6 +549,23 @@ class GoodsService
* @throws GoodsException
*/
public static function editGoods($params = [])
{
$marketingType = !empty($params['marketing_type']) ? $params['marketing_type'] : 0;
if ($marketingType == Marketing::MARKETING_TYPE_PINDAN) {
return MarketingPindanGoodsService::pindanMarketingEditGoods($params);
} else {
return self::generalEditGoods($params);
}
}
/**
* 普通商品编辑
* @param $params
* @return bool
* @throws GoodsException
* @throws InterfaceException
*/
public static function generalEditGoods($params)
{
$goodsSpuId = $params["goods_spu_id"];
$goodsSpu = GoodsSpu::get("*", ["goods_spu_id" => $goodsSpuId]);
......
......@@ -181,4 +181,122 @@ class MarketingPindanGoodsService
GoodsService::addGoodsSkuPicRecord($skuId, $skuData);
return $skuId;
}
/**
* 编辑拼单商品
* @param $params
* @return bool
* @throws GoodsException
* @throws \App\Exception\custom\CodeSpecialException
*/
public static function pindanMarketingEditGoods($params)
{
$goodsSkuId = $params["pindan_goods_sku_id"];
$pindanGoodsSku = PindanGoodsSku::get("*", ["pindan_goods_sku_id" => $goodsSkuId]);
if (empty($pindanGoodsSku)) {
throw new GoodsException(["cus" => 15]);
}
GoodsSpu::beginTransaction();
$goodsSpu = GoodsSpu::getRecord(["goods_spu_id" => $pindanGoodsSku["goods_spu_id"]]);
self::editGoodsSpu($goodsSpu, $params);
self::editGoodsSku($goodsSkuId, $pindanGoodsSku, $params);
if (!GoodsSpu::commit()) {
GoodsSpu::rollback();
throw new GoodsException(["cus" => 0]);
}
return true;
}
/**
* 编辑拼单spu
* @param $goodsSpu
* @param array $params
* @return \Api\PhpUtils\Mysql\MysqlBase
* @throws GoodsException
*/
private static function editGoodsSpu($goodsSpu, $params = [])
{
$checkName = GoodsService::checkGoodsName($params["goods_name"], $goodsSpu["life_account_id"], $goodsSpu["goods_spu_id"]);
if (!$checkName["can_use"]) {
throw new GoodsException(['cus' => 17]);
}
return GoodsSpu::save([
"desc_pic_url" => $params["desc_pic_url"],
"desc" => $params["desc"],
], ["goods_spu_id" => $goodsSpu["goods_spu_id"]]);
}
/**
* 编辑拼单sku
* @param $goodsSkuId
* @param $skuData
* @param array $params
* @return \Api\PhpUtils\Mysql\MysqlBase
* @throws GoodsException
* @throws \App\Exception\custom\CodeSpecialException
*/
private static function editGoodsSku($goodsSkuId, $skuData, $params = [])
{
$inventoryCount = $skuData["inventory_rest"] + $params["inventory_add"];
//$inventoryCount = $params["inventory"];
if ($inventoryCount < 0) {
throw new GoodsException(['cus' => 18]);
}
$checkGoodsName = GoodsService::isHaveSensitive($params["goods_name"], 1);
if ($checkGoodsName) {
throw new GoodsException(['cus' => 19]);
}
$checkGoodsDesc = GoodsService::isHaveSensitive($params["desc"], 2);
if ($checkGoodsDesc) {
throw new GoodsException(['cus' => 20]);
}
if ($params["price"] <= 0) {
throw new GoodsException(['cus' => 33]);
}
if ($params["price"] > 50000) {
throw new GoodsException(['cus' => 34]);
}
$skuParams = [
"category_1_id" => $params["category_1_id"],
"category_2_id" => $params["category_2_id"],
"goods_name" => $params["goods_name"],
"desc_pic_url" => $params["desc_pic_url"],
"desc" => $params["desc"],
"inventory_total" => $skuData["inventory_total"] + $params["inventory_add"],
//"inventory_total" => $params["inventory"],
"inventory_rest" => $inventoryCount,
"original_price" => empty($params["original_price"]) ? "" : $params["original_price"] * 100,
"price" => $params["price"] * 100,
"goods_version" => (int)$skuData["goods_version"] + 1,
];
//商品操作记录
$record = [
"goods_spu_id" => $skuData["goods_spu_id"],
"goods_sku_id" => $goodsSkuId,
"operator_id" => empty($params["publish_user_id"]) ? 0 : $params["publish_user_id"],//op后台操作没有记录user_id
"operator_name" => $params["user_name"],
"goods_status" => GoodsSku::STATUS_PASS,
"online_status" => GoodsSku::ONLINE_STATUS_ONLINE,
"before_version" => $skuData["goods_version"],
"after_version" => $skuParams["goods_version"],
"note" => empty($params["rejected_reason"]) ? "" : $params["rejected_reason"],
];
GoodsOperationRecord::insertRecord($record);
GoodsService::addGoodsSkuPicRecord($goodsSkuId, $skuParams);
return PindanGoodsSku::save($skuParams, ["pindan_goods_sku_id" => $goodsSkuId]);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment