diff --git a/app/common/logic/CommissionProductLogic.php b/app/common/logic/CommissionProductLogic.php index 71dcbd310..b2ceaef7a 100644 --- a/app/common/logic/CommissionProductLogic.php +++ b/app/common/logic/CommissionProductLogic.php @@ -8,6 +8,7 @@ use app\common\model\store_finance_flow_product\StoreFinanceFlowProduct; use app\common\model\store_order_cart_info\StoreOrderCartInfo; use app\common\model\store_product\StoreProduct; use PDO; +use support\Log; /** * 产品佣金计算 @@ -21,20 +22,30 @@ class CommissionProductLogic extends BaseLogic */ function calculate_product_flow($find, $order, $village_uid = 0, $brigade_uid = 0, $user_ship = 0, $spread_user_ship = 0) { - $product = StoreBranchProduct::where('id', $find['product_id'])->where('store_id', $order['store_id'])->find(); + $product = StoreBranchProduct::where('product_id', $find['product_id'])->where('store_id', $order['store_id'])->find(); if (!$product) { $product = StoreProduct::where('id', $find['product_id'])->find(); } if ($product) { - if ($user_ship == 5) { - $top_cate_id = StoreBranchProduct::where('product_id', $find['product_id'])->value('top_cate_id'); - if ($top_cate_id == 15189) { - $this->b($find, $order, $product); - return true; - } + if ($product['product_type'] == 4) { + $this->c($find, $order, $village_uid, $brigade_uid, $user_ship, $product); + return true; } else { - $this->a($find, $order, $village_uid, $brigade_uid, $user_ship, $product); + if ($user_ship == 5) { + $top_cate_id = StoreBranchProduct::where('product_id', $find['product_id'])->value('top_cate_id'); + if ($top_cate_id == 15189) { + $this->b($find, $order, $product,$user_ship); + return true; + } + } elseif($user_ship==0) { + $this->b($find, $order, $product,$user_ship); + return true; + }else{ + $this->a($find, $order, $village_uid, $brigade_uid, $user_ship, $product); + + } } + return true; } } @@ -45,7 +56,11 @@ class CommissionProductLogic extends BaseLogic public function a($find, $order, $village_uid, $brigade_uid, $user_ship, $product) { // $rose = bcdiv($product['rose'], 100, 2); - $total_price = bcmul($product['price'], $find['cart_num']); + if($user_ship==4){ + $total_price = bcmul($product['cost'], $find['cart_num']); + }else{ + $total_price = bcmul($product['price'], $find['cart_num']); + } // $Distribution = Distribution::where('rate', $rose)->find(); //门店 $data[] = [ @@ -88,11 +103,11 @@ class CommissionProductLogic extends BaseLogic 'status' => 1, ]; //会员 - if ($user_ship == 1) { - $uid = $order['spread_uid']; - } else { - $uid = 0; - } + // if ($user_ship == 1) { + // $uid = $order['spread_uid']; + // } else { + // $uid = 0; + // } // $data[] = [ // 'store_id' => $order['store_id'], // 'product_id' => $find['product_id'], @@ -103,17 +118,29 @@ class CommissionProductLogic extends BaseLogic // 'status' => 1, // ]; - //个人店铺 + //会员 if ($order['spread_uid'] > 0) { - $data[] = [ - 'store_id' => $order['store_id'], - 'product_id' => $find['product_id'], - 'other_uid' => $order['spread_uid'], - 'number' => bcmul($total_price, 0.07, 2), - 'oid' => $order['id'], - 'type' => 5, - 'status' => 1, - ]; + if (in_array($user_ship, [2, 3])) { + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => $order['spread_uid'], + 'number' => bcmul($total_price, 0.05, 2), + 'oid' => $order['id'], + 'type' => 0, + 'status' => 1, + ]; + } else { + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => $order['spread_uid'], + 'number' => bcmul($total_price, 0.07, 2), + 'oid' => $order['id'], + 'type' => 0, + 'status' => 1, + ]; + } } $data[] = [ 'store_id' => $order['store_id'], @@ -130,10 +157,10 @@ class CommissionProductLogic extends BaseLogic /** * 商户价结算 */ - public function b($find, $order, $product) + public function b($find, $order, $product,$user_ship) { // $rose = bcdiv($product['rose'], 100, 2); - $total_price = bcmul($product['purchase'], $find['cart_num']); + $total_price = bcmul($product['cost'], $find['cart_num']); //门店 $data[] = [ 'store_id' => $order['store_id'], @@ -154,6 +181,78 @@ class CommissionProductLogic extends BaseLogic 'type' => 2, 'status' => 1, ]; + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => 0, + 'number' => bcmul($total_price, 0.01, 2), + 'oid' => $order['id'], + 'type' => 6, + 'status' => 1, + ]; + (new StoreFinanceFlowProduct())->saveAll($data); + } + + //活动商品结算 + public function c($find, $order, $village_uid, $brigade_uid, $user_ship, $product) + { + // $rose = bcdiv($product['rose'], 100, 2); + $total_price = bcmul($product['price'], $find['cart_num']); + $purchase_price = bcmul($product['purchase'], $find['cart_num']); + + $brigade_number = bcmul($total_price, 0.02, 2); + $village_number = bcmul($brigade_number, 0.1, 2); + $platform_number = bcmul($total_price, 0.02, 2); + + $number1 = bcadd($brigade_number, $village_number, 2); + $number2 = bcadd($number1, $platform_number, 2); + + //零售-供货价 + $number3 = bcsub($total_price, $purchase_price, 2); + + //门店利润 + $store_number = bcsub($number3, $number2, 2); + + //队长 + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => $brigade_uid, + 'number' => $brigade_number, + 'oid' => $order['id'], + 'type' => 4, + 'status' => 1, + ]; + //村长 + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => $village_uid, + 'number' => $village_number, + 'oid' => $order['id'], + 'type' => 3, + 'status' => 1, + ]; + //门店 + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => 0, + 'number' => $store_number, + 'oid' => $order['id'], + 'type' => 1, + 'status' => 1, + ]; + //平台 + $data[] = [ + 'store_id' => $order['store_id'], + 'product_id' => $find['product_id'], + 'other_uid' => 0, + 'number' => $platform_number, + 'oid' => $order['id'], + 'type' => 2, + 'status' => 1, + ]; (new StoreFinanceFlowProduct())->saveAll($data); } } diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 45122cc5c..9aac367fd 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -675,6 +675,13 @@ class PayNotifyLogic extends BaseLogic } } } + $info = StoreOrderCartInfo::where('oid', $order['id'])->field('store_id,product_id,cart_num')->select(); + $comm = new CommissionProductLogic(); + foreach ($info as $k => $v) { + $comm->calculate_product_flow($v, $order, $village_uid, $brigade_uid, $user_ship); + } + CommissionnLogic::setStore($order, $village_uid, $brigade_uid, $transaction_id); + return true; if (isset($user) && $order['store_id'] == getenv('ACTIVITY_STORE_ID') && !in_array($user['user_ship'], [4, 6, 7])) { try { $info = StoreOrderCartInfo::where('oid', $order['id'])->field('store_id,product_id,cart_num')->select(); @@ -709,6 +716,13 @@ class PayNotifyLogic extends BaseLogic break; } } else { + $info = StoreOrderCartInfo::where('oid', $order['id'])->field('store_id,product_id,cart_num')->select(); + $comm = new CommissionProductLogic(); + foreach ($info as $k => $v) { + $comm->calculate_product_flow($v, $order, $village_uid, $brigade_uid, $user_ship); + } + CommissionnLogic::setStore($order, $village_uid, $brigade_uid, $transaction_id); + return true; if (isset($user) && $order['store_id'] == getenv('ACTIVITY_STORE_ID') && !in_array($user['user_ship'], [4, 6, 7])) { try { $info = StoreOrderCartInfo::where('oid', $order['id'])->field('store_id,product_id,cart_num')->select();