<?php namespace App\Http\Services; //后台用户相关信息服务 use Log; use App\Model\UserInfoModel; use App\Model\IntracodeModel; use App\Model\UserDepartmentModel; use Illuminate\Support\Facades\DB; use App\Model\SupplierAddressModel; use App\Model\SupplierChannelModel; use App\Model\SupplierAttachmentsModel; class CompanyService { //获取一体化的所有信息 public function getUnitedCompanyInfo($supplierName, $taxNumber, $regionType = 1) { $params = [ 'company_name' => $supplierName, 'region' => $regionType, 'company_type' => 2, //'company_tax_no' => $taxNumber, ]; $url = config('website.UnitedDataDomain') . '/sync/Company/getCompanyInfoByName'; $result = curl($url, $params); $result = json_decode($result, true); $unitedCompanyInfo = []; if (array_get($result, 'code') === 0) { $unitedCompanyInfo['united_company_info'] = !empty($result['data']['companyInfo']) ? $result['data']['companyInfo'] : []; $unitedCompanyInfo['is_entity'] = isset($result['data']['is_entity']) ? $result['data']['is_entity'] : 0; $companyInfoList = array_get(array_get($result['data'], 'tycList'), 'company_info_list'); $company = []; if (!empty($companyInfoList)) { $companyInfo = $companyInfoList[0]; $companyInfo['establishment_time'] = $companyInfo['establishment_time'] ? $companyInfo['establishment_time'] / 1000 : 0; $company = [ 'supplier_name' => $companyInfo['com_name'] == $supplierName ? $companyInfo['com_name'] : $companyInfo['en_com_name'], 'registered_capital' => (int)$companyInfo['registered_capital'], 'supplier_address' => $companyInfo['com_address'], 'tax_number' => $companyInfo['tyc_info']['tax_number'], 'phone' => $companyInfo['tyc_info']['phone_number'], 'establishment_time' => $companyInfo['establishment_time'] ? date('Y-m-d', $companyInfo['establishment_time']) : '', ]; } $unitedCompanyInfo['company'] = $company; } return $unitedCompanyInfo; } public function getCompanyInfo($supplierName, $taxNumber, $regionType = 1) { $params = [ 'company_name' => $supplierName, 'region' => $regionType, 'company_type' => 2, //'company_tax_no' => $taxNumber, ]; $url = config('website.UnitedDataDomain') . '/sync/Company/getCompanyInfoByName'; $result = curl($url, $params); $result = json_decode($result, true); $company = []; if (array_get($result, 'code') === 0) { $companyInfoList = array_get(array_get($result['data'], 'tycList'), 'company_info_list'); if (!empty($companyInfoList)) { $companyInfo = $companyInfoList[0]; $companyInfo['establishment_time'] = $companyInfo['establishment_time'] ? $companyInfo['establishment_time'] / 1000 : 0; $company = [ 'supplier_name' => $companyInfo['com_name'] == $supplierName ? $companyInfo['com_name'] : $companyInfo['en_com_name'], 'registered_capital' => (int)$companyInfo['registered_capital'], 'supplier_address' => $companyInfo['com_address'], 'tax_number' => $companyInfo['tyc_info']['tax_number'], 'phone' => $companyInfo['tyc_info']['phone_number'], 'establishment_time' => $companyInfo['establishment_time'] ? date('Y-m-d', $companyInfo['establishment_time']) : '', ]; } } return $company; } //校验是否实体名单通过 public function checkCompanyEntity($supplierName, $supplierNameEn = '', $supplierAddress = '', $businessLicense = '', $signComName = '') { $params = [ 'company_name_cn' => $supplierName, 'company_name_en' => $supplierNameEn, 'register_address' => $supplierAddress, 'business_license' => $businessLicense, 'company_id' => 1, 'create_uid' => request()->user->userId, 'create_name' => request()->user->name, 'source_system_id' => 1, 'address_data' => [], 'sign_company_name' => $signComName, ]; $url = config('website.UnitedDataDomain') . '/sync/Company/checkCompanyEntity'; $result = curlJson($url, $params); $result = json_decode($result, true); if (array_get($result, 'code') === 0) { return $result['data']['result']; } Log::error(json_encode($result)); return '一体化校验实体名单失败,请联系管理员'; } //单独供应商校验名称和地址 public function checkSupplierCompanyAndAddress($supplierId) { $supplier = SupplierChannelModel::where('supplier_id', $supplierId) ->select([ 'supplier_id', 'supplier_name', 'supplier_code', 'supplier_name_en', 'supplier_address', 'create_uid', 'create_name', 'region' ])->first()->toArray(); $supplierAddressList = SupplierAddressModel::where('supplier_id', $supplierId)->get()->toArray(); $businessLicense = SupplierAttachmentsModel::where('supplier_id', $supplierId)->where('field_name', 'business_license')->value('file_url'); if ($supplier['region'] != SupplierChannelModel::REGION_CN) { $registrationCertificate = SupplierAttachmentsModel::where('supplier_id', $supplierId) ->where('field_name', 'registration_certificate')->value('file_url'); if ($registrationCertificate) { $businessLicense = $registrationCertificate; } } $addressData = []; $addressData[] = [ 'source_id' => $supplierId, 'source_code' => $supplier['supplier_code'], 'address_type' => '供应商地址', 'address' => $supplier['supplier_address'] ]; foreach ($supplierAddressList as $supplierAddress) { if ($supplierAddress['address_type'] == 1) { $address = [ 'source_id' => $supplierId . '_' . $supplierAddress['info_id'], 'source_code' => $supplier['supplier_code'], 'address_type' => '供应商发货地址', 'address' => $supplierAddress['address'] ]; } if ($supplierAddress['address_type'] == 2) { $address = [ 'source_id' => $supplierId . '_' . $supplierAddress['info_id'], 'source_code' => $supplier['supplier_code'], 'address_type' => '供应商退货地址', 'address' => $supplierAddress['address'] ]; } if (!empty($address)) { $addressData[] = $address; } } $params = [ 'company_name_cn' => $supplier['supplier_name'], 'company_name_en' => $supplier['supplier_name'], 'register_address' => $supplier['supplier_address'], 'business_license' => $businessLicense, 'company_id' => 1, 'create_uid' => $supplier['create_uid'], 'create_name' => $supplier['create_name'], 'source_system_id' => 1, 'address_data' => $addressData, ]; //dump(json_encode($params)); $url = config('website.UnitedDataDomain') . '/sync/Company/checkCompanyEntity'; $result = curlJson($url, $params); //dd($result); $result = json_decode($result, true); if (array_get($result, 'code') === 0) { return $result['data']['result']; } Log::error(json_encode($result)); return '一体化校验实体名单失败,请联系管理员'; } }