getLimit($params), function($query) use ( $params, &$total_order_num, &$total_pay_money, &$total_pay_achievement, $uid ) { $query->where(['superior_user_id' => $uid, 'status' => 2]); $query->with(['order' => function($query) { $query->select([ 'id', 'user_id', 'order_no', 'goods_price', 'pay_money', 'IFNULL(shipping_money, 0) as shipping_money', '(pay_money - IFNULL(shipping_money, 0)) as achievement', 'pay_time', 'created_at' ]); }, 'user' => function($query) { $query->select('id, nickname, mobile, avatar_url'); }]); // 时间查询 if (!empty($params['start_date']) && !empty($params['end_date'])) { $query->andWhere([ 'between', 'created_at', strtotime($params['start_date']), (strtotime($params['end_date']) + 86399) ]); } // 统计 $query2 = clone $query; $total_pay_money = Order::find()->where(['id' => $query2->select('order_id')])->sum('pay_money'); $total_pay_achievement = Order::find()->where(['id' => $query2->select('order_id')])->sum('(pay_money - IFNULL(shipping_money, 0))'); $total_order_num = $query->count(); }, 'id desc'); // 统计 总金额,订单数 $list['total_pay_money'] = $total_pay_money; $list['total_order_num'] = $total_order_num; $list['total_pay_achievement'] = $total_pay_achievement; return $list; } }