3ff06858 by 周伟奇

add se compare

1 parent 55611fd2
......@@ -4,4 +4,5 @@ from . import views
urlpatterns = [
path(r'v1', views.CompareView.as_view()),
]
\ No newline at end of file
path(r'settlement/v1', views.SECompareView.as_view()),
]
......
......@@ -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):
# 文件列表页
......
......@@ -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:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!