| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- /**
- * Created by PhpStorm.
- * Name: 芸众商城系统
- * Author: 广州市芸众信息科技有限公司
- * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
- * Date: 2022-05-27
- * Time: 11:17
- */
- namespace business\admin\controllers;
- use app\common\models\Area;
- use app\common\models\Street;
- use business\common\controllers\components\BaseController;
- use Illuminate\Database\Eloquent\Collection;
- class AreaController extends BaseController
- {
- public function openStreet()
- {
- $is_street = \Setting::get("shop.trade")['is_street']?1:0;
- return $this->successJson('street', ['is_street' => $is_street]);
- }
- public function index()
- {
- if ($this->isStreet(request('parent_id'))) {
- $areas = Street::where('parentid',request('parent_id'))->get();
- } else {
- $areas = Area::where('parentid',request('parent_id'))->get();
- }
- return $this->successJson('成功', $this->formatAreas($areas));
- }
- public function init()
- {
- list($provinceId,$cityId,$districtId,$street_id) = explode(',',request('area_ids'));
- $province = Area::where('parentid',0)->get();
- $cities = Area::where('parentid',$provinceId)->get();
- $districts = Area::where('parentid',$cityId)->get();
- $streets = Street::where('parentid',$districtId)->get();
- $province = $this->formatAreas($province);
- $province->where('id',$provinceId)->first()->children = $cities;
- $cities->where('id',$cityId)->first()->children = $districts;
- $districts->where('id',$districtId)->first()->children = $streets;
- return $this->successJson('成功', $province);
- }
- protected function isStreet($areaId)
- {
- if ($areaId == 0) {
- return false;
- }
- $area = Area::find(request('parent_id'));
- if (!$area) {
- return false;
- }
- return $area->level == 3;
- }
- protected function formatAreas(Collection $areas)
- {
- if ($areas->isEmpty()) {
- return $areas;
- }
- // 不是子节点
- if (!$areas->first()->isLeaf()) {
- $areas->each(function (Area $area) {
- $area['children'] = [];
- });
- }
- return $areas;
- }
- }
|