QrcodeController.php 2.15 KB
<?php
namespace app\wx\controllers;

use domain\smart\ScanRecords;
use domain\smart\SellerInputRecordRepository;
use Yii;
use stdClass;

/**
 * qrcode-控制器
 * Class QrcodeController
 * @package app\wx\controllers
 */
class QrcodeController extends BaseController
{
    /**
     * @throws yii\web\BadRequestHttpException
     */
    public function init()
    {
        parent::init(); // TODO: Change the autogenerated stub
        $this->checkClientStatus();
        $this->handleMallAccessCtrl();
    }
    /**
     * @return string
     * @return string HTML
     */
    public function actionIndex()
    {
        $uuid = Yii::$app->request->get("uuid");
        // 判断路径中是否存在UUID
        if (empty($uuid)) {
            $this->jumpError();
        }
        if (strstr($uuid, "@") === false) {
            $this->jumpError();
        }
        $explodArrar = explode("@", $uuid);
        if (empty($explodArrar)) {
            $this->jumpError();
        }
        $uuid = $explodArrar[0];
        // @todo 校验UUID是否有效 2 无效  0 有效未激活  1 有效已激活
        $hasRecord = SellerInputRecordRepository::findOne(["uuid" => $uuid]);
        if (empty($hasRecord)) {
            $this->jumpActive($uuid);
        } else {
            // 记录扫码次数
            $scanCount = ScanRecords::updateCount($uuid);
            $scanCount = $scanCount ? $scanCount : 1;
            $this->jumpScanCount($uuid, $scanCount);
        }


    }

    /**
     * 跳转到错误页面
     */
    private function jumpError()
    {
        $jumpUrl = Yii::$app->params["baseUrl"]."/check#error/0";
        header("Location: $jumpUrl");exit;
    }

    /**
     * 跳转到扫码次数页面
     */
    private function jumpScanCount($uuid, $scanCount)
    {
        $jumpUrl = Yii::$app->params["baseUrl"] . "?jumpmodel=check&jumppath=scan-count/" . $uuid . "/" . $scanCount;
        header("Location: $jumpUrl");exit;
    }

    /**
     * 跳转到激活页面
     */
    private function jumpActive($uuid)
    {
        $jumpUrl = Yii::$app->params["baseUrl"] . "?jumpmodel=smart&jumppath=enter/" . $uuid ;
        header("Location: $jumpUrl");exit;
    }
}