error("获取活动信息失败"); } if(!$activityInfo['apply_status']){ $this->error("当前不可购票"); } $sortField = 'id'; if($activityInfo['ticket_show_rule'] == 1){ $sortField = 'price'; } $data = \app\api\model\app\activity\Ticket::where([ 'activity_id'=>$id ])->order($sortField,'asc')->select(); $isVirtualPay = \app\common\library\pay\VirtualPayService::isUseVirtualPay('activity'); foreach ($data as &$item){ if($item['inventory']){ $item['inventory'] = $item['inventory'] - $item['sales']; } else{ $item['inventory'] = 999; } if($item['limit_buy']){ $userBuyCount = \app\api\model\app\activity\UserTicket::getUserBuyCount($this->auth->id,$item['id']); $item['can_buy'] = $item['limit_buy'] - $userBuyCount; if($item['can_buy'] > $item['inventory']){ $item['can_buy'] = $item['inventory']; } }else{ $item['can_buy'] = $item['inventory'] >0 ? $item['inventory'] : 9999; } if ($isVirtualPay) { $item = \app\common\library\pay\VirtualPayService::convertPriceFields($item->toArray(), ['price']); } } $this->success("获取成功",$data); } /** * 获取我的票券 * @return void */ public function getUserTicket(){ $userTicketModel = new \app\api\model\app\activity\UserTicket(); $limit = input('limit',10); $page = input('page',1); $status = input('status',''); $search = input('search'); $sort = input('sort','desc') == 'desc' ? 'desc' : 'asc'; $order = input('order'); $sort = 'desc'; $where = [ 'ut.user_id'=>$this->auth->id ]; if($status){ switch ($status){ case 1: $where['ut.status'] = 1; $where['ut.sign'] = 0; break; case 2: $where['ut.status'] = 1; $where['ut.sign'] = 1; break; case 3: $where['ut.status'] = 0; break; case 4: $where['ut.status'] = 2; break; } } if($search){ $where['a.name|at.name|ut.ticket_no'] = ['like',"%{$search}%"]; } $list = $userTicketModel->getUserTicket($where,$limit,$page); $this->success('获取成功', $list); } /** * 获取票券详情 * @return void */ public function getTicketDetail(){ $ticketNo = input('ticket_no'); $userTicketModel = new \app\api\model\app\activity\UserTicket(); $data = $userTicketModel->getTicketDetail($ticketNo); if(!$data){ $this->error("未查询到相关票券信息"); } $this->success('获取成功', $data); } }