112 lines
3.4 KiB
PHP
112 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace app\api\model\app\agent;
|
|
|
|
use think\Model;
|
|
|
|
/**
|
|
* 分销订单
|
|
*/
|
|
class Order extends Model
|
|
{
|
|
|
|
// 表名,不含前缀
|
|
protected $name = 'app_agent_order';
|
|
// 自动写入时间戳字段
|
|
protected $autoWriteTimestamp = false;
|
|
// 定义时间戳字段名
|
|
protected $createTime = false;
|
|
protected $updateTime = false;
|
|
// 追加属性
|
|
protected $append = [
|
|
];
|
|
|
|
/**
|
|
* 获取统计数据
|
|
* @param $userId
|
|
* @return int[]
|
|
*/
|
|
public function getTotal($userId,$type='',$time=[]){
|
|
|
|
$data = [
|
|
|
|
'price_waiting'=>0,//待结算收益(元)
|
|
'sales_waiting'=>0,//待结算销售额(元)
|
|
'sales_success'=>0,//已结算销售额(元)
|
|
|
|
'price_success'=>0,//已结算收益/累计佣金(元)
|
|
'price_goods'=>0,//商品佣金(元)
|
|
'price_invite'=>0,//邀请佣金(元)
|
|
'order_count'=>0//订单数
|
|
];
|
|
|
|
$where = [
|
|
'beneficiary_user_id'=>$userId
|
|
];
|
|
if($type){
|
|
$where['type'] = $type;
|
|
}
|
|
|
|
if($time){
|
|
$where['createtime'] = ['BETWEEN',[$time['start'], $time['end']]];
|
|
}
|
|
|
|
$data['order_count'] = self::where($where)->count();
|
|
|
|
$data['price_success'] = self::where($where)->where(['status'=>1])->sum('brokerage_price');
|
|
$data['price_waiting'] = self::where($where)->where(['status'=>0])->sum('brokerage_price');
|
|
$data['price_total'] = self::where($where)->sum('brokerage_price');
|
|
//
|
|
$data['sales_success'] = self::where($where)->where(['status'=>1])->sum('price');
|
|
$data['sales_waiting'] = self::where($where)->where(['status'=>0])->sum('price');
|
|
$data['sales_total'] = self::where($where)->sum('price');
|
|
|
|
$priceGoodsWhere = $priceInviteWhere = [
|
|
'status'=>1
|
|
];
|
|
if(!isset($where['type'])){
|
|
$priceInviteWhere['type'] = $priceGoodsWhere['type'] = 'commission';
|
|
}
|
|
|
|
$data['price_goods'] = self::where($where)->where($priceGoodsWhere)->sum('brokerage_price');
|
|
$data['price_invite'] = self::where($where)->where($priceInviteWhere)->sum('brokerage_price');
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* 获取下级用户订单统计数据
|
|
* @param $userId
|
|
* @return void
|
|
*/
|
|
public function getChildUserOrder($userId){
|
|
$data = [];
|
|
$where = [
|
|
'order_user_id'=>$userId
|
|
];
|
|
$data['price_success'] = self::where($where)->where(['status'=>1])->sum('brokerage_price');
|
|
$data['price_waiting'] = self::where($where)->where(['status'=>0])->sum('brokerage_price');
|
|
$data['order_count'] = self::where($where)->count();
|
|
$data['order_success_count'] = self::where($where)->where(['status'=>1])->count();
|
|
$data['order_waiting_count'] = self::where($where)->where(['status'=>0])->count();
|
|
$lastOrder = self::where($where)->order('createtime','desc')->find();
|
|
if($lastOrder){
|
|
$data['order_last_time'] = $lastOrder['createtime'];
|
|
}else{
|
|
$data['order_last_time'] = '';
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
|
|
public function item()
|
|
{
|
|
return $this->belongsTo('app\common\model\order\Item', 'order_item_id', 'id', [])->setEagerlyType(0);
|
|
}
|
|
|
|
public function user()
|
|
{
|
|
return $this->belongsTo('app\common\model\User', 'order_user_id', 'id',[],'LEFT')->setEagerlyType(0);
|
|
}
|
|
} |