Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
杨树贤
/
liexin_supplier
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
41d9316c
authored
Aug 31, 2022
by
杨树贤
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
供应商审核接口
parent
78da315b
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
100 additions
and
9 deletions
app/Http/Controllers/Api/ExternalApiController.php
app/Http/Controllers/Api/SupplierApiController.php
app/Http/Controllers/Controller.php
app/Http/Controllers/Filter/SupplierFilter.php
app/Http/Controllers/Sync/SupplierSyncController.php
app/Http/Middleware/CheckLogin.php
app/Http/Services/AdminUserService.php
app/Http/Services/SupplierService.php
app/Http/Transformers/SupplierTransformer.php
app/Http/function.php
app/Http/routes.php
app/Model/SupplierChannelModel.php
app/Http/Controllers/Api/ExternalApiController.php
View file @
41d9316c
...
...
@@ -3,7 +3,10 @@
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\SupplierService
;
use
App\Model\SupplierChannelModel
;
use
Illuminate\Http\Request
;
...
...
app/Http/Controllers/Api/SupplierApiController.php
View file @
41d9316c
...
...
@@ -200,7 +200,7 @@ class SupplierApiController extends Controller
}
//获取供应商
信息变更记录
//获取供应商
列表
public
function
GetSupplierList
(
Request
$request
)
{
$model
=
new
SupplierChannelModel
();
...
...
@@ -216,6 +216,18 @@ class SupplierApiController extends Controller
$this
->
response
(
0
,
'ok'
,
$list
[
'data'
],
$list
[
'total'
]);
}
//获取供应商详情,目前是给审核小程序用的
public
function
GetSupplierAuditDetail
(
Request
$request
)
{
$supplierId
=
$request
->
input
(
'supplier_id'
);
if
(
!
$supplierId
)
{
$this
->
response
(
-
1
,
'供应商id不能为空'
);
}
$supplier
=
(
new
SupplierService
())
->
getSupplier
(
$supplierId
,
true
);
$supplier
=
(
new
SupplierTransformer
())
->
transformSupplierDetail
(
$supplier
);
$this
->
response
(
0
,
'ok'
,
$supplier
);
}
public
function
DisableSupplier
(
$request
)
{
//禁用不是直接修改为无法交易,而是改为审核中,然后审核通过后,变成无法交易
...
...
app/Http/Controllers/Controller.php
View file @
41d9316c
...
...
@@ -39,8 +39,10 @@ class Controller extends BaseController
'code'
=>
$errCode
[
0
],
'err_code'
=>
$errCode
[
0
],
'err_msg'
=>
$errCode
[
1
],
'msg'
=>
$errCode
[
1
],
'data'
=>
!
empty
(
$errCode
[
2
])
?
$errCode
[
2
]
:
''
,
'count'
=>
$count
,
'total'
=>
$count
,
]);
exit
();
}
else
{
...
...
@@ -48,8 +50,10 @@ class Controller extends BaseController
'err_code'
=>
$errCode
,
'code'
=>
$errCode
,
'err_msg'
=>
$errMsg
,
'msg'
=>
$errMsg
,
'data'
=>
$data
,
'count'
=>
$count
,
'total'
=>
$count
,
]);
exit
();
}
...
...
app/Http/Controllers/Filter/SupplierFilter.php
View file @
41d9316c
...
...
@@ -49,10 +49,8 @@ class SupplierFilter
}
if
(
!
empty
(
$map
[
'stockup_type'
]))
{
$regexStr
=
'('
.
str_replace
(
','
,
'|'
,
$map
[
'stockup_type'
])
.
')'
;
// $query->where('stockup_type', 'like', "%{$map['stockup_type']}%");
$query
->
whereRaw
(
"stockup_type REGEXP '${regexStr}'"
);
}
if
(
!
empty
(
$map
[
'purchase_uid'
]))
{
$query
->
where
(
'purchase_uid'
,
$map
[
'purchase_uid'
]);
}
...
...
@@ -123,6 +121,19 @@ class SupplierFilter
}
});
}
//获取待审核,待复审的数据
if
(
!
empty
(
$map
[
'need_audit'
]))
{
if
(
checkPerm
(
'ReviewSupplier'
))
{
$query
=
$query
->
whereIn
(
'status'
,
[
SupplierChannelModel
::
STATUS_IN_REVIEW
,
SupplierChannelModel
::
STATUS_NEED_REVIEW
]);
}
else
{
$query
=
$query
->
where
(
'status'
,
SupplierChannelModel
::
STATUS_IN_REVIEW
);
}
}
//默认过滤带有-1字符串的供应商名称的数据
$query
->
whereRaw
(
'supplier_name NOT LIKE "%-1"'
);
if
(
config
(
'website.domain'
)
==
'liexin.net'
&&
!
in_array
(
request
()
->
user
->
userId
,
[
...
...
@@ -136,6 +147,7 @@ class SupplierFilter
]))
{
$query
->
where
(
'supplier_channel.supplier_id'
,
'>'
,
12211
);
}
return
$query
;
}
...
...
app/Http/Controllers/Sync/SupplierSyncController.php
View file @
41d9316c
...
...
@@ -3,8 +3,11 @@
namespace
App\Http\Controllers\Sync
;
use
App\Http\Controllers\Controller
;
use
App\Http\Controllers\Filter\SupplierFilter
;
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\Validator
;
...
...
@@ -44,4 +47,28 @@ class SupplierSyncController extends BaseSyncController
$this
->
syncResponse
(
0
,
'同步一体化信息成功'
);
}
//获取供应商需要审核的数量
public
function
GetSupplierNeedAuditCount
(
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
,
]]);
// request()->user->userId = $userId;
// request()->user->codeId = $codeId;
$model
=
new
SupplierChannelModel
();
$query
=
$model
->
orderBy
(
'update_time'
,
'desc'
);
$filter
=
new
SupplierFilter
();
$params
=
$request
->
except
(
'user'
);
$params
[
'need_audit'
]
=
1
;
$query
=
$filter
->
listFilter
(
$params
,
$query
);
$count
=
$query
->
count
();
$this
->
response
(
0
,
'ok'
,
$count
);
}
}
app/Http/Middleware/CheckLogin.php
View file @
41d9316c
...
...
@@ -38,7 +38,7 @@ class CheckLogin
if
(
!
$userId
||
!
$skey
||
(
string
)((
int
)
$userId
)
!=
$userId
||
!
preg_match
(
'/^[a-zA-Z0-9]+$/'
,
$skey
))
{
if
(
$isApi
)
{
return
[
"errcode"
=>
4
01
,
"errmsg"
=>
"没有登录"
];
return
[
"errcode"
=>
1
01
,
"errmsg"
=>
"没有登录"
];
}
return
redirect
(
$login
[
'login'
]
.
'?redirect='
.
urlencode
(
$request
->
fullUrl
()));
}
...
...
@@ -69,7 +69,7 @@ class CheckLogin
}
else
{
$rsp
=
curl
(
$login
[
'dingtalk_check'
],
[
'token'
=>
trim
(
$request
->
input
(
'token'
))]);
if
(
!
$rsp
)
{
[
"errcode"
=>
4
01
,
"errmsg"
=>
"登录失效"
];
return
[
"errcode"
=>
1
01
,
"errmsg"
=>
"登录失效"
];
}
$ret
=
json_decode
(
$rsp
);
...
...
app/Http/Services/AdminUserService.php
View file @
41d9316c
...
...
@@ -53,6 +53,12 @@ class AdminUserService
return
UserInfoModel
::
where
(
'email'
,
$email
)
->
value
(
'userId'
);
}
public
function
getCodeIdsByUserId
(
$userId
)
{
$intraCodeModel
=
new
IntracodeModel
();
return
$intraCodeModel
->
where
(
'admin_id'
,
$userId
)
->
value
(
'code_id'
);
}
public
function
getCodeIdsByUserIds
(
$userIds
)
{
$intraCodeModel
=
new
IntracodeModel
();
...
...
app/Http/Services/SupplierService.php
View file @
41d9316c
...
...
@@ -20,10 +20,14 @@ class SupplierService
public
$newSupplierId
=
0
;
public
function
getSupplier
(
$supplierId
)
public
function
getSupplier
(
$supplierId
,
$getExtraInfo
=
false
)
{
$model
=
new
SupplierChannelModel
();
$supplier
=
$model
->
where
(
'supplier_id'
,
$supplierId
)
->
with
(
'contact'
)
->
first
();
$query
=
$model
->
where
(
'supplier_id'
,
$supplierId
)
->
with
(
'contact'
);
if
(
$getExtraInfo
)
{
$query
->
with
([
'attachment'
,
'receipt'
]);
}
$supplier
=
$query
->
first
();
$transformer
=
new
SupplierTransformer
();
$supplier
=
$transformer
->
transformInfo
(
$supplier
);
return
$supplier
?
$supplier
->
toArray
()
:
[];
...
...
@@ -188,7 +192,7 @@ class SupplierService
if
(
$needAudit
)
{
$channel
[
'status'
]
=
SupplierChannelModel
::
STATUS_PENDING
;
}
else
{
}
else
{
//不需要审核的话,那么还要直接同步到金蝶
$syncService
=
new
SyncSupplierService
();
$syncService
->
syncSupplierToErp
(
$supplierId
);
...
...
app/Http/Transformers/SupplierTransformer.php
View file @
41d9316c
...
...
@@ -45,6 +45,7 @@ class SupplierTransformer
$supplier
[
'region_name'
]
=
array_get
(
config
(
'fixed.Region'
),
$supplier
[
'region'
],
'暂无'
);
$supplier
[
'contact_num'
]
=
$this
->
getContactNum
(
$supplier
[
'supplier_id'
]);
$supplier
[
'has_sku'
]
=
$supplier
[
'sku_num'
]
?
'是'
:
'否'
;
$supplier
[
'is_business_abnormal_name'
]
=
$supplier
[
'is_business_abnormal'
]
==
1
?
'是'
:
'否'
;
if
(
isset
(
$supplier
[
'attachment'
]))
{
$supplier
[
'has_quality_assurance_agreement'
]
=
$this
->
checkHasQualityAssuranceAgreement
(
$supplier
[
'attachment'
])
?
'有'
:
'无'
;
}
else
{
...
...
@@ -61,6 +62,7 @@ class SupplierTransformer
$log
=
$logModel
->
where
(
'supplier_id'
,
$supplier
[
'supplier_id'
])
->
where
(
'type'
,
LogModel
::
UPDATE_OPERATE
)
->
orderBy
(
'id'
,
'desc'
)
->
first
();
$supplier
[
'last_update_name'
]
=
$log
?
$log
[
'admin_name'
]
:
''
;
$supplier
[
'last_update_time'
]
=
$log
?
date
(
'Y-m-d H:i:s'
,
$log
[
'add_time'
])
:
''
;
//黑名单
if
(
!
empty
(
$supplier
[
'blacklist'
]))
{
$supplier
[
'blacklist_name'
]
=
$supplier
[
'blacklist'
][
'blacklist_name'
];
...
...
@@ -333,4 +335,14 @@ class SupplierTransformer
return
$suppliers
;
}
//供应商审核详情
public
function
transformSupplierDetail
(
$supplier
)
{
$supplier
[
'contact'
]
=
$supplier
[
'contact'
]
?
(
new
SupplierContactTransformer
())
->
transformList
(
$supplier
[
'contact'
])
:
[];
$supplier
[
'receipt'
]
=
$supplier
[
'receipt'
]
?
(
new
ReceiptTransformer
())
->
transformList
(
$supplier
[
'receipt'
])
:
[];
$supplier
[
'attachment'
]
=
$supplier
[
'attachment'
]
?
(
new
SupplierAttachmentTransformer
())
->
transformList
(
$supplier
[
'attachment'
])
:
[];
return
$supplier
;
}
}
\ No newline at end of file
app/Http/function.php
View file @
41d9316c
...
...
@@ -174,6 +174,9 @@ function Autograph()
function
checkPerm
(
$perm
)
{
$perms
=
request
()
->
perms
;
if
(
$perms
===
null
)
{
return
true
;
}
return
in_array
(
$perm
,
$perms
);
}
...
...
app/Http/routes.php
View file @
41d9316c
...
...
@@ -50,7 +50,7 @@ Route::group(['middleware' => ['web'], 'namespace' => 'Api'], function () {
Route
::
match
([
'get'
,
'post'
],
'/api/sku_upload_log/{key}'
,
'SkuUploadLogApiController@Entrance'
);
});
//提供给其它系统使用的接口
//提供给其它系统使用的接口
,不需要验证那种
Route
::
group
([
'middleware'
=>
[
'external'
],
'namespace'
=>
'Api'
],
function
()
{
Route
::
get
(
'/api/external/searchSupplier'
,
'ExternalApiController@searchSupplier'
);
});
...
...
@@ -59,6 +59,7 @@ Route::group(['middleware' => ['external'], 'namespace' => 'Api'], function () {
Route
::
group
([
'middleware'
=>
[
'external'
],
'namespace'
=>
'Sync'
],
function
()
{
//这个接口是用来接收同步结果,同时这个接口也是接收一体化那边的修改
Route
::
any
(
'/sync/unitedData/syncResult'
,
'SupplierSyncController@syncUniteResult'
);
Route
::
get
(
'/sync/audit/GetSupplierNeedAuditCount'
,
'SupplierSyncController@GetSupplierNeedAuditCount'
);
});
Route
::
match
([
'get'
,
'post'
],
'/test'
,
function
()
{
...
...
app/Model/SupplierChannelModel.php
View file @
41d9316c
...
...
@@ -65,6 +65,12 @@ class SupplierChannelModel extends Model
return
$this
->
hasMany
(
SupplierPayTypeModel
::
class
,
'supplier_id'
,
'supplier_id'
);
}
//银行信息
public
function
receipt
()
{
return
$this
->
hasMany
(
SupplierReceiptModel
::
class
,
'supplier_id'
,
'supplier_id'
);
}
//获取正式供应商
public
function
getOfficialSuppliers
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment