2023-03-18 17:15:39 +08:00

215 lines
6.6 KiB
PHP

<?php
/**
* @copyright Copyright (c) 2021 勾股工作室
* @license https://opensource.org/licenses/Apache-2.0
* @link https://www.gougucms.com
*/
declare (strict_types = 1);
namespace app\admin\controller;
use app\admin\BaseController;
use app\admin\model\SupplyTeam as SupplyTeamModel;
use app\admin\validate\SupplyTeamValidate;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\View;
use app\admin\model\Admin;
use app\admin\model\GeoCity;
use app\admin\model\GeoArea;
use app\admin\model\GeoStreet;
use app\admin\model\GeoVillage;
use app\admin\model\ShopUser;
class SupplyTeam extends BaseController
{
/**
* 构造函数
*/
public function __construct()
{
$this->model = new SupplyTeamModel();
$this->uid = get_login_admin('id');
}
/**
* 数据列表
*/
public function datalist()
{
if (request()->isAjax()) {
$param = get_params();
$where = [];
$list = $this->model->with(['level', 'user', 'userMsg'])->select();
$total = $this->model->count();
// $list = $this->model->getSupplyTeamList($where,$param);
foreach ($list as $k =>$v){
switch ($v['auth_range']) {
case 1:
$list[$k]['address'] = GeoVillage::where('village_code', $v['parent_code'])->value('village_name');
$list[$k]['auth_range'] = '村';
break;
case 2:
$list[$k]['address'] = GeoStreet::where('street_code', $v['parent_code'])->value('street_name');
$list[$k]['auth_range'] = '乡镇';
break;
case 3:
$list[$k]['address'] = GeoArea::where('area_code', $v['parent_code'])->value('area_name');
$list[$k]['auth_range'] = '区县';
break;
case 4:
$list[$k]['address'] = GeoCity::where('city_code', $v['parent_code'])->value('city_name');
$list[$k]['auth_range'] = '市';
break;
}
}
$result = ['total' => $total, 'data' => $list];
return table_assign(0, '', $result);
}
else{
return view();
}
}
/**
* 添加
*/
public function add()
{
if (request()->isAjax()) {
$param = get_params();
// 检验完整性
try {
validate(SupplyTeamValidate::class)->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$userAdmin = Db::table('fa_szxc_information_useraddress')->where('user_id', $param['user_id'])->find();
$parent_code = '';
// 验证用户级别,获取对应的区域代码
switch ($userAdmin['auth_range']) {
case 1:
// 单独处理
$parent_code = $userAdmin['village_code']; // 村
break;
case 2:
// 单独处理
$parent_code = $userAdmin['street_id']; // 乡镇
break;
case 3:
// 单独处理
$parent_code = $userAdmin['area_id']; // 区县
break;
case 4:
// 单独处理
$parent_code = Db::table('fa_szxc_information_useraddress')->where('user_id', $userAdmin['area_id'])->value('city_code'); // 市级
break;
}
$param['auth_range'] = $userAdmin['auth_range']; // 市区线级别
$param['parent_code'] = $parent_code; // 所属区域代码
$this->model->addSupplyTeam($param);
}else{
$geo_area = Db::table('fa_geo_area')->where('city_code',510500)->select();
View::assign('geo_area', $geo_area);
$level = Db::table('fa_supply_level')->whereNotIn('id', [1])->select();
View::assign('level', $level);
//获取用户信息
$usersList = ShopUser::with(['userAddress', 'userMsg'])->select();
View::assign('users', $usersList);
return view();
}
}
/**
* 编辑
*/
public function edit()
{
$param = get_params();
if (request()->isAjax()) {
// 检验完整性
try {
validate(SupplyTeamValidate::class)->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$this->model->editSupplyTeam($param);
}else{
$id = isset($param['id']) ? $param['id'] : 0;
$detail = $this->model->getSupplyTeamById($id);
if (!empty($detail)) {
View::assign('detail', $detail);
$geo_area = Db::table('fa_geo_area')->where('city_code',510500)->select();
View::assign('geo_area', $geo_area);
$level = Db::table('fa_supply_level')->select();
View::assign('level', $level);
//获取用户信息
$this->users = Db::table('fa_szxc_information_usermsg')->where('status',1)->field('user_id,name')->select();
View::assign('users', $this->users);
return view();
}
else{
throw new \think\exception\HttpException(404, '找不到页面');
}
}
}
/**
* 查看信息
*/
public function read()
{
$param = get_params();
$id = isset($param['id']) ? $param['id'] : 0;
$detail = $this->model->getSupplyTeamById($id);
if (!empty($detail)) {
View::assign('detail', $detail);
$geo_area = Db::table('fa_geo_area')->where('city_code',510500)->select();
View::assign('geo_area', $geo_area);
$level = Db::table('fa_supply_level')->select();
View::assign('level', $level);
//获取用户信息
$this->users = Db::table('fa_szxc_information_usermsg')->where('status',1)->field('user_id,name')->select();
View::assign('users', $this->users);
return view();
}
else{
throw new \think\exception\HttpException(404, '找不到页面');
}
}
/**
* 删除
* type=0,逻辑删除,默认
* type=1,物理删除
*/
public function del()
{
$param = get_params();
$id = isset($param['id']) ? $param['id'] : 0;
$type = 1;
$this->model->delSupplyTeamById($id,$type);
}
}