区域逻辑调整

main
limu 11 months ago
parent 4771b3d7e9
commit dc0fb04302
  1. 42
      app/common/repositories/system/admin/PartnerRepository.php
  2. 29
      app/controller/admin/system/admin/Partner.php

@ -16,6 +16,7 @@ namespace app\common\repositories\system\admin;
//附件
use app\common\dao\system\admin\PartnerDao;
use app\common\model\store\CityArea;
use app\common\model\system\admin\Partner;
use app\common\repositories\BaseRepository;
use app\common\model\user\UserPartner;
@ -101,7 +102,46 @@ class PartnerRepository extends BaseRepository
*/
public function getDetail(int $id)
{
return $this->dao->get($id)->toArray();
try {
$data = $this->dao->get($id)->toArray();
$data['province_id'] = '';
$data['province_name'] = '';
$data['city_id'] = '';
$data['city_name'] = '';
$data['district_id'] = '';
$data['district_name'] = '';
if ($data['is_area'] == 1 && $data['area_id'] > 0) {
$area_data = CityArea::getDB()->where('id', $data['area_id'])->find()->toArray();
$ids = explode("/", $area_data['path']);
if ($area_data['level'] == 1) {
$data['province_id'] = $data['area_id'];
$name_data = CityArea::getDB()->where('id', $data['province_id'])->find()->toArray();
$data['province_name'] = $name_data['name'];
} elseif ($area_data['level'] == 2) {
$data['province_id'] = $ids[1];
$name_data = CityArea::getDB()->where('id', $data['province_id'])->find()->toArray();
$data['province_name'] = $name_data['name'];
$data['city_id'] = $data['area_id'];
$name_data1 = CityArea::getDB()->where('id', $data['city_id'])->find()->toArray();
$data['city_name'] = $name_data1['name'];
} elseif ($area_data['level'] == 3) {
$data['province_id'] = $ids[1];
$name_data = CityArea::getDB()->where('id', $data['province_id'])->find()->toArray();
$data['province_name'] = $name_data['name'];
$data['city_id'] = $ids[2];
$name_data1 = CityArea::getDB()->where('id', $data['city_id'])->find()->toArray();
$data['city_name'] = $name_data1['name'];
$data['district_id'] = $data['area_id'];
$name_data2 = CityArea::getDB()->where('id', $data['district_id'])->find()->toArray();
$data['district_name'] = $name_data2['name'];
}
}
return $data;
} catch (\Exception $e) {
print_r($e->getFile() . '-' . $e->getLine() . "-" . $e->getMessage());
}
}
/**

@ -49,11 +49,23 @@ class Partner extends BaseController
public function add(PartnerRoleValidate $validate)
{
$data = $this->request->params(['name', 'ratio', 'is_area', 'area_level',
'area_id', ['status', 1], ['type', 1], ['max_role_num', 1], 'brand_id', 'trade_id', 'region_id']);
'province_id', 'city_id', 'district_id', ['status', 1], ['type', 1], ['max_role_num', 1],
'brand_id', 'trade_id', 'region_id']);
$validate->check($data);
if ($data['is_area'] == 1 && $this->repository->fieldExists('area_id', $data['area_id'])) {
if ($data['is_area'] == 1) {
if (!empty($data['district_id'])) {
$data['area_id'] = $data['district_id'];
} elseif (!empty($data['city_id'])) {
$data['area_id'] = $data['city_id'];
} elseif (!empty($data['province_id'])) {
$data['area_id'] = $data['province_id'];
} else {
return app('json')->fail('请选择区域');
}
if ($this->repository->fieldExists('area_id', $data['area_id'])) {
return app('json')->fail('该区域已经有了代理角色,请勿重复添加');
}
}
if (
($data['type'] == 3 && empty($data['brand_id']))
|| ($data['type'] == 4 && empty($data['trade_id']))
@ -69,14 +81,21 @@ class Partner extends BaseController
{
$data = $this->request->params(['name', 'ratio', 'is_area', 'area_level',
'province_id', 'city_id', 'district_id',
'area_id', ['status', 1], ['type', 1], 'brand_id', 'trade_id', 'id', 'region_id']);
$validate->check($data);
if ($data['is_area'] == 1) {
if (empty($data['area_id']) && empty($data['area_level'])) {
return app('json')->fail('请选择所属区域');
if (!empty($data['district_id'])) {
$data['area_id'] = $data['district_id'];
} elseif (!empty($data['city_id'])) {
$data['area_id'] = $data['city_id'];
} elseif (!empty($data['province_id'])) {
$data['area_id'] = $data['province_id'];
} else {
return app('json')->fail('请选择区域');
}
if ($this->repository->fieldExists('area_id', $data['area_id'], $data['id'])) {
if ($this->repository->fieldExists('area_id', $data['area_id'])) {
return app('json')->fail('该区域已经有了代理角色,请勿重复添加');
}
} else {

Loading…
Cancel
Save