Server : nginx/1.20.1
System : Linux iZ2ze9ojcl78uluczwag69Z 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64
User : www ( 1000)
PHP Version : 7.3.28
Disable Function : passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/0531yanglao.com/app/admin/controller/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/0531yanglao.com/app/admin/controller/Region.php
<?php
/*
 * @Description  : 地区管理
 * @Author       : https://github.com/skyselang
 * @Date         : 2020-12-08
 * @LastEditTime : 2020-12-25
 */

namespace app\admin\controller;

use think\facade\Request;
use app\admin\service\RegionService;
use app\admin\validate\RegionValidate;

class Region
{
    /**
     * 地区列表
     *
     * @method GET
     * 
     * @return json
     */
    public function regionList()
    {
        $region_pid    = Request::param('region_pid/d', 0) ?: 0;
        $region_name   = Request::param('region_name/s', '');
        $region_pinyin = Request::param('region_pinyin/s', '');
        $sort_field    = Request::param('sort_field/s ', '');
        $sort_type     = Request::param('sort_type/s', '');

        if ($region_name || $region_pinyin) {
            if ($region_name) {
                $where[] = ['region_name', '=', $region_name];
            }
            if ($region_pinyin) {
                $where[] = ['region_pinyin', '=', $region_pinyin];
            }
        } else {
            $where[] = ['region_pid', '=', $region_pid];
        }

        $order = [];
        if ($sort_field && $sort_type) {
            $order = [$sort_field => $sort_type];
        }

        $data = RegionService::list($where, $order);

        return success($data);
    }

    /**
     * 地区信息
     *
     * @method GET
     * 
     * @return json
     */
    public function regionInfo()
    {
        $param['region_id'] = Request::param('region_id/d', '');

        validate(RegionValidate::class)->scene('region_id')->check($param);

        $data = RegionService::info($param['region_id']);

        if ($data['is_delete'] == 1) {
            exception('地区已被删除:' . $param['region_id']);
        }

        return success($data);
    }

    /**
     * 地区添加
     *
     * @method GET|POST
     * 
     * @return json
     */
    public function regionAdd()
    {
        if (Request::isGet()) {
            $data = RegionService::add();
        } else {
            $param['region_pid']       = Request::param('region_pid/d', 0);
            $param['region_level']     = Request::param('region_level/d', 1);
            $param['region_name']      = Request::param('region_name/s', '');
            $param['region_pinyin']    = Request::param('region_pinyin/s', '');
            $param['region_jianpin']   = Request::param('region_jianpin/s', '');
            $param['region_initials']  = Request::param('region_initials/s', '');
            $param['region_citycode']  = Request::param('region_citycode/s', '');
            $param['region_zipcode']   = Request::param('region_zipcode/s', '');
            $param['region_longitude'] = Request::param('region_longitude/s', '');
            $param['region_latitude']  = Request::param('region_latitude/s', '');
            $param['region_sort']      = Request::param('region_sort/d', 1000);

            if (empty($param['region_pid'])) {
                $param['region_pid'] = 0;
            }

            if (empty($param['region_level'])) {
                $param['region_level'] = 1;
            }

            validate(RegionValidate::class)->scene('region_add')->check($param);

            $data = RegionService::add($param, 'post');
        }

        return success($data);
    }

    /**
     * 地区修改
     *
     * @method GET|POST
     * 
     * @return json
     */
    public function regionEdit()
    {
        $param['region_id'] = Request::param('region_id/d', '');

        if (Request::isGet()) {
            validate(RegionValidate::class)->scene('region_id')->check($param);

            $data = RegionService::edit($param);

            if ($data['region_info']['is_delete'] == 1) {
                exception('地区已被删除');
            }
        } else {
            $param['region_pid']       = Request::param('region_pid/d', 0);
            $param['region_level']     = Request::param('region_level/d', 1);
            $param['region_name']      = Request::param('region_name/s', '');
            $param['region_pinyin']    = Request::param('region_pinyin/s', '');
            $param['region_jianpin']   = Request::param('region_jianpin/s', '');
            $param['region_initials']  = Request::param('region_initials/s', '');
            $param['region_citycode']  = Request::param('region_citycode/s', '');
            $param['region_zipcode']   = Request::param('region_zipcode/s', '');
            $param['region_longitude'] = Request::param('region_longitude/s', '');
            $param['region_latitude']  = Request::param('region_latitude/s', '');
            $param['region_sort']      = Request::param('region_sort/d', 1000);

            if (empty($param['region_pid'])) {
                $param['region_pid'] = 0;
            }

            if (empty($param['region_level'])) {
                $param['region_level'] = 1;
            }

            validate(RegionValidate::class)->scene('region_edit')->check($param);

            $data = RegionService::edit($param, 'post');
        }

        return success($data);
    }

    /**
     * 地区删除
     *
     * @method POST
     * 
     * @return json
     */
    public function regionDele()
    {
        $param['region_id'] = Request::param('region_id/d', '');

        validate(RegionValidate::class)->scene('region_dele')->check($param);

        $data = RegionService::dele($param['region_id']);

        return success($data);
    }
}