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 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 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 pushProfile(@RequestBody Customer customer) { log.debug("3.进件接口测试"); return ResponseEntity.ok(zhongZanUtil.pushProfile(customer)); }*/ @PostMapping("queryApplyResult") @ApiOperation(value = "4.查询申请结果", notes = "可在需要的场景主动查询用户最终的审核结果") ResponseEntity queryApplyResult(@RequestParam(value = "orderNo") String orderNo) { log.debug("4.查询申请结果"); return ResponseEntity.ok(zhongZanUtil.queryApplyResult(orderNo)); } @PostMapping("pushApproval") @ApiOperation(value = "5.审核结果推送", notes = "用户订单审核出结果后,众攒方会向贵方预留的回调地址推送订单状态通知。") ResponseEntity pushApproval(@RequestBody @Valid RequestDTO dto) { log.debug("5.审核结果推送"); return ResponseEntity.ok(zhongZanUtil.pushApproval(dto)); } @PostMapping("getBankCardList") @ApiOperation(value = "6.银行卡信息查询", notes = "贷前授信通过后,调用此接口获取用户已绑卡列表") ResponseEntity getBankCardList(@RequestParam(value = "orderNo") String orderNo) { log.debug("6.银行卡信息查询"); return ResponseEntity.ok(zhongZanUtil.getBankCardList(orderNo)); } @PostMapping("sendBindCardSms") @ApiOperation(value = "7.绑卡发验证码", notes = "用户填写卡信息后,点击获取验证码,调用绑卡短信发送接口,众攒方会发送短信给用户") ResponseEntity sendBindCardSms(@RequestBody @Valid BindCardSmsDTO dto) { log.debug("7.绑卡发验证码"); return ResponseEntity.ok(zhongZanUtil.sendBindCardSms(dto)); } @PostMapping("verifyBindCardSms") @ApiOperation(value = "8.绑卡验证接口", notes = "此处校验成功,表示绑卡成功;实时返回绑卡结果。") ResponseEntity 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 getBankList(@RequestParam(value = "orderNo") String orderNo) { log.debug("9.支持银行列表接口"); return ResponseEntity.ok(zhongZanUtil.getBankList(orderNo)); } @PostMapping("getTrialInfo") @ApiOperation(value = "10.借款试算", notes = "") ResponseEntity getTrialInfo(@RequestBody @Valid TrialInfoDTO dto) { log.debug("10.借款试算"); return ResponseEntity.ok(zhongZanUtil.getTrialInfo(dto)); } @PostMapping("confirmLoan") @ApiOperation(value = "11.下单", notes = "") ResponseEntity confirmLoan(@RequestBody @Valid ConfirmLoanDTO dto) { log.debug("11.下单"); return ResponseEntity.ok(zhongZanUtil.confirmLoan(dto)); } @PostMapping("queryLoan") @ApiOperation(value = "12.查询放款结果", notes = "") ResponseEntity 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 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 queryRepayUrl(@RequestBody @Valid RepayDTO dto) { log.debug("16.还款H5页面获取接口"); return ResponseEntity.ok(zhongZanUtil.queryRepayUrl(dto)); } }