Commit c625f75a by 杨树贤

各种审核判断逻辑

parent 869bf8a2
......@@ -122,6 +122,8 @@ class SupplierApiController extends Controller
if ($validateResult) {
$this->response(-1, $validateResult);
}
$channelMap = $this->channelMap;
$channelMap = array_merge($channelMap, [
'supplier_consignee',
......@@ -150,6 +152,19 @@ class SupplierApiController extends Controller
'swift_code',
]);
$channel = $request->only($channelMap);
//校验一体化实体名单
$businessLicense = '';
$checkCompanyEntity = (new CompanyService())->checkCompanyEntity($channel['supplier_name'], $channel['supplier_name_en'], $channel['supplier_address'], $businessLicense);
$checkCompanyEntity = 1;
//待确认要透传到数据库里面去
if ($checkCompanyEntity == 0) {
$channel['is_entity'] = 0;
}
if ($checkCompanyEntity == -1) {
$this->response(-1, '该供应商为实体名单,不允许建档');
}
//如果是有直接新增权限的(绕过天眼查等校验)
if (checkPerm('IgnoreCompanyCheck')) {
$channel['is_standard_add'] = -1;
......@@ -331,12 +346,6 @@ class SupplierApiController extends Controller
}
}
//还要去校验实体名单,和上面的一体化黑名单不一样
$checkCompanyEntity = (new CompanyService())->checkCompanyEntity($supplierName);
if ($checkCompanyEntity !== true) {
$this->response(-3, $checkCompanyEntity);
}
$company = [];
//判断用户选的地区是不是需要校验的,不需要直接返回即可
if (in_array($region, config('field.NeedCheckCompanyRegion'))) {
......@@ -726,7 +735,7 @@ class SupplierApiController extends Controller
{
$supplierName = trim($request->input('supplier_name'));
if (!$supplierName) {
$this->response(-1,'供应商名称不能为空');
$this->response(-1, '供应商名称不能为空');
}
$supplier = (new SupplierService())->querySupplier($supplierName);
$this->response(0, '查询成功', $supplier);
......@@ -737,7 +746,7 @@ class SupplierApiController extends Controller
{
$standardBrandNames = $request->input('standard_brand_names');
$result = (new StandardBrandService())->getBatchAddMainBrandsData($standardBrandNames);
$this->response(0,'ok',$result);
$this->response(0, 'ok', $result);
}
}
......@@ -93,14 +93,7 @@ class CompanyService
$result = curl($url, $params);
$result = json_decode($result, true);
if (array_get($result, 'code') === 0) {
if ($result['data']['result'] == -1) {
return '该供应商为实体名单,不允许建档';
}
if ($result['data']['result'] == 0) {
return true;
}
return true;
return $result['data']['result'];
}
return '一体化校验实体名单失败,请联系管理员';
......
......@@ -80,6 +80,8 @@ class SupplierService
//判断是否要审核,默认是要审核的
$needAudit = true;
$isDirectApply = request()->get('direct_apply');
//走事务
$supplierId = DB::connection('web')->transaction(function () use ($channel, $model, $oldSupplier, &$needAudit) {
......@@ -185,6 +187,8 @@ class SupplierService
//插入供应商返回供应商id
$supplierId = $this->newSupplierId = $model->insertGetId($channel);
//插入sku上传规则
$this->saveSkuUploadRulerToRedis($supplierId, $channel['sku_upload_ruler']);
//添加联系人
......@@ -253,6 +257,7 @@ class SupplierService
}
$channel['system_tags'] = trim(implode(',', $channel['system_tags']), ',');
$model->where('supplier_id', $supplierId)->update($channel);
//保存地址
$supplierAddressService = new SupplierAddressService();
......@@ -346,12 +351,32 @@ class SupplierService
]));
}
$isAudit = (bool)request()->input('is_audit');
//这里还要判断一体化实体名单,如果是待确认,那么也不能修改状态为审核中
//新增的时候,一体化是待确认
if ($newSupplier['is_entity'] == 0 && ($isDirectApply || $isAudit)) {
//这里还涉及到一体化的状态变更,要去判断is_entity字段
//如果是0的话,那么就要去禁用,并且记录禁用前的原始状态
$reason = '待确认实体名单,系统自动拉入禁止交易,请联系“风控部门”进行确认;';
// 禁用供应商
SupplierChannelModel::where('supplier_id', $supplierId)->update([
'update_time' => time(),
'disable_reason' => $reason,
'status' => SupplierChannelModel::STATUS_DISABLE,
]);
$logService = new LogService();
$logService->AddLog($this->newSupplierId, LogModel::UPDATE_OPERATE, '实体名单设置', $reason);
// 记录禁用前的原始状态
$redis = new RedisModel();
$redis->hset('supplier_status_before_disable', $supplierId, $newSupplier['status']);
}
//这里有个申请审核的判断逻辑
//如果是申请审核,并且原来的状态不是已通过,无论什么情况,都要变成审核中,如果是已通过,那么就要走下面的判断是否要忽略审核流程
$isAudit = (bool)request()->input('is_audit');
if ($isAudit && $oldSupplier['status'] == SupplierChannelModel::STATUS_PASSED && !$needAudit && !empty($channel['supplier_id'])) {
} else if ($isAudit) {
//什么都不需要操作
} else if ($isAudit && $newSupplier['is_entity'] != 0) {
$auditData[] = [
'supplier_id' => $supplierId,
//供应商类型为临时供应商,才会去存申请理由
......
......@@ -217,8 +217,9 @@ class SyncSupplierService
//加入实体名单后,要做很多事情,比如禁用供应商,也要禁用供应商账号等等,还要记录禁用之前的状态,等到移除实体名单以后,要恢复之前的状态
public function receiveEntityResult($supplierName, $result)
{
//先找到对应的供应商,如果没有那跳过
$supplier = SupplierChannelModel::where('supplier_name', $supplierName)->first();
//先找到对应的供应商(草稿的跳过),如果没有那跳过
$supplier = SupplierChannelModel::where('supplier_name', $supplierName)
->where('status','!=',SupplierChannelModel::STATUS_PENDING)->first();
if (empty($supplier)) {
return;
}
......
......@@ -74,9 +74,6 @@ class SupplierValidator
}
}
//去一体化那边判断是否是合法实体名单审核
$businessLicense = '';
//这个supplierId是用来判断是新增还是修改的
$supplierId = array_get($validateData, 'supplier_id');
//如果是修改直接提交,不是点申请审核的,只需要校验供应商名称和采购员是否完整即可
......
......@@ -82,5 +82,5 @@ Route::group(['middleware' => ['external'], 'namespace' => 'Sync'], function ()
});
Route::match(['get', 'post'], '/test', function () {
(new \App\Http\Services\SyncSupplierService())->receiveEntityResult('SPARKLAND ELECTRONICS CO., LIMITED', 0);
(new \App\Http\Services\SyncSupplierService())->receiveEntityResult('城茗(國際)有限公司', 1);
});
......@@ -96,27 +96,42 @@
}
form.on('submit(addSupplier)', function (data) {
admin.showLoading({
type: 3,
});
data = getAttachmentData(data);
let url = '/api/supplier/AddSupplier';
let res = ajax(url, data.field);
if (!res) {
admin.removeLoading();
layer.msg('网络错误,请重试', {icon: 6});
} else {
if (res.err_code === 0) {
layer.msg(res.err_msg, {icon: 6});
setTimeout(function () {
admin.closeThisTabs();
location.href = "/supplier/SupplierList"
}, 1000);
} else {
admin.showLoading();
admin.showLoading('.layui-layer-btn0');
$.ajax({
url: '/api/supplier/AddSupplier',
type: 'POST',
async: true,
data: data.field,
dataType: 'json',
timeout: 20000,
success: function (res) {
if (!res) {
admin.showLoading('.layui-layer-btn0');
admin.removeLoading();
layer.msg('网络错误,请重试', {icon: 6});
} else {
if (res.err_code === 0) {
layer.msg(res.err_msg, {icon: 6});
setTimeout(function () {
admin.closeThisTabs();
location.href = "/supplier/SupplierList"
}, 1000);
} else {
admin.showLoading('.layui-layer-btn0');
admin.removeLoading();
layer.msg(res.err_msg, {icon: 5});
}
}
admin.showLoading('.layui-layer-btn0');
admin.removeLoading();
},
error: function () {
admin.removeLoading();
layer.msg(res.err_msg, {icon: 5});
layer.msg('网络错误', {icon: 5});
}
}
});
return false;
});
......@@ -126,7 +141,6 @@
form.on('submit(addAndApplySupplier)', function (data) {
data = getAttachmentData(data);
console.log(data.field.field_name);
let fieldNameList = data.field.field_name ? data.field.field_name : [];
//提交先提示是否要转换供应商类型
let radioObj = $('input[name="supplier_type"]');
......@@ -209,6 +223,7 @@
function addSupplier(data) {
admin.showLoading();
admin.showLoading('.layui-layer-btn0');
$.ajax({
url: '/api/supplier/AddSupplier?direct_apply=1',
type: 'POST',
......@@ -219,6 +234,8 @@
success: function (res) {
if (!res) {
admin.removeLoading();
admin.showLoading('.layui-layer-btn0');
layer.msg('网络错误,请重试', {icon: 6});
} else {
if (res.err_code === 0) {
......@@ -231,6 +248,8 @@
let errMsg = res.err_msg;
let msg = '';
admin.removeLoading();
admin.showLoading('.layui-layer-btn0');
$.each(errMsg.split('|'), function (index, value) {
msg += "<span>" + value + "</span><br>"
});
......@@ -238,12 +257,16 @@
}
}
admin.removeLoading();
admin.showLoading('.layui-layer-btn0');
},
error: function () {
admin.removeLoading();
admin.showLoading('.layui-layer-btn0');
layer.msg('网络错误', {icon: 5});
}
});
}
});
</script>
\ No newline at end of file
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment