<?php namespace App\Http\Services; use App\Http\Transformers\SupplierTransformer; use App\Model\LogModel; use App\Model\RedisModel; use App\Model\SupplierAddressModel; use App\Model\SupplierChannelModel; use App\Model\SupplierContactModel; use Illuminate\Support\Facades\DB; class SupplierAuditService { public function auditSupplier($supplierId, $status, $rejectReason) { $model = new SupplierChannelModel(); //判断当前要审核的供应商是不是想要被禁用的 $redis = new RedisModel(); $disableExist = $redis->hget('audit_disable_supplier_list', $supplierId); if ($disableExist) { if ($status == 2) { $status = SupplierChannelModel::STATUS_DISABLE; } else { $status = 2; } } $result = $model->where('supplier_id', $supplierId)->update([ 'update_time' => time(), 'status' => $status, 'reject_reason' => $rejectReason, ]); if ($disableExist) { $redis->hdel('audit_disable_supplier_list', $supplierId); } if ($result) { //记录日志 if ($disableExist) { $auditStatus = $status == -2 ? '审核通过,禁用供应商' : '审核不通过,原因是 : ' . $rejectReason; if ($status == -2) { //发送队列消息同步到金蝶 $service = new SyncSupplierService(); $service->syncSupplierToErp($supplierId); } } else { $auditStatus = $status == 2 ? '审核通过' : '审核不通过,原因是 : ' . $rejectReason; } // $auditService = new SupplierAuditService(); // $flag = $auditService->checkIsNeedToFollowUpSupplier($supplierId); // $model->where('supplier_id',$supplierId)->update([ // 'to_follow_up' => $flag ? 1 : 0, // ]); $logService = new LogService(); $content = $auditStatus; $logService->AddLog($supplierId, LogModel::UPDATE_OPERATE, '审核供应商', $content); } return $result; } //判断是否为待跟进供应商 public function checkIsNeedToFollowUpSupplier($supplierId) { $model = new SupplierChannelModel(); $supplier = $model->where('supplier_id', $supplierId)->first(); //针对非禁止交易状态的供应商重新分配渠道员,且必填信息不完整 if (!empty($supplier) && ($supplier['status'] != SupplierChannelModel::STATUS_DISABLE)) { //开始检查 //如果全部必填字段都有了,就返回false(不需要跟进) if ($this->checkHasAllRequireField($supplier)) { return false; }else{ return true; } } //或者单纯只是禁用状态的供应商重新分配渠道员,也是要处理待跟进状态 if (!empty($supplier) && ($supplier['status'] == SupplierChannelModel::STATUS_DISABLE)) { //开始检查 return true; } return false; } //检查必填字段,false缺少必填字段 public function checkHasAllRequireField($supplier) { //先检查基础字段 if (empty($supplier['supplier_name']) || empty($supplier['register_company_name'] || empty($supplier['region']) || empty($supplier['legal_representative']))) { return false; } if (empty($supplier['stockup_type']) || empty($supplier['supplier_group']) || empty($supplier['qualification_photos'])) { return false; } //再检查营业执照是否有 if (isset($supplier['qualification_photos']['business_license']) && empty($supplier['qualification_photos']['business_license'])) { return false; } //检查是否有联系方式 $contactModel = new SupplierContactModel(); $count = $contactModel->where('supplier_id', $supplier['supplier_id'])->count(); //没有联系方式,就需要去跟进 if (!$count) { return false; } //联系方式和当前采购数量对不上,也要跟进 $channelUserNumber = count(explode(',', $supplier['channel_uid'])); if ($channelUserNumber != $count) { return false; } return true; } }