diff --git a/app/common/logic/CommissionProductLogic.php b/app/common/logic/CommissionProductLogic.php index d8a5db42..244ea4db 100644 --- a/app/common/logic/CommissionProductLogic.php +++ b/app/common/logic/CommissionProductLogic.php @@ -2,6 +2,7 @@ namespace app\common\logic; +use app\common\model\distribution\Distribution; use app\common\model\store_branch_product\StoreBranchProduct; use app\common\model\store_finance_flow_product\StoreFinanceFlowProduct; use app\common\model\store_order_cart_info\StoreOrderCartInfo; @@ -16,7 +17,7 @@ class CommissionProductLogic extends BaseLogic /** * 根据毛利率计算 */ - function calculate_product_flow($oid, $store_id, $product_id, $village_uid = 0, $brigade_uid = 0) + function calculate_product_flow($oid, $store_id, $product_id, $village_uid = 0, $brigade_uid = 0,$uid=0,$spread_uid=0) { $find = StoreOrderCartInfo::where($oid, $product_id)->field('price,cart_num,rose')->find(); @@ -35,17 +36,73 @@ class CommissionProductLogic extends BaseLogic 'status' => 1, ]); } elseif ($product['rose'] >= 8) { - + $rose = bcdiv($find['rose'], 100, 2); + $Distribution = Distribution::where('rate', $rose)->find(); + //门店 + $data[] = [ + 'store_id' => $store_id, + 'product_id' => $product_id, + 'number' => bcmul($product['price'], $Distribution['store'], 4), + 'oid' => $oid, + 'type' => 1, + 'status' => 1, + ]; + //平台 + $data[] = [ + 'store_id' => $store_id, + 'product_id' => $product_id, + 'number' => bcmul($product['price'], $Distribution['platform'], 4), + 'oid' => $oid, + 'type' => 2, + 'status' => 1, + ]; + //村长 + $data[] = [ + 'store_id' => $store_id, + 'product_id' => $product_id, + 'other_uid' => $village_uid, + 'number' => bcmul($product['price'], $Distribution['village'], 4), + 'oid' => $oid, + 'type' => 0, + 'status' => 1, + ]; + //队长 + $data[] = [ + 'store_id' => $store_id, + 'product_id' => $product_id, + 'other_uid' => $brigade_uid, + 'number' => bcmul($product['price'], $Distribution['brigade'], 4), + 'oid' => $oid, + 'type' => 0, + 'status' => 1, + ]; + //会员 + $data[] = [ + 'store_id' => $store_id, + 'product_id' => $product_id, + 'other_uid' => $uid, + 'number' => bcmul($product['price'], $Distribution['user'], 4), + 'oid' => $oid, + 'type' => 0, + 'status' => 1, + ]; + //个人店铺 + if($spread_uid>0){ + $data[] = [ + 'store_id' => $store_id, + 'product_id' => $product_id, + 'other_uid' => $uid, + 'number' => bcmul($product['price'], $Distribution['person_store'], 4), + 'oid' => $oid, + 'type' => 0, + 'status' => 1, + ]; + } + + (new StoreFinanceFlowProduct())->saveAll($data); } } - $price = bcmul($find['price'], $find['cart_num'], 2); - // $price=bcsub($price, $price - - // ) - // bcsub($price, $find['rose'], 2); - // return $price; - } } } diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 53e1351a..4f2258d0 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -645,6 +645,11 @@ class PayNotifyLogic extends BaseLogic } } } + $info = StoreOrderCartInfo::where('oid',$order['id'])->field('store_id,product_id')->select(); + $comm=new CommissionProductLogic(); + foreach ($info as $v) { + $comm->calculate_product_flow($order['id'],$order['store_id'],$v['product_id'],$village_uid,$brigade_uid,$order['uid'],$order['spread_uid']); + } switch ($user_ship) { case 1: // 厨师 //case 4: // 商户