diff --git a/.env b/.env index d7c46a1..a66efd5 100644 --- a/.env +++ b/.env @@ -167,3 +167,5 @@ SKIP_SEND_EMAIL=true IMAGE_SERVER_URL=http://image.liexindev.net FILE_SERVER_URL=http://file.liexindev.net + +CRM_URL=http://crmnew.liexindev.net diff --git a/app/Http/Controllers/Api/SupplierApiController.php b/app/Http/Controllers/Api/SupplierApiController.php index 9e9db4a..9bfecca 100644 --- a/app/Http/Controllers/Api/SupplierApiController.php +++ b/app/Http/Controllers/Api/SupplierApiController.php @@ -2,25 +2,26 @@ namespace App\Http\Controllers\Api; -use App\Http\Controllers\Controller; -use App\Http\Controllers\Filter\SupplierFilter; -use App\Http\Services\AdminUserService; -use App\Http\Services\CompanyService; -use App\Http\Services\LogService; -use App\Http\Services\StandardBrandService; -use App\Http\Services\SupplierAuditService; -use App\Http\Services\SupplierService; -use App\Http\Services\SupplierStatisticsService; -use App\Http\Services\SyncSupplierService; -use App\Http\Transformers\SupplierTransformer; -use App\Http\Validators\SupplierValidator; +use Cookie; use App\Model\LogModel; use App\Model\RedisModel; -use App\Model\SupplierChannelModel; use Illuminate\Http\Request; use Illuminate\Http\Response; +use App\Http\Services\CrmService; +use App\Http\Services\LogService; +use App\Model\SupplierChannelModel; +use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; -use Cookie; +use App\Http\Services\CompanyService; +use App\Http\Services\SupplierService; +use App\Http\Services\AdminUserService; +use App\Http\Services\SyncSupplierService; +use App\Http\Validators\SupplierValidator; +use App\Http\Services\StandardBrandService; +use App\Http\Services\SupplierAuditService; +use App\Http\Transformers\SupplierTransformer; +use App\Http\Controllers\Filter\SupplierFilter; +use App\Http\Services\SupplierStatisticsService; class SupplierApiController extends Controller { @@ -98,6 +99,7 @@ class SupplierApiController extends Controller 'has_legal_ID_card', 'agency_brands', 'purchase_type', + 'sign_com_id', ]; public function Entrance(Request $request, $id) @@ -150,6 +152,7 @@ class SupplierApiController extends Controller 'swift_code', 'nation_id', 'intermediary_bank', + 'sign_com_id', ]); $channel = $request->only($channelMap); @@ -174,8 +177,9 @@ class SupplierApiController extends Controller $channel['supplier_name'] = trim($channel['supplier_name']); $channel['supplier_name'] = replaceSpecialSpace($channel['supplier_name']); $channel['supplier_name'] = deleteExtraSpace($channel['supplier_name']); + $signComName = array_get(CrmService::getSignCompanyListMap(), $channel['sign_com_id']); //校验一体化实体名单 - $checkCompanyEntity = (new CompanyService())->checkCompanyEntity($channel['supplier_name'], $channel['supplier_name_en'], $channel['supplier_address'], $businessLicense); + $checkCompanyEntity = (new CompanyService())->checkCompanyEntity($channel['supplier_name'], $channel['supplier_name_en'], $channel['supplier_address'], $businessLicense, $signComName); //待确认要透传到数据库里面去 if ($checkCompanyEntity == 0) { $channel['is_entity'] = 0; @@ -276,7 +280,6 @@ class SupplierApiController extends Controller } else { $this->response(-1, '禁用失败'); } - } //修改状态(禁用,启用(审核通过),驳回,草稿,取消黑名单) @@ -349,7 +352,6 @@ class SupplierApiController extends Controller ->where('supplier_name', '!=', $originSupplierName) ->value('supplier_name'); if ($supplierName !== $existedSupplierName) { - } else { $this->response(-1, '供应商已存在,请重新输入或者咨询审批人'); } @@ -409,7 +411,6 @@ class SupplierApiController extends Controller $this->response(-1, '审核失败'); } $this->response(0, '审核成功'); - } //分配渠道开发员 @@ -546,12 +547,12 @@ class SupplierApiController extends Controller SupplierChannelModel::where('supplier_id', $supplierId)->update([ 'tax_number' => $taxNumber, ]); -// $this->response(-1, '该供应商属于国内,但是没有税号,不允许同步'); + // $this->response(-1, '该供应商属于国内,但是没有税号,不允许同步'); } if ($supplier['is_standard_add'] == 1 && $supplier['region'] != SupplierChannelModel::REGION_CN) { -// if (empty($companyInfo)) { -// $this->response(-1, '该供应商属于海外,但是无法查询公司信息,不允许同步'); -// } + // if (empty($companyInfo)) { + // $this->response(-1, '该供应商属于海外,但是无法查询公司信息,不允许同步'); + // } } $service = new SyncSupplierService(); $service->syncSupplierToUnited($supplierId); @@ -796,5 +797,4 @@ class SupplierApiController extends Controller } $this->response(0, '修改供应商名称成功,请等待一体化再次审核'); } - } diff --git a/app/Http/Controllers/Filter/SupplierFilter.php b/app/Http/Controllers/Filter/SupplierFilter.php index 3792948..f5862ac 100644 --- a/app/Http/Controllers/Filter/SupplierFilter.php +++ b/app/Http/Controllers/Filter/SupplierFilter.php @@ -74,7 +74,10 @@ class SupplierFilter $q->where('supplier_name', 'like', "%${map['supplier_search_fuzzy']}%") ->orWhere('supplier_code', 'like', "%${map['supplier_search_fuzzy']}%"); }); + } + if (!empty($map['sign_com_id'])) { + $query->where('sign_com_id', $map['sign_com_id']); } if (!empty($map['create_uid'])) { diff --git a/app/Http/Services/CompanyService.php b/app/Http/Services/CompanyService.php index 71b163b..06fa948 100644 --- a/app/Http/Services/CompanyService.php +++ b/app/Http/Services/CompanyService.php @@ -4,13 +4,14 @@ namespace App\Http\Services; //后台用户相关信息服务 +use Log; +use App\Model\UserInfoModel; use App\Model\IntracodeModel; -use App\Model\SupplierAddressModel; -use App\Model\SupplierAttachmentsModel; -use App\Model\SupplierChannelModel; use App\Model\UserDepartmentModel; -use App\Model\UserInfoModel; use Illuminate\Support\Facades\DB; +use App\Model\SupplierAddressModel; +use App\Model\SupplierChannelModel; +use App\Model\SupplierAttachmentsModel; class CompanyService { @@ -84,7 +85,7 @@ class CompanyService } //校验是否实体名单通过 - public function checkCompanyEntity($supplierName, $supplierNameEn = '', $supplierAddress = '', $businessLicense = '') + public function checkCompanyEntity($supplierName, $supplierNameEn = '', $supplierAddress = '', $businessLicense = '', $signComName = '') { $params = [ 'company_name_cn' => $supplierName, @@ -96,6 +97,7 @@ class CompanyService '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); @@ -103,7 +105,7 @@ class CompanyService if (array_get($result, 'code') === 0) { return $result['data']['result']; } - \Log::error(json_encode($result)); + Log::error(json_encode($result)); return '一体化校验实体名单失败,请联系管理员'; } @@ -178,7 +180,7 @@ class CompanyService return $result['data']['result']; } - \Log::error(json_encode($result)); + Log::error(json_encode($result)); return '一体化校验实体名单失败,请联系管理员'; } } diff --git a/app/Http/Services/CrmService.php b/app/Http/Services/CrmService.php new file mode 100644 index 0000000..05aaa26 --- /dev/null +++ b/app/Http/Services/CrmService.php @@ -0,0 +1,42 @@ +<?php + +namespace App\Http\Services; + +use GuzzleHttp\Client; +use App\Model\RedisModel; +use Illuminate\Support\Facades\DB; + +class CrmService +{ + //获取签约公司列表 + public static function getSignCompanyList() + { + $cacheKey = 'sign_company_list'; + $cachedData = (new RedisModel())->get($cacheKey); + if ($cachedData) { + return json_decode($cachedData, true); + } + + $url = env('CRM_URL') . '/open/signComs/getSignComs'; + $client = new Client(); + $response = $client->get($url); + $result = json_decode($response->getBody()->getContents(), true); + if ($result['code'] != 0) { + return []; + } + + (new RedisModel())->setex($cacheKey, 60, json_encode($result['data']['list'])); + return $result['data']['list']; + } + + //获取简单形式给各个地方使用 + public static function getSignCompanyListMap() + { + $list = self::getSignCompanyList(); + $map = []; + foreach ($list as $item) { + $map[$item['sign_com_id']] = $item['com_name']; + } + return $map; + } +} diff --git a/app/Http/Services/SupplierService.php b/app/Http/Services/SupplierService.php index 07162bd..3f0f856 100644 --- a/app/Http/Services/SupplierService.php +++ b/app/Http/Services/SupplierService.php @@ -908,7 +908,8 @@ class SupplierService $businessLicense = $registrationCertificate; } } - $checkCompanyEntity = (new CompanyService())->checkCompanyEntity($supplierName, $supplier['supplier_name_en'], $supplier['supplier_address'], $businessLicense); + $signComName = array_get(CrmService::getSignCompanyListMap(), $supplier['sign_com_id']); + $checkCompanyEntity = (new CompanyService())->checkCompanyEntity($supplierName, $supplier['supplier_name_en'], $supplier['supplier_address'], $businessLicense, $signComName); //还要去检测是否是一体化黑名单 //新增的时候要先去检验下一体化的数据,如果是实体黑名单用户,那么就不允许新增 //还要校验提交上来的公司是否有合法信息 diff --git a/app/Http/Transformers/SupplierTransformer.php b/app/Http/Transformers/SupplierTransformer.php index 351333c..560e089 100644 --- a/app/Http/Transformers/SupplierTransformer.php +++ b/app/Http/Transformers/SupplierTransformer.php @@ -4,20 +4,21 @@ namespace App\Http\Transformers; +use App\Model\LogModel; +use App\Model\RedisModel; +use App\Model\IntracodeModel; +use App\Http\Services\CrmService; +use App\Http\Services\SkuService; +use App\Model\SupplierExtendModel; +use App\Model\SupplierChannelModel; +use App\Model\SupplierContactModel; +use App\Http\Services\SupplierService; use App\Http\Services\AdminUserService; +use App\Http\Services\ViewCheckService; use App\Http\Services\DepartmentService; -use App\Http\Services\SkuService; use App\Http\Services\SupplierPayTypeService; -use App\Http\Services\SupplierService; use App\Http\Services\SupplierSkuAuditRulerService; use App\Http\Services\SupplierSkuUploadRulerService; -use App\Http\Services\ViewCheckService; -use App\Model\IntracodeModel; -use App\Model\LogModel; -use App\Model\RedisModel; -use App\Model\SupplierChannelModel; -use App\Model\SupplierContactModel; -use App\Model\SupplierExtendModel; class SupplierTransformer { @@ -69,7 +70,7 @@ class SupplierTransformer $userInfo = $adminUserService->getAdminUserInfo($supplier['create_uid']); $supplier['create_name'] = array_get($userInfo, 'name'); } - + $supplier['sign_com_name'] = array_get(CrmService::getSignCompanyListMap(), $supplier['sign_com_id']); $supplier['last_upload_sku_time'] = array_get($lastUploadSkuTimes, $supplier['supplier_code']) ? date('Y-m-d H:i:s', $lastUploadSkuTimes[$supplier['supplier_code']]) : ''; @@ -178,6 +179,7 @@ class SupplierTransformer $supplier['established_time'] = !empty($supplier['established_time']) ? date('Y-m-d', $supplier['established_time']) : ''; $supplier = $this->getStockupType($supplier); + $supplier['sign_com_name'] = array_get(CrmService::getSignCompanyListMap(), $supplier['sign_com_id']); $supplier['status_name'] = array_get(config('fixed.SupplierStatus'), $supplier['status']); $supplier['region_name'] = array_get(config('fixed.Region'), $supplier['region']); $supplier['currency_name'] = array_get(config('fixed.Currency'), $supplier['currency']); diff --git a/app/Http/routes.php b/app/Http/routes.php index 73eaca0..1290cb1 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -12,10 +12,12 @@ */ +use App\Model\RedisModel; +use App\Http\Services\SkuService; use App\Http\Services\CompanyService; +use App\Http\Services\CrmService; +use Illuminate\Support\Facades\Route; use App\Http\Services\DepartmentService; -use App\Http\Services\SkuService; -use App\Model\RedisModel; Route::group(['middleware' => ['web', 'menu']], function () { Route::get('/', 'WebController@Entrance'); @@ -86,15 +88,6 @@ Route::group(['middleware' => ['external'], 'namespace' => 'Sync'], function () }); Route::match(['get', 'post'], '/test', function () { - \App\Model\SupplierChannelModel::where('supplier_id', 129)->update([ - 'is_entity' => -1, - 'status' => 2, - 'update_time' => time(), - ]); - - \App\Model\SupplierChannelModel::where('supplier_id', 8214)->update([ - 'is_entity' => 1, - 'status' => -2, - 'update_time' => time(), - ]); + $list = CrmService::getSignCompanyList(); + dd($list); }); diff --git a/app/Presenters/StatusPresenter.php b/app/Presenters/StatusPresenter.php index 975e7b0..495ed50 100644 --- a/app/Presenters/StatusPresenter.php +++ b/app/Presenters/StatusPresenter.php @@ -13,10 +13,11 @@ class StatusPresenter $width = array_get($option, 'width', 'auto'); $noName = array_get($option, 'noName'); $name = $noName ? '' : $name; + $title = array_get($option, 'title'); $labelWidth = array_get($option, 'label_width'); $requiredHtml = $isRequired ? '<span class="require">*</span>' : ""; $html = <<<EOF - <label class="layui-form-label" style="width: $labelWidth"> + <label class="layui-form-label" style="width: $labelWidth" title="$title"> $requiredHtml $text </label> @@ -45,4 +46,4 @@ EOF; } return $optionsHtml; } -} \ No newline at end of file +} diff --git a/config/validate.php b/config/validate.php index d785789..fa2eaed 100644 --- a/config/validate.php +++ b/config/validate.php @@ -57,5 +57,7 @@ return [ 'billing_period_detail' => '账期详情', 'registered_capital' => '注册资金(万)', 'purchase_type_name' => '代购类型', + 'sign_com_id' => '签约公司id', + 'sign_com_name' => '签约公司名称', ] -]; \ No newline at end of file +]; diff --git a/config/website.php b/config/website.php index 4d10a94..4a674f1 100644 --- a/config/website.php +++ b/config/website.php @@ -42,5 +42,6 @@ return [ ], 'TagUrl' => env('TAG_URL'), 'CloudUrl' => env('CLOUD_URL'), + 'CrmUrl' => env('CRM_URL'), 'SkipSendEmail' => env('skip_send_email'), ]; diff --git a/resources/views/script/SupplierListScript.blade.php b/resources/views/script/SupplierListScript.blade.php index 29ae8a1..3cc7f91 100644 --- a/resources/views/script/SupplierListScript.blade.php +++ b/resources/views/script/SupplierListScript.blade.php @@ -222,6 +222,7 @@ } } }, + {field: 'sign_com_name', title: '签约公司', align: 'center', width: 130}, {field: 'last_update_name', title: '最新修改人', align: 'center', width: 110}, { field: 'contact_num', title: '联系人', align: 'center', width: 70, templet: function (data) { diff --git a/resources/views/web/AddSupplier.blade.php b/resources/views/web/AddSupplier.blade.php index b121402..69fb53c 100644 --- a/resources/views/web/AddSupplier.blade.php +++ b/resources/views/web/AddSupplier.blade.php @@ -265,12 +265,18 @@ </div> </div> </div> - <div class="layui-col-md6"> + <div class="layui-col-md3"> <div class="layui-inline"> @inject('statusPresenter','App\Presenters\StatusPresenter') {!! $statusPresenter->render('purchase_type','代购类型 : ',!empty($supplier)?$supplier['purchase_type']:'',config('field.PurchaseType')) !!} </div> </div> + <div class="layui-col-md3"> + <div class="layui-inline"> + @inject('statusPresenter','App\Presenters\StatusPresenter') + {!! $statusPresenter->render('sign_com_id','签约公司 : ',!empty($supplier)?$supplier['sign_com_id']:2,\App\Http\Services\CrmService::getSignCompanyListMap(),['title'=>'发生跨境交易时的合同签约主体','required'=>true]) !!} + </div> + </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label">资信调查 : </label> diff --git a/resources/views/web/SupplierDetail.blade.php b/resources/views/web/SupplierDetail.blade.php index 4b57487..23e8c96 100644 --- a/resources/views/web/SupplierDetail.blade.php +++ b/resources/views/web/SupplierDetail.blade.php @@ -210,6 +210,9 @@ <div class="layui-col-md2"> 代购类型 : {{$supplier['purchase_type_name']}} </div> + <div class="layui-col-md2"> + 签约公司 : {{$supplier['sign_com_name']}} + </div> </div> <div class="layui-row"> <div class="layui-col-md2"> diff --git a/resources/views/web/supplier/SupplierBase.blade.php b/resources/views/web/supplier/SupplierBase.blade.php index b51edba..3ac3604 100644 --- a/resources/views/web/supplier/SupplierBase.blade.php +++ b/resources/views/web/supplier/SupplierBase.blade.php @@ -271,12 +271,18 @@ </div> </div> </div> - <div class="layui-col-md6"> - <div class="layui-inline"> + <div class="layui-col-md3"> + <div class="layui-inline"> @inject('statusPresenter','App\Presenters\StatusPresenter') {!! $statusPresenter->render('purchase_type','代购类型 : ',!empty($supplier)?$supplier['purchase_type']:'',config('field.PurchaseType')) !!} </div> - </div> + </div> + <div class="layui-col-md3"> + <div class="layui-inline"> + @inject('statusPresenter','App\Presenters\StatusPresenter') + {!! $statusPresenter->render('sign_com_id','签约公司 : ',!empty($supplier)?$supplier['sign_com_id']:2,\App\Http\Services\CrmService::getSignCompanyListMap(),['title'=>'发生跨境交易时的合同签约主体','required'=>true]) !!} + </div> + </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label">资信调查 : </label> diff --git a/resources/views/web/supplier/SupplierListFilter.blade.php b/resources/views/web/supplier/SupplierListFilter.blade.php index 1aa7d02..749fe2c 100644 --- a/resources/views/web/supplier/SupplierListFilter.blade.php +++ b/resources/views/web/supplier/SupplierListFilter.blade.php @@ -17,113 +17,6 @@ </div> </div> </div> - {{-- <div class="split-item" id="s2" style="text-align: center">--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="need_review" data-value="-1">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @if(checkPerm('SupplierPendingList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="pending" data-value="0">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierInReviewList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="in_review" data-value="1">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierRejectList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="rejected" data-value="3">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierPassedList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="passed" data-value="2">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- </div>--}} - {{-- <div class="split-item" id="s3" style="text-align: center">--}} - {{-- @if(checkPerm('SupplierNoPurchaseUidList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a title="非禁用状态的渠道开发员为空的供应商" class="main_filter" id="no_purchase_uid">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierNoChannelUidList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a title="采购员为空的供应商" class="main_filter" id="no_channel_uid">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierInvalidChannelUidList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a title="非禁止交易状态联系人绑定的采购员姓名不在组织架构中(采购员离职)的供应商"--}} - {{-- class="main_filter"--}} - {{-- id="invalid_channel_uid">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierInvalidPurchaseUidList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a title="非禁止交易状态联系人绑定的渠道开发员姓名不在组织架构中(渠道开发员离职)的供应商"--}} - {{-- class="main_filter"--}} - {{-- id="invalid_purchase_uid">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- <div class="layui-row">--}} - {{-- <a title="联系人中存在非必填字段未填写" class="main_filter"--}} - {{-- id="contact_no_complete">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- </div>--}} - {{-- <div class="split-item" id="s4" style="text-align: center">--}} - {{-- @if(checkPerm('SupplierToFollowUpList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a title="非禁止交易状态的供应商重新分配渠道员,且必填信息不完整;或者禁用状态的供应商重新分配渠道员"--}} - {{-- class="main_filter"--}} - {{-- id="to_follow_up">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierNoSkuList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="no_sku">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- <div class="layui-row">--}} - {{-- <a title="采购员全离职" class="main_filter" id="all_channel_user_resigned">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- </div>--}} - {{-- <div class="split-item" id="s5" style="text-align: center">--}} - {{-- @if(checkPerm('SupplierBlockList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="block" data-value="-3">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- @if(checkPerm('SupplierDisableList'))--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" id="disable" data-value="-2">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- @endif--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" title="历史检测异常" id="history_abnormal">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- <div class="layui-row">--}} - {{-- <a class="main_filter" title="系统标签中贴有客户指定的供应商" id="has_supplier_tag">--}} - {{-- </a>--}} - {{-- </div>--}} - {{-- </div>--}} <div class="split-item" id="s6" style="text-align: center"> <div class="layui-row"> <a class="main_filter" title="战略供应商" id="level_a"> @@ -326,6 +219,10 @@ {!! $statusPresenter->render('is_entity','实体名单','',config('field.IsEntity')) !!} </div> <div class="layui-inline"> + @inject('statusPresenter', 'App\Presenters\StatusPresenter') + {!! $statusPresenter->render('sign_com_id', '签约公司', 0, \App\Http\Services\CrmService::getSignCompanyListMap()) !!} + </div> + <div class="layui-inline"> <label class="layui-form-label">创建部门</label> <div class="layui-input-inline"> <div id="create_user_department" style="width: 150px"></div>