order = $order; $financeLogic->user['uid'] = $order['uid']; $fees = StoreFinanceFlowProduct::where('oid', $order['id'])->where('type', $type)->sum('number'); if ($fees > 0) { $financeLogic->in($transaction_id, $fees, OrderEnum::ORDER_HANDLING_FEES, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //平台手续费 $financeLogic->out($transaction_id, $fees, OrderEnum::ORDER_HANDLING_FEES, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //商户平台手续费支出 $financeLogic->save(); } return $fees; } /** * 供应链订单获得 */ public static function suppliter($order, $transaction_id) { $financeLogic = new StoreFinanceFlowLogic(); $financeLogic->order = $order; $financeLogic->user['uid'] = $order['uid']; $pay_price = $order['pay_price']; $number = StoreFinanceFlowProduct::where('oid', $order['id'])->sum('number'); $fees = bcsub($pay_price, $number, 2); if ($fees > 0) { $financeLogic->in($transaction_id, $fees, OrderEnum::SUPPLIER_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->out($transaction_id, $fees, OrderEnum::SUPPLIER_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->save(); } } /** * 门店分润 */ public static function store($order, $type, $transaction_id, $uid) { $financeLogic = new StoreFinanceFlowLogic(); $financeLogic->user['uid'] = $order['uid']; $financeLogic->other_arr['vip_uid'] = $uid; $financeLogic->order = $order; $financeLogic->in($transaction_id, $order['pay_price'], OrderEnum::USER_ORDER_PAY, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //用户订单支付 //缴纳齐全了就加商户没有就加到平台 $money_limt = SystemStore::where('id', $order['store_id'])->field('paid_deposit,security_deposit')->find(); $deposit = bcsub($money_limt['security_deposit'], $money_limt['paid_deposit'], 2); //保证金剩余额度 $store_profit = StoreFinanceFlowProduct::where('oid', $order['id'])->where('type', $type)->sum('number'); if ($deposit > 0) { if ($deposit > $store_profit) { if ($store_profit > 0) { $financeLogic->out($transaction_id, $store_profit, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->in($transaction_id, 0, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //平台手续费 } } else { $money = bcsub($store_profit, $deposit, 2); if ($deposit > 0) { $financeLogic->out($transaction_id, $deposit, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); } if ($money) { $financeLogic->in($transaction_id, $money, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //平台手续费 } } } else { if ($store_profit > 0) { $financeLogic->in($transaction_id, $store_profit, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //平台手续费 } } $financeLogic->save(); return $store_profit; } /** * 分给用户 */ public static function user($order, $type, $transaction_id, $uid = 0, $enum = 0) { $financeLogic = new StoreFinanceFlowLogic(); $fees = StoreFinanceFlowProduct::where('oid', $order['id'])->where('type', $type)->field('sum(number) as fees,other_uid')->find(); if ($fees && $fees['fees'] > 0) { //记录用户余额收入 $financeLogic->user['uid'] = $order['uid']; $financeLogic->other_arr['vip_uid'] = $fees['other_uid']; $financeLogic->order = $order; $financeLogic->in($transaction_id, $fees['fees'], $enum, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->out($transaction_id, $fees['fees'], $enum, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->save(); } return $fees['fees']; } /** * 损耗金 */ public static function attrition($order,$type, $transaction_id, $enum) { $financeLogic = new StoreFinanceFlowLogic(); $financeLogic->order = $order; $financeLogic->user['uid'] = $order['uid']; $fees = StoreFinanceFlowProduct::where('oid', $order['id'])->where('type', $type)->sum('number'); if ($fees > 0) { $financeLogic->in($transaction_id, $fees, $enum, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->out($transaction_id, $fees, $enum, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); $financeLogic->save(); } return $fees; } }