106 lines
5.0 KiB
PHP
106 lines
5.0 KiB
PHP
<?php
|
|
/**
|
|
* SAAS应用系统 --- 十年开发经验汇集巨献!
|
|
* ==========================================================
|
|
* Copy right 2020-2050 成都众联思索科技有限公司,保留所有权利。
|
|
* ----------------------------------------------------------
|
|
* 官方网址: https://www.zoomtk.com
|
|
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
|
|
* 任何企业和个人未经允许对程序代码以任何形式任何目的再发布传播。
|
|
* 唯一发布渠道www.zoomtk.com;非官方渠道统一视为侵权行为。
|
|
* ==========================================================
|
|
*/
|
|
namespace addon\futures\model;
|
|
use addon\futures\model\Futures as FuturesModel;
|
|
use addon\fenxiao\model\FenxiaoOrder;
|
|
use app\model\BaseModel;
|
|
class Forder extends BaseModel
|
|
{
|
|
/**
|
|
* 分销订单计算
|
|
* @param unknown $order
|
|
*/
|
|
public function calculate($order)
|
|
{
|
|
$site_id=$order['site_id'];
|
|
$futuresModel = new FuturesModel;
|
|
$basics = $futuresModel->getBasicsConfig($site_id)['data']['value'];
|
|
if(!empty(model("fenxiao_order")->getValue(['order_id'=>$order[ 'order_id' ]],'fenxiao_order_id'))){
|
|
return $this->success();
|
|
}
|
|
//检测分销商上级关系
|
|
$member_info = model("member")->getInfo([ [ 'member_id', '=', $order[ 'member_id' ] ] ], 'fenxiao_id,is_fenxiao');
|
|
//如果没有分销商直接返回不计算,没有考虑首次付款上下级绑定
|
|
if(empty($member_info)){
|
|
return $this->success();
|
|
}
|
|
if ($member_info[ 'fenxiao_id' ] == 0) {
|
|
return $this->success();
|
|
}
|
|
|
|
$fenxiao_id = $member_info[ 'fenxiao_id' ];
|
|
$fenxiao_info = model("fenxiao")->getInfo([ [ 'fenxiao_id', '=', $fenxiao_id ], [ 'is_delete', '=', 0 ] ]);
|
|
if (empty($fenxiao_info)) {
|
|
return $this->success();
|
|
}
|
|
|
|
$parent_fenxiao_info = model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent');
|
|
|
|
$direct_push=$basics['direct_push'];//直推
|
|
$indirect_push=$basics['indirect_push'];//间推
|
|
$is_range=$basics['is_range'];
|
|
if($is_range && $parent_fenxiao_info){ //减去极差奖励
|
|
$direct_push -=$indirect_push;
|
|
}
|
|
$order_goods = model("order_goods")->getInfo(['order_id'=>$order[ 'order_id' ]]);
|
|
$commission_rate=$direct_push+$indirect_push; //总佣金比例
|
|
$service_charge=$order['order_money']*$basics['service_price']/100;//总服务费
|
|
$commission=$commission_rate*$service_charge/100;//总佣金
|
|
$order_fenxiao_data = [
|
|
'one_rate' => $direct_push,
|
|
'one_commission' =>$direct_push*$service_charge/100,
|
|
'two_rate' => $indirect_push,
|
|
'two_commission' => $indirect_push*$service_charge/100,
|
|
'three_rate' => 0,
|
|
];
|
|
//启动分销
|
|
$data = [
|
|
'order_id' => $order[ 'order_id' ],
|
|
'order_no' => $order[ 'order_no' ],
|
|
'order_goods_id' => $order_goods[ 'order_goods_id' ],
|
|
'site_id' => $order[ 'site_id' ],
|
|
'site_name' => $order[ 'site_name' ],
|
|
'goods_id' => $order_goods[ 'goods_id' ],
|
|
'sku_id' => $order_goods[ 'sku_id' ],
|
|
'sku_name' => $order_goods[ 'sku_name' ],
|
|
'sku_image' => $order_goods[ 'sku_image' ],
|
|
'price' => $order[ 'order_money' ],
|
|
'num' => $order_goods[ 'num' ],
|
|
'real_goods_money' =>$order[ 'order_money' ],
|
|
'member_id' => $order[ 'member_id' ],
|
|
'member_name' => $order[ 'name' ],
|
|
'member_mobile' => $order[ 'mobile' ],
|
|
'full_address' => $order[ 'full_address' ] . $order[ 'address' ],
|
|
|
|
'commission' => $commission,
|
|
'commission_rate' => $commission_rate,
|
|
|
|
'one_fenxiao_id' => empty($fenxiao_info) ? 0 : $fenxiao_info[ 'fenxiao_id' ],
|
|
'one_rate' => empty($order_fenxiao_data[ 'one_rate' ]) ? 0 : $order_fenxiao_data[ 'one_rate' ],
|
|
'one_commission' => empty($order_fenxiao_data[ 'one_commission' ]) ? 0 : $order_fenxiao_data[ 'one_commission' ],
|
|
'one_fenxiao_name' => empty($fenxiao_info) ? '' : $fenxiao_info[ 'fenxiao_name' ],
|
|
|
|
|
|
'two_fenxiao_id' => empty($parent_fenxiao_info) ? 0 : $parent_fenxiao_info[ 'fenxiao_id' ],
|
|
'two_rate' => empty($order_fenxiao_data[ 'two_rate' ]) ? 0 : $order_fenxiao_data[ 'two_rate' ],
|
|
'two_commission' => empty($order_fenxiao_data[ 'two_commission' ]) ? 0 : $order_fenxiao_data[ 'two_commission' ],
|
|
'two_fenxiao_name' => empty($parent_fenxiao_info) ? '' : $parent_fenxiao_info[ 'fenxiao_name' ],
|
|
'create_time' => time()
|
|
];
|
|
model("fenxiao_order")->add($data);
|
|
$fenxiao_order_model = new FenxiaoOrder();
|
|
$fenxiao_order_model->settlement($data['order_id']);
|
|
$res = $fenxiao_order_model->calculateOrder($data['order_id']);
|
|
return $this->success();
|
|
}
|
|
} |