<?php namespace App\Http\Controllers\Sync; use App\Http\Controllers\Controller; use App\Http\Controllers\Filter\SupplierFilter; use App\Http\Middleware\CheckLogin; use App\Http\Services\AdminUserService; use App\Http\Services\SupplierService; use App\Http\Services\SyncSupplierService; use App\Model\SupplierChannelModel; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Validator; //提供外部系统的接口 class SupplierSyncController extends BaseSyncController { public function syncUniteResult(Request $request) { $resultData = $request->only([ 'group_code', 'source_sn', 'company_name', 'init_nature', 'company_nature', 'company_category', ]); $rules = [ "group_code" => "required", "source_sn" => "required", "company_name" => "required", "init_nature" => 'required', "company_nature" => "required", "company_category" => "required", ]; $validator = Validator::make($rules, $rules); //判断联系方式的表单验证 if ($validator->fails()) { $error = $validator->errors()->first(); Log::warning($error); $this->syncResponse(-1, $error); } $result = (new SyncSupplierService())->syncSupplierToUnitedResult($resultData); $this->syncResponse(0, '同步一体化信息成功'); } public function receiveEntityResult(Request $request) { $resultData = $request->all(); Log::error(json_encode($resultData)); //$resultData['result_map'] = !empty($resultData['result_map']) ? json_decode($resultData['result_map'], true) : []; //$resultData['tag_list'] = !empty($resultData['tag_list']) ? json_decode($resultData['tag_list'], true) : []; if (is_array($resultData['result_map'])) { $resultData['result'] = (int)$resultData['result_map']["1"]; } if ($resultData['result'] !== 0 && empty($resultData)) { $this->syncResponse(-1, '没有获取到正确的类型'); } if (!in_array($resultData['result'], [0, 1, -1, -2, -3])) { $this->syncResponse(-1, '非法公司分类'); } $rules = [ "company_name" => "required", //"result" => "required", ]; $validator = Validator::make($rules, $rules); //判断联系方式的表单验证 if ($validator->fails()) { $error = $validator->errors()->first(); $this->syncResponse(-1, $error); } //这里还要去判断是是拉黑 if ($resultData['result'] == -2) { $data['status'] = SupplierChannelModel::STATUS_BLOCK; $data['block_reason'] = '一体化系统黑名单供应商'; $data['is_entity'] = -1; $data['update_time'] = time(); SupplierChannelModel::where('supplier_name', $resultData['company_name']) ->update($data); $this->syncResponse(0, '获取审核结果广播成功'); } (new SyncSupplierService())->receiveEntityResult($resultData); $this->syncResponse(0, '获取审核结果广播成功'); } //获取供应商需要审核的数量 public function GetNeedAuditSupplierCount(Request $request) { $userId = $request->input('user_id'); if (!$userId) { $this->response(-1, 'user_id不能为空'); } $codeId = (new AdminUserService())->getCodeIdsByUserId($userId); request()->merge([ 'user' => (object)[ 'userId' => $userId, 'codeId' => $codeId, ] ]); $perms = (new CheckLogin())->getPerms(); request()->merge(['perms' => $perms]); $model = new SupplierChannelModel(); $query = $model->orderBy('update_time', 'desc'); $filter = new SupplierFilter(); $params = $request->except('user', 'perms'); $params['need_audit'] = 1; $params['source_type'] = 'all'; $query = $filter->listFilter($params, $query); $count = $query->count(); $this->response(0, 'ok', $count); } }