3ff06858 by 周伟奇

add se compare

1 parent 55611fd2
1 swagger: '2.0'
2 info:
3 title: 接口文档
4 description: 宝马ocr/biz_logic接口文档
5 version: 1.0.0
6 host: li19dkocruat01vm.bmwgroup.net
7 basePath: /
8 tags:
9 - name: info
10 description: 比对信息
11 schemes:
12 - https
13 security:
14 - OAuth2: []
15 paths:
16 /api/compare/settlement/v1:
17 post:
18 tags:
19 - info
20 summary: POS上传SE比对信息
21 consumes:
22 - application/json
23 produces:
24 - application/json
25 parameters:
26 - in: body
27 name: body
28 required: true
29 schema:
30 $ref: '#/definitions/SEComparison'
31 responses:
32 200:
33 description: ok
34 schema:
35 $ref: '#/definitions/ApiResponse'
36 /api/compare/v1:
37 post:
38 tags:
39 - info
40 summary: POS上传CA比对信息
41 consumes:
42 - application/json
43 produces:
44 - application/json
45 parameters:
46 - in: body
47 name: body
48 required: true
49 schema:
50 $ref: '#/definitions/Comparison'
51 responses:
52 200:
53 description: ok
54 schema:
55 $ref: '#/definitions/ApiResponse'
56 securityDefinitions:
57 OAuth2:
58 type: oauth2
59 flow: application
60 description: 'This API uses OAuth 2 with the application(clientCredentials) grant
61 flow.
62
63 client_id=sMlciTkppsMzARwHpCVarm5q7DP2Vucj3ny8JFhw
64
65 client_secret=WNoOilDx140ZLcenDKfsnikv7S2LIFs60DciYoqnrZaYLqYsKpcmt7mJIL69o9AEf84uQvRnS3K2UioxfjNyImjR4UOyXbDcF6qYgTLC4KDVByKFdVhKfrn2Lc4q4BNW
66
67 scopes=write
68
69 '
70 tokenUrl: https://li19dkocruat01vm.bmwgroup.net/api/oauth/token/
71 scopes:
72 write: Grants write access
73 responses:
74 ErrorResponse:
75 description: 调用异常, 具体情况请参考`HTTP`状态码和`code`字段
76 schema:
77 $ref: '#/definitions/ApiResponse'
78 NoContent:
79 description: 后台接收请求,但是没有响应内容
80 schema:
81 $ref: '#/definitions/ApiResponse'
82 definitions:
83 individualCusInfo:
84 type: object
85 required:
86 - applicantType
87 - idType
88 - customerChineseName
89 - idNum
90 - idExpiryDate
91 - dateOfBirth
92 - companyName
93 - registeredCapital
94 - selfEmployedSubType
95 properties:
96 applicantType:
97 description: applicantType
98 type: string
99 example: COAPP
100 enum:
101 - COAPP
102 - CUSTR
103 - GAUTR1
104 - GAUTR2
105 idType:
106 description: idType
107 type: string
108 example: ITARI
109 enum:
110 - ITARI
111 - ITHKM
112 - ITPRC
113 - ITPSP
114 - ITRES
115 - ITTID
116 - ITUSC
117 - ITCCU
118 secondIdType:
119 description: secondIdType
120 type: string
121 example: ITARI
122 enum:
123 - ITARI
124 - ITHKM
125 - ITPRC
126 - ITPSP
127 - ITRES
128 - ITTID
129 customerChineseName:
130 description: customerChineseName
131 type: string
132 example: 李四
133 idNum:
134 description: idNum
135 type: string
136 example: 111111199404251111
137 secondIdNum:
138 description: secondIdNum
139 type: string
140 example: 111111199404251111
141 idExpiryDate:
142 description: idExpiryDate
143 type: string
144 format: date
145 example: '2027-04-30'
146 dateOfBirth:
147 description: dateOfBirth
148 type: string
149 format: date
150 example: '2027-04-30'
151 companyName:
152 description: companyName
153 type: string
154 example: 北京思图场景数据科技服务有限公司
155 registeredCapital:
156 description: registeredCapital
157 type: number
158 format: float
159 example: 1234.56
160 selfEmployedSubType:
161 description: selfEmployedSubType
162 type: string
163 example: CSIBM
164 enum:
165 - CSIBM
166 - CSOTH
167 - CSSME
168 SEindividualCusInfo:
169 type: object
170 required:
171 - customerType
172 - applicantType
173 - customerName
174 - idType
175 - idNum
176 - dateOfBirth
177 - idExpiryDate
178 - hukouProvince
179 - hukouCity
180 properties:
181 customerType:
182 description: customerType
183 type: string
184 example: TCCOR
185 enum:
186 - TCCOR
187 - TCDAS
188 - TCFRE
189 - TCIAS
190 - TCIND
191 - TCSEP
192 - TCURE
193 applicantType:
194 description: applicantType
195 type: string
196 example: COAPP
197 enum:
198 - COAPP
199 - CUSTR
200 - GAUTR1
201 - GAUTR2
202 customerName:
203 description: customerName
204 type: string
205 example: 李四
206 idType:
207 description: idType
208 type: string
209 example: ITARI
210 enum:
211 - ITARI
212 - ITHKM
213 - ITPRC
214 - ITPSP
215 - ITRES
216 - ITTID
217 - ITUSC
218 - ITCCU
219 idNum:
220 description: idNum
221 type: string
222 example: 111111199404251111
223 secondIdType:
224 description: secondIdType
225 type: string
226 example: ITARI
227 enum:
228 - ITARI
229 - ITHKM
230 - ITPRC
231 - ITPSP
232 - ITRES
233 - ITTID
234 secondIdNum:
235 description: secondIdNum
236 type: string
237 example: 111111199404251111
238 dateOfBirth:
239 description: dateOfBirth
240 type: string
241 format: date
242 example: '2027-04-30'
243 idExpiryDate:
244 description: idExpiryDate
245 type: string
246 format: date
247 example: '2027-04-30'
248 nationality:
249 description: nationality
250 type: string
251 example: 中国
252 countryregion:
253 description: countryregion
254 type: string
255 example: 中国
256 hukouProvince:
257 description: hukouProvince
258 type: string
259 example: 山东省
260 hukouCity:
261 description: hukouCity
262 type: string
263 example: 日照市
264 residentialProvince:
265 description: residentialProvince
266 type: string
267 example: 江苏省
268 residentialCity:
269 description: residentialCity
270 type: string
271 example: 连云港市
272 propertyDocumentPolicy:
273 description: propertyDocumentPolicy
274 type: string
275 example: DOAOB
276 enum:
277 - DOAOB
278 - DOHDP
279 - DOAMP
280 - DOHED
281 - DOAGQ
282 - DOSME
283 - DOLHK
284 - DORET
285 - DOPCQ
286 - DOSNF
287 - DOYES
288 - DOGRC
289 - DOLLR
290 - DOVDL
291 companyName:
292 description: companyName
293 type: string
294 example: 北京思图场景数据科技服务有限公司
295 registeredCapital:
296 description: registeredCapital
297 type: number
298 format: float
299 example: 1234.56
300 selfEmployedSubType:
301 description: selfEmployedSubType
302 type: string
303 example: CSIBM
304 enum:
305 - CSIBM
306 - CSOTH
307 - CSSME
308 associatedServiceInfo:
309 type: object
310 required:
311 - service
312 - amount
313 - financedAmount
314 properties:
315 service:
316 description: service
317 type: number
318 example: 1
319 amount:
320 description: amount
321 type: number
322 format: float
323 example: 1234.56
324 financedAmount:
325 description: financedAmount
326 type: number
327 format: float
328 example: 1234.56
329 monthlyPaymentInfo:
330 type: object
331 required:
332 - term
333 - amount
334 properties:
335 term:
336 description: term
337 type: number
338 example: 12
339 amount:
340 description: amount
341 type: number
342 format: float
343 example: 1234.56
344 SEComparison:
345 type: object
346 required:
347 - content
348 properties:
349 content:
350 description: SE比对内容信息
351 type: object
352 required:
353 - uniqSeq
354 - applicationId
355 - applicationVersion
356 - applicationEntity
357 - customerType
358 - firstSubmmisonDate
359 - individualCusInfo
360 - vehicleInfo
361 - insuranceInfo
362 - bankInfo
363 - quotationtInfo
364 properties:
365 uniqSeq:
366 description: uniqSeq
367 type: string
368 example: 201809301905121000
369 applicationId:
370 description: applicationId
371 type: string
372 example: CH-B100000123
373 applicationVersion:
374 description: applicationVersion
375 type: integer
376 example: 0
377 applicationEntity:
378 description: applicationEntity
379 type: string
380 example: HIL
381 enum:
382 - AFC
383 - HIL
384 customerType:
385 description: customerType
386 type: string
387 example: TCCOR
388 enum:
389 - TCCOR
390 - TCDAS
391 - TCFRE
392 - TCIAS
393 - TCIND
394 - TCSEP
395 - TCURE
396 firstSubmmisonDate:
397 description: firstSubmmisonDate
398 type: string
399 format: date
400 example: '2027-04-30'
401 individualCusInfo:
402 description: individualCusInfo
403 type: array
404 items:
405 $ref: '#/definitions/SEindividualCusInfo'
406 corporateCusInfo:
407 description: corporateCusInfo
408 type: object
409 required:
410 - customerType
411 - companyName
412 - firstIdType
413 - firstIdNo
414 - businessLicenseNo
415 - organizationCreditCode
416 - taxRegistrationCertificateNo
417 - establishmentDate
418 - incorporationDate
419 - businessLicenseDueDate
420 - legalRepName
421 - organizationType
422 properties:
423 customerType:
424 description: customerType
425 type: string
426 example: TCCOR
427 enum:
428 - TCCOR
429 - TCDAS
430 - TCFRE
431 - TCIAS
432 - TCIND
433 - TCSEP
434 - TCURE
435 companyName:
436 description: companyName
437 type: string
438 example: 北京思图场景数据科技服务有限公司
439 firstIdType:
440 description: firstIdType
441 type: string
442 example: ITPRC
443 enum:
444 - ITARI
445 - ITHKM
446 - ITPRC
447 - ITPSP
448 - ITRES
449 - ITTID
450 - ITUSC
451 - ITCCU
452 firstIdNo:
453 description: firstIdNo
454 type: string
455 example: MA007438143XJ1P
456 businessLicenseNo:
457 description: businessLicenseNo
458 type: string
459 example: MA007438143XJ1P
460 organizationCreditCode:
461 description: organizationCreditCode
462 type: string
463 example: MA007438143XJ1P
464 taxRegistrationCertificateNo:
465 description: taxRegistrationCertificateNo
466 type: string
467 example: MA007438143XJ1P
468 establishmentDate:
469 description: establishmentDate
470 type: string
471 format: date
472 example: '2027-04-30'
473 incorporationDate:
474 description: incorporationDate
475 type: string
476 format: date
477 example: '2027-04-30'
478 businessLicenseDueDate:
479 description: businessLicenseDueDate
480 type: string
481 format: date
482 example: '2027-04-30'
483 legalRepName:
484 description: legalRepName
485 type: string
486 example: 王五
487 organizationType:
488 description: organizationType
489 type: string
490 example: OTINS
491 enum:
492 - OTINS
493 - OTUNI
494 - OTOTH
495 - OTIND
496 - OTCOR
497 fleetCustomer:
498 description: fleetCustomer
499 type: boolean
500 example: false
501 beneficialOwnerName:
502 description: beneficialOwnerName
503 type: string
504 example: 王五
505 beneficialOwnerIdType:
506 description: beneficialOwnerIdType
507 type: string
508 example: ITPRC
509 enum:
510 - ITARI
511 - ITHKM
512 - ITPRC
513 - ITPSP
514 - ITRES
515 - ITTID
516 - ITUSC
517 - ITCCU
518 beneficialOwnerIdNo:
519 description: beneficialOwnerIdNo
520 type: string
521 example: 324124534534
522 beneficialOwnerIdExpiryDate:
523 description: beneficialOwnerIdExpiryDate
524 type: string
525 format: date
526 example: '2027-04-30'
527 vehicleInfo:
528 description: vehicleInfo
529 type: object
530 required:
531 - vehicleStatus
532 - vehicleTransactionAmount
533 - vinNo
534 - dealer
535 properties:
536 vehicleStatus:
537 description: vehicleStatus
538 type: string
539 example: Usedcar
540 vehicleTransactionAmount:
541 description: vehicleTransactionAmount
542 type: number
543 format: float
544 example: 1234.56
545 vinNo:
546 description: vinNo
547 type: string
548 example: DFS2341JK23
549 dealer:
550 description: dealer
551 type: string
552 example: TestDealer
553 option:
554 description: option
555 type: string
556 example: TestOption
557 msrp:
558 description: msrp
559 type: number
560 format: float
561 example: 1234.56
562 totalAmount:
563 description: totalAmount
564 type: number
565 format: float
566 example: 1234.56
567 insuranceInfo:
568 description: insuranceInfo
569 type: object
570 required:
571 - insuredAmount
572 - insuranceType
573 - startDate
574 - endDate
575 properties:
576 insuredAmount:
577 description: insuredAmount
578 type: number
579 format: float
580 example: 1234.56
581 insuranceType:
582 description: insuranceType
583 type: string
584 example: ITCOM
585 enum:
586 - ITCOM
587 - ITCOS
588 startDate:
589 description: startDate
590 type: string
591 format: date
592 example: '2027-04-30'
593 endDate:
594 description: endDate
595 type: string
596 format: date
597 example: '2027-04-30'
598 bankInfo:
599 description: bankInfo
600 type: object
601 required:
602 - bankName
603 - branchName
604 - applicantType
605 - accountHolderName
606 - accountNo
607 properties:
608 bankName:
609 description: bankName
610 type: string
611 example: 农业银行
612 branchName:
613 description: branchName
614 type: string
615 example: 回龙观支行
616 applicantType:
617 description: applicantType
618 type: string
619 example: COAPP
620 enum:
621 - COAPP
622 - CUSTR
623 - GAUTR1
624 - GAUTR2
625 accountHolderName:
626 description: accountHolderName
627 type: string
628 example: 张三
629 accountNo:
630 description: accountNo
631 type: string
632 example: 634523426756756
633 bankVerificationStatus:
634 description: bankVerificationStatus
635 type: string
636 example: PASS
637 enum:
638 - PASS
639 - FAIL
640 - N/A
641 isAllDocUploaded:
642 description: isAllDocUploaded
643 type: boolean
644 example: false
645 quotationtInfo:
646 description: quotationtInfo
647 type: object
648 required:
649 - totalLoanAmount
650 - loanTerm
651 - vehiclePrincipal
652 - associatedServicePrincipal
653 - associatedServiceInfo
654 - monthlyPaymentInfo
655 properties:
656 totalLoanAmount:
657 description: totalLoanAmount
658 type: number
659 format: float
660 example: 1234.56
661 loanTerm:
662 description: loanTerm
663 type: number
664 example: 12
665 vehiclePrincipal:
666 description: vehiclePrincipal
667 type: number
668 format: float
669 example: 1234.56
670 associatedServicePrincipal:
671 description: associatedServicePrincipal
672 type: number
673 format: float
674 example: 1234.56
675 associatedServiceInfo:
676 description: associatedServiceInfo
677 type: array
678 items:
679 $ref: '#/definitions/associatedServiceInfo'
680 monthlyPaymentInfo:
681 description: monthlyPaymentInfo
682 type: array
683 items:
684 $ref: '#/definitions/monthlyPaymentInfo'
685 Comparison:
686 type: object
687 required:
688 - content
689 properties:
690 content:
691 description: 比对内容信息
692 type: object
693 required:
694 - uniqSeq
695 - applicationId
696 - applicationEntity
697 - customerType
698 - applicationVersion
699 - vehicleStatus
700 - comments
701 - individualCusInfo
702 properties:
703 uniqSeq:
704 description: uniqSeq
705 type: string
706 example: 201809301905121000
707 applicationId:
708 description: applicationId
709 type: string
710 example: CH-B100000123
711 applicationEntity:
712 description: applicationEntity
713 type: string
714 example: HIL
715 enum:
716 - AFC
717 - HIL
718 customerType:
719 description: customerType
720 type: string
721 example: TCCOR
722 enum:
723 - TCCOR
724 - TCDAS
725 - TCFRE
726 - TCIAS
727 - TCIND
728 - TCSEP
729 - TCURE
730 applicationVersion:
731 description: applicationVersion
732 type: integer
733 example: 0
734 vehicleStatus:
735 description: vehicleStatus
736 type: string
737 example: PCUSD
738 enum:
739 - PCUSD
740 - PCNEW
741 comments:
742 description: comments
743 type: array
744 items:
745 type: string
746 individualCusInfo:
747 description: individualCusInfo
748 type: array
749 items:
750 $ref: '#/definitions/individualCusInfo'
751 usedCarInfo:
752 description: usedCarInfo
753 type: object
754 required:
755 - vinNo
756 - manufactureDate
757 - firstRegistrationDate
758 properties:
759 vinNo:
760 description: vinNo
761 type: string
762 example: LBVSFJSDLFJLSDJF
763 manufactureDate:
764 description: manufactureDate
765 type: string
766 format: date
767 example: '2027-04-30'
768 firstRegistrationDate:
769 description: firstRegistrationDate
770 type: string
771 format: date
772 example: '2027-04-30'
773 corporateCusInfo:
774 description: corporateCusInfo
775 type: object
776 required:
777 - customerChineseName
778 - legalRepName
779 - idNum
780 - businessLicenseNo
781 - taxRegistrationCode
782 - incorporationDate
783 - businessLicenseDueDate
784 - capitalRegAmount
785 properties:
786 customerChineseName:
787 description: customerChineseName
788 type: string
789 example: 北京思图场景数据科技服务有限公司
790 legalRepName:
791 description: legalRepName
792 type: string
793 example: 李六
794 idNum:
795 description: idNum
796 type: string
797 example: MA007438143XJ1P
798 businessLicenseNo:
799 description: businessLicenseNo
800 type: string
801 example: MA007438143XJ1P
802 taxRegistrationCode:
803 description: taxRegistrationCode
804 type: string
805 example: MA007438143XJ1P
806 incorporationDate:
807 description: incorporationDate
808 type: string
809 format: date
810 example: '2027-04-30'
811 businessLicenseDueDate:
812 description: businessLicenseDueDate
813 type: string
814 format: date
815 example: '2027-04-30'
816 capitalRegAmount:
817 description: capitalRegAmount
818 type: number
819 format: float
820 example: 1234.56
821 ApiResponse:
822 description: 响应对象,code字段用于表示响应的状态; data字段用于存放响应内容
823 type: object
824 required:
825 - code
826 - msg
827 properties:
828 code:
829 type: integer
830 format: uint8
831 description: '0: success 1: need login 2: invalid params 3: internal error
832 4: object not exist 5: async wait 6: no permission 7: illegal operation'
833 example: 0
834 enum:
835 - 0
836 - 1
837 - 2
838 - 3
839 - 4
840 - 5
841 - 6
842 - 7
843 msg:
844 type: string
845 example: success
846 data:
847 type: object
...@@ -4,4 +4,5 @@ from . import views ...@@ -4,4 +4,5 @@ from . import views
4 4
5 urlpatterns = [ 5 urlpatterns = [
6 path(r'v1', views.CompareView.as_view()), 6 path(r'v1', views.CompareView.as_view()),
7 path(r'settlement/v1', views.SECompareView.as_view()),
7 ] 8 ]
......
...@@ -47,6 +47,53 @@ usedcar_args = { ...@@ -47,6 +47,53 @@ usedcar_args = {
47 "firstRegistrationDate": CustomDate(required=True), 47 "firstRegistrationDate": CustomDate(required=True),
48 } 48 }
49 49
50 se_vehicle_args = {
51 'vehicleStatus': fields.Str(required=True, validate=validate.Length(max=16)),
52 'vehicleTransactionAmount': CustomDecimal(required=True),
53 'vinNo': fields.Str(required=True, validate=validate.Length(max=256)),
54 'dealer': fields.Str(required=True, validate=validate.Length(max=256)),
55 'option': fields.Str(required=False, validate=validate.Length(max=256)),
56 'msrp': CustomDecimal(required=False),
57 'totalAmount': CustomDecimal(required=False),
58 }
59
60 se_insurance_args = {
61 'insuredAmount': CustomDecimal(required=True),
62 'insuranceType': fields.Str(required=True, validate=validate.Length(max=16)),
63 'startDate': CustomDate(required=True),
64 'endDate': CustomDate(required=True),
65 }
66
67 se_associated_args = {
68 'service': fields.Int(required=True),
69 'amount': CustomDecimal(required=True),
70 'financedAmount': CustomDecimal(required=True)
71 }
72
73 se_payment_args = {
74 'term': fields.Int(required=True),
75 'amount': CustomDecimal(required=True)
76 }
77
78 se_bank_args = {
79 'bankName': fields.Str(required=True, validate=validate.Length(max=256)),
80 'branchName': fields.Str(required=True, validate=validate.Length(max=256)),
81 'applicantType': fields.Str(required=True, validate=validate.Length(max=16)),
82 'accountHolderName': fields.Str(required=True, validate=validate.Length(max=256)),
83 'accountNo': fields.Str(required=True, validate=validate.Length(max=256)),
84 'bankVerificationStatus': fields.Str(required=False, validate=validate.Length(max=16)),
85 'isAllDocUploaded': fields.Boolean(required=False)
86 }
87
88 se_quotationt_args = {
89 'totalLoanAmount': CustomDecimal(required=True),
90 'loanTerm': fields.Int(required=True),
91 'vehiclePrincipal': CustomDecimal(required=True),
92 'associatedServicePrincipal': CustomDecimal(required=True),
93 'associatedServiceInfo': fields.List(fields.Nested(se_associated_args), required=True, validate=validate.Length(min=1)),
94 'monthlyPaymentInfo': fields.List(fields.Nested(se_payment_args), required=True, validate=validate.Length(min=1)),
95 }
96
50 corporate_args = { 97 corporate_args = {
51 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)), 98 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)),
52 'customerChineseName': fields.Str(required=True, validate=validate.Length(max=256)), 99 'customerChineseName': fields.Str(required=True, validate=validate.Length(max=256)),
...@@ -59,6 +106,27 @@ corporate_args = { ...@@ -59,6 +106,27 @@ corporate_args = {
59 "capitalRegAmount": CustomDecimal(required=True), # TODO 2位小数限制 106 "capitalRegAmount": CustomDecimal(required=True), # TODO 2位小数限制
60 } 107 }
61 108
109 se_corporate_args = {
110 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)),
111 'companyName': fields.Str(required=True, validate=validate.Length(max=256)),
112 'firstIdType': fields.Str(required=True, validate=validate.Length(max=16)),
113 'firstIdNo': fields.Str(required=True, validate=validate.Length(max=256)),
114 'businessLicenseNo': fields.Str(required=True, validate=validate.Length(max=256)),
115 'organizationCreditCode': fields.Str(required=True, validate=validate.Length(max=256)),
116 'taxRegistrationCertificateNo': fields.Str(required=True, validate=validate.Length(max=256)),
117 "establishmentDate": CustomDate(required=True),
118 "incorporationDate": CustomDate(required=True),
119 "businessLicenseDueDate": CustomDate(required=True),
120 'legalRepName': fields.Str(required=True, validate=validate.Length(max=64)),
121 'organizationType': fields.Str(required=True, validate=validate.Length(max=16)),
122
123 'fleetCustomer': fields.Boolean(required=False),
124 'beneficialOwnerName': fields.Str(required=False, validate=validate.Length(max=64)),
125 'beneficialOwnerIdType': fields.Str(required=False, validate=validate.Length(max=16)),
126 'beneficialOwnerIdNo': fields.Str(required=False, validate=validate.Length(max=256)),
127 'beneficialOwnerIdExpiryDate': CustomDate(required=False),
128 }
129
62 individual_args = { 130 individual_args = {
63 'applicantType': fields.Str(required=True, validate=validate.OneOf(consts.APPLICANT_TYPE)), 131 'applicantType': fields.Str(required=True, validate=validate.OneOf(consts.APPLICANT_TYPE)),
64 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)), 132 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)),
...@@ -74,6 +142,28 @@ individual_args = { ...@@ -74,6 +142,28 @@ individual_args = {
74 'selfEmployedSubType': fields.Str(required=False, validate=validate.OneOf(consts.SUB_TYPE)), 142 'selfEmployedSubType': fields.Str(required=False, validate=validate.OneOf(consts.SUB_TYPE)),
75 } 143 }
76 144
145 se_individual_args = {
146 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)),
147 'applicantType': fields.Str(required=True, validate=validate.OneOf(consts.APPLICANT_TYPE)),
148 'customerName': fields.Str(required=True, validate=validate.Length(max=64)),
149 'idType': fields.Str(required=True, validate=validate.OneOf(consts.ID_TYPE)),
150 'idNum': fields.Str(required=True, validate=validate.Length(max=256)),
151 'secondIdType': fields.Str(required=False, validate=validate.OneOf(consts.SECOND_ID_TYPE)),
152 'secondIdNum': fields.Str(required=False, validate=validate.Length(max=256)),
153 "dateOfBirth": CustomDate(required=True),
154 "idExpiryDate": CustomDate(required=True),
155 'nationality': fields.Str(required=False, validate=validate.Length(max=64)),
156 'countryregion': fields.Str(required=False, validate=validate.Length(max=64)),
157 'hukouProvince': fields.Str(required=True, validate=validate.Length(max=64)),
158 'hukouCity': fields.Str(required=True, validate=validate.Length(max=64)),
159 'residentialProvince': fields.Str(required=False, validate=validate.Length(max=64)),
160 'residentialCity': fields.Str(required=False, validate=validate.Length(max=64)),
161 'propertyDocumentPolicy': fields.Str(required=False, validate=validate.Length(max=16)),
162 'companyName': fields.Str(required=False, validate=validate.Length(max=256)),
163 'registeredCapital': CustomDecimal(required=False),
164 'selfEmployedSubType': fields.Str(required=False, validate=validate.Length(max=16)),
165 }
166
77 comment_args = { 167 comment_args = {
78 'comment': fields.Str(required=True, validate=validate.Length(max=1024)), 168 'comment': fields.Str(required=True, validate=validate.Length(max=1024)),
79 } 169 }
...@@ -95,10 +185,31 @@ compare_content = { ...@@ -95,10 +185,31 @@ compare_content = {
95 'corporateCusInfo': fields.Nested(corporate_args, required=False), 185 'corporateCusInfo': fields.Nested(corporate_args, required=False),
96 } 186 }
97 187
188 se_compare_content = {
189 'uniqSeq': fields.Str(required=True, validate=validate.Length(max=128)),
190 'applicationId': fields.Str(required=True, validate=validate.Length(max=64)),
191 "applicationVersion": fields.Int(required=True),
192 'applicationEntity': fields.Str(required=True, validate=validate.OneOf(consts.ENTITY)),
193 'customerType': fields.Str(required=True, validate=validate.OneOf(consts.CUSTOMER_TYPE)),
194 "firstSubmmisonDate": CustomDate(required=True),
195
196 'individualCusInfo': fields.List(fields.Nested(se_individual_args),
197 required=True, validate=validate.Length(min=1, max=4)),
198 'corporateCusInfo': fields.Nested(se_corporate_args, required=False),
199 'vehicleInfo': fields.Nested(se_vehicle_args, required=True),
200 'insuranceInfo': fields.Nested(se_insurance_args, required=True),
201 'bankInfo': fields.Nested(se_bank_args, required=True),
202 'quotationtInfo': fields.Nested(se_quotationt_args, required=True),
203 }
204
98 compare_args = { 205 compare_args = {
99 'content': fields.Nested(compare_content, required=True) 206 'content': fields.Nested(compare_content, required=True)
100 } 207 }
101 208
209 se_compare_args = {
210 'content': fields.Nested(se_compare_content, required=True)
211 }
212
102 application_data_args = {'applicationId': fields.Str(required=True, validate=validate.Length(max=64))} 213 application_data_args = {'applicationId': fields.Str(required=True, validate=validate.Length(max=64))}
103 214
104 applicant_data_args = { 215 applicant_data_args = {
...@@ -353,7 +464,7 @@ class CompareView(GenericView): ...@@ -353,7 +464,7 @@ class CompareView(GenericView):
353 464
354 post.openapi_doc = ''' 465 post.openapi_doc = '''
355 tags: [info] 466 tags: [info]
356 summary: POS上传比对信息 467 summary: POS上传CA比对信息
357 consumes: [application/json] 468 consumes: [application/json]
358 produces: [application/json] 469 produces: [application/json]
359 parameters: 470 parameters:
...@@ -371,6 +482,36 @@ class CompareView(GenericView): ...@@ -371,6 +482,36 @@ class CompareView(GenericView):
371 ''' 482 '''
372 483
373 484
485 class SECompareView(GenericView):
486 permission_classes = [IsAuthenticated]
487 authentication_classes = [OAuth2AuthenticationWithUser]
488
489 # pos上传比对信息接口
490 @use_args(se_compare_args, location='data')
491 def post(self, request, args):
492 self.running_log.info('se compare in')
493 return response.ok()
494
495 post.openapi_doc = '''
496 tags: [info]
497 summary: POS上传SE比对信息
498 consumes: [application/json]
499 produces: [application/json]
500 parameters:
501 - in: body
502 name: body
503 required: true
504 schema:
505 $ref: "#/definitions/SEComparison"
506
507 responses:
508 200:
509 description: ok
510 schema:
511 $ref: '#/definitions/ApiResponse'
512 '''
513
514
374 class DocView(GenericView, DocHandler): 515 class DocView(GenericView, DocHandler):
375 516
376 # 文件列表页 517 # 文件列表页
......
...@@ -4,7 +4,7 @@ info: ...@@ -4,7 +4,7 @@ info:
4 title: 接口文档 4 title: 接口文档
5 description: 宝马ocr/biz_logic接口文档 5 description: 宝马ocr/biz_logic接口文档
6 version: 1.0.0 6 version: 1.0.0
7 host: "staging-bmw-ocr.situdata.com" 7 host: "li19dkocruat01vm.bmwgroup.net"
8 basePath: "/" 8 basePath: "/"
9 tags: 9 tags:
10 - name: info 10 - name: info
...@@ -28,7 +28,7 @@ OAuth2: ...@@ -28,7 +28,7 @@ OAuth2:
28 client_secret=WNoOilDx140ZLcenDKfsnikv7S2LIFs60DciYoqnrZaYLqYsKpcmt7mJIL69o9AEf84uQvRnS3K2UioxfjNyImjR4UOyXbDcF6qYgTLC4KDVByKFdVhKfrn2Lc4q4BNW 28 client_secret=WNoOilDx140ZLcenDKfsnikv7S2LIFs60DciYoqnrZaYLqYsKpcmt7mJIL69o9AEf84uQvRnS3K2UioxfjNyImjR4UOyXbDcF6qYgTLC4KDVByKFdVhKfrn2Lc4q4BNW
29 29
30 scopes=write 30 scopes=write
31 tokenUrl: https://staging-bmw-ocr.situdata.com/api/oauth/token/ 31 tokenUrl: https://li19dkocruat01vm.bmwgroup.net/api/oauth/token/
32 scopes: 32 scopes:
33 write: Grants write access 33 write: Grants write access
34 ''' 34 '''
...@@ -103,6 +103,392 @@ individualCusInfo: ...@@ -103,6 +103,392 @@ individualCusInfo:
103 example: CSIBM 103 example: CSIBM
104 enum: [CSIBM, CSOTH, CSSME] 104 enum: [CSIBM, CSOTH, CSSME]
105 105
106 SEindividualCusInfo:
107 type: object
108 required: [customerType, applicantType, customerName, idType, idNum, dateOfBirth, idExpiryDate, hukouProvince, hukouCity]
109 properties:
110 customerType:
111 description: customerType
112 type: string
113 example: TCCOR
114 enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
115 applicantType:
116 description: applicantType
117 type: string
118 example: COAPP
119 enum: [COAPP, CUSTR, GAUTR1, GAUTR2]
120 customerName:
121 description: customerName
122 type: string
123 example: 李四
124 idType:
125 description: idType
126 type: string
127 example: ITARI
128 enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
129 idNum:
130 description: idNum
131 type: string
132 example: 111111199404251111
133 secondIdType:
134 description: secondIdType
135 type: string
136 example: ITARI
137 enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID]
138 secondIdNum:
139 description: secondIdNum
140 type: string
141 example: 111111199404251111
142 dateOfBirth:
143 description: dateOfBirth
144 type: string
145 format: date
146 example: "2027-04-30"
147 idExpiryDate:
148 description: idExpiryDate
149 type: string
150 format: date
151 example: "2027-04-30"
152 nationality:
153 description: nationality
154 type: string
155 example: 中国
156 countryregion:
157 description: countryregion
158 type: string
159 example: 中国
160 hukouProvince:
161 description: hukouProvince
162 type: string
163 example: 山东省
164 hukouCity:
165 description: hukouCity
166 type: string
167 example: 日照市
168 residentialProvince:
169 description: residentialProvince
170 type: string
171 example: 江苏省
172 residentialCity:
173 description: residentialCity
174 type: string
175 example: 连云港市
176 propertyDocumentPolicy:
177 description: propertyDocumentPolicy
178 type: string
179 example: DOAOB
180 enum: [DOAOB, DOHDP, DOAMP, DOHED, DOAGQ, DOSME, DOLHK, DORET, DOPCQ, DOSNF, DOYES, DOGRC, DOLLR, DOVDL]
181 companyName:
182 description: companyName
183 type: string
184 example: 北京思图场景数据科技服务有限公司
185 registeredCapital:
186 description: registeredCapital
187 type: number
188 format: float
189 example: 1234.56
190 selfEmployedSubType:
191 description: selfEmployedSubType
192 type: string
193 example: CSIBM
194 enum: [CSIBM, CSOTH, CSSME]
195
196 associatedServiceInfo:
197 type: object
198 required: [service, amount, financedAmount]
199 properties:
200 service:
201 description: service
202 type: number
203 example: 1
204 amount:
205 description: amount
206 type: number
207 format: float
208 example: 1234.56
209 financedAmount:
210 description: financedAmount
211 type: number
212 format: float
213 example: 1234.56
214
215 monthlyPaymentInfo:
216 type: object
217 required: [term, amount]
218 properties:
219 term:
220 description: term
221 type: number
222 example: 12
223 amount:
224 description: amount
225 type: number
226 format: float
227 example: 1234.56
228
229 SEComparison:
230 type: object
231 required: [content]
232 properties:
233 content:
234 description: SE比对内容信息
235 type: object
236 required: [uniqSeq, applicationId, applicationVersion, applicationEntity, customerType, firstSubmmisonDate, individualCusInfo, vehicleInfo, insuranceInfo, bankInfo, quotationtInfo]
237 properties:
238 uniqSeq:
239 description: uniqSeq
240 type: string
241 example: 201809301905121000
242 applicationId:
243 description: applicationId
244 type: string
245 example: CH-B100000123
246 applicationVersion:
247 description: applicationVersion
248 type: integer
249 example: 0
250 applicationEntity:
251 description: applicationEntity
252 type: string
253 example: HIL
254 enum: [AFC, HIL]
255 customerType:
256 description: customerType
257 type: string
258 example: TCCOR
259 enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
260 firstSubmmisonDate:
261 description: firstSubmmisonDate
262 type: string
263 format: date
264 example: "2027-04-30"
265
266 individualCusInfo:
267 description: individualCusInfo
268 type: array
269 items:
270 $ref: "#/definitions/SEindividualCusInfo"
271
272
273
274 corporateCusInfo:
275 description: corporateCusInfo
276 type: object
277 required: [customerType, companyName, firstIdType, firstIdNo, businessLicenseNo, organizationCreditCode, taxRegistrationCertificateNo, establishmentDate, incorporationDate, businessLicenseDueDate, legalRepName, organizationType]
278 properties:
279 customerType:
280 description: customerType
281 type: string
282 example: TCCOR
283 enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
284 companyName:
285 description: companyName
286 type: string
287 example: 北京思图场景数据科技服务有限公司
288 firstIdType:
289 description: firstIdType
290 type: string
291 example: ITPRC
292 enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
293 firstIdNo:
294 description: firstIdNo
295 type: string
296 example: MA007438143XJ1P
297 businessLicenseNo:
298 description: businessLicenseNo
299 type: string
300 example: MA007438143XJ1P
301 organizationCreditCode:
302 description: organizationCreditCode
303 type: string
304 example: MA007438143XJ1P
305 taxRegistrationCertificateNo:
306 description: taxRegistrationCertificateNo
307 type: string
308 example: MA007438143XJ1P
309 establishmentDate:
310 description: establishmentDate
311 type: string
312 format: date
313 example: "2027-04-30"
314 incorporationDate:
315 description: incorporationDate
316 type: string
317 format: date
318 example: "2027-04-30"
319 businessLicenseDueDate:
320 description: businessLicenseDueDate
321 type: string
322 format: date
323 example: "2027-04-30"
324 legalRepName:
325 description: legalRepName
326 type: string
327 example: 王五
328 organizationType:
329 description: organizationType
330 type: string
331 example: OTINS
332 enum: [OTINS, OTUNI, OTOTH, OTIND, OTCOR]
333 fleetCustomer:
334 description: fleetCustomer
335 type: boolean
336 example: false
337 beneficialOwnerName:
338 description: beneficialOwnerName
339 type: string
340 example: 王五
341 beneficialOwnerIdType:
342 description: beneficialOwnerIdType
343 type: string
344 example: ITPRC
345 enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
346 beneficialOwnerIdNo:
347 description: beneficialOwnerIdNo
348 type: string
349 example: 324124534534
350 beneficialOwnerIdExpiryDate:
351 description: beneficialOwnerIdExpiryDate
352 type: string
353 format: date
354 example: "2027-04-30"
355
356
357 vehicleInfo:
358 description: vehicleInfo
359 type: object
360 required: [vehicleStatus, vehicleTransactionAmount, vinNo, dealer]
361 properties:
362 vehicleStatus:
363 description: vehicleStatus
364 type: string
365 example: Usedcar
366 vehicleTransactionAmount:
367 description: vehicleTransactionAmount
368 type: number
369 format: float
370 example: 1234.56
371 vinNo:
372 description: vinNo
373 type: string
374 example: DFS2341JK23
375 dealer:
376 description: dealer
377 type: string
378 example: TestDealer
379 option:
380 description: option
381 type: string
382 example: TestOption
383 msrp:
384 description: msrp
385 type: number
386 format: float
387 example: 1234.56
388 totalAmount:
389 description: totalAmount
390 type: number
391 format: float
392 example: 1234.56
393
394 insuranceInfo:
395 description: insuranceInfo
396 type: object
397 required: [insuredAmount, insuranceType, startDate, endDate]
398 properties:
399 insuredAmount:
400 description: insuredAmount
401 type: number
402 format: float
403 example: 1234.56
404 insuranceType:
405 description: insuranceType
406 type: string
407 example: ITCOM
408 enum: [ITCOM, ITCOS]
409 startDate:
410 description: startDate
411 type: string
412 format: date
413 example: "2027-04-30"
414 endDate:
415 description: endDate
416 type: string
417 format: date
418 example: "2027-04-30"
419
420 bankInfo:
421 description: bankInfo
422 type: object
423 required: [bankName, branchName, applicantType, accountHolderName, accountNo]
424 properties:
425 bankName:
426 description: bankName
427 type: string
428 example: 农业银行
429 branchName:
430 description: branchName
431 type: string
432 example: 回龙观支行
433 applicantType:
434 description: applicantType
435 type: string
436 example: COAPP
437 enum: [COAPP, CUSTR, GAUTR1, GAUTR2]
438 accountHolderName:
439 description: accountHolderName
440 type: string
441 example: 张三
442 accountNo:
443 description: accountNo
444 type: string
445 example: 634523426756756
446 bankVerificationStatus:
447 description: bankVerificationStatus
448 type: string
449 example: PASS
450 enum: [PASS, FAIL, N/A]
451 isAllDocUploaded:
452 description: isAllDocUploaded
453 type: boolean
454 example: false
455
456 quotationtInfo:
457 description: quotationtInfo
458 type: object
459 required: [totalLoanAmount, loanTerm, vehiclePrincipal, associatedServicePrincipal, associatedServiceInfo, monthlyPaymentInfo]
460 properties:
461 totalLoanAmount:
462 description: totalLoanAmount
463 type: number
464 format: float
465 example: 1234.56
466 loanTerm:
467 description: loanTerm
468 type: number
469 example: 12
470 vehiclePrincipal:
471 description: vehiclePrincipal
472 type: number
473 format: float
474 example: 1234.56
475 associatedServicePrincipal:
476 description: associatedServicePrincipal
477 type: number
478 format: float
479 example: 1234.56
480 associatedServiceInfo:
481 description: associatedServiceInfo
482 type: array
483 items:
484 $ref: "#/definitions/associatedServiceInfo"
485 monthlyPaymentInfo:
486 description: monthlyPaymentInfo
487 type: array
488 items:
489 $ref: "#/definitions/monthlyPaymentInfo"
490
491
106 Comparison: 492 Comparison:
107 type: object 493 type: object
108 required: [content] 494 required: [content]
......
...@@ -48,7 +48,7 @@ class Command(BaseCommand): ...@@ -48,7 +48,7 @@ class Command(BaseCommand):
48 view_class = view.view_class 48 view_class = view.view_class
49 url_path, path_parameters = pattern[0][0] 49 url_path, path_parameters = pattern[0][0]
50 url_path = unify_url_path_format(url_path) 50 url_path = unify_url_path_format(url_path)
51 if url_path not in ['/api/compare/v1']: 51 if url_path not in ['/api/compare/settlement/v1', '/api/compare/v1']:
52 continue 52 continue
53 url_path_paramters = getattr(view, 'parameters_doc', None) 53 url_path_paramters = getattr(view, 'parameters_doc', None)
54 if url_path_paramters: 54 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!