getPage(); $admin = Admin::where('id', $this->userInfo['admin_id'])->find(); if (empty($admin)) { return $this->success(); } if (!empty($admin['company_id'])) { $query = Contract::whereRaw("(type=1 and party_b={$admin['company_id']}) or (type=2 and party_b={$admin['id']})"); } else { $query = Contract::where('party_b', $admin['id']); } $count = $query->count(); $contract = $query->page($page)->limit($limit)->select()->each(function ($item, $key) { $company_name= Db::name('company')->where('id', $item['party_a'])->value('company_name'); $contract_type_name= Db::name('dict_data')->where('id', $item['contract_type'])->value('name'); $datas=[ 'id'=>$item['id'], 'company_name'=>$company_name, 'contract_type_name'=>$contract_type_name, ]; $item->company=$datas; // if ($item->type == 2) { // $item['party_b_name'] = Admin::where('id', $item['party_b'])->value('name'); // } else { // $item['party_b_name'] = Db::name('company')->where('id', $item['party_b'])->value('company_name'); // } }); return $this->success('success', ['count' => $count, 'data' => $contract]); } public function view($id) { $contract = Contract::find($id); if (empty($contract)) { return $this->fail('合同不存在'); } if ($contract['type'] == 2) { $contract['party_b_name'] = Admin::where('id', $contract['party_b'])->value('name'); } else { $contract['party_b_name'] = Db::name('company')->where('id', $contract['party_b'])->value('company_name'); } $contract['party_a_name'] = Db::name('company')->where('id', $contract['party_a'])->value('company_name'); $contract['contract_type_name'] = Db::name('dict_data')->where('id', $contract['contract_type'])->value('name'); $company = Company::where('id', $contract['party_a'])->find(); $province_name= Db::name('geo_province')->where(['province_code' => $company['province']])->value('province_name'); $city_name= Db::name('geo_city')->where(['city_code' => $company['city']])->value('city_name'); $area_name= Db::name('geo_area')->where(['area_code' => $company['area']])->value('area_name'); $street_name= Db::name('geo_street')->where(['street_code' => $company['street']])->value('street_name'); $company['address']= $province_name.$city_name.$area_name.$street_name.$company['address']; $company['company_type_name'] = Db::name('dict_data')->where('id', $company['company_type'])->value('name'); $company['other_contacts'] = json_decode($company['other_contacts'], true); $company['qualification'] = $company['qualification'] != null ? json_decode($company['qualification'], true) : ''; $users = Admin::where('company_id', $company['party_a'])->field('id,name,account,phone,qualification')->select()->toArray(); foreach ($users as &$user) { $user['is_main'] = $user['id'] == $company['admin_id'] ? 1 : 0; $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : []; unset($user['role_id'], $user['dept_id'], $user['jobs_id'], $user['id']); } return $this->success('success', ['contract' => $contract, 'company' => $company, 'users' => $users]); } }