Commit c8847571 authored by luhongguang's avatar luhongguang

update:add edit goods调整

parent 2307762b
......@@ -29,5 +29,6 @@ class GoodsException extends BaseException
15 => '当前商品不存在',
16 => '到期时间不得小于当前时间',
17 => '商品名称重复,请重新修复',
18 => '库存设置不合理',
];
}
\ No newline at end of file
......@@ -19,7 +19,7 @@ class GoodsAddValidate extends BaseValidate
'expiration_time' => 'require',
'rule_desc' => 'require',
'price' => 'require',
'inventory_total' => 'require',
'inventory_add' => 'require',
'life_account_id' => 'require',
'merchant_id' => 'require',
'u_id' => 'require',
......@@ -33,7 +33,7 @@ class GoodsAddValidate extends BaseValidate
'expiration_time' => '请填写到期时间',
'rule_desc' => '请填写使用规则',
'price' => '请填写售价',
'inventory_total' => '请填写库存',
'inventory_add' => '请填写库存',
'life_account_id' => 'life_account_id 不能为空',
'merchant_id' => 'merchant_id 不能为空',
'u_id' => 'u_id 不能为空',
......
......@@ -63,6 +63,25 @@ class GoodsService
$spuId = self::addGoodsSpu($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()) {
GoodsSpu::rollback();
throw new GoodsException(["cus" => 0]);
......@@ -143,8 +162,8 @@ class GoodsService
"rule_limit" => $skuData["rule_limit"],
"rule_desc" => $skuData["rule_desc"],
"rule_refund" => $skuData["rule_refund"],
"inventory_total" => $skuData["inventory_total"],
"inventory_rest" => $skuData["inventory_total"],
"inventory_total" => $skuData["inventory_add"],
"inventory_rest" => $skuData["inventory_add"],
"original_price" => $skuData["original_price"] * 100,
"price" => $skuData["price"] * 100,
];
......@@ -409,6 +428,10 @@ class GoodsService
if ($params["expiration_time"] < date("Y-m-d H:i:s")) {
throw new GoodsException(['cus' => 16]);
}
$inventoryCount = $skuData["inventory_rest"] + $params["inventory_add"];
if ($inventoryCount < 0) {
throw new GoodsException(['cus' => 18]);
}
$skuParams = [
"category_1_id" => $params["category_1_id"],
......@@ -416,25 +439,72 @@ class GoodsService
"name" => $params["name"],
"url" => $params["url"],
"desc" => $params["desc"],
"introduce" => $skuData["introduce"],
"introduce_pic_url" => $skuData["introduce_pic_url"],
"expiration_time" => $params["expiration_time"],
"rule_limit" => $params["rule_limit"],
"rule_desc" => $params["rule_desc"],
"rule_refund" => $params["rule_refund"],
"inventory_total" => $params["inventory_total"],
"inventory_rest" => $params["inventory_total"],
"inventory_total" => $skuData["inventory_total"] + $params["inventory_add"],
"inventory_rest" => $inventoryCount,
"original_price" => $params["original_price"] * 100,
"price" => $params["price"] * 100,
"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"])) {
$skuParams["setmeal"] = $params["setmeal"];
}
//同步到es
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]);
}
/**
* 是否要初始化状态
* @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
......
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