Files

110 lines
3.0 KiB
PHP

<?php
namespace app\api\model\app\activity;
use think\Model;
use think\Db;
use app\api\model\app\activity\Ticket;
use app\common\exception\Exception;
class UserTicket extends Model
{
// 表名
protected $name = 'app_activity_user_ticket';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'integer';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = false;
protected $deleteTime = false;
/**
* 获取报名人数
* @return void
*/
public static function getApplyUserCount($activityId){
return self::where([
'activity_id'=>$activityId,
'status'=>['<>',2]
])->count();
}
/**
* 获取用户购买次数
* @return void
*/
public static function getUserBuyCount($userId,$ticketId){
return self::where([
'ticket_id'=>$ticketId,
'user_id'=>$userId
])->count();
}
/**
* 获取用户票券
* @param $where
* @param $limit
* @param $page
* @param $sort
* @return void
*/
public function getUserTicket($where,$limit,$page,$sort='desc'){
$orderField = 'ut.createtime';
$field = ['ut.activity_id','ut.sign','ut.status','a.name as activity_name','at.name as ticket_name','ut.use_time','ut.price','ut.createtime','ut.ticket_no','form.mobile','form.name','form.other'];
$list = self::alias('ut')
->join(\app\api\model\app\activity\Activity::getTable().' a','ut.activity_id=a.id','LEFT')
->join(\app\api\model\app\activity\Ticket::getTable().' at','ut.ticket_id=at.id')
->join(\app\api\model\app\activity\Form::getTable().' form','ut.apply_info_id=form.id')
->where($where)
->limit($limit)->page($page)
->order($orderField,$sort)
->field($field)
->select();
if(!empty($list)){
foreach ($list as &$item){
$item['other'] = json_decode($item['other']);
}
}
return $list;
}
/**
* 获取用户票券
* @param $where
* @param $limit
* @param $page
* @param $sort
* @return void
*/
public function getTicketDetail($ticketNo){
$field = ['ut.activity_id','ut.status','a.name as activity_name','at.name as ticket_name','ut.use_time','ut.price','ut.createtime','ut.ticket_no','form.mobile','form.name','form.other'];
$data = self::alias('ut')
->join(\app\api\model\app\activity\Activity::getTable().' a','ut.activity_id=a.id')
->join(\app\api\model\app\activity\Ticket::getTable().' at','ut.ticket_id=at.id')
->join(\app\api\model\app\activity\Form::getTable().' form','ut.apply_info_id=form.id')
->where([
'ut.ticket_no'=>$ticketNo
])
->field($field)
->find();
if(!$data){
return false;
}
return $data;
}
}