Commit 5028ed5f authored by luhongguang's avatar luhongguang

update: 处理冲突

parents e2c94e70 8da35fb1
...@@ -64,5 +64,7 @@ class GoodsException extends BaseException ...@@ -64,5 +64,7 @@ class GoodsException extends BaseException
45 => '还没有try,就去执行confirm', 45 => '还没有try,就去执行confirm',
46 => '已经执行过cancel', 46 => '已经执行过cancel',
47 => 'sku rollback error', 47 => 'sku rollback error',
48 => '请满足以下条件后提交,售价-分销总金额-手续费>=结算价',
49 => '库存不得小于已售库存',
]; ];
} }
\ No newline at end of file
...@@ -39,6 +39,7 @@ use App\Exception\custom\InterfaceException; ...@@ -39,6 +39,7 @@ use App\Exception\custom\InterfaceException;
class GoodsService class GoodsService
{ {
const CHARGEFEE = 0.006;
/** /**
* 通过发号器拿 id (非雪花) * 通过发号器拿 id (非雪花)
* number,获取店铺shop_id用生活号id后两位,商品相关的这里是shop_id的后两位 * number,获取店铺shop_id用生活号id后两位,商品相关的这里是shop_id的后两位
...@@ -606,6 +607,8 @@ class GoodsService ...@@ -606,6 +607,8 @@ class GoodsService
*/ */
private static function editGoodsSpu($goodsSpu, $params = []) private static function editGoodsSpu($goodsSpu, $params = [])
{ {
$checkName = self::checkGoodsName($params["goods_name"], $goodsSpu["life_account_id"], $goodsSpu["goods_spu_id"]); $checkName = self::checkGoodsName($params["goods_name"], $goodsSpu["life_account_id"], $goodsSpu["goods_spu_id"]);
if (!$checkName["can_use"]) { if (!$checkName["can_use"]) {
throw new GoodsException(['cus' => 17]); throw new GoodsException(['cus' => 17]);
...@@ -741,6 +744,7 @@ class GoodsService ...@@ -741,6 +744,7 @@ class GoodsService
{ {
$clearPrice = $skuParams["clear_price"]; $clearPrice = $skuParams["clear_price"];
$price = $skuParams["price"]; $price = $skuParams["price"];
$chargeFee = !empty($price) ? (float)bcmul($price , self::CHARGEFEE,2) : 0; //手续费 (分)
if ($clearPrice > 0 && $clearPrice > $price) { if ($clearPrice > 0 && $clearPrice > $price) {
throw new GoodsException(['cus' => 39]); throw new GoodsException(['cus' => 39]);
} }
...@@ -757,18 +761,23 @@ class GoodsService ...@@ -757,18 +761,23 @@ class GoodsService
if (!empty($marketings)) { if (!empty($marketings)) {
foreach ($marketings as $marketing) { foreach ($marketings as $marketing) {
if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_RATE) { if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_RATE) {
$commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]) / 1000 * $price; $commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]) / 10000 * $price;
if ($price - $commissionTotal < $clearPrice) { if (($price - $commissionTotal - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 40]); throw new GoodsException(['cus' => 40]);
} }
} }
if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_FIXED) { if ($marketing["commission_mode"] == Marketing::COMMISSION_MODE_FIXED) {
$commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]); $commissionTotal = ($marketing["first_commission_value"] + $marketing["second_commission_value"]);
if ($price - $commissionTotal < $clearPrice) { if (($price - $commissionTotal - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 40]); throw new GoodsException(['cus' => 40]);
} }
} }
} }
}else{
if (($price - $chargeFee) < $clearPrice) {
throw new GoodsException(['cus' => 40]);
}
} }
} }
} }
...@@ -848,7 +857,7 @@ class GoodsService ...@@ -848,7 +857,7 @@ class GoodsService
} }
$data["goods_info"]["original_price"] = empty($sku["original_price"]) ? '' : (string)($sku["original_price"] / 100); $data["goods_info"]["original_price"] = empty($sku["original_price"]) ? '' : (string)($sku["original_price"] / 100);
$data["goods_info"]["clear_price"] = empty($sku["clear_price"]) ? 0 : $sku["clear_price"] / 100; $data["goods_info"]["clear_price"] = empty($sku["clear_price"]) ? "" : $sku["clear_price"] / 100;
$data["goods_info"]["price"] = $sku["price"] / 100; $data["goods_info"]["price"] = $sku["price"] / 100;
$data["goods_info"]["inventory"] = $sku["inventory_rest"]; $data["goods_info"]["inventory"] = $sku["inventory_rest"];
......
...@@ -285,7 +285,12 @@ class MarketingPindanGoodsService ...@@ -285,7 +285,12 @@ class MarketingPindanGoodsService
private static function editGoodsSku($goodsSkuId, $skuData, $params = []) private static function editGoodsSku($goodsSkuId, $skuData, $params = [])
{ {
$inventoryCount = $skuData["inventory_rest"] + $params["inventory_add"]; $inventoryCount = $skuData["inventory_rest"] + $params["inventory_add"];
//$inventoryCount = $params["inventory"]; $inventoryTotal = $skuData["inventory_total"] + $params["inventory_add"];
if ($inventoryTotal < $skuData["inventory_lock"] + $skuData["total_amount_order"]) {
throw new GoodsException(['cus' => 49]);
}
if ($inventoryCount < 0) { if ($inventoryCount < 0) {
throw new GoodsException(['cus' => 18]); throw new GoodsException(['cus' => 18]);
} }
...@@ -312,7 +317,7 @@ class MarketingPindanGoodsService ...@@ -312,7 +317,7 @@ class MarketingPindanGoodsService
"desc_pic_url" => $params["desc_pic_url"], "desc_pic_url" => $params["desc_pic_url"],
"desc" => $params["desc"], "desc" => $params["desc"],
"rule_limit" => empty($params["rule_limit"]) ? 0 : $params["rule_limit"], "rule_limit" => empty($params["rule_limit"]) ? 0 : $params["rule_limit"],
"inventory_total" => $skuData["inventory_total"] + $params["inventory_add"], "inventory_total" => $inventoryTotal,
"ota_id" => empty($params["ota_id"]) ? 0 : $params["ota_id"], "ota_id" => empty($params["ota_id"]) ? 0 : $params["ota_id"],
"inventory_rest" => $inventoryCount, "inventory_rest" => $inventoryCount,
"original_price" => empty($params["original_price"]) ? "" : $params["original_price"] * 100, "original_price" => empty($params["original_price"]) ? "" : $params["original_price"] * 100,
......
...@@ -26,23 +26,13 @@ class MarketingService ...@@ -26,23 +26,13 @@ class MarketingService
{ {
const ONLINE_LIFE_ACCOUNT_ID = "19019625839230981"; const ONLINE_LIFE_ACCOUNT_ID = "19019625839230981";
const ONLINE_LIFE_ACCOUNT_ID_TEST = "17963416161910792"; const ONLINE_LIFE_ACCOUNT_ID_TEST = "17963416161910792";
const CHARGEFEE = 0.006;
/** /**
* 写死的自营生活号 * 写死的自营生活号
* @return string * @return string
*/ */
public static function getPublicLifeAccountId() public static function getPublicLifeAccountId()
{ {
/**
$env = \Yaf\Application::app()->environ();
if (in_array($env, ['dev'])) {
$lifeAccountId = "13076446786650120";
} elseif (in_array($env, ['test'])) {
$lifeAccountId = "15559498695737346";
}else {
// $lifeAccountId = self::ONLINE_LIFE_ACCOUNT_ID;
$lifeAccountId = self::ONLINE_LIFE_ACCOUNT_ID_TEST;//测试用
}
*/
$lifeAccountId = config('lifeaccount','life_account_id'); $lifeAccountId = config('lifeaccount','life_account_id');
return $lifeAccountId; return $lifeAccountId;
} }
...@@ -363,6 +353,7 @@ class MarketingService ...@@ -363,6 +353,7 @@ class MarketingService
private static function addFenxiaoMarketing($params) private static function addFenxiaoMarketing($params)
{ {
$commissionMode = !empty($params['commission_mode']) ? $params['commission_mode'] : 1; $commissionMode = !empty($params['commission_mode']) ? $params['commission_mode'] : 1;
$marketingName = !empty($params['marketing_name']) ? $params['marketing_name'] : ''; $marketingName = !empty($params['marketing_name']) ? $params['marketing_name'] : '';
$firstCommissionRate = !empty($params['first_commission_value']) ? $params['first_commission_value']*100 : 0; $firstCommissionRate = !empty($params['first_commission_value']) ? $params['first_commission_value']*100 : 0;
...@@ -379,7 +370,7 @@ class MarketingService ...@@ -379,7 +370,7 @@ class MarketingService
throw new MarketingException(['cus'=>15]); throw new MarketingException(['cus'=>15]);
} }
} }
if (empty($goodsSkuId)) { if (empty($goodsSkuId)) {
throw new MarketingException(['cus'=>12]); throw new MarketingException(['cus'=>12]);
} }
...@@ -496,21 +487,24 @@ class MarketingService ...@@ -496,21 +487,24 @@ class MarketingService
$goodCount = !empty($goodsSkuId) ? count($goodsSkuId) : 0; $goodCount = !empty($goodsSkuId) ? count($goodsSkuId) : 0;
$goodsSkuList = GoodsSku::select('*', ['goods_sku_id' => $goodsSkuId]); $goodsSkuList = GoodsSku::select('*', ['goods_sku_id' => $goodsSkuId]);
foreach ($goodsSkuList as $key => $value) { foreach ($goodsSkuList as $key => $value) {
$clearPrice = !empty($value["clear_price"]) ? $value["clear_price"]*100 : 0; $clearPrice = !empty($value["clear_price"]) ? $value["clear_price"] : 0;
$price = !empty($value["price"]) ? $value["price"]*100 : 0; $price = !empty($value["price"]) ? $value["price"] : 0;
// if ($commissionMode == Marketing::COMMISSION_MODE_RATE) { $chargeFee = !empty($price) ? (float)bcmul($price , self::CHARGEFEE,2) : 0; //手续费 (分)
// $commissionTotal = ($firstCommissionRate + $secondCommissionRate) / 1000 * $price; if (!empty($clearPrice) && $clearPrice > 0) {
// if ($price - $commissionTotal < $clearPrice) { if ($commissionMode == Marketing::COMMISSION_MODE_RATE) {
// throw new GoodsException(['cus' => 36]); $commissionTotal = ($firstCommissionRate + $secondCommissionRate) / 10000 * $price;
// } if (($price - $commissionTotal-$chargeFee) < $clearPrice) {
// } throw new GoodsException(['cus' => 48]);
// }
// if ($commissionMode == Marketing::COMMISSION_MODE_FIXED) { }
// $commissionTotal = ($firstCommissionRate + $secondCommissionRate);
// if ($price - $commissionTotal < $clearPrice) { if ($commissionMode == Marketing::COMMISSION_MODE_FIXED) {
// throw new GoodsException(['cus' => 36]); $commissionTotal = ($firstCommissionRate + $secondCommissionRate);
// } if (($price - $commissionTotal - $chargeFee)< $clearPrice) {
// } throw new GoodsException(['cus' => 48]);
}
}
}
$colums[$key]['marketing_id'] = $marketingId; $colums[$key]['marketing_id'] = $marketingId;
$colums[$key]['goods_spu_id'] = $value['goods_spu_id']; $colums[$key]['goods_spu_id'] = $value['goods_spu_id'];
......
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