Air
2024-11-04 a1f06d31b7b4cac569c34bdfbb68de77f2858ffe
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
135
136
137
138
139
package com.nova.sankuai.controller.v2;
 
import com.nova.sankuai.domain.api.zhongzan.RbResponse;
import com.nova.sankuai.domain.dto.zhongzan.*;
import com.nova.sankuai.domain.entity.CapitalInfo;
import com.nova.sankuai.domain.entity.Customer;
import com.nova.sankuai.domain.entity.CustomerUser;
import com.nova.sankuai.infra.utils.zhongzan.ZhongZanUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.validation.Valid;
 
@Slf4j
@RestController
@RequestMapping(value = "/api/v2/zz/")
@Api(tags = "众攒接口")
@RequiredArgsConstructor
@Validated
public class ZhongZanController {
    private final ZhongZanUtil zhongZanUtil;
 
    @PostMapping("getContract")
    @ApiOperation(value = "1.获取协议", notes = "可通过此接口可获取各场景需要展示的用户协议")
    ResponseEntity<RbResponse> getContract(@RequestBody @RequestParam(value = "type") Integer type, @RequestParam(value = "orderNo", required = false) String orderNo) {
        log.debug("获取协议接口测试");
        return ResponseEntity.ok(zhongZanUtil.getContract(type, orderNo));
    }
 
    @PostMapping("checkUser")
    @ApiOperation(value = "2.用户准入", notes = "此接口用于确认用户是否可以申请众攒方产品")
    ResponseEntity<RbResponse> checkUser(@RequestBody CapitalInfo capitalInfo,  Customer customer, CustomerUser customerUser) {
        log.debug("2.用户准入接口测试");
        return ResponseEntity.ok(zhongZanUtil.checkUser(capitalInfo, customer, customerUser));
    }
 
/*    @PostMapping("pushProfile")
    @ApiOperation(value = "3.进件接口", notes = "调用此接口将用户资料传输给众攒方")
    ResponseEntity<RbResponse> pushProfile(@RequestBody Customer customer) {
        log.debug("3.进件接口测试");
        return ResponseEntity.ok(zhongZanUtil.pushProfile(customer));
    }*/
 
    @PostMapping("queryApplyResult")
    @ApiOperation(value = "4.查询申请结果", notes = "可在需要的场景主动查询用户最终的审核结果")
    ResponseEntity<RbResponse> queryApplyResult(@RequestParam(value = "orderNo") String orderNo) {
        log.debug("4.查询申请结果");
        return ResponseEntity.ok(zhongZanUtil.queryApplyResult(orderNo));
    }
 
    @PostMapping("pushApproval")
    @ApiOperation(value = "5.审核结果推送", notes = "用户订单审核出结果后,众攒方会向贵方预留的回调地址推送订单状态通知。")
    ResponseEntity<RbResponse> pushApproval(@RequestBody @Valid RequestDTO dto) {
        log.debug("5.审核结果推送");
        return ResponseEntity.ok(zhongZanUtil.pushApproval(dto));
    }
    @PostMapping("getBankCardList")
    @ApiOperation(value = "6.银行卡信息查询", notes = "贷前授信通过后,调用此接口获取用户已绑卡列表")
    ResponseEntity<RbResponse> getBankCardList(@RequestParam(value = "orderNo") String orderNo) {
        log.debug("6.银行卡信息查询");
        return ResponseEntity.ok(zhongZanUtil.getBankCardList(orderNo));
    }
 
    @PostMapping("sendBindCardSms")
    @ApiOperation(value = "7.绑卡发验证码", notes = "用户填写卡信息后,点击获取验证码,调用绑卡短信发送接口,众攒方会发送短信给用户")
    ResponseEntity<RbResponse> sendBindCardSms(@RequestBody @Valid BindCardSmsDTO dto) {
        log.debug("7.绑卡发验证码");
        return ResponseEntity.ok(zhongZanUtil.sendBindCardSms(dto));
 
        }
    @PostMapping("verifyBindCardSms")
    @ApiOperation(value = "8.绑卡验证接口", notes = "此处校验成功,表示绑卡成功;实时返回绑卡结果。")
    ResponseEntity<RbResponse> verifyBindCardSms(@RequestParam(value = "orderNo") String orderNo, @RequestParam(value = "verifyCode") String verifyCode, @RequestParam(value = "bindBankNo") String bindBankNo) {
        log.debug("8.绑卡验证接口");
        return ResponseEntity.ok(zhongZanUtil.verifyBindCardSms(orderNo, verifyCode, bindBankNo));
    }
 
    @PostMapping("getBankList")
    @ApiOperation(value = "9.支持银行列表接口", notes = "可通过此接口查询支持银行卡列表,展示在前端供用户绑卡时选择")
    ResponseEntity<RbResponse> getBankList(@RequestParam(value = "orderNo") String orderNo) {
        log.debug("9.支持银行列表接口");
        return ResponseEntity.ok(zhongZanUtil.getBankList(orderNo));
    }
 
    @PostMapping("getTrialInfo")
    @ApiOperation(value = "10.借款试算", notes = "")
    ResponseEntity<RbResponse> getTrialInfo(@RequestBody @Valid TrialInfoDTO dto) {
        log.debug("10.借款试算");
        return ResponseEntity.ok(zhongZanUtil.getTrialInfo(dto));
    }
 
    @PostMapping("confirmLoan")
    @ApiOperation(value = "11.下单", notes = "")
    ResponseEntity<RbResponse> confirmLoan(@RequestBody @Valid ConfirmLoanDTO dto) {
        log.debug("11.下单");
        return ResponseEntity.ok(zhongZanUtil.confirmLoan(dto));
    }
 
    @PostMapping("queryLoan")
    @ApiOperation(value = "12.查询放款结果", notes = "")
    ResponseEntity<RbResponse> queryLoan(@RequestParam(value = "orderNo") String orderNo, @RequestParam(value = "loanNo") String loanNo) {
        log.debug("12.查询放款结果");
        return ResponseEntity.ok(zhongZanUtil.queryLoan(orderNo, loanNo));
    }
 
    @PostMapping("pushLoan")
    @ApiOperation(value = "13.放款结果推送", notes = "众攒调用")
    ResponseEntity<?> pushLoan(@RequestBody @Valid RequestDTO dto) {
        log.debug("13.放款结果推送");
        return ResponseEntity.ok(zhongZanUtil.pushLoan(dto));
    }
 
    @PostMapping("queryRepayPlan")
    @ApiOperation(value = "14.查询还款计划", notes = "")
    ResponseEntity<RbResponse> queryRepayPlan(@RequestParam(value = "orderNo") String orderNo, @RequestParam(value = "loanNo") String loanNo) {
        log.debug("14.查询还款计划");
        return ResponseEntity.ok(zhongZanUtil.queryRepayPlan(orderNo, loanNo));
    }
 
    @PostMapping("pushRepayResult")
    @ApiOperation(value = "15.还款结果推送", notes = "众攒调用")
    ResponseEntity<?> pushRepayResult(@RequestBody @Valid RequestDTO dto) {
        log.debug("15.还款结果推送");
        return ResponseEntity.ok(zhongZanUtil.pushRepayResult(dto));
    }
 
    @PostMapping("queryRepayUrl")
    @ApiOperation(value = "16.还款H5页面获取接口", notes = "可在需要的场景主动查询用户最终的审核结果")
    ResponseEntity<RbResponse> queryRepayUrl(@RequestBody @Valid RepayDTO dto) {
        log.debug("16.还款H5页面获取接口");
        return ResponseEntity.ok(zhongZanUtil.queryRepayUrl(dto));
    }
 
}