Commit c8847571 authored by luhongguang's avatar luhongguang

update:add edit goods调整

parent 2307762b
...@@ -29,5 +29,6 @@ class GoodsException extends BaseException ...@@ -29,5 +29,6 @@ class GoodsException extends BaseException
15 => '当前商品不存在', 15 => '当前商品不存在',
16 => '到期时间不得小于当前时间', 16 => '到期时间不得小于当前时间',
17 => '商品名称重复,请重新修复', 17 => '商品名称重复,请重新修复',
18 => '库存设置不合理',
]; ];
} }
\ No newline at end of file
...@@ -19,7 +19,7 @@ class GoodsAddValidate extends BaseValidate ...@@ -19,7 +19,7 @@ class GoodsAddValidate extends BaseValidate
'expiration_time' => 'require', 'expiration_time' => 'require',
'rule_desc' => 'require', 'rule_desc' => 'require',
'price' => 'require', 'price' => 'require',
'inventory_total' => 'require', 'inventory_add' => 'require',
'life_account_id' => 'require', 'life_account_id' => 'require',
'merchant_id' => 'require', 'merchant_id' => 'require',
'u_id' => 'require', 'u_id' => 'require',
...@@ -33,7 +33,7 @@ class GoodsAddValidate extends BaseValidate ...@@ -33,7 +33,7 @@ class GoodsAddValidate extends BaseValidate
'expiration_time' => '请填写到期时间', 'expiration_time' => '请填写到期时间',
'rule_desc' => '请填写使用规则', 'rule_desc' => '请填写使用规则',
'price' => '请填写售价', 'price' => '请填写售价',
'inventory_total' => '请填写库存', 'inventory_add' => '请填写库存',
'life_account_id' => 'life_account_id 不能为空', 'life_account_id' => 'life_account_id 不能为空',
'merchant_id' => 'merchant_id 不能为空', 'merchant_id' => 'merchant_id 不能为空',
'u_id' => 'u_id 不能为空', 'u_id' => 'u_id 不能为空',
......
...@@ -63,6 +63,25 @@ class GoodsService ...@@ -63,6 +63,25 @@ class GoodsService
$spuId = self::addGoodsSpu($shopId, $params); $spuId = self::addGoodsSpu($shopId, $params);
$skuId = self::addGoodsSku($spuId, $shopId, $params); $skuId = self::addGoodsSku($spuId, $shopId, $params);
//商品操作记录
$res = self::getSnowIdgenId("goods");
if (empty($res)) {
throw new GoodsException(['cus' => 2]);
}
$record = [
"goods_operation_record_id" => $res[0],
"goods_spu_id" => $spuId,
"goods_sku_id" => $skuId,
"operator_id" => $params["u_id"],
"operator_name" => $params["user_name"],
"goods_status" => GoodsSku::STATUS_AUDIT,
"online_status" => GoodsSku::ONLINE_STATUS_NO_ONLINE,
"before_version" => 1,
"after_version" => 1,
"note" => empty($params["rejected_reason"]) ? "" : $params["rejected_reason"],
];
GoodsOperationRecord::insertRecord($record);
if (!GoodsSpu::commit()) { if (!GoodsSpu::commit()) {
GoodsSpu::rollback(); GoodsSpu::rollback();
throw new GoodsException(["cus" => 0]); throw new GoodsException(["cus" => 0]);
...@@ -143,8 +162,8 @@ class GoodsService ...@@ -143,8 +162,8 @@ class GoodsService
"rule_limit" => $skuData["rule_limit"], "rule_limit" => $skuData["rule_limit"],
"rule_desc" => $skuData["rule_desc"], "rule_desc" => $skuData["rule_desc"],
"rule_refund" => $skuData["rule_refund"], "rule_refund" => $skuData["rule_refund"],
"inventory_total" => $skuData["inventory_total"], "inventory_total" => $skuData["inventory_add"],
"inventory_rest" => $skuData["inventory_total"], "inventory_rest" => $skuData["inventory_add"],
"original_price" => $skuData["original_price"] * 100, "original_price" => $skuData["original_price"] * 100,
"price" => $skuData["price"] * 100, "price" => $skuData["price"] * 100,
]; ];
...@@ -409,6 +428,10 @@ class GoodsService ...@@ -409,6 +428,10 @@ class GoodsService
if ($params["expiration_time"] < date("Y-m-d H:i:s")) { if ($params["expiration_time"] < date("Y-m-d H:i:s")) {
throw new GoodsException(['cus' => 16]); throw new GoodsException(['cus' => 16]);
} }
$inventoryCount = $skuData["inventory_rest"] + $params["inventory_add"];
if ($inventoryCount < 0) {
throw new GoodsException(['cus' => 18]);
}
$skuParams = [ $skuParams = [
"category_1_id" => $params["category_1_id"], "category_1_id" => $params["category_1_id"],
...@@ -416,25 +439,72 @@ class GoodsService ...@@ -416,25 +439,72 @@ class GoodsService
"name" => $params["name"], "name" => $params["name"],
"url" => $params["url"], "url" => $params["url"],
"desc" => $params["desc"], "desc" => $params["desc"],
"introduce" => $skuData["introduce"],
"introduce_pic_url" => $skuData["introduce_pic_url"],
"expiration_time" => $params["expiration_time"], "expiration_time" => $params["expiration_time"],
"rule_limit" => $params["rule_limit"], "rule_limit" => $params["rule_limit"],
"rule_desc" => $params["rule_desc"], "rule_desc" => $params["rule_desc"],
"rule_refund" => $params["rule_refund"], "rule_refund" => $params["rule_refund"],
"inventory_total" => $params["inventory_total"], "inventory_total" => $skuData["inventory_total"] + $params["inventory_add"],
"inventory_rest" => $params["inventory_total"], "inventory_rest" => $inventoryCount,
"original_price" => $params["original_price"] * 100, "original_price" => $params["original_price"] * 100,
"price" => $params["price"] * 100, "price" => $params["price"] * 100,
"version" => (int)$skuData["version"] + 1, "version" => (int)$skuData["version"] + 1,
]; ];
if (self::isInitGoodsStatus($params, $skuData)) {
$skuParams["status"] = GoodsSku::STATUS_AUDIT;
$skuParams["online_status"] = GoodsSku::ONLINE_STATUS_NO_ONLINE;
}
if (!empty($params["setmeal"])) { if (!empty($params["setmeal"])) {
$skuParams["setmeal"] = $params["setmeal"]; $skuParams["setmeal"] = $params["setmeal"];
} }
//同步到es //同步到es
self::updateGoodsInfoToEs($skuData, $skuParams); self::updateGoodsInfoToEs($skuData, $skuParams);
//商品操作记录
$res = self::getSnowIdgenId("goods");
if (empty($res)) {
throw new GoodsException(['cus' => 2]);
}
$record = [
"goods_operation_record_id" => $res[0],
"goods_spu_id" => $skuData["goods_spu_id"],
"goods_sku_id" => $goodsSkuId,
"operator_id" => $params["u_id"],
"operator_name" => $params["user_name"],
"goods_status" => GoodsSku::STATUS_AUDIT,
"online_status" => GoodsSku::ONLINE_STATUS_NO_ONLINE,
"before_version" => $skuData["version"],
"after_version" => $skuParams["version"],
"note" => empty($params["rejected_reason"]) ? "" : $params["rejected_reason"],
];
GoodsOperationRecord::insertRecord($record);
return GoodsSku::save($skuParams, ["goods_sku_id" => $goodsSkuId]); return GoodsSku::save($skuParams, ["goods_sku_id" => $goodsSkuId]);
} }
/**
* 是否要初始化状态
* @param $params
* @param $sku
* @return bool
*/
private static function isInitGoodsStatus($params, $sku)
{
return $params["category_1_id"] != $sku["category_1_id"]
|| $params["category_2_id"] != $sku["category_2_id"]
|| $params["name"] != $sku["name"]
|| $params["url"] != $sku["url"]
|| $params["desc"] != $sku["desc"]
|| $params["introduce"] != $sku["introduce"]
|| $params["introduce_pic_url"] != $sku["introduce_pic_url"]
|| $params["expiration_time"] != $sku["expiration_time"]
|| $params["rule_desc"] != $sku["rule_desc"]
|| $params["rule_refund"] != $sku["rule_refund"]
|| $params["original_price"] != $sku["original_price"]
|| $params["price"] != $sku["price"];
}
/** /**
* 后台用商品详情 * 后台用商品详情
* @param array $params * @param array $params
......
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