diff --git a/app/adminapi/lists/ShopContractLists.php b/app/adminapi/lists/ShopContractLists.php index f919ff24f..25062a387 100644 --- a/app/adminapi/lists/ShopContractLists.php +++ b/app/adminapi/lists/ShopContractLists.php @@ -59,6 +59,7 @@ class ShopContractLists extends BaseAdminDataLists implements ListsSearchInterfa ->field(['id', 'contract_no', 'party_a', 'party_b', 'area_manager', 'type', 'evidence_url', 'check_status', 'status']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) + ->with(['partyA', 'partyB']) ->select() ->toArray(); } diff --git a/app/common/model/ShopContract.php b/app/common/model/ShopContract.php index 08f58008e..3fee57d1b 100644 --- a/app/common/model/ShopContract.php +++ b/app/common/model/ShopContract.php @@ -28,7 +28,50 @@ class ShopContract extends BaseModel { protected $name = 'shop_contract'; - - + + /** + * @notes 关联company_name + * @return \think\model\relation\HasOne + * @author likeadmin + * @date 2023/07/18 14:28 + */ + public function companyName() + { + return $this->hasOne(ShopMerchant::class, 'id', 'company_id')->bind(['company_name']); + } + public function company() + { + return $this->hasOne(ShopMerchant::class, 'id', 'company_id'); + } + public function partyAInfo() + { + return $this->hasOne(ShopMerchant::class, 'id', 'party_a')->field('id,company_name,organization_code,master_name,master_phone,master_email,area_manager'); + } + public function partyBInfo() + { + // halt($this->type); + // if($this->type==1){ + return $this->hasOne(ShopMerchant::class, 'id', 'party_b')->field('id,company_name,organization_code,master_name,master_phone,master_email,area_manager'); + // }else{ + // return $this->hasOne(User::class, 'id', 'party_b')->field('id,nickname company_name'); + // } + } + public function partyA() + { + return $this->hasOne(ShopMerchant::class, 'id', 'party_a')->bind(['party_a_name' => 'company_name']); + } + public function partyB() + { + return $this->hasOne(ShopMerchant::class, 'id', 'party_b')->bind(['party_b_name' => 'company_name']); + } + public function contractType() + { + return $this->hasOne(DictData::class, 'id', 'contract_type')->bind(['contract_type_name' => 'name']); + } + + public function getContractTypeNameAttr($value) + { + return DictData::where(['id' => $this->contract_type])->value('name'); + } } \ No newline at end of file diff --git a/app/common/model/ShopMerchant.php b/app/common/model/ShopMerchant.php index e1e971cac..07c239643 100644 --- a/app/common/model/ShopMerchant.php +++ b/app/common/model/ShopMerchant.php @@ -51,7 +51,7 @@ class ShopMerchant extends BaseModel public function getContractAttr() { - $find=Contract::where('party_a|party_b', $this->id)->field('check_status,status')->find(); + $find=ShopContract::where('party_a|party_b', $this->id)->field('check_status,status')->find(); if($find){ return $find->toArray(); }else{