Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
周伟奇
/
bmw-ocr
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
3ff06858
authored
2021-05-06 18:06:16 +0800
by
周伟奇
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
add se compare
1 parent
55611fd2
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1379 additions
and
4 deletions
docs/se_compare.yaml
src/apps/doc/compare_urls.py
src/apps/doc/views.py
src/common/api_doc.py
src/common/management/commands/generate_api_doc.py
docs/se_compare.yaml
0 → 100644
View file @
3ff0685
swagger
:
'
2.0'
info
:
title
:
接口文档
description
:
宝马ocr/biz_logic接口文档
version
:
1.0.0
host
:
li19dkocruat01vm.bmwgroup.net
basePath
:
/
tags
:
-
name
:
info
description
:
比对信息
schemes
:
-
https
security
:
-
OAuth2
:
[]
paths
:
/api/compare/settlement/v1
:
post
:
tags
:
-
info
summary
:
POS上传SE比对信息
consumes
:
-
application/json
produces
:
-
application/json
parameters
:
-
in
:
body
name
:
body
required
:
true
schema
:
$ref
:
'
#/definitions/SEComparison'
responses
:
200
:
description
:
ok
schema
:
$ref
:
'
#/definitions/ApiResponse'
/api/compare/v1
:
post
:
tags
:
-
info
summary
:
POS上传CA比对信息
consumes
:
-
application/json
produces
:
-
application/json
parameters
:
-
in
:
body
name
:
body
required
:
true
schema
:
$ref
:
'
#/definitions/Comparison'
responses
:
200
:
description
:
ok
schema
:
$ref
:
'
#/definitions/ApiResponse'
securityDefinitions
:
OAuth2
:
type
:
oauth2
flow
:
application
description
:
'
This
API
uses
OAuth
2
with
the
application(clientCredentials)
grant
flow.
client_id=sMlciTkppsMzARwHpCVarm5q7DP2Vucj3ny8JFhw
client_secret=WNoOilDx140ZLcenDKfsnikv7S2LIFs60DciYoqnrZaYLqYsKpcmt7mJIL69o9AEf84uQvRnS3K2UioxfjNyImjR4UOyXbDcF6qYgTLC4KDVByKFdVhKfrn2Lc4q4BNW
scopes=write
'
tokenUrl
:
https://li19dkocruat01vm.bmwgroup.net/api/oauth/token/
scopes
:
write
:
Grants write access
responses
:
ErrorResponse
:
description
:
调用异常, 具体情况请参考`HTTP`状态码和`code`字段
schema
:
$ref
:
'
#/definitions/ApiResponse'
NoContent
:
description
:
后台接收请求,但是没有响应内容
schema
:
$ref
:
'
#/definitions/ApiResponse'
definitions
:
individualCusInfo
:
type
:
object
required
:
-
applicantType
-
idType
-
customerChineseName
-
idNum
-
idExpiryDate
-
dateOfBirth
-
companyName
-
registeredCapital
-
selfEmployedSubType
properties
:
applicantType
:
description
:
applicantType
type
:
string
example
:
COAPP
enum
:
-
COAPP
-
CUSTR
-
GAUTR1
-
GAUTR2
idType
:
description
:
idType
type
:
string
example
:
ITARI
enum
:
-
ITARI
-
ITHKM
-
ITPRC
-
ITPSP
-
ITRES
-
ITTID
-
ITUSC
-
ITCCU
secondIdType
:
description
:
secondIdType
type
:
string
example
:
ITARI
enum
:
-
ITARI
-
ITHKM
-
ITPRC
-
ITPSP
-
ITRES
-
ITTID
customerChineseName
:
description
:
customerChineseName
type
:
string
example
:
李四
idNum
:
description
:
idNum
type
:
string
example
:
111111199404251111
secondIdNum
:
description
:
secondIdNum
type
:
string
example
:
111111199404251111
idExpiryDate
:
description
:
idExpiryDate
type
:
string
format
:
date
example
:
'
2027-04-30'
dateOfBirth
:
description
:
dateOfBirth
type
:
string
format
:
date
example
:
'
2027-04-30'
companyName
:
description
:
companyName
type
:
string
example
:
北京思图场景数据科技服务有限公司
registeredCapital
:
description
:
registeredCapital
type
:
number
format
:
float
example
:
1234.56
selfEmployedSubType
:
description
:
selfEmployedSubType
type
:
string
example
:
CSIBM
enum
:
-
CSIBM
-
CSOTH
-
CSSME
SEindividualCusInfo
:
type
:
object
required
:
-
customerType
-
applicantType
-
customerName
-
idType
-
idNum
-
dateOfBirth
-
idExpiryDate
-
hukouProvince
-
hukouCity
properties
:
customerType
:
description
:
customerType
type
:
string
example
:
TCCOR
enum
:
-
TCCOR
-
TCDAS
-
TCFRE
-
TCIAS
-
TCIND
-
TCSEP
-
TCURE
applicantType
:
description
:
applicantType
type
:
string
example
:
COAPP
enum
:
-
COAPP
-
CUSTR
-
GAUTR1
-
GAUTR2
customerName
:
description
:
customerName
type
:
string
example
:
李四
idType
:
description
:
idType
type
:
string
example
:
ITARI
enum
:
-
ITARI
-
ITHKM
-
ITPRC
-
ITPSP
-
ITRES
-
ITTID
-
ITUSC
-
ITCCU
idNum
:
description
:
idNum
type
:
string
example
:
111111199404251111
secondIdType
:
description
:
secondIdType
type
:
string
example
:
ITARI
enum
:
-
ITARI
-
ITHKM
-
ITPRC
-
ITPSP
-
ITRES
-
ITTID
secondIdNum
:
description
:
secondIdNum
type
:
string
example
:
111111199404251111
dateOfBirth
:
description
:
dateOfBirth
type
:
string
format
:
date
example
:
'
2027-04-30'
idExpiryDate
:
description
:
idExpiryDate
type
:
string
format
:
date
example
:
'
2027-04-30'
nationality
:
description
:
nationality
type
:
string
example
:
中国
countryregion
:
description
:
countryregion
type
:
string
example
:
中国
hukouProvince
:
description
:
hukouProvince
type
:
string
example
:
山东省
hukouCity
:
description
:
hukouCity
type
:
string
example
:
日照市
residentialProvince
:
description
:
residentialProvince
type
:
string
example
:
江苏省
residentialCity
:
description
:
residentialCity
type
:
string
example
:
连云港市
propertyDocumentPolicy
:
description
:
propertyDocumentPolicy
type
:
string
example
:
DOAOB
enum
:
-
DOAOB
-
DOHDP
-
DOAMP
-
DOHED
-
DOAGQ
-
DOSME
-
DOLHK
-
DORET
-
DOPCQ
-
DOSNF
-
DOYES
-
DOGRC
-
DOLLR
-
DOVDL
companyName
:
description
:
companyName
type
:
string
example
:
北京思图场景数据科技服务有限公司
registeredCapital
:
description
:
registeredCapital
type
:
number
format
:
float
example
:
1234.56
selfEmployedSubType
:
description
:
selfEmployedSubType
type
:
string
example
:
CSIBM
enum
:
-
CSIBM
-
CSOTH
-
CSSME
associatedServiceInfo
:
type
:
object
required
:
-
service
-
amount
-
financedAmount
properties
:
service
:
description
:
service
type
:
number
example
:
1
amount
:
description
:
amount
type
:
number
format
:
float
example
:
1234.56
financedAmount
:
description
:
financedAmount
type
:
number
format
:
float
example
:
1234.56
monthlyPaymentInfo
:
type
:
object
required
:
-
term
-
amount
properties
:
term
:
description
:
term
type
:
number
example
:
12
amount
:
description
:
amount
type
:
number
format
:
float
example
:
1234.56
SEComparison
:
type
:
object
required
:
-
content
properties
:
content
:
description
:
SE比对内容信息
type
:
object
required
:
-
uniqSeq
-
applicationId
-
applicationVersion
-
applicationEntity
-
customerType
-
firstSubmmisonDate
-
individualCusInfo
-
vehicleInfo
-
insuranceInfo
-
bankInfo
-
quotationtInfo
properties
:
uniqSeq
:
description
:
uniqSeq
type
:
string
example
:
201809301905121000
applicationId
:
description
:
applicationId
type
:
string
example
:
CH-B100000123
applicationVersion
:
description
:
applicationVersion
type
:
integer
example
:
0
applicationEntity
:
description
:
applicationEntity
type
:
string
example
:
HIL
enum
:
-
AFC
-
HIL
customerType
:
description
:
customerType
type
:
string
example
:
TCCOR
enum
:
-
TCCOR
-
TCDAS
-
TCFRE
-
TCIAS
-
TCIND
-
TCSEP
-
TCURE
firstSubmmisonDate
:
description
:
firstSubmmisonDate
type
:
string
format
:
date
example
:
'
2027-04-30'
individualCusInfo
:
description
:
individualCusInfo
type
:
array
items
:
$ref
:
'
#/definitions/SEindividualCusInfo'
corporateCusInfo
:
description
:
corporateCusInfo
type
:
object
required
:
-
customerType
-
companyName
-
firstIdType
-
firstIdNo
-
businessLicenseNo
-
organizationCreditCode
-
taxRegistrationCertificateNo
-
establishmentDate
-
incorporationDate
-
businessLicenseDueDate
-
legalRepName
-
organizationType
properties
:
customerType
:
description
:
customerType
type
:
string
example
:
TCCOR
enum
:
-
TCCOR
-
TCDAS
-
TCFRE
-
TCIAS
-
TCIND
-
TCSEP
-
TCURE
companyName
:
description
:
companyName
type
:
string
example
:
北京思图场景数据科技服务有限公司
firstIdType
:
description
:
firstIdType
type
:
string
example
:
ITPRC
enum
:
-
ITARI
-
ITHKM
-
ITPRC
-
ITPSP
-
ITRES
-
ITTID
-
ITUSC
-
ITCCU
firstIdNo
:
description
:
firstIdNo
type
:
string
example
:
MA007438143XJ1P
businessLicenseNo
:
description
:
businessLicenseNo
type
:
string
example
:
MA007438143XJ1P
organizationCreditCode
:
description
:
organizationCreditCode
type
:
string
example
:
MA007438143XJ1P
taxRegistrationCertificateNo
:
description
:
taxRegistrationCertificateNo
type
:
string
example
:
MA007438143XJ1P
establishmentDate
:
description
:
establishmentDate
type
:
string
format
:
date
example
:
'
2027-04-30'
incorporationDate
:
description
:
incorporationDate
type
:
string
format
:
date
example
:
'
2027-04-30'
businessLicenseDueDate
:
description
:
businessLicenseDueDate
type
:
string
format
:
date
example
:
'
2027-04-30'
legalRepName
:
description
:
legalRepName
type
:
string
example
:
王五
organizationType
:
description
:
organizationType
type
:
string
example
:
OTINS
enum
:
-
OTINS
-
OTUNI
-
OTOTH
-
OTIND
-
OTCOR
fleetCustomer
:
description
:
fleetCustomer
type
:
boolean
example
:
false
beneficialOwnerName
:
description
:
beneficialOwnerName
type
:
string
example
:
王五
beneficialOwnerIdType
:
description
:
beneficialOwnerIdType
type
:
string
example
:
ITPRC
enum
:
-
ITARI
-
ITHKM
-
ITPRC
-
ITPSP
-
ITRES
-
ITTID
-
ITUSC
-
ITCCU
beneficialOwnerIdNo
:
description
:
beneficialOwnerIdNo
type
:
string
example
:
324124534534
beneficialOwnerIdExpiryDate
:
description
:
beneficialOwnerIdExpiryDate
type
:
string
format
:
date
example
:
'
2027-04-30'
vehicleInfo
:
description
:
vehicleInfo
type
:
object
required
:
-
vehicleStatus
-
vehicleTransactionAmount
-
vinNo
-
dealer
properties
:
vehicleStatus
:
description
:
vehicleStatus
type
:
string
example
:
Usedcar
vehicleTransactionAmount
:
description
:
vehicleTransactionAmount
type
:
number
format
:
float
example
:
1234.56
vinNo
:
description
:
vinNo
type
:
string
example
:
DFS2341JK23
dealer
:
description
:
dealer
type
:
string
example
:
TestDealer
option
:
description
:
option
type
:
string
example
:
TestOption
msrp
:
description
:
msrp
type
:
number
format
:
float
example
:
1234.56
totalAmount
:
description
:
totalAmount
type
:
number
format
:
float
example
:
1234.56
insuranceInfo
:
description
:
insuranceInfo
type
:
object
required
:
-
insuredAmount
-
insuranceType
-
startDate
-
endDate
properties
:
insuredAmount
:
description
:
insuredAmount
type
:
number
format
:
float
example
:
1234.56
insuranceType
:
description
:
insuranceType
type
:
string
example
:
ITCOM
enum
:
-
ITCOM
-
ITCOS
startDate
:
description
:
startDate
type
:
string
format
:
date
example
:
'
2027-04-30'
endDate
:
description
:
endDate
type
:
string
format
:
date
example
:
'
2027-04-30'
bankInfo
:
description
:
bankInfo
type
:
object
required
:
-
bankName
-
branchName
-
applicantType
-
accountHolderName
-
accountNo
properties
:
bankName
:
description
:
bankName
type
:
string
example
:
农业银行
branchName
:
description
:
branchName
type
:
string
example
:
回龙观支行
applicantType
:
description
:
applicantType
type
:
string
example
:
COAPP
enum
:
-
COAPP
-
CUSTR
-
GAUTR1
-
GAUTR2
accountHolderName
:
description
:
accountHolderName
type
:
string
example
:
张三
accountNo
:
description
:
accountNo
type
:
string
example
:
634523426756756
bankVerificationStatus
:
description
:
bankVerificationStatus
type
:
string
example
:
PASS
enum
:
-
PASS
-
FAIL
-
N/A
isAllDocUploaded
:
description
:
isAllDocUploaded
type
:
boolean
example
:
false
quotationtInfo
:
description
:
quotationtInfo
type
:
object
required
:
-
totalLoanAmount
-
loanTerm
-
vehiclePrincipal
-
associatedServicePrincipal
-
associatedServiceInfo
-
monthlyPaymentInfo
properties
:
totalLoanAmount
:
description
:
totalLoanAmount
type
:
number
format
:
float
example
:
1234.56
loanTerm
:
description
:
loanTerm
type
:
number
example
:
12
vehiclePrincipal
:
description
:
vehiclePrincipal
type
:
number
format
:
float
example
:
1234.56
associatedServicePrincipal
:
description
:
associatedServicePrincipal
type
:
number
format
:
float
example
:
1234.56
associatedServiceInfo
:
description
:
associatedServiceInfo
type
:
array
items
:
$ref
:
'
#/definitions/associatedServiceInfo'
monthlyPaymentInfo
:
description
:
monthlyPaymentInfo
type
:
array
items
:
$ref
:
'
#/definitions/monthlyPaymentInfo'
Comparison
:
type
:
object
required
:
-
content
properties
:
content
:
description
:
比对内容信息
type
:
object
required
:
-
uniqSeq
-
applicationId
-
applicationEntity
-
customerType
-
applicationVersion
-
vehicleStatus
-
comments
-
individualCusInfo
properties
:
uniqSeq
:
description
:
uniqSeq
type
:
string
example
:
201809301905121000
applicationId
:
description
:
applicationId
type
:
string
example
:
CH-B100000123
applicationEntity
:
description
:
applicationEntity
type
:
string
example
:
HIL
enum
:
-
AFC
-
HIL
customerType
:
description
:
customerType
type
:
string
example
:
TCCOR
enum
:
-
TCCOR
-
TCDAS
-
TCFRE
-
TCIAS
-
TCIND
-
TCSEP
-
TCURE
applicationVersion
:
description
:
applicationVersion
type
:
integer
example
:
0
vehicleStatus
:
description
:
vehicleStatus
type
:
string
example
:
PCUSD
enum
:
-
PCUSD
-
PCNEW
comments
:
description
:
comments
type
:
array
items
:
type
:
string
individualCusInfo
:
description
:
individualCusInfo
type
:
array
items
:
$ref
:
'
#/definitions/individualCusInfo'
usedCarInfo
:
description
:
usedCarInfo
type
:
object
required
:
-
vinNo
-
manufactureDate
-
firstRegistrationDate
properties
:
vinNo
:
description
:
vinNo
type
:
string
example
:
LBVSFJSDLFJLSDJF
manufactureDate
:
description
:
manufactureDate
type
:
string
format
:
date
example
:
'
2027-04-30'
firstRegistrationDate
:
description
:
firstRegistrationDate
type
:
string
format
:
date
example
:
'
2027-04-30'
corporateCusInfo
:
description
:
corporateCusInfo
type
:
object
required
:
-
customerChineseName
-
legalRepName
-
idNum
-
businessLicenseNo
-
taxRegistrationCode
-
incorporationDate
-
businessLicenseDueDate
-
capitalRegAmount
properties
:
customerChineseName
:
description
:
customerChineseName
type
:
string
example
:
北京思图场景数据科技服务有限公司
legalRepName
:
description
:
legalRepName
type
:
string
example
:
李六
idNum
:
description
:
idNum
type
:
string
example
:
MA007438143XJ1P
businessLicenseNo
:
description
:
businessLicenseNo
type
:
string
example
:
MA007438143XJ1P
taxRegistrationCode
:
description
:
taxRegistrationCode
type
:
string
example
:
MA007438143XJ1P
incorporationDate
:
description
:
incorporationDate
type
:
string
format
:
date
example
:
'
2027-04-30'
businessLicenseDueDate
:
description
:
businessLicenseDueDate
type
:
string
format
:
date
example
:
'
2027-04-30'
capitalRegAmount
:
description
:
capitalRegAmount
type
:
number
format
:
float
example
:
1234.56
ApiResponse
:
description
:
响应对象,code字段用于表示响应的状态; data字段用于存放响应内容
type
:
object
required
:
-
code
-
msg
properties
:
code
:
type
:
integer
format
:
uint8
description
:
'
0:
success
1:
need
login
2:
invalid
params
3:
internal
error
4:
object
not
exist
5:
async
wait
6:
no
permission
7:
illegal
operation'
example
:
0
enum
:
-
0
-
1
-
2
-
3
-
4
-
5
-
6
-
7
msg
:
type
:
string
example
:
success
data
:
type
:
object
src/apps/doc/compare_urls.py
View file @
3ff0685
...
...
@@ -4,4 +4,5 @@ from . import views
urlpatterns
=
[
path
(
r'v1'
,
views
.
CompareView
.
as_view
()),
path
(
r'settlement/v1'
,
views
.
SECompareView
.
as_view
()),
]
...
...
src/apps/doc/views.py
View file @
3ff0685
...
...
@@ -47,6 +47,53 @@ usedcar_args = {
"firstRegistrationDate"
:
CustomDate
(
required
=
True
),
}
se_vehicle_args
=
{
'vehicleStatus'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
16
)),
'vehicleTransactionAmount'
:
CustomDecimal
(
required
=
True
),
'vinNo'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'dealer'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'option'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
256
)),
'msrp'
:
CustomDecimal
(
required
=
False
),
'totalAmount'
:
CustomDecimal
(
required
=
False
),
}
se_insurance_args
=
{
'insuredAmount'
:
CustomDecimal
(
required
=
True
),
'insuranceType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
16
)),
'startDate'
:
CustomDate
(
required
=
True
),
'endDate'
:
CustomDate
(
required
=
True
),
}
se_associated_args
=
{
'service'
:
fields
.
Int
(
required
=
True
),
'amount'
:
CustomDecimal
(
required
=
True
),
'financedAmount'
:
CustomDecimal
(
required
=
True
)
}
se_payment_args
=
{
'term'
:
fields
.
Int
(
required
=
True
),
'amount'
:
CustomDecimal
(
required
=
True
)
}
se_bank_args
=
{
'bankName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'branchName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'applicantType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
16
)),
'accountHolderName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'accountNo'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'bankVerificationStatus'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
16
)),
'isAllDocUploaded'
:
fields
.
Boolean
(
required
=
False
)
}
se_quotationt_args
=
{
'totalLoanAmount'
:
CustomDecimal
(
required
=
True
),
'loanTerm'
:
fields
.
Int
(
required
=
True
),
'vehiclePrincipal'
:
CustomDecimal
(
required
=
True
),
'associatedServicePrincipal'
:
CustomDecimal
(
required
=
True
),
'associatedServiceInfo'
:
fields
.
List
(
fields
.
Nested
(
se_associated_args
),
required
=
True
,
validate
=
validate
.
Length
(
min
=
1
)),
'monthlyPaymentInfo'
:
fields
.
List
(
fields
.
Nested
(
se_payment_args
),
required
=
True
,
validate
=
validate
.
Length
(
min
=
1
)),
}
corporate_args
=
{
'customerType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
CUSTOMER_TYPE
)),
'customerChineseName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
...
...
@@ -59,6 +106,27 @@ corporate_args = {
"capitalRegAmount"
:
CustomDecimal
(
required
=
True
),
# TODO 2位小数限制
}
se_corporate_args
=
{
'customerType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
CUSTOMER_TYPE
)),
'companyName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'firstIdType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
16
)),
'firstIdNo'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'businessLicenseNo'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'organizationCreditCode'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'taxRegistrationCertificateNo'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
"establishmentDate"
:
CustomDate
(
required
=
True
),
"incorporationDate"
:
CustomDate
(
required
=
True
),
"businessLicenseDueDate"
:
CustomDate
(
required
=
True
),
'legalRepName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
64
)),
'organizationType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
16
)),
'fleetCustomer'
:
fields
.
Boolean
(
required
=
False
),
'beneficialOwnerName'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
64
)),
'beneficialOwnerIdType'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
16
)),
'beneficialOwnerIdNo'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
256
)),
'beneficialOwnerIdExpiryDate'
:
CustomDate
(
required
=
False
),
}
individual_args
=
{
'applicantType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
APPLICANT_TYPE
)),
'customerType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
CUSTOMER_TYPE
)),
...
...
@@ -74,6 +142,28 @@ individual_args = {
'selfEmployedSubType'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
OneOf
(
consts
.
SUB_TYPE
)),
}
se_individual_args
=
{
'customerType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
CUSTOMER_TYPE
)),
'applicantType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
APPLICANT_TYPE
)),
'customerName'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
64
)),
'idType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
ID_TYPE
)),
'idNum'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
256
)),
'secondIdType'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
OneOf
(
consts
.
SECOND_ID_TYPE
)),
'secondIdNum'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
256
)),
"dateOfBirth"
:
CustomDate
(
required
=
True
),
"idExpiryDate"
:
CustomDate
(
required
=
True
),
'nationality'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
64
)),
'countryregion'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
64
)),
'hukouProvince'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
64
)),
'hukouCity'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
64
)),
'residentialProvince'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
64
)),
'residentialCity'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
64
)),
'propertyDocumentPolicy'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
16
)),
'companyName'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
256
)),
'registeredCapital'
:
CustomDecimal
(
required
=
False
),
'selfEmployedSubType'
:
fields
.
Str
(
required
=
False
,
validate
=
validate
.
Length
(
max
=
16
)),
}
comment_args
=
{
'comment'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
1024
)),
}
...
...
@@ -95,10 +185,31 @@ compare_content = {
'corporateCusInfo'
:
fields
.
Nested
(
corporate_args
,
required
=
False
),
}
se_compare_content
=
{
'uniqSeq'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
128
)),
'applicationId'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
64
)),
"applicationVersion"
:
fields
.
Int
(
required
=
True
),
'applicationEntity'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
ENTITY
)),
'customerType'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
OneOf
(
consts
.
CUSTOMER_TYPE
)),
"firstSubmmisonDate"
:
CustomDate
(
required
=
True
),
'individualCusInfo'
:
fields
.
List
(
fields
.
Nested
(
se_individual_args
),
required
=
True
,
validate
=
validate
.
Length
(
min
=
1
,
max
=
4
)),
'corporateCusInfo'
:
fields
.
Nested
(
se_corporate_args
,
required
=
False
),
'vehicleInfo'
:
fields
.
Nested
(
se_vehicle_args
,
required
=
True
),
'insuranceInfo'
:
fields
.
Nested
(
se_insurance_args
,
required
=
True
),
'bankInfo'
:
fields
.
Nested
(
se_bank_args
,
required
=
True
),
'quotationtInfo'
:
fields
.
Nested
(
se_quotationt_args
,
required
=
True
),
}
compare_args
=
{
'content'
:
fields
.
Nested
(
compare_content
,
required
=
True
)
}
se_compare_args
=
{
'content'
:
fields
.
Nested
(
se_compare_content
,
required
=
True
)
}
application_data_args
=
{
'applicationId'
:
fields
.
Str
(
required
=
True
,
validate
=
validate
.
Length
(
max
=
64
))}
applicant_data_args
=
{
...
...
@@ -353,7 +464,7 @@ class CompareView(GenericView):
post
.
openapi_doc
=
'''
tags: [info]
summary: POS上传比对信息
summary: POS上传
CA
比对信息
consumes: [application/json]
produces: [application/json]
parameters:
...
...
@@ -371,6 +482,36 @@ class CompareView(GenericView):
'''
class
SECompareView
(
GenericView
):
permission_classes
=
[
IsAuthenticated
]
authentication_classes
=
[
OAuth2AuthenticationWithUser
]
# pos上传比对信息接口
@use_args
(
se_compare_args
,
location
=
'data'
)
def
post
(
self
,
request
,
args
):
self
.
running_log
.
info
(
'se compare in'
)
return
response
.
ok
()
post
.
openapi_doc
=
'''
tags: [info]
summary: POS上传SE比对信息
consumes: [application/json]
produces: [application/json]
parameters:
- in: body
name: body
required: true
schema:
$ref: "#/definitions/SEComparison"
responses:
200:
description: ok
schema:
$ref: '#/definitions/ApiResponse'
'''
class
DocView
(
GenericView
,
DocHandler
):
# 文件列表页
...
...
src/common/api_doc.py
View file @
3ff0685
...
...
@@ -4,7 +4,7 @@ info:
title: 接口文档
description: 宝马ocr/biz_logic接口文档
version: 1.0.0
host: "
staging-bmw-ocr.situdata.com
"
host: "
li19dkocruat01vm.bmwgroup.net
"
basePath: "/"
tags:
- name: info
...
...
@@ -28,7 +28,7 @@ OAuth2:
client_secret=WNoOilDx140ZLcenDKfsnikv7S2LIFs60DciYoqnrZaYLqYsKpcmt7mJIL69o9AEf84uQvRnS3K2UioxfjNyImjR4UOyXbDcF6qYgTLC4KDVByKFdVhKfrn2Lc4q4BNW
scopes=write
tokenUrl: https://
staging-bmw-ocr.situdata.com
/api/oauth/token/
tokenUrl: https://
li19dkocruat01vm.bmwgroup.net
/api/oauth/token/
scopes:
write: Grants write access
'''
...
...
@@ -103,6 +103,392 @@ individualCusInfo:
example: CSIBM
enum: [CSIBM, CSOTH, CSSME]
SEindividualCusInfo:
type: object
required: [customerType, applicantType, customerName, idType, idNum, dateOfBirth, idExpiryDate, hukouProvince, hukouCity]
properties:
customerType:
description: customerType
type: string
example: TCCOR
enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
applicantType:
description: applicantType
type: string
example: COAPP
enum: [COAPP, CUSTR, GAUTR1, GAUTR2]
customerName:
description: customerName
type: string
example: 李四
idType:
description: idType
type: string
example: ITARI
enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
idNum:
description: idNum
type: string
example: 111111199404251111
secondIdType:
description: secondIdType
type: string
example: ITARI
enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID]
secondIdNum:
description: secondIdNum
type: string
example: 111111199404251111
dateOfBirth:
description: dateOfBirth
type: string
format: date
example: "2027-04-30"
idExpiryDate:
description: idExpiryDate
type: string
format: date
example: "2027-04-30"
nationality:
description: nationality
type: string
example: 中国
countryregion:
description: countryregion
type: string
example: 中国
hukouProvince:
description: hukouProvince
type: string
example: 山东省
hukouCity:
description: hukouCity
type: string
example: 日照市
residentialProvince:
description: residentialProvince
type: string
example: 江苏省
residentialCity:
description: residentialCity
type: string
example: 连云港市
propertyDocumentPolicy:
description: propertyDocumentPolicy
type: string
example: DOAOB
enum: [DOAOB, DOHDP, DOAMP, DOHED, DOAGQ, DOSME, DOLHK, DORET, DOPCQ, DOSNF, DOYES, DOGRC, DOLLR, DOVDL]
companyName:
description: companyName
type: string
example: 北京思图场景数据科技服务有限公司
registeredCapital:
description: registeredCapital
type: number
format: float
example: 1234.56
selfEmployedSubType:
description: selfEmployedSubType
type: string
example: CSIBM
enum: [CSIBM, CSOTH, CSSME]
associatedServiceInfo:
type: object
required: [service, amount, financedAmount]
properties:
service:
description: service
type: number
example: 1
amount:
description: amount
type: number
format: float
example: 1234.56
financedAmount:
description: financedAmount
type: number
format: float
example: 1234.56
monthlyPaymentInfo:
type: object
required: [term, amount]
properties:
term:
description: term
type: number
example: 12
amount:
description: amount
type: number
format: float
example: 1234.56
SEComparison:
type: object
required: [content]
properties:
content:
description: SE比对内容信息
type: object
required: [uniqSeq, applicationId, applicationVersion, applicationEntity, customerType, firstSubmmisonDate, individualCusInfo, vehicleInfo, insuranceInfo, bankInfo, quotationtInfo]
properties:
uniqSeq:
description: uniqSeq
type: string
example: 201809301905121000
applicationId:
description: applicationId
type: string
example: CH-B100000123
applicationVersion:
description: applicationVersion
type: integer
example: 0
applicationEntity:
description: applicationEntity
type: string
example: HIL
enum: [AFC, HIL]
customerType:
description: customerType
type: string
example: TCCOR
enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
firstSubmmisonDate:
description: firstSubmmisonDate
type: string
format: date
example: "2027-04-30"
individualCusInfo:
description: individualCusInfo
type: array
items:
$ref: "#/definitions/SEindividualCusInfo"
corporateCusInfo:
description: corporateCusInfo
type: object
required: [customerType, companyName, firstIdType, firstIdNo, businessLicenseNo, organizationCreditCode, taxRegistrationCertificateNo, establishmentDate, incorporationDate, businessLicenseDueDate, legalRepName, organizationType]
properties:
customerType:
description: customerType
type: string
example: TCCOR
enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
companyName:
description: companyName
type: string
example: 北京思图场景数据科技服务有限公司
firstIdType:
description: firstIdType
type: string
example: ITPRC
enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
firstIdNo:
description: firstIdNo
type: string
example: MA007438143XJ1P
businessLicenseNo:
description: businessLicenseNo
type: string
example: MA007438143XJ1P
organizationCreditCode:
description: organizationCreditCode
type: string
example: MA007438143XJ1P
taxRegistrationCertificateNo:
description: taxRegistrationCertificateNo
type: string
example: MA007438143XJ1P
establishmentDate:
description: establishmentDate
type: string
format: date
example: "2027-04-30"
incorporationDate:
description: incorporationDate
type: string
format: date
example: "2027-04-30"
businessLicenseDueDate:
description: businessLicenseDueDate
type: string
format: date
example: "2027-04-30"
legalRepName:
description: legalRepName
type: string
example: 王五
organizationType:
description: organizationType
type: string
example: OTINS
enum: [OTINS, OTUNI, OTOTH, OTIND, OTCOR]
fleetCustomer:
description: fleetCustomer
type: boolean
example: false
beneficialOwnerName:
description: beneficialOwnerName
type: string
example: 王五
beneficialOwnerIdType:
description: beneficialOwnerIdType
type: string
example: ITPRC
enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
beneficialOwnerIdNo:
description: beneficialOwnerIdNo
type: string
example: 324124534534
beneficialOwnerIdExpiryDate:
description: beneficialOwnerIdExpiryDate
type: string
format: date
example: "2027-04-30"
vehicleInfo:
description: vehicleInfo
type: object
required: [vehicleStatus, vehicleTransactionAmount, vinNo, dealer]
properties:
vehicleStatus:
description: vehicleStatus
type: string
example: Usedcar
vehicleTransactionAmount:
description: vehicleTransactionAmount
type: number
format: float
example: 1234.56
vinNo:
description: vinNo
type: string
example: DFS2341JK23
dealer:
description: dealer
type: string
example: TestDealer
option:
description: option
type: string
example: TestOption
msrp:
description: msrp
type: number
format: float
example: 1234.56
totalAmount:
description: totalAmount
type: number
format: float
example: 1234.56
insuranceInfo:
description: insuranceInfo
type: object
required: [insuredAmount, insuranceType, startDate, endDate]
properties:
insuredAmount:
description: insuredAmount
type: number
format: float
example: 1234.56
insuranceType:
description: insuranceType
type: string
example: ITCOM
enum: [ITCOM, ITCOS]
startDate:
description: startDate
type: string
format: date
example: "2027-04-30"
endDate:
description: endDate
type: string
format: date
example: "2027-04-30"
bankInfo:
description: bankInfo
type: object
required: [bankName, branchName, applicantType, accountHolderName, accountNo]
properties:
bankName:
description: bankName
type: string
example: 农业银行
branchName:
description: branchName
type: string
example: 回龙观支行
applicantType:
description: applicantType
type: string
example: COAPP
enum: [COAPP, CUSTR, GAUTR1, GAUTR2]
accountHolderName:
description: accountHolderName
type: string
example: 张三
accountNo:
description: accountNo
type: string
example: 634523426756756
bankVerificationStatus:
description: bankVerificationStatus
type: string
example: PASS
enum: [PASS, FAIL, N/A]
isAllDocUploaded:
description: isAllDocUploaded
type: boolean
example: false
quotationtInfo:
description: quotationtInfo
type: object
required: [totalLoanAmount, loanTerm, vehiclePrincipal, associatedServicePrincipal, associatedServiceInfo, monthlyPaymentInfo]
properties:
totalLoanAmount:
description: totalLoanAmount
type: number
format: float
example: 1234.56
loanTerm:
description: loanTerm
type: number
example: 12
vehiclePrincipal:
description: vehiclePrincipal
type: number
format: float
example: 1234.56
associatedServicePrincipal:
description: associatedServicePrincipal
type: number
format: float
example: 1234.56
associatedServiceInfo:
description: associatedServiceInfo
type: array
items:
$ref: "#/definitions/associatedServiceInfo"
monthlyPaymentInfo:
description: monthlyPaymentInfo
type: array
items:
$ref: "#/definitions/monthlyPaymentInfo"
Comparison:
type: object
required: [content]
...
...
src/common/management/commands/generate_api_doc.py
View file @
3ff0685
...
...
@@ -48,7 +48,7 @@ class Command(BaseCommand):
view_class
=
view
.
view_class
url_path
,
path_parameters
=
pattern
[
0
][
0
]
url_path
=
unify_url_path_format
(
url_path
)
if
url_path
not
in
[
'/api/compare/v1'
]:
if
url_path
not
in
[
'/api/compare/
settlement/v1'
,
'/api/compare/
v1'
]:
continue
url_path_paramters
=
getattr
(
view
,
'parameters_doc'
,
None
)
if
url_path_paramters
:
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment