find(); if ($product) { //活动商品 if ($product['product_type'] == 4) { $this->c($find, $order, $product); return true; } else { //种养殖用户判断 if ($user_ship == 5) { $top_cate_id = $product['top_cate_id']; if ($top_cate_id == 15189) { $this->b($find, $order, $product, $user_ship); return true; }else{ $this->a($find, $order, $village_uid, $brigade_uid, $user_ship, $product); return true; } } elseif ($user_ship == 0|| in_array($user_ship, [4,6,7])) { //普通用户利润全部给门店 $this->b($find, $order, $product, $user_ship); return true; } else { //会员用户入口 $this->a($find, $order, $village_uid, $brigade_uid, $user_ship, $product); return true; } } } return false; } /** * 零售价结算 */ public function a($find, $order, $village_uid, $brigade_uid, $user_ship, $product) { $total_price = bcmul($find['price'], $find['cart_num'], 2); $purchase_price = bcmul($find['purchase'], $find['cart_num'], 2); $price = $find['price']; $rose=0; $rose_price = bcsub($price, $find['purchase'], 2); if ($rose_price > 0) { //利润除于零售 $price_div = bcdiv($rose_price, $price, 2); $rose=bcmul($price_div, 100, 2); } $platform_number = 0; //平台 $attrition_number = 0; //损耗 $store_number = 0; //门店 $number1 = 0; //其他 if ($rose >= 6) { $platform_number = bcmul($total_price, 0.02, 2); //平台 } //零售-供货价 $number3 = bcsub($total_price, $purchase_price, 2); //会员 $uid = 0; if ($order['spread_uid'] > 0) { $uid = $order['spread_uid']; } if ($order['uid'] > 0) { $uid = $order['uid']; } $user = User::where('id', $uid)->find(); if ($user) { if ($user['user_ship'] == 2) { $village_number = bcmul($total_price, 0.04, 2); //村长利润 $data[] =$this->village('零售村长', $order, $find, $village_uid, $price, $total_price, $village_number,0.04); $number1 = bcadd($number1, $village_number, 2); if ($rose >= 12) { $attrition_number = bcmul($total_price, 0.02, 2); //损耗 $data[] =$this->attrition('零售损耗', $order, $find, $price, $total_price,$attrition_number); } } elseif ($user['user_ship'] == 3) { $brigade_number = bcmul($total_price, 0.04, 2); //队长利润 $data[] = $this->brigade('零售队长', $order, $find, $brigade_uid, $price, $total_price, $brigade_number,0.04); $number1 = bcadd($number1, $brigade_number, 2); if ($rose >= 12 && $village_uid>0) { $village_number = bcmul($total_price, 0.01, 2); //村长利润 $data[] =$this->village('零售村长', $order, $find, $village_uid, $price, $total_price, $village_number,0.01); $number1 = bcadd($number1, $village_number, 2); } if ($rose >= 15) { $attrition_number = bcmul($total_price, 0.02, 2); //损耗 $data[] =$this->attrition('零售损耗', $order, $find, $price, $total_price,$attrition_number); } } elseif ($user['user_ship'] == 1) { if($order['pay_type']==18 && bcsub($user['total_recharge_amount'],$user['purchase_funds'],2)<$user['first_purchase_funds']){ }else{ if($rose>=10){ $vip_number = bcmul($total_price, 0.06, 2); //会员利润 $data[] = $this->vip_user('零售会员', $order, $find, $uid, $price, $total_price, $vip_number,0.06); $number1 = bcadd($number1, $vip_number, 2); } } if ($rose >= 12 && $village_uid>0) { $village_number = bcmul($total_price, 0.01, 2); //村长利润 $data[] =$this->village('零售村长', $order, $find, $village_uid, $price, $total_price, $village_number,0.01); $number1 = bcadd($number1, $village_number, 2); } if ($rose >= 14 && $brigade_uid>0) { $brigade_number = bcmul($total_price, 0.01, 2); //队长利润 $data[] =$this->village('零售队长', $order, $find, $village_uid, $price, $total_price, $brigade_number,0.01); $number1 = bcadd($number1, $brigade_number, 2); } if ($rose >= 15) { $attrition_number = bcmul($total_price, 0.02, 2); //损耗 $data[] =$this->attrition('零售损耗', $order, $find, $price, $total_price,$attrition_number); } } } //门店利润 if ($number3 <= 0) { $store_number = 0; } else { $number2 = bcadd($platform_number, $attrition_number, 2); $store_number = bcsub($number3, bcadd($number1, $number2,2), 2); } //门店 $rate=0; if($store_number>0){ $rate=bcdiv($store_number,$total_price,2); } $data[] =$this->store('零售门店', $order, $find, $price, $total_price,$store_number,$rate); //平台 if ($rose >= 6) { $data[] = $this->platform('零售平台', $order, $find, $price, $total_price,$platform_number); } (new StoreFinanceFlowProduct())->saveAll($data); } /** * 商户价结算 */ public function b($find, $order, $product, $user_ship) { $total_price = bcmul($find['price'], $find['cart_num'], 2); $purchase_price = bcmul($find['purchase'], $find['cart_num'], 2); $price = $find['price']; $rose=0; $rose_price = bcsub($price, $find['purchase'], 2); if ($rose_price > 0) { //利润除于零售 $price_div = bcdiv($rose_price, $price, 2); $rose=bcmul($price_div, 100, 2); } $platform_number = 0; $attrition_number = 0; if ($rose >= 6) { $platform_number = bcmul($total_price, 0.02, 2); //平台 } if ($rose >= 10) { $attrition_number = bcmul($total_price, 0.02, 2); //损耗 } //零售-供货价 $number3 = bcsub($total_price, $purchase_price, 2); //门店利润 if ($number3 <= 0) { $store_number = 0; } else { $store_number = bcsub($number3, bcadd($platform_number, $attrition_number, 2), 2); } //门店 $rate=0; if($store_number>0){ $rate=bcdiv($store_number,$total_price,2); } $data[] =$this->store('商户价门店',$order,$find,$price,$total_price,$store_number,$rate); //平台 if ($rose >= 6) { $data[] =$this->platform('商户价平台',$order,$find,$price,$total_price,$platform_number); } if ($rose >= 10) { $data[] = $this->attrition('商户价损耗',$order,$find,$price,$total_price,$attrition_number); } (new StoreFinanceFlowProduct())->saveAll($data); } //活动商品结算 public function c($find, $order,$product) { $total_price = bcmul($find['price'], $find['cart_num'], 2); $purchase_price = bcmul($find['purchase'], $find['cart_num'], 2); $price = $find['price']; $rose=0; $rose_price = bcsub($price, $find['purchase'], 2); if ($rose_price > 0) { //利润除于零售 $price_div = bcdiv($rose_price, $price, 2); $rose=bcmul($price_div, 100, 2); } $platform_number = 0; $attrition_number = 0; if ($rose >= 6) { $platform_number = bcmul($total_price, 0.02, 2); //平台 } //零售-供货价 $number3 = bcsub($total_price, $purchase_price, 2); //门店利润 if ($number3 <= 0) { $store_number = 0; } else { $store_number = bcsub($number3, bcadd($platform_number, $attrition_number, 2), 2); } //门店 $rate=0; if($store_number>0){ $rate=bcdiv($store_number,$total_price,2); } $data[] =$this->store('商户价门店',$order,$find,$price,$total_price,$store_number,$rate,1); //平台 if ($rose >= 6) { $data[] =$this->platform('商户价平台',$order,$find,$price,$total_price,$platform_number,1); } (new StoreFinanceFlowProduct())->saveAll($data); } /** * 村长 */ public function village($name, $order, $find, $other_uid, $price, $total_price, $number, $rate = 0.01, $is_activity = 0) { $data = [ 'nickname' => $name, 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => $other_uid, 'price' => $price, 'total_price' => $total_price, 'cart_num' => 0, 'rate' => $rate, 'number' => $number, 'oid' => $order['id'], 'type' => 3, 'status' => 1, 'is_activity' => $is_activity, ]; return $data; } /** * 队长 */ public function brigade($name, $order, $find, $other_uid, $price, $total_price, $number, $rate = 0.01, $is_activity = 0) { $data = [ 'nickname' => $name, 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => $other_uid, 'price' => $price, 'total_price' => $total_price, 'cart_num' => $find['cart_num'], 'rate' => $rate, 'number' => $number, 'oid' => $order['id'], 'type' => 4, 'status' => 1, 'is_activity' => $is_activity, ]; return $data; } /** * 平台 */ public function platform($name, $order, $find, $price, $total_price, $number, $is_activity = 0) { $data = [ 'nickname' => $name, 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $total_price, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $number, 'oid' => $order['id'], 'type' => 2, 'status' => 1, 'is_activity' => $is_activity, ]; return $data; } /** * 门店 */ public function store($name, $order, $find, $price, $total_price, $number,$rate = 0.05, $is_activity = 0) { $data = [ 'nickname' => $name, 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $total_price, 'cart_num' => $find['cart_num'], 'rate' => $rate, 'number' => $number, 'oid' => $order['id'], 'type' => 1, 'status' => 1, 'is_activity' => $is_activity, ]; return $data; } /** * 损耗 */ public function attrition($name, $order, $find, $price, $total_price, $number, $is_activity = 0) { $data = [ 'nickname' => $name, 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $total_price, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $number, 'oid' => $order['id'], 'type' => 6, 'status' => 1, 'is_activity' => $is_activity, ]; return $data; } /** * 会员 */ public function vip_user($name, $order, $find, $other_uid,$price, $total_price, $number,$rate = 0.06, $is_activity = 0){ $data = [ 'nickname' => $name, 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => $other_uid, 'price' => $price, 'total_price' => $total_price, 'cart_num' => $find['cart_num'], 'rate' => $rate, 'number' => $number, 'oid' => $order['id'], 'type' => 0, 'status' => 1, 'is_activity' => $is_activity, ]; return $data; } }