Files
amb_wechatapp/application/api/controller/app/activity/Signin.php
T

69 lines
1.7 KiB
PHP

<?php
namespace app\api\controller\app\activity;
use app\common\controller\Api;
use think\Db;
/**
* 线下活动-签到
*/
class Signin extends Api
{
protected $noNeedLogin = ["signin"];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = ['*'];
public function _initialize()
{
parent::_initialize();
$this->model = new \app\api\model\app\activity\Form;
}
/**
* 签到
* @return void
*/
public function signin()
{
$name = input('name','');
$mobile = input('mobile','');
$activityId = input('activity_id','');
$activityDetail =\app\api\model\app\activity\Activity::getActivityDetail($activityId);
if(!$activityDetail){
$this->error("获取活动信息失败");
}
if(!$activityDetail['status']){
$this->error("当前不在活动时间");
}
$ticket = \app\api\model\app\activity\UserTicket::alias('uk')
->join(\app\api\model\app\activity\Form::getTable() . ' form','uk.apply_info_id = form.id')
->where([
'form.name'=>$name,
'form.mobile'=>$mobile,
'uk.activity_id'=>$activityId,
'uk.status'=>1
])->field('uk.ticket_no,uk.id,uk.status,uk.sign')->find();
if($ticket){
//判断有没有签到,未签到则改变签到状态
if($ticket['sign'] == 0){
\app\api\model\app\activity\Signin::signin($ticket['ticket_no']);
}
$this->success("签到成功",$ticket['ticket_no']);
}
$this->error("根据你提交的报名信息,没有查询到相关票券");
}
}