| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace api\services;
- use common\enums\OrderStatusEnum;
- use common\models\order\Order;
- use common\models\user\UserPartitionRelationship;
- use common\models\user\UserTeamAchievementOrder;
- /**
- * 团队服务类
- * Class BaseService
- * @package api\services
- */
- class TeamService extends BaseService
- {
- /**
- * 个人团队下面的业绩
- *
- * @param integer $uid
- * @param array $params
- * @return array
- */
- public function getTeamAchievementPageList(int $uid, array $params = [])
- {
- $total_order_num = 0;
- $total_pay_money = 0;
- $total_pay_achievement = 0;
- $list = UserTeamAchievementOrder::getPaginationListByUid($uid, $this->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;
- }
- }
|