| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | <?phpnamespace app\api\controller;use app\common\controller\Api;use think\Db;use addons\epay\library\Service;/** * 活动 */class Active extends Api{    protected $noNeedLogin = ['lists'];    protected $noNeedRight = ['*'];    public function lists()    {        $where = ['is_show'=>1];        $list = Db::name('active')->field('content',true)->where($where)->order('weigh desc')->autopage()->select();        $list = list_domain_image($list,['image']);        if(!empty($list)){            foreach($list as $key => &$item){                $status_text = '进行中';                $status = 2;                if(time() < $item['activestarttime']){                    $status_text = '报名中';                    $status = 1;                }                if(time() > $item['activeendtime']){                    $status_text = '已结束';                    $status = 3;                }                $item['status_text'] = $status_text;                $item['active_status'] = $status;            }        }        $this->success(1,$list);    }    public function info(){        $id = input('id',0);        $info = Db::name('active')->where('is_show',1)->where('id',$id)->find();        if(!$info){            $this->error('不存在的活动');        }        $info = info_domain_image($info,['image']);        $this->success(1,$info);    }    //报名    public function join(){        $remark = input('remark',0);        $active_id = input('id',0);        $info = Db::name('active')->where('is_show',1)->where('id',$active_id)->find();        if(!$info){            $this->error('不存在的活动');        }        $student_id = input('student_id',0);        if(!$student_id){            $this->error('请选择学生');        }        //匹配学生        $check = Db::name('user_student')->where('id',$student_id)->where('user_id',$this->auth->id)->find();        if(!$check){            $this->error('不存在的学生');        }        //重复报名        $map = [            'active_id' => $active_id,            'user_id'    => $this->auth->id,            'student_id'    => $student_id,            'status' => 1,        ];        $check = Db::name('order')->where($map)->find();        if($check){            $this->error('该学生已经报名本次活动');        }        Db::startTrans();        //下单        $data = [            'order_no' => createUniqueNo('A',$this->auth->id),            'active_id' => $active_id,            'user_id'    => $this->auth->id,            'student_id'    => $student_id,            'createtime' => time(),            'pay_fee' => $info['pay_fee'],            'status' => 0,            'remark' => $remark,        ];        $order_id = Db::name('order')->insertGetId($data);        if(!$order_id){            Db::rollback();            $this->error('报名失败');        }        Db::commit();        $this->success(1,$order_id);    }}
 |