From ac20efa18a4507f31cfa3e58186a2be94117d051 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Tue, 31 Oct 2023 11:48:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=B4=E6=92=AD=E9=80=81?= =?UTF-8?q?=E7=A4=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/user/Zhibo.php | 42 +++++++++++++++++++++++++------ route/api.php | 1 + 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/app/controller/api/user/Zhibo.php b/app/controller/api/user/Zhibo.php index 82b7e8a7..5d26e5fd 100644 --- a/app/controller/api/user/Zhibo.php +++ b/app/controller/api/user/Zhibo.php @@ -97,26 +97,42 @@ class Zhibo extends BaseController [$page, $limit] = $this->getPage(); $token = request()->header('x-token'); $params = $this->request->params(['type']); - if (empty($params['type'])) { - return app('json')->fail('类型不能为空'); - } $user = $this->request->userInfo(); $where = []; + $queryBuilder = Db::name('user_bill')->alias('ub')->leftJoin('user_zhibo_order uzo','uzo.order_id = ub.link_id')->leftJoin('user u','u.uid = uzo.uid'); if ($params['type'] == 1) { // 送出的礼物 $where['ub.pm'] = 0; - $where['ub.type'] = 'zhibo_reward'; + $where['ub.type'] = 'zhibo_reward_dec'; $where['uzo.uid'] = $user['uid']; + $queryBuilder = $queryBuilder->where($where); } elseif ($params['type'] == 2){ // 收到的礼物 $where['ub.pm'] = 1; - $where['ub.type'] = 'zhibo_reward'; + $where['ub.type'] = 'zhibo_reward_inc'; $where['uzo.master_id'] = $user['uid']; + $queryBuilder = $queryBuilder->where($where); } else { - return app('json')->fail('类型错误'); + $whereUser['ub.pm'] = 0; + $whereUser['ub.type'] = 'zhibo_reward_dec'; + $whereUser['uzo.uid'] = $user['uid']; + $whereMaster['ub.pm'] = 1; + $whereMaster['ub.type'] = 'zhibo_reward_inc'; + $whereMaster['uzo.master_id'] = $user['uid']; + + $queryBuilder = $queryBuilder->where(function ($query) use($whereUser) { + $query->where($whereUser); + }); + $queryBuilder = $queryBuilder->whereOr(function ($query) use($whereMaster) { + $query->where($whereMaster); + }); } - $count = Db::name('user_bill')->alias('ub')->leftJoin('user_zhibo_order uzo','uzo.order_id = ub.link_id')->where($where)->count(); - $list = Db::name('user_bill')->alias('ub')->leftJoin('user_zhibo_order uzo','uzo.order_id = ub.link_id')->where($where)->limit(($page-1) * $limit, $limit)->field([ + $count = $queryBuilder->fetchSql(false)->count(); + $list = $queryBuilder->limit(($page-1) * $limit, $limit)->setOption('field',[])->field([ + 'uzo.uid', + 'uzo.master_id', + 'u.nickname', + 'u.avatar', 'uzo.order_id', 'uzo.live_stream_id', 'uzo.live_name', @@ -127,6 +143,16 @@ class Zhibo extends BaseController 'ub.title', 'uzo.create_time' ])->select(); + return app('json')->success(compact('count', 'list')); } + + //用户送礼收礼汇总 + public function rewardAmount() + { + $liveStreamId = $this->request->param('live_stream_id', 0); + $gift_num = Db::name('user_zhibo_order')->where('live_stream_id', $liveStreamId)->sum('gift_num'); + $gift_amount = Db::name('user_zhibo_order')->where('live_stream_id', $liveStreamId)->sum('amount'); + return app('json')->success(compact('gift_num', 'gift_amount')); + } } diff --git a/route/api.php b/route/api.php index d710dadc..32bd9965 100644 --- a/route/api.php +++ b/route/api.php @@ -80,6 +80,7 @@ Route::group('api/', function () { Route::post('zhibo/reward', 'api.user.Zhibo/reward'); Route::get('zhibo/rewardList', 'api.user.Zhibo/rewardList'); + Route::get('zhibo/rewardAmount', 'api.user.Zhibo/rewardAmount'); //优惠券 Route::group('coupon', function () {