From dc0fb04302e4ee800dc76f74299ac74831c29f61 Mon Sep 17 00:00:00 2001 From: limu Date: Mon, 25 Dec 2023 15:14:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E9=80=BB=E8=BE=91=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/admin/PartnerRepository.php | 54 ++++++++++++++++--- app/controller/admin/system/admin/Partner.php | 31 ++++++++--- 2 files changed, 72 insertions(+), 13 deletions(-) diff --git a/app/common/repositories/system/admin/PartnerRepository.php b/app/common/repositories/system/admin/PartnerRepository.php index 6ffa04d..381a2c9 100644 --- a/app/common/repositories/system/admin/PartnerRepository.php +++ b/app/common/repositories/system/admin/PartnerRepository.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; @@ -76,7 +77,7 @@ class PartnerRepository extends BaseRepository //生成角色 $info = $this->dao->create($data); $userPartner = []; - for ($i = 1;$i <= $data['max_role_num']; $i++ ) { + for ($i = 1; $i <= $data['max_role_num']; $i++) { $name = $i == 1 ? $data['name'] : $data['name'] . '_' . $i; $userPartner[] = [ 'partner_name' => $name, @@ -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()); + } + } /** @@ -118,10 +158,10 @@ class PartnerRepository extends BaseRepository { $old = $this->dao->get($id)->toArray(); - if($old['name'] != $data['name']){ - $list = UserPartner::getDB()->where('partner_id',$id)->select(); - foreach($list as $k=>$v){ - $name = str_replace($old['name'],$data['name'],$v['partner_name']); + if ($old['name'] != $data['name']) { + $list = UserPartner::getDB()->where('partner_id', $id)->select(); + foreach ($list as $k => $v) { + $name = str_replace($old['name'], $data['name'], $v['partner_name']); UserPartner::getDB()->where('id', $v['id'])->update(['partner_name' => $name]); } } @@ -144,7 +184,7 @@ class PartnerRepository extends BaseRepository public function roleExists(int $id) { - return UserPartner::getDB()->where('id', '=', $id)->where('uid','=','')->find(); + return UserPartner::getDB()->where('id', '=', $id)->where('uid', '=', '')->find(); } diff --git a/app/controller/admin/system/admin/Partner.php b/app/controller/admin/system/admin/Partner.php index 21a9380..5d33c68 100644 --- a/app/controller/admin/system/admin/Partner.php +++ b/app/controller/admin/system/admin/Partner.php @@ -49,10 +49,22 @@ 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'])) { - return app('json')->fail('该区域已经有了代理角色,请勿重复添加'); + 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'])) @@ -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 {