SupplierApplyService.php
6.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
namespace App\Http\Services;
//后台用户相关信息服务
use App\Http\Controllers\Filter\SupplierApplyFilter;
use App\Http\Transformers\SupplierApplyTransformer;
use App\Model\SupplierAccountModel;
use App\Model\SupplierApplyModel;
use App\Model\SupplierBlacklistModel;
use App\Model\SupplierChannelModel;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
class SupplierApplyService
{
//供应商申请列表
public function getSupplierApplyList($map)
{
$limit = array_get($map, 'limit', 10);
$filter = new SupplierApplyFilter();
$query = $filter->listFilter($map);
$list = $query->paginate($limit)->toArray();
$transformer = new SupplierApplyTransformer();
$list['data'] = $transformer->transformList($list['data']);
return $list;
}
//判断是否能申请供应商
public function checkCanApplySupplier($supplierName)
{
//先去判断是否已经有申请,并且是通过或者待审核的,如果是的话,直接返回已申请
$supplierName = trim($supplierName);
$supplier = SupplierChannelModel::where('supplier_name', $supplierName)
->where('is_type', 0)->first();
$supplier = !empty($supplier) ? $supplier->toArray() : [];
if ($supplier) {
$existSupplierApply = SupplierApplyModel::where('supplier_id', $supplier['supplier_id'])
->whereIn('status', [SupplierApplyModel::STATUS_NEED_AUDIT, SupplierApplyModel::STATUS_PASS])->exists();
if ($existSupplierApply) {
return '贵司已申请芯链入驻,无需重复申请';
}
//再去判断是否有上传sku
$uploadedSku = $supplier['uploaded_sku'];
if ($uploadedSku != SupplierChannelModel::HAS_UPLOADED_SKU) {
return '贵司暂未与猎芯进行商品接入合作,请先联系猎芯对应采购经理或渠道经理进行商品合作';
}
} else {
//供应商不存在
return '贵司暂未入驻猎芯网,请先申请供应商入驻';
}
return true;
}
//申请供应商(通过供应商名称,申请已经存在的供应商)
public function applySupplier($data)
{
$supplier = SupplierChannelModel::where('supplier_name', $data['supplier_name'])->first()->toArray();
$data['create_time'] = time();
$data['supplier_id'] = $supplier['supplier_id'];
$data['supplier_code'] = $supplier['supplier_code'];
return SupplierApplyModel::insert($data);
}
public function checkCanAuditSupplierApply($applyId)
{
$supplierId = SupplierApplyModel::where('id', $applyId)->value('supplier_id');
$status = SupplierChannelModel::where('supplier_id', $supplierId)->value('status');
if ($status != SupplierChannelModel::STATUS_PASSED) {
return "该申请对应的供应商不是通过状态,请检查该供应商的状态";
}
return true;
}
//审核供应商申请
public function auditSupplierApply($applyId, $status, $auditReason)
{
$result = SupplierApplyModel::where('id', $applyId)->update([
'status' => $status,
'audit_reason' => $auditReason,
'update_time' => time(),
'audit_time' => time(),
'audit_name' => request()->user->name,
'audit_uid' => request()->user->userId,
]);
$apply = SupplierApplyModel::where('id', $applyId)->first()->toArray();
if ($result ) {
if ($status == SupplierApplyModel::STATUS_PASS) {
$existAccount = SupplierAccountModel::where('supplier_code', $apply['supplier_code'])->exists();
//如果没有供应商账号,那么就要新增供应商账号
if ($existAccount) {
SupplierAccountModel::where('supplier_code', $apply['supplier_code'])->update([
'mobile' => $apply['mobile'],
'email' => $apply['email'],
'contacts_name' => $apply['contact_name'],
'password_raw' => 123456,
'password' => Hash::make(123456),
'create_time' => time(),
'a_type' => 1,
'a_status' => 1,
'create_uid' => 1000,
'source' => 2,
]);
}else{
//如果是通过并且已经存在,那么就要替换掉对应供应商的账号和密码
SupplierAccountModel::insert([
'supplier_id' => $apply['supplier_id'],
'supplier_code' => $apply['supplier_code'],
'mobile' => $apply['mobile'],
'update_time' => time(),
'email' => $apply['email'],
'contacts_name' => $apply['contact_name'],
'password_raw' => 123456,
'password' => Hash::make(123456),
'source' => 2,
]);
}
}
//无论是否通过,都要发短信通知
if ($status == SupplierApplyModel::STATUS_REJECT) {
$message = "${apply['contact_name']} 先生/女生您好,您的“芯链入驻申请”已收到,审核结果为:不通过,原因为:${auditReason},如对审核结果有疑问,可联系您在猎芯的专属渠道经理(周强),联系电话:13427991931,联系邮箱:qiang@ichunt.com";
} else {
$message = "${apply['contact_name']} 先生/女生您好,您的“芯链入驻申请”已收到,审核结果为:通过,芯链登录网址:http://xinlian.ichunt.com,您的芯链登录账号:${apply['mobile']},初始密码:123456,请在登录芯链后修改密码,后续有任何疑问都可联系您在猎芯的专属渠道经理(周强),联系电话:13427991931,联系邮箱:qiang@ichunt.com;";
}
$data = [];
$data['data']['title'] = $message;
(new MessageService())->sendMessage('supplier_apply_audit_mobile', $data, $apply['mobile'], true);
(new MessageService())->sendMessage('supplier_apply_audit_email', $data, $apply['email'], true);
}
return $result;
}
}