Commit f791a54f authored by luhongguang's avatar luhongguang

update:商品tcc confirm处理0元单

parent 9eca48be
...@@ -7,6 +7,7 @@ use App\Models\goods\mysql\GoodsSku; ...@@ -7,6 +7,7 @@ use App\Models\goods\mysql\GoodsSku;
use App\Models\goods\mysql\PindanGoodsSku; use App\Models\goods\mysql\PindanGoodsSku;
use App\Models\goods\mysql\Tcc; use App\Models\goods\mysql\Tcc;
use App\Models\marketing\mysql\Marketing; use App\Models\marketing\mysql\Marketing;
use App\Models\marketing\mysql\MarketingPindan;
class Tcc2Service class Tcc2Service
{ {
...@@ -255,7 +256,7 @@ class Tcc2Service ...@@ -255,7 +256,7 @@ class Tcc2Service
$goodsSkuId = $item["goods_sku_id"]; $goodsSkuId = $item["goods_sku_id"];
$num = $item["num"]; $num = $item["num"];
$sku = PindanGoodsSku::getRecord(["goods_sku_id" => $goodsSkuId] $sku = PindanGoodsSku::getRecord(["goods_sku_id" => $goodsSkuId]
, ["goods_sku_id", "inventory_rest", "total_amount_order", "inventory_lock", "online_status"]); , ["goods_sku_id", "inventory_rest", "total_amount_order", "total_amount_sold", "inventory_lock", "online_status", "price"]);
if (!empty($sku["inventory_lock"]) && $sku["online_status"] == PindanGoodsSku::ONLINE_STATUS_ONLINE) { if (!empty($sku["inventory_lock"]) && $sku["online_status"] == PindanGoodsSku::ONLINE_STATUS_ONLINE) {
//条件加上乐观锁 //条件加上乐观锁
...@@ -271,6 +272,10 @@ class Tcc2Service ...@@ -271,6 +272,10 @@ class Tcc2Service
PindanGoodsSku::rollback(); PindanGoodsSku::rollback();
throw new GoodsException(["cus" => 43]); throw new GoodsException(["cus" => 43]);
} }
//0元单
if (empty($sku["price"])) {
self::zeroOrder($item["marketing_id"], $item["num"], $sku, $goodsSkuId);
}
} }
Tcc::save(["status" => Tcc::STATUS_C1_SUCCESS,], ["tid" => $tid]); Tcc::save(["status" => Tcc::STATUS_C1_SUCCESS,], ["tid" => $tid]);
...@@ -283,6 +288,27 @@ class Tcc2Service ...@@ -283,6 +288,27 @@ class Tcc2Service
return self::TCC_RESULT_SUCCESS; return self::TCC_RESULT_SUCCESS;
} }
/**
* 0元单处理
* @param $marketingId
* @param $num
* @param $goodsSku
* @param $goodsSkuId
*/
private static function zeroOrder($marketingId, $num, $goodsSku, $goodsSkuId)
{
$marketing = Marketing::getRecord(["marketing_id" => $marketingId]);
if (!empty($marketing) && $marketing["marketing_type"] == Marketing::MARKETING_TYPE_PINDAN) {
$marketingPindan = MarketingPindan::getRecord(["marketing_id" => $marketingId]);
if (!empty($marketingPindan)) {
MarketingPindan::save(["participate_number" => $marketingPindan["participate_number"] + $num]
, ["marketing_pindan_id" => $marketingPindan["marketing_pindan_id"]]);
}
PindanGoodsSku::save(["total_amount_sold" => $goodsSku["total_amount_sold"] + $num], ["goods_sku_id" => $goodsSkuId]);
}
}
/** /**
* 下单 商品tcc cancel * 下单 商品tcc cancel
* @param $keys * @param $keys
......
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