110 lines
3.0 KiB
PHP
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;
|
|
}
|
|
} |