<?php

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;

/**
 * 产品佣金计算
 * 
 */
class CommissionProductLogic extends BaseLogic
{

    /**
     * 根据毛利率计算
     */
    function calculate_product_flow($oid, $store_id, $product_id, $village_uid = 0, $brigade_uid = 0, $uid = 0, $spread_uid = 0)
    {
        $product = StoreBranchProduct::where('store_id', $store_id)->where('product_id', $product_id)->find();
        if ($product && $product['rose'] > 0) {
            if ($product['rose'] >= 4 && $product['rose'] < 8) {
                $rose = bcdiv($product['rose'], 100, 2);
                $commission = bcmul($product['purchase'], $rose, 2);
                StoreFinanceFlowProduct::create([
                    'store_id' => $store_id,
                    'product_id' => $product_id,
                    'number' => $commission,
                    'oid' => $oid,
                    'type' => 2,
                    'status' => 1,
                ]);
            } elseif ($product['rose'] >= 8) {
                $rose = bcdiv($product['rose'], 100, 2);

                $Distribution = Distribution::where('rate', $rose)->find();
                //门店
                $data[] = [
                    'store_id' => $store_id,
                    'product_id' => $product_id,
                    'number' =>  bcmul($product['price'], $Distribution['store'], 2),
                    'oid' => $oid,
                    'type' => 1,
                    'status' => 1,
                ];
                //平台
                $data[] = [
                    'store_id' => $store_id,
                    'product_id' => $product_id,
                    'number' =>  bcmul($product['price'], $Distribution['platform'],2),
                    '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'], 2),
                    'oid' => $oid,
                    'type' => 3,
                    'status' => 1,
                ];
                //队长
                $data[] = [
                    'store_id' => $store_id,
                    'product_id' => $product_id,
                    'other_uid' => $brigade_uid,
                    'number' =>  bcmul($product['price'], $Distribution['brigade'], 2),
                    'oid' => $oid,
                    'type' => 4,
                    'status' => 1,
                ];
                //会员
                $data[] = [
                    'store_id' => $store_id,
                    'product_id' => $product_id,
                    'other_uid' => $uid,
                    'number' =>  bcmul($product['price'], $Distribution['user'], 2),
                    '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'], 2),
                        'oid' => $oid,
                        'type' => 5,
                        'status' => 1,
                    ];
                }

                (new StoreFinanceFlowProduct())->saveAll($data);
            }
        }
    }
}