157 lines
5.2 KiB
PHP
157 lines
5.2 KiB
PHP
<?php
|
||
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
|
||
namespace app\controller\merchant\store\shipping;
|
||
|
||
use app\common\repositories\store\CityAreaRepository;
|
||
use think\App;
|
||
use crmeb\basic\BaseController;
|
||
use app\common\repositories\store\shipping\CityRepository as repository;
|
||
use think\facade\Log;
|
||
|
||
class City extends BaseController
|
||
{
|
||
protected $repository;
|
||
|
||
/**
|
||
* City constructor.
|
||
* @param App $app
|
||
* @param repository $repository
|
||
*/
|
||
public function __construct(App $app, repository $repository)
|
||
{
|
||
parent::__construct($app);
|
||
$this->repository = $repository;
|
||
}
|
||
|
||
/**
|
||
* @Author:Qinii
|
||
* @Date: 2020/5/8
|
||
* @Time: 14:40
|
||
* @return mixed
|
||
*/
|
||
public function lst()
|
||
{
|
||
return app('json')->success($this->repository->getFormatList([['is_show', '=', 1],['level','<',2]]));
|
||
}
|
||
|
||
public function lstV2($pid)
|
||
{
|
||
return app('json')->success(app()->make(CityAreaRepository::class)->getChildren(intval($pid)));
|
||
}
|
||
|
||
public function lstV3()
|
||
{
|
||
$provinceCode = $this->request->param('province_code') ?? '';
|
||
$cityCode = $this->request->param('city_code') ?? '';
|
||
$areaCode = $this->request->param('area_code') ?? '';
|
||
$streetCode = $this->request->param('street_code') ?? '';
|
||
$list = app()->make(CityAreaRepository::class)->getGeoChildren(['province_code' => $provinceCode, 'city_code' => $cityCode, 'area_code' => $areaCode, 'street_code' => $streetCode]);
|
||
$geoList = [];
|
||
foreach ($list as $v) {
|
||
if (!empty($v['village_id'])) {
|
||
$temp = [
|
||
'type' => 'village',
|
||
'id' => $v['village_id'],
|
||
'level' => 5,
|
||
'name' => $v['village_name'] ?? '',
|
||
'code' => $v['village_code'] ?? ''
|
||
];
|
||
$geoList[] = $temp;
|
||
}
|
||
if (!empty($v['street_id'])) {
|
||
$temp = [
|
||
'type' => 'street',
|
||
'id' => $v['street_id'],
|
||
'level' => 4,
|
||
'name' => $v['street_name'] ?? '',
|
||
'code' => $v['street_code'] ?? ''
|
||
];
|
||
$geoList[] = $temp;
|
||
}
|
||
if (!empty($v['area_id'])) {
|
||
$temp = [
|
||
'type' => 'area',
|
||
'id' => $v['area_id'],
|
||
'level' => 3,
|
||
'name' => $v['area_name'] ?? '',
|
||
'code' => $v['area_code'] ?? ''
|
||
];
|
||
$geoList[] = $temp;
|
||
}
|
||
if (!empty($v['city_id'])) {
|
||
$temp = [
|
||
'type' => 'city',
|
||
'id' => $v['city_id'],
|
||
'level' => 2,
|
||
'name' => $v['city_name'] ?? '',
|
||
'code' => $v['city_code'] ?? ''
|
||
];
|
||
$geoList[] = $temp;
|
||
}
|
||
if (!empty($v['province_id'])) {
|
||
$temp = [
|
||
'type' => 'province',
|
||
'id' => $v['province_id'],
|
||
'level' => 1,
|
||
'name' => $v['province_name'] ?? '',
|
||
'code' => $v['province_code'] ?? ''
|
||
];
|
||
$geoList[] = $temp;
|
||
}
|
||
}
|
||
return app('json')->success($geoList);
|
||
}
|
||
|
||
public function brigade()
|
||
{
|
||
$list = app()->make(CityAreaRepository::class)->getBrigade([]);
|
||
$geoList = [];
|
||
foreach ($list as $v) {
|
||
$temp = [
|
||
'type' => 'brigade',
|
||
'id' => $v['id'],
|
||
'level' => 6,
|
||
'name' => $v['brigade_name'] ?? '',
|
||
'code' => $v['brigade_name'] ?? ''
|
||
];
|
||
$geoList[] = $temp;
|
||
}
|
||
return app('json')->success($geoList);
|
||
}
|
||
|
||
|
||
public function cityList()
|
||
{
|
||
$address = $this->request->param('address');
|
||
if (!$address)
|
||
return app('json')->fail('地址不存在');
|
||
$make = app()->make(CityAreaRepository::class);
|
||
$city = $make->search(compact('address'))->order('id DESC')->find();
|
||
if (!$city){
|
||
Log::info('用户定位对比失败,请在城市数据中增加:'.var_export($address,true));
|
||
return app('json')->fail('地址不存在');
|
||
}
|
||
return app('json')->success($make->getCityList($city));
|
||
}
|
||
|
||
|
||
/**
|
||
* @return mixed
|
||
* @author Qinii
|
||
*/
|
||
public function getlist()
|
||
{
|
||
return app('json')->success($this->repository->getFormatList(['is_show' => 1]));
|
||
}
|
||
}
|