Onlinereg.class.php 8.28 KB
<?php
/**
 * 在线登记
 */
class Controller_Onlinereg extends Controller_Abstract
{
    /**
     * 首页
     */
    public function indexAction()
    {
        $mediaTotal = Facade_Onlinereg::getDownloadTotalByType(Facade_Onlinereg::TYPE_ONLINE_SPONSOR);
        $this->_view['mediaTotal'] = $mediaTotal;
    }
    
    /**
     * 赞助商
     */
    public function sponsorAction()
    {
        $this->_view['type'] = Facade_Onlinereg::TYPE_ONLINE_SPONSOR;
        $this->setSession('yohood', 'type', Facade_Onlinereg::TYPE_ONLINE_SPONSOR);
    }
    
    /**
     * 赞助商英文
     */
    public function sponsorenAction()
    {
        $this->_view['type'] = Facade_Onlinereg::TYPE_ONLINE_SPONSOR;
        $this->setSession('yohood', 'type', Facade_Onlinereg::TYPE_ONLINE_SPONSOR);
    }
    
    /**
     * 新闻稿
     */
    public function mediaAction()
    {
        $this->_view['type'] = Facade_Onlinereg::TYPE_ONLINE_MEDIA;
        $mediaTotal = Facade_Onlinereg::getDownloadTotalByType(Facade_Onlinereg::TYPE_ONLINE_SPONSOR);
        $this->_view['mediaTotal'] = $mediaTotal;
        $this->setSession('yohood', 'type', Facade_Onlinereg::TYPE_ONLINE_MEDIA);
    }
    
    /**
     * 新闻稿英文
     */
    public function mediaenAction()
    {
        $this->_view['type'] = Facade_Onlinereg::TYPE_ONLINE_MEDIA;
        $this->setSession('yohood', 'type', Facade_Onlinereg::TYPE_ONLINE_MEDIA);
    }
    
    /**
     * 参展商
     */
    public function exhibitorAction()
    {
        $this->_view['type'] = Facade_Onlinereg::TYPE_ONLINE_EXHIBITOR;
        $this->setSession('yohood', 'type', Facade_Onlinereg::TYPE_ONLINE_EXHIBITOR);
    }
    
    /**
     * 参展商英文
     */
    public function exhibitorenAction()
    {
        $this->_view['type'] = Facade_Onlinereg::TYPE_ONLINE_EXHIBITOR;
        $this->setSession('yohood', 'type', Facade_Onlinereg::TYPE_ONLINE_EXHIBITOR);
    }
    
    /**
     * 设置商家信息
     * 
     * @return json
     */
    public function setsellerAction()
    {
        $code = $this->_request->post('code');
        $type = intval($this->_request->post('type'));
        $status = false;
        if($this->validate($code) && $type == $this->getSession('yohood','type'))
        {
            //清除验证码
            Util_Captcha::setToSession('passport_istration', '');
            $name = $this->_request->post('name');
            $is_enter_yohobuy = $this->_request->post('is_enter_yohobuy');
            $profession = $this->_request->post('profession');
            $sex = $this->_request->post('sex');
            $introduction = $this->_request->post('introduction');
            $brand_reg_type = $this->_request->post('brand_reg_type');
            $product_type = $this->_request->post('product_type');
            $country = $this->_request->post('country');
            $city = $this->_request->post('city');
            $company = $this->_request->post('company');
            $place = $this->_request->post('place');
            $contact = $this->_request->post('contact');
            $telphone = $this->_request->post('telphone');
            $mobile = $this->_request->post('mobile');
            $relation = $this->_request->post('relation');
            $email = $this->_request->post('email');
            $is_3c = $this->_request->post('is_3c');
            $website = $this->_request->post('website');
            $zipcode = $this->_request->post('zipcode');
            $files = trim($this->_request->post('files'));
            if($type == Facade_Onlinereg::TYPE_ONLINE_SPONSOR)//赞助商
            {
                if(empty($name) || empty($contact)|| empty($telphone))
                {
                    return $this->returnJson(false, 403,'','数据不能为空');
                }
            }
            else if($type == Facade_Onlinereg::TYPE_ONLINE_EXHIBITOR)//参展商
            {
                if(empty($name)  || empty($contact) || empty($telphone))
                {
                    return $this->returnJson(false, 403,'','数据不能为空');
                }
            }
            else if($type == Facade_Onlinereg::TYPE_ONLINE_MEDIA)//新闻稿
            {
                if(empty($name) || empty($mobile) || empty($place))
                {
                    return $this->returnJson(false, 403,'','数据不能为空');
                }
            }
            if(in_array($type, array(Facade_Onlinereg::TYPE_ONLINE_SPONSOR, Facade_Onlinereg::TYPE_ONLINE_EXHIBITOR)))
            {
                $files = array($files);
            }
            else 
            {
                $files = '';
            }
            $status = Facade_Onlinereg::setSellerInfo($name, $type, $sex, $brand_reg_type, $is_enter_yohobuy, $profession, $product_type,
                $country, $city,$company, $contact, $telphone, $mobile, $email, $relation, $website, $introduction, $is_3c, $place, $files, $zipcode);
        }
        else 
        {
            return $this->returnJson(false, 403,'','验证失败');
        }
        
        if($status)
        {
            return $this->returnJson(true, 200);
        }
        else
        {
            return $this->returnJson(false, 403,'','操作失败');
        }
        
    }
    
    /**
     * 上传文件
     */
    public function uploadfileAction()
    {
        if ($this->_request->isPost())
        {
            $type = intval($this->_request->post('type'));
            $path = Lib_Images::saveImage($_FILES, 'onlinereg');
            if(!empty($path))
            {
                return $this->returnJson(true, 200, $path);
            }
            else
            {
                return $this->returnJson(false, 403,'','上传失败');
            }
        }
        else
        {
            return $this->returnJson(false, 403,'','失败');
        }
    }
    
    /**
     * 验证码
     */
    public function imagesAction()
    {
        $g = trim($this->_request->query('g'));
        $len = intval($this->_request->query('len', 4));
        $namespace = !empty($g) ? $g : 'passport_istration';
        $imgCode = new Util_Captcha();
        $imgCode->setWidth(150)->setHeight(50)->setWordLen($len)->generate($namespace);
    }
    
    /**
     * 参展商下载
     */
    public function exhibitordownAction()
    {
        $list = Facade_Onlinereg::getDownloadListByType(Facade_Onlinereg::TYPE_ONLINE_DOWNLOAD_EXHIBITOR, 0, 100);
        $this->_view['list'] = $list;
    }
    
    /**
     * 新闻稿下载
     */
    public function mediadownAction()
    {
        $list = Facade_Onlinereg::getDownloadListByType(Facade_Onlinereg::TYPE_ONLINE_DOWNLOAD_MEDIA, 0, 100);
        $this->_view['list'] = $list;
    }
    
    /**
     * 验证code
     * 
     * @return json
     */
    public function validatecodeAction()
    {
        $code = $this->_request->query('code');
        $status = false;
        if(!empty($code))
        {
            $status = $this->validate($code);
        }
        if($status)
        {
            return $this->returnJson(true, 200);
        }
        else
        {
            return $this->returnJson(false, 403);
        }
    }
    
    /**
     * 下载
     */
    public  function downloadAction()
    {
        $id = intval($this->_request->query('id'));
        if(!empty($id)) 
        {
            $download = Facade_Onlinereg::getDownloadById($id);
            if(!empty($download)) 
            {
                $file = Lib_Images::getImageUrl($download['file'], 'source','fragmentimg');
                $extension = pathinfo($file, PATHINFO_EXTENSION);
                header('Content-Type:'.Util_Common_Io_FileExt::getMine($extension));
                header('Content-Disposition: attachment;filename="'.$download['title'].'.'.$extension.'"');
                header('Cache-Control: max-age=0');
                readfile($file);
            }
        }
        else 
        {
            die('');
        }
        
    }
    
    /**
     * 验证code
     * 
     * @param string $code
     * @return boolean
     */
    private function validate($code)
    {
        $code = strtolower($code);
        $namespace ='passport_istration';
        $sessionCode = strtolower(Util_Captcha::getFromSession($namespace));
        if($code == $sessionCode)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}