Commit b80360db authored by luhongguang's avatar luhongguang

update: tcc sql调整

parent 01ecb999
......@@ -78,8 +78,8 @@ class Tcc2Service
if ($sku["online_status"] == GoodsSku::ONLINE_STATUS_ONLINE) {
//条件加上乐观锁
$rowCount = GoodsSku::save([
"inventory_lock" => $sku["inventory_lock"] + $num,
"inventory_rest" => $sku["inventory_rest"] - $num,
"inventory_lock[+]" => $num,
"inventory_rest[-]" => $num,
], ["goods_sku_id" => $goodsSkuId, "inventory_rest[>=]" => $num]);
if ($rowCount <= 0) {
GoodsSku::rollback();
......@@ -125,8 +125,8 @@ class Tcc2Service
if ($sku["online_status"] == PindanGoodsSku::ONLINE_STATUS_ONLINE) {
//条件加上乐观锁
$rowCount = PindanGoodsSku::save([
"inventory_lock" => $sku["inventory_lock"] + $num,
"inventory_rest" => $sku["inventory_rest"] - $num,
"inventory_lock[+]" => $num,
"inventory_rest[-]" => $num,
], ["goods_sku_id" => $goodsSkuId, "inventory_rest[>=]" => $num]);
if ($rowCount <= 0) {
PindanGoodsSku::rollback();
......@@ -220,8 +220,8 @@ class Tcc2Service
//条件加上乐观锁
$rowCount = GoodsSku::save([
"inventory_lock" => $sku["inventory_lock"] - $num,
"total_amount_order" => $sku["total_amount_order"] + $num,
"inventory_lock[-]" => $num,
"total_amount_order[+]" => $num,
], ["goods_sku_id" => $goodsSkuId, "inventory_lock[>=]" => $num]);
if ($rowCount <= 0) {
GoodsSku::rollback();
......@@ -263,8 +263,8 @@ class Tcc2Service
if (!empty($sku["inventory_lock"]) && $sku["online_status"] == PindanGoodsSku::ONLINE_STATUS_ONLINE) {
//条件加上乐观锁
$rowCount = PindanGoodsSku::save([
"inventory_lock" => $sku["inventory_lock"] - $num,
"total_amount_order" => $sku["total_amount_order"] + $num,
"inventory_lock[-]" => $num,
"total_amount_order[+]" => $num,
], ["goods_sku_id" => $goodsSkuId, "inventory_lock[>=]" => $num]);
if ($rowCount <= 0) {
PindanGoodsSku::rollback();
......@@ -303,11 +303,10 @@ class Tcc2Service
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"]]);
MarketingPindan::save(["participate_number[+]" => $num], ["marketing_pindan_id" => $marketingPindan["marketing_pindan_id"]]);
}
PindanGoodsSku::save(["total_amount_sold" => $goodsSku["total_amount_sold"] + $num], ["goods_sku_id" => $goodsSkuId]);
PindanGoodsSku::save(["total_amount_sold[+]" => $num], ["goods_sku_id" => $goodsSkuId]);
}
}
......@@ -380,8 +379,8 @@ class Tcc2Service
//T时候执行C2,条件加上乐观锁
if ($tccInfo["status"] == Tcc::STATUS_T_SUCCESS) {
$rowCount = GoodsSku::save([
"inventory_lock" => $sku["inventory_lock"] - $num,
"inventory_rest" => $sku["inventory_rest"] + $num,
"inventory_lock[-]" => $num,
"inventory_rest[+]" => $num,
], ["goods_sku_id" => $goodsSkuId, "inventory_lock[>=]" => $num]);
if ($rowCount <= 0) {
GoodsSku::rollback();
......@@ -392,8 +391,8 @@ class Tcc2Service
//T时候执行C2,条件加上乐观锁
if ($tccInfo["status"] == Tcc::STATUS_C1_SUCCESS) {
$rowCount = GoodsSku::save([
"total_amount_order" => $sku["total_amount_order"] - $num,
"inventory_rest" => $sku["inventory_rest"] + $num,
"total_amount_order[-]" => $num,
"inventory_rest[+]" => $num,
], ["goods_sku_id" => $goodsSkuId, "total_amount_order[>=]" => $num]);
if ($rowCount <= 0) {
GoodsSku::rollback();
......@@ -434,8 +433,8 @@ class Tcc2Service
//T时候执行C2,条件加上乐观锁
if ($tccInfo["status"] == Tcc::STATUS_T_SUCCESS) {
$rowCount = PindanGoodsSku::save([
"inventory_lock" => $sku["inventory_lock"] - $num,
"inventory_rest" => $sku["inventory_rest"] + $num,
"inventory_lock[-]" => $num,
"inventory_rest[+]" => $num,
], ["goods_sku_id" => $goodsSkuId, "inventory_lock[>=]" => $num]);
if ($rowCount <= 0) {
PindanGoodsSku::rollback();
......@@ -446,8 +445,8 @@ class Tcc2Service
//T时候执行C2,条件加上乐观锁
if ($tccInfo["status"] == Tcc::STATUS_C1_SUCCESS) {
$rowCount = PindanGoodsSku::save([
"total_amount_order" => $sku["total_amount_order"] - $num,
"inventory_rest" => $sku["inventory_rest"] + $num,
"total_amount_order[-]" => $num,
"inventory_rest[+]" => $num,
], ["goods_sku_id" => $goodsSkuId, "total_amount_order[>=]" => $num]);
if ($rowCount <= 0) {
PindanGoodsSku::rollback();
......@@ -514,13 +513,11 @@ class Tcc2Service
$goodsSkuId = $item["goods_sku_id"];
$num = $item["num"];
$sku = GoodsSku::getRecord(["goods_sku_id" => $goodsSkuId]
, ["goods_sku_id", "total_amount_order", "inventory_rest", "inventory_lock", "online_status"]);
$params = [
"inventory_rest" => $sku["inventory_rest"] + $num,
"total_amount_order" => $sku["total_amount_order"] - $num,
"inventory_rest[+]" => $num,
"total_amount_order[-]" => $num,
];
$rowCount = GoodsSku::save($params, ["goods_sku_id" => $goodsSkuId, "total_amount_order[>=]" => $num]);
$rowCount = GoodsSku::save($params, ["goods_sku_id" => $goodsSkuId]);
if ($rowCount <= 0) {
GoodsSku::rollback();
throw new GoodsException(["cus" => 32]);
......
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