diff --git a/app/admin/controller/supplychain/Index.php b/app/admin/controller/supplychain/Index.php index f2a78b6..03caf01 100644 --- a/app/admin/controller/supplychain/Index.php +++ b/app/admin/controller/supplychain/Index.php @@ -10,6 +10,10 @@ use app\admin\BaseController; use think\facade\Db; use think\facade\View; use app\admin\model\Merchant; // 商户模型 +use app\admin\model\GeoCity; // 省市模型 +use app\admin\model\GeoArea; // 区域模型 +use app\admin\model\GeoStreet; // 街道模型 +use app\admin\model\SupplyChain; // 供应链模型 use app\api\model\Area as AreaModel; // 市场区域模型 use app\api\model\AreaManager as AreaManagerModel; // 区域负责人模型 @@ -63,15 +67,12 @@ class Index extends BaseController } } - $total = AreaManagerModel::where($where)->count(); + $total = SupplyChain::where($where)->count(); - // 负责人信息 - $list = AreaManagerModel::with('area') - ->where($where) - ->page($params['page']) - ->limit($params['limit']) - ->order('id desc') - ->select(); + $list = SupplyChain::order('id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); $result = ['total' => $total, 'data' => $list]; @@ -79,7 +80,11 @@ class Index extends BaseController }else{ - return view('nk/areamanager/index',['url'=>$this->url]); + $list = SupplyChain::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); } } @@ -92,20 +97,37 @@ class Index extends BaseController { if (request()->isAjax()) { - $params= get_params(); - - $data['user_id'] = $this->adminInfo['id']; // 操作用户ID - $data['avatar'] = $params['avatar']; // 头像 - $data['name'] = $params['name']; // 姓名 - $data['duty'] = $params['duty']; // 职务 - $data['phone'] = $params['phone']; // 手机号 - $data['area_id'] = $params['area_id']; // 区域ID + $params = get_params(); - $area = AreaModel::find($params['area_id']); - $data['farm_product_market_id'] = $area->id; // 市场ID + $data['user_id'] = $this->adminInfo['id']; // 操作用户ID + $data['name'] = $params['title']; // 团队名称 + $data['tel'] = $params['phone']; // 联系电话 + $data['mer_id_list'] = json_encode($params['mer_id']); // 已选商户 + + $data['street_id'] = $params['street_id']; // 街道ID + $street = GeoStreet::where('street_id', $data['street_id'])->find(); // 街道数据 + $data['lng'] = $street['lng']; // 经度 + $data['lat'] = $street['lat']; // 纬度 + $area = $street->area; // 区数据 + $data['area_id'] = $area['area_id']; // 区县id + $city = $area->city; // 获取市级 + $data['address'] = $city['city_name'] . $area['area_name'] . $street['street_name']; // 实际地址 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = SupplyChain::create($data); - $data['created_at'] = date('Y-m-d H:i:s'); - $res = AreaManagerModel::create($data); + // 关联数据入库 + foreach ($params['mer_id'] as $v) { + + $dataLink = [ + 'mer_id' => $v, // 商户ID + 'user_id' => $data['user_id'], + 'create_time' => $data['create_time'], + ]; + + $res->linkMerchant()->save($dataLink); // 插入关联数据 + } if ($res){ return to_assign(0,'操作成功',['aid'=>$res]); @@ -115,14 +137,16 @@ class Index extends BaseController }else{ - $area = AreaModel::where('status', 0)->column('id, area_name'); - // 取出正常的商家 $merchant = Merchant::where('status', 1)->column('mer_id, real_name'); + // 区域模型 + $arealist = GeoArea::where('city_code', '510500')->select(); + View::assign('editor', get_system_config('other','editor')); - View::assign('area', $area); + View::assign('arealist', $arealist); View::assign('merchant', $merchant); + View::assign('url', $this->url); return view(); } } @@ -134,6 +158,21 @@ class Index extends BaseController */ public function edit() { + $id = get_params("id"); + if(!$id) return to_assign(1, '非法操作!'); + + $supplyChain = SupplyChain::with(['merchant', 'street', 'area'])->find($id); // 取出当前供应链数据 + + View::assign('detail', $supplyChain); + + // 取出正常的商家 + $merchant = Merchant::where('status', 1)->column('mer_id, real_name'); + // 区域模型 + $arealist = GeoArea::where('city_code', '510500')->select(); + + View::assign('arealist', $arealist); + View::assign('merchant', $merchant); + View::assign('url', $this->url); return view(); } @@ -146,5 +185,5 @@ class Index extends BaseController { return view(); } - + } \ No newline at end of file diff --git a/app/admin/model/GeoArea.php b/app/admin/model/GeoArea.php new file mode 100644 index 0000000..3ac0060 --- /dev/null +++ b/app/admin/model/GeoArea.php @@ -0,0 +1,26 @@ +hasOne(GeoArea::class, 'area_code', 'area_code'); + } + } \ No newline at end of file diff --git a/app/admin/model/GeoCity.php b/app/admin/model/GeoCity.php new file mode 100644 index 0000000..ea24176 --- /dev/null +++ b/app/admin/model/GeoCity.php @@ -0,0 +1,19 @@ +hasOne(GeoArea::class, 'area_code', 'area_code'); + } + } \ No newline at end of file diff --git a/app/admin/model/Merchant.php b/app/admin/model/Merchant.php index 0c56b58..32cb06d 100644 --- a/app/admin/model/Merchant.php +++ b/app/admin/model/Merchant.php @@ -17,6 +17,7 @@ // 设置当前模型对应的完整数据表名称 protected $table = 'eb_merchant'; + protected $pk = 'mer_id'; /** * 所属供应链 diff --git a/app/admin/model/SupplyChain.php b/app/admin/model/SupplyChain.php index 87b0314..3bb4bd5 100644 --- a/app/admin/model/SupplyChain.php +++ b/app/admin/model/SupplyChain.php @@ -22,8 +22,36 @@ */ public function merchant() { - return $this->hasManyThrough(SupplyChainLinkMerchant::class, Merchant::class); + return $this->belongsToMany(Merchant::class, SupplyChainLinkMerchant::class, 'eb_merchant_id', 'fa_supply_chain_id'); } + /** + * + * 关联中间表 + * + */ + public function linkMerchant() + { + return $this->hasMany(SupplyChainLinkMerchant::class); + } + /** + * 关联街道 + * + * + */ + public function street() + { + return $this->hasOne(GeoStreet::class, 'street_id', 'street_id'); + } + + /** + * 关联区县 + * + * + */ + public function area() + { + return $this->hasOne(GeoArea::class, 'area_id', 'area_id'); + } } \ No newline at end of file diff --git a/app/admin/model/SupplyChainLinkMerchant.php b/app/admin/model/SupplyChainLinkMerchant.php index 2c8e6af..f778055 100644 --- a/app/admin/model/SupplyChainLinkMerchant.php +++ b/app/admin/model/SupplyChainLinkMerchant.php @@ -9,12 +9,18 @@ namespace app\admin\model; use think\Model; - - class SupplyChainLinkMerchant extends Model - { + use think\model\Pivot; + + class SupplyChainLinkMerchant extends Pivot + { + protected $autoWriteTimestamp = true; + + // 设置当前模型的数据库连接 + protected $connection = 'mysql'; + // 设置当前模型对应的完整数据表名称 protected $table = 'fa_supply_chain_link_merchant'; - + /** * 所属供应链 * 一对一 diff --git a/app/admin/view/supplychain/index/add.html b/app/admin/view/supplychain/index/add.html index 2b80b87..479d6ba 100644 --- a/app/admin/view/supplychain/index/add.html +++ b/app/admin/view/supplychain/index/add.html @@ -20,14 +20,14 @@ {/block} {block name="body"} -