区域逻辑调整

main
limu 11 months ago
parent 4771b3d7e9
commit dc0fb04302
  1. 54
      app/common/repositories/system/admin/PartnerRepository.php
  2. 31
      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;
@ -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();
}

@ -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 {

Loading…
Cancel
Save