<?php
|
|
namespace app\api\model\plus\vip;
|
|
use app\common\model\plus\vip\Order as VipOrderModel;
|
|
/**
|
* VIP专区订单API模型
|
*/
|
class Order extends VipOrderModel
|
{
|
/**
|
* 隐藏属性
|
* @var array
|
*/
|
protected $hidden = [
|
'app_id',
|
'update_time'
|
];
|
|
/**
|
* 获取订单列表
|
* @param $vip_user_id
|
* @param int $type
|
* @param array $query
|
* @return \think\Paginator
|
* @throws \think\exception\DbException
|
*/
|
public function getList($vip_user_id, $type = -1, $query = [])
|
{
|
$model = $this->where('vip_area_user_id', '=', $vip_user_id);
|
|
if ($type > -1) {
|
$model = $model->where('vip_area_type', '=', $type);
|
}
|
if (isset($query['is_settled']) && $query['is_settled']>=0) {
|
$model = $model->where('is_settled', '=', $query['is_settled']);
|
}
|
|
return $model->with(['user', 'vipUser', 'referee','orderMaster'=>['product'=>['image']]])
|
->where('is_invalid', '=', 0)
|
->order(['create_time' => 'desc'])
|
->paginate($query);
|
}
|
|
/**
|
* 获取订单统计数据
|
* @param $vip_user_id
|
* @return array
|
*/
|
public static function getStatistics($vip_user_id)
|
{
|
// 总订单数
|
$totalCount = self::where('vip_area_user_id', '=', $vip_user_id)->count();
|
|
// 推广订单数
|
$promoteCount = self::where('vip_area_user_id', '=', $vip_user_id)
|
->where('vip_area_type', '=', 10)
|
->count();
|
|
// 推广复购订单数
|
$reorderCount = self::where('vip_area_user_id', '=', $vip_user_id)
|
->where('vip_area_type', '=', 20)
|
->count();
|
|
// 已结算佣金
|
$settledMoney = self::where('vip_area_user_id', '=', $vip_user_id)
|
->where('is_settled', '=', 1)
|
->sum('vip_area_money');
|
|
// 待结算佣金
|
$unsettledMoney = self::where('vip_area_user_id', '=', $vip_user_id)
|
->where('is_settled', '=', 0)
|
->sum('vip_area_money');
|
|
return [
|
'total_count' => $totalCount,
|
'promote_count' => $promoteCount,
|
'reorder_count' => $reorderCount,
|
'settled_money' => $settledMoney,
|
'unsettled_money' => $unsettledMoney,
|
];
|
}
|
}
|