find(); if ($product) { //活动商品 if ($product['product_type'] == 4) { $this->c($find, $order, $village_uid, $brigade_uid, $user_ship, $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; } } 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; } } /** * 零售价结算 */ public function a($find, $order, $village_uid, $brigade_uid, $user_ship, $product) { $total_price = bcmul($product['price'], $find['cart_num'], 2); $purchase_price = bcmul($product['purchase'], $find['cart_num'], 2); $price = $product['purchase']; $platform_number = 0; //平台 $attrition_number = 0; //损耗 $store_number = 0; //门店 $number1 = 0; //其他 if ($product['rose'] >= 6) { $platform_number = bcmul($total_price, 0.02, 2); //平台 } if ($product['rose'] >= 12) { $attrition_number = bcmul($total_price, 0.01, 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[] = [ 'nickname' => '零售村长', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $total_price, 'cart_num' => 0, 'rate' => 0.04, 'number' => $village_number, 'oid' => $order['id'], 'type' => 3, 'status' => 1, 'is_activity' => 0, ]; $number1 = bcadd($number1, $village_number, 2); } elseif ($user['user_ship'] == 3) { $brigade_number = bcmul($total_price, 0.04, 2); //队长利润 $data[] = [ 'nickname' => '零售队长', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $total_price, 'cart_num' => 0, 'rate' => 0.04, 'number' => $brigade_number, 'oid' => $order['id'], 'type' => 4, 'status' => 1, 'is_activity' => 0, ]; $number1 = bcadd($number1, $brigade_number, 2); } elseif ($user['user_ship'] == 1) { $vip_number = bcmul($total_price, 0.06, 2); //会员利润 $data[] = [ 'nickname' => '零售会员', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => $uid, 'price' => $price, 'total_price' => $purchase_price, 'cart_num' => $find['cart_num'], 'rate' => 0.06, 'number' => $vip_number, 'oid' => $order['id'], 'type' => 0, 'status' => 1, ]; $number1 = bcadd($number1, $vip_number, 2); } } //门店利润 if ($number3 <= 0) { $store_number = 0; } else { $number2=bcadd($platform_number, $attrition_number, 2); $store_number = bcsub($number3, bcadd($number1,$number2), 2); } //门店 $data[] = [ 'nickname' => '零售门店', '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, 'number' => $store_number, 'oid' => $order['id'], 'type' => 1, 'status' => 1, 'is_activity' => 1, ]; //平台 if ($product['rose'] >= 6) { $data[] = [ 'nickname' => '零售平台', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $purchase_price, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $platform_number, 'oid' => $order['id'], 'type' => 2, 'status' => 1, 'is_activity' => 1, ]; } if ($product['rose'] >= 12) { $data[] = [ 'nickname' => '零售消耗', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $purchase_price, 'cart_num' => $find['cart_num'], 'rate' => 0.01, 'number' => $attrition_number, 'oid' => $order['id'], 'type' => 6, 'status' => 1, ]; } (new StoreFinanceFlowProduct())->saveAll($data); } /** * 商户价结算 */ public function b($find, $order, $product, $user_ship) { $total_price = bcmul($product['price'], $find['cart_num'], 2); $purchase_price = bcmul($product['purchase'], $find['cart_num'], 2); $price = $product['purchase']; $platform_number = 0; $attrition_number = 0; if ($product['rose'] >= 6) { $platform_number = bcmul($total_price, 0.02, 2); //平台 } if ($product['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); } //门店 $data[] = [ 'nickname' => '商户价门店', '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, 'number' => $store_number, 'oid' => $order['id'], 'type' => 1, 'status' => 1, 'is_activity' => 1, ]; //平台 if ($product['rose'] >= 6) { $data[] = [ 'nickname' => '商户价平台', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $purchase_price, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $platform_number, 'oid' => $order['id'], 'type' => 2, 'status' => 1, 'is_activity' => 1, ]; } if ($product['rose'] >= 10) { $data[] = [ 'nickname' => '商户价消耗', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $purchase_price, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $attrition_number, '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'], 2); $purchase_price = bcmul($product['purchase'], $find['cart_num'], 2); $price = $product['price']; $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); //门店利润 if ($number3 <= 0) { $store_number = 0; } else { $store_number = bcsub($number3, $number2, 2); } //队长 $data[] = [ 'nickname' => '活动队长', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => $brigade_uid, 'price' => $price, 'total_price' => $total_price, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $brigade_number, 'oid' => $order['id'], 'type' => 4, 'status' => 1, 'is_activity' => 1, ]; //村长 $data[] = [ 'nickname' => '活动村长', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => $village_uid, 'price' => $price, 'total_price' => $brigade_number, 'cart_num' => 0, 'rate' => 0.01, 'number' => $village_number, 'oid' => $order['id'], 'type' => 3, 'status' => 1, 'is_activity' => 1, ]; //门店 $data[] = [ 'nickname' => '活动门店', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $store_number, 'cart_num' => $find['cart_num'], 'rate' => 0, 'number' => $store_number, 'oid' => $order['id'], 'type' => 1, 'status' => 1, 'is_activity' => 1, ]; //平台 $data[] = [ 'nickname' => '活动平台', 'store_id' => $order['store_id'], 'product_id' => $find['product_id'], 'other_uid' => 0, 'price' => $price, 'total_price' => $platform_number, 'cart_num' => $find['cart_num'], 'rate' => 0.02, 'number' => $platform_number, 'oid' => $order['id'], 'type' => 2, 'status' => 1, 'is_activity' => 1, ]; (new StoreFinanceFlowProduct())->saveAll($data); } }