AdministrativeDivisionController.php 5.8 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 控制层: 行政区划 控制类
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Http\Api\V1\Controllers\System
 * @package   App\Http\Api\V1\Controllers\System
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年12月16日 18:16:16
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Http\Api\V1\Controllers\System;

use App\Http\Api\V1\Controllers\BaseController;
use App\Models\System\AdministrativeDivision;
use App\Services\System\AdministrativeDivisionService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

/**
 * Class AdministrativeDivisionController
 *
 * @category  App\Http\Api\V1\Controllers\System
 * @package   App\Http\Api\V1\Controllers\System
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年12月16日 18:16:16
 * @copyright 2020-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class AdministrativeDivisionController extends BaseController
{
    /**
     * AdministrativeDivisionService constructor.
     *
     * @param AdministrativeDivisionService $service 注入service层
     */
    public function __construct(AdministrativeDivisionService $service)
    {
        // 执行父类构造方法
        parent::__construct($service);
    }

    /**
     * 获取全部的省份
     *
     * @return Response
     */
    public function getProvinces()
    {
        // 获取参数
        $list    = $this->service->getRegions(AdministrativeDivision::PROVINCE);
        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 获取全部的城市
     *
     * @return Response
     */
    public function getCities()
    {
        // 获取参数
        $list    = $this->service->getRegions(AdministrativeDivision::CITY);
        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 根据上级code获取全部的城市
     *
     * @param $pcode
     * @return Response
     */
    public function getCitiesByPcode($pcode)
    {
        // 获取参数
        $list    = $this->service->getRegions(AdministrativeDivision::CITY, $pcode);
        return $this->success($list);

        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 获取全部的城市
     *
     * @return Response
     */
    public function getDistricts()
    {
        // 获取参数
        $list    = $this->service->getRegions(AdministrativeDivision::COUNTY);
        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 根据上级code获取全部的城市
     *
     * @param $pcode
     * @return Response
     */
    public function getCountiesByPcode($pcode)
    {
        // 获取参数
        $list    = $this->service->getRegions(AdministrativeDivision::COUNTY, $pcode);
        return $this->success($list);

        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 根据省份区域的code获取省份的代码集:主要为laravel-admin的select组件使用
     *
     * @return
     */
    public function getProvinceSelectOptions()
    {
        // 获取参数
        $codeset    = $this->service->getSelectOptions('province');
        return $codeset;
    }

    /**
     * 根据省份的code获取城市的代码集:主要为laravel-admin的select组件使用
     *
     * @return
     */
    public function getCitySelectOptions()
    {
        // 获取参数
        return $this->service->getSelectOptions(AdministrativeDivision::CITY, request()->get('q'));
    }

    /**
     * 根据城市的code获取区县的代码集:主要为laravel-admin的select组件使用
     *
     * @return
     */
    public function getDistrictSelectOptions()
    {
        // 获取参数
        return $this->service->getSelectOptions(AdministrativeDivision::COUNTY, request()->get('q'));
    }

    /**
     * 根据省份的code获取城市的代码集:主要为laravel-admin的select组件使用
     *
     * @return
     */
    public function getCitySelectOptionsByKeyword()
    {
        // 获取参数
        return $this->service->getSelectOptionsByKeyword('city', request('q'));
    }

    /**
     * 获取热门城市
     *
     * @return Response
     */
    public function getHotCities()
    {
        // 获取参数
        $list    = $this->service->getHotCities();
        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 获取商圈
     *
     * @param $pcode
     * @return Response
     */
    public function getBizdistricts($pcode)
    {
        // 获取参数
        $list    = $this->service->getBizdistricts($pcode);
        if ($list) {
            return $this->success($list);
        } else {
            return $this->error($this->service->getMessage(), 1001);
        }
    }

    /**
     * 根据区县获取商圈
     *
     * @return Response
     */
    public function getBizdistrictSelectOptions()
    {
        // 获取参数
        return  $list    = $this->service->getBizdistrictSelectOptions();
    }
}