package com.nova.sankuai.controller.v2;
|
|
import cn.hutool.json.JSONObject;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.nova.sankuai.domain.dto.CapitalPushDto;
|
import com.nova.sankuai.domain.dto.DdqBindCardDto;
|
import com.nova.sankuai.domain.dto.capitalflow.*;
|
import com.nova.sankuai.domain.entity.CapitalInfo;
|
import com.nova.sankuai.domain.entity.CustomerUser;
|
import com.nova.sankuai.domain.entity.CustomerZcy;
|
import com.nova.sankuai.domain.entity.PlatformCapital;
|
import com.nova.sankuai.domain.enums.capitalInfo.CapitalInfoTypeCodeEnum;
|
import com.nova.sankuai.domain.vo.*;
|
import com.nova.sankuai.domain.vo.capitalflow.*;
|
import com.nova.sankuai.domain.vo.capitalresult.CapitalInfoAppVo;
|
import com.nova.sankuai.domain.vo.capitalresult.CapitalInfoVo;
|
import com.nova.sankuai.domain.vo.capitalresult.ChannelUnionResultVo;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.utils.ResultJson;
|
import com.nova.sankuai.infra.utils.UserUtil;
|
import com.nova.sankuai.infra.utils.eshidai.EsdUtil;
|
import com.nova.sankuai.infra.utils.hht.HhtUtil;
|
import com.nova.sankuai.infra.utils.hjqb.HjqbUtil;
|
import com.nova.sankuai.infra.utils.ryh.RyhUtil;
|
import com.nova.sankuai.infra.utils.syh.SyhUtil;
|
import com.nova.sankuai.infra.utils.zhd.ZhdUtil;
|
import com.nova.sankuai.infra.utils.zhxyp.ZhxypUtil;
|
import com.nova.sankuai.security.UserDetail;
|
import com.nova.sankuai.service.*;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* @author weikangdi
|
* @create 2022/4/29
|
*/
|
@Api(tags = "资方管理V2")
|
@RestController
|
@RequestMapping(value = "/api/v2/capitalInfo")
|
@AllArgsConstructor
|
@Slf4j
|
public class CapitalInfoV2Controller {
|
|
private ICapitalInfoService capitalInfoService;
|
|
private final ICustomerCapitalResultService customerCapitalResultService;
|
|
private final ICustomerUserService customerUserService;
|
|
private final ICustomerZcyService customerZcyService; ;
|
|
private final IHengYiDaiService hengYiDaiService;
|
|
private final IDouDouQianService douDouQianService;
|
|
private final SyhUtil syhUtil;
|
private final HhtUtil hhtUtil;
|
private final ZhdUtil zhdUtil;
|
private final RyhUtil ryhUtil;
|
private final HjqbUtil hjqbUtil;
|
private final EsdUtil esdUtil;
|
private final ZhxypUtil zhxypUtil;
|
|
@GetMapping("/getCapitalList")
|
@ApiOperation("获取可用资方列表")
|
public ResultJson<List<CapitalInfoAppVo>> getCapitalList() {
|
List<CapitalInfoAppVo> result = capitalInfoService.getCapitalList();
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping("/getCapital")
|
@ApiOperation("根据ID获取资方资料")
|
public ResultJson<CapitalInfoVo> getCapital(Long id) {
|
if (Objects.isNull(id)) {
|
throw new CommonException("参数不正确");
|
}
|
CapitalInfo capitalInfo = capitalInfoService.getById(id);
|
if (Objects.isNull(capitalInfo)) {
|
throw new CommonException("获取数据失败!");
|
}
|
CapitalInfoVo capitalInfoVo = new CapitalInfoVo();
|
BeanUtils.copyProperties(capitalInfo, capitalInfoVo);
|
return ResultJson.ok(capitalInfoVo);
|
}
|
|
@GetMapping("/getCapitalByWld")
|
@ApiOperation("根据ID和手机号获取资方资料")
|
public ResultJson<JSONObject> getCapitalByWld(Long id, String mobile) {
|
if (Objects.isNull(id)) {
|
throw new CommonException("参数不正确");
|
}
|
if (Objects.isNull(mobile)) {
|
throw new CommonException("参数不正确");
|
}
|
CapitalInfo capitalInfo = capitalInfoService.getById(id);
|
if (Objects.isNull(capitalInfo)) {
|
throw new CommonException("获取数据失败!");
|
}
|
CustomerZcy customerZcy = customerZcyService.getOne(Wrappers.<CustomerZcy>lambdaQuery()
|
.eq(CustomerZcy::getPhone, mobile));
|
if (Objects.isNull(customerZcy)) {
|
throw new CommonException("获取数据失败!");
|
}
|
//CapitalInfoVo capitalInfoVo = new CapitalInfoVo();
|
//BeanUtils.copyProperties(capitalInfo, capitalInfoVo);
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.putOpt("userName", customerZcy.getName());
|
jsonObject.putOpt("mobile", mobile);
|
jsonObject.putOpt("idCard", customerZcy.getIdCard());
|
jsonObject.putOpt("capitalName", capitalInfo.getName());
|
jsonObject.putOpt("companyName", capitalInfo.getCompany());
|
return ResultJson.ok(jsonObject);
|
}
|
|
|
@PostMapping(value = "/pushCustomerToCapital")
|
@ApiOperation(value = "推送数据给资方")
|
public ResultJson<?> pushCustomerToCapital(@RequestBody CapitalPushDto capitalPushDto, HttpServletRequest request) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(capitalPushDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
String token = request.getHeader("Authorization");
|
UserDetail user = UserUtil.getUser(token);
|
if (user == null) {
|
throw new CommonException("用户Token无效");
|
}
|
CustomerUser customerUser = customerUserService.getById(user.getId());
|
if (customerUser == null) {
|
throw new CommonException("用户不存在");
|
}
|
// 标注:推送数据给资方
|
// ResultJson<?> resultJson = customerCapitalResultService.pushCustomer(capitalInfo, customerUser, capitalPushDto);
|
String url = zhxypUtil.check(customerUser.getIdCard(), customerUser.getPhone(), customerUser.getName());
|
ChannelUnionResultVo cr = new ChannelUnionResultVo();
|
cr.setCheckResult(StringUtils.isBlank(url) ? false : true);
|
cr.setUrl(url);
|
return ResultJson.ok(cr);
|
|
// if (resultJson != null) {
|
// return resultJson;
|
// }
|
// throw new CommonException("对应资方机构不存在");
|
}
|
|
@PostMapping(value = "/incomeToSyh")
|
@ApiOperation(value = "进件数据给随易花")
|
public ResultJson<?> incomeToSyh(HttpServletRequest request) {
|
// 标注:推送数据给资方
|
ResultJson<?> resultJson = syhUtil.income(request);
|
if (resultJson != null) {
|
return resultJson;
|
}
|
throw new CommonException("进件给随易花失败!");
|
}
|
|
@PostMapping(value = "/incomeToHht")
|
@ApiOperation(value = "进件数据给好汇推")
|
public ResultJson<?> incomeToHht(HttpServletRequest request) {
|
// 标注:推送数据给资方
|
ResultJson<?> resultJson = hhtUtil.income(request);
|
if (resultJson != null) {
|
return resultJson;
|
}
|
throw new CommonException("进件给好汇推失败!");
|
}
|
|
@PostMapping(value = "/incomeToZhd")
|
@ApiOperation(value = "进件数据给助贷")
|
public ResultJson<?> incomeToZhd(HttpServletRequest request) {
|
// 标注:推送数据给资方
|
ResultJson<?> resultJson = zhdUtil.income(request);
|
if (resultJson != null) {
|
return resultJson;
|
}
|
throw new CommonException("进件给助贷失败!");
|
}
|
|
|
@PostMapping(value = "/incomeToRyh")
|
@ApiOperation(value = "进件数据给任意花")
|
public ResultJson<?> incomeToRyh(HttpServletRequest request) {
|
// 标注:推送数据给资方
|
ResultJson<?> resultJson = ryhUtil.income(request);
|
if (resultJson != null) {
|
return resultJson;
|
}
|
throw new CommonException("进件给任意花失败!");
|
}
|
|
@PostMapping(value = "/incomeToEsd")
|
@ApiOperation(value = "进件数据给e时贷")
|
public ResultJson<?> incomeToEsd(HttpServletRequest request) {
|
// 标注:推送数据给资方
|
ResultJson<?> resultJson = esdUtil.income(request);
|
if (resultJson != null) {
|
return resultJson;
|
}
|
throw new CommonException("进件给e时贷失败!");
|
}
|
|
@PostMapping(value = "/incomeToHjqb")
|
@ApiOperation(value = "进件数据给慧借钱包")
|
public ResultJson<?> incomeToHjqb(HttpServletRequest request) {
|
// 标注:推送数据给资方
|
ResultJson<?> resultJson = hjqbUtil.income(request);
|
if (resultJson != null) {
|
return resultJson;
|
}
|
throw new CommonException("进件给慧借钱包失败!");
|
}
|
|
|
@GetMapping("/orderExamineNum")
|
@ApiOperation("已匹配资金机构的数量")
|
public ResultJson<Integer> orderExamineNum() {
|
Integer integer = capitalInfoService.orderExamineNum();
|
return ResultJson.ok(integer);
|
}
|
|
@GetMapping("/orderExamineShow")
|
@ApiOperation("已匹配资金机构匹配信息")
|
public ResultJson<OrderExamineShowResultVo> orderExamineShow(@AuthenticationPrincipal UserDetail userDetail) {
|
OrderExamineShowResultVo resultVo = capitalInfoService.orderExamineShow(userDetail);
|
|
// 于2022-11-21新增:是否只是app3.0
|
/*String isVersion3 = request.getParameter("isVersion3");
|
if ("1".equals(isVersion3)) {// app3.0逻辑
|
// 于2022-11-21新增
|
List<OrderExamineShowVo> orderExamineShowVoZm = new ArrayList<>();
|
// 1.1)当显示主界面顶部=是;自动推送=不启用,当产品撞库通过后,产品显示在主界面中;自动推送 0为启用,1为不启用
|
for (OrderExamineShowVo vo : orderExamineShowVos) {
|
if (vo.getAutoPush() == 1) {
|
orderExamineShowVoZm.add(vo);
|
}
|
}
|
|
for (OrderExamineShowVo vo : orderExamineShowVoZm) {
|
orderExamineShowVos.remove(vo);
|
}
|
|
// 1.2)当显示主界面顶部=是;自动推送=启用,只有当产品审批通过,产品显示在主界面中;
|
for (OrderExamineShowVo vo : orderExamineShowVos) {
|
if (vo.getAutoPush() == 0 && "1".equals(vo.getApprovalResult())) {
|
orderExamineShowVoZm.add(vo);
|
}
|
}
|
return ResultJson.ok(orderExamineShowVoZm);
|
// 完
|
}*/
|
|
return ResultJson.ok(resultVo);
|
}
|
|
@GetMapping("/capitalHomePageShow")
|
@ApiOperation("银行直贷资方首页显示")
|
public ResultJson<List<CapitalHomePageShowVo>> capitalHomePageShow(@AuthenticationPrincipal UserDetail userDetail) {
|
List<CapitalHomePageShowVo> capitalHomePageShowVos = capitalInfoService.capitalHomePageShow(userDetail);
|
return ResultJson.ok(capitalHomePageShowVos);
|
}
|
|
@GetMapping("/capitalNotificationShow")
|
@ApiOperation("线上贷款首页弹窗显示")
|
public ResultJson<List<IsNotificationVo>> capitalNotificationShow(@AuthenticationPrincipal UserDetail userDetail) {
|
List<IsNotificationVo> isNotificationVos = capitalInfoService.capitalNotificationShow(userDetail);
|
return ResultJson.ok(isNotificationVos);
|
}
|
|
@PostMapping("/capitalGetSignUrl")
|
@ApiOperation("获取资方绑卡/签约页面")
|
public ResultJson<CapitalGetSignUrlVo> capitalGetSignUrl(@RequestBody CapitalGetSignUrlDto paramDto) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(paramDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
if (StringUtils.isEmpty(paramDto.getReturnUrl())) {
|
throw new CommonException("回调url不能为空");
|
}
|
if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) {
|
return hengYiDaiService.capitalGetSignUrl(paramDto, capitalInfo);
|
}
|
throw new CommonException("对应资方机构不存在");
|
}
|
|
@PostMapping("/capitalLoanTrial")
|
@ApiOperation("资方借款试算接口")
|
public ResultJson<CapitalLoanTrialVo> capitalLoanTrial(@RequestBody CapitalBaseParamDto paramDto) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(paramDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) {
|
return hengYiDaiService.capitalLoanTrial(paramDto, capitalInfo);
|
}
|
throw new CommonException("对应资方机构不存在");
|
}
|
|
@PostMapping("/capitalConfirmLoan")
|
@ApiOperation("资方确认借款接口")
|
public ResultJson<CapitalConfirmLoanVo> capitalConfirmLoan(@RequestBody CapitalConfirmLoanDto paramDto) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(paramDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) {
|
return hengYiDaiService.capitalConfirmLoan(paramDto, capitalInfo);
|
}
|
throw new CommonException("对应资方机构不存在");
|
}
|
|
@PostMapping("/capitalGetRepayUrl")
|
@ApiOperation("获取资方还款页面")
|
public ResultJson<CapitalGetRepayUrlVo> capitalGetRepayUrl(@RequestBody CapitalGetRepayUrlDto paramDto) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(paramDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
if (StringUtils.isEmpty(paramDto.getReturnUrl())) {
|
throw new CommonException("回调url不能为空");
|
}
|
if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) {
|
return hengYiDaiService.capitalGetRepayUrl(paramDto, capitalInfo);
|
}
|
throw new CommonException("对应资方机构不存在");
|
}
|
|
@PostMapping("/capitalRepayPlan")
|
@ApiOperation("获取资方还款计划")
|
public ResultJson<CapitalRepayPlanVo> capitalRepayPlan(@RequestBody CapitalBaseParamDto paramDto) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(paramDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) {
|
return hengYiDaiService.capitalRepayPlan(paramDto, capitalInfo);
|
}
|
throw new CommonException("对应资方机构不存在");
|
}
|
|
@PostMapping("/capitalContracts")
|
@ApiOperation("获取资方协议列表")
|
public ResultJson<List<CapitalContractsVo>> capitalContracts(@RequestBody CapitalContractsDto paramDto) {
|
CapitalInfo capitalInfo = capitalInfoService.getById(paramDto.getCapitalId());
|
if (capitalInfo == null) {
|
throw new CommonException("对应资方机构不存在");
|
}
|
if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) {
|
return hengYiDaiService.capitalContracts(paramDto, capitalInfo);
|
}
|
throw new CommonException("对应资方机构不存在");
|
}
|
|
|
@PostMapping("/getRepayEntry")
|
@ApiOperation("获取资方还款入口")
|
public ResultJson<CapitalRepayEntryVo> getRepayEntry(HttpServletRequest request) {
|
CapitalRepayEntryVo result = customerCapitalResultService.getRepayEntry(request);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping("/notificationStatistics")
|
@ApiOperation("点击弹窗统计")
|
public ResultJson capitalHomePageShow(@RequestParam("type") Integer type, @RequestParam("capitalResultId") String capitalResultId, String notificationUrl) {
|
customerCapitalResultService.notificationStatistics(type, capitalResultId, notificationUrl);
|
return ResultJson.success();
|
}
|
|
@GetMapping("/getSupportBankListByDDQ")
|
@ApiOperation("豆豆钱获取支持的银行卡列表")
|
public ResultJson<List<DdqSupportBankVo>> getSupportBankListByDDQ(HttpServletRequest request) {
|
List<DdqSupportBankVo> result = douDouQianService.getSupportBankList(request);
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping("/bindCardByDDQ")
|
@ApiOperation("豆豆钱绑定银行卡")
|
public ResultJson<DdqBindCardVo> bindCardByDDQ(@RequestBody DdqBindCardDto bindCardDto, HttpServletRequest request) {
|
DdqBindCardVo result = douDouQianService.bindCardByDDQ(bindCardDto, request);
|
return ResultJson.ok(result);
|
}
|
|
@PostMapping("/bindCardConfirmByDDQ")
|
@ApiOperation("豆豆钱绑定银行卡确认")
|
public ResultJson<Boolean> bindCardConfirmByDDQ(@RequestBody DdqBindCardDto bindCardDto, HttpServletRequest request) {
|
boolean result = douDouQianService.bindCardConfirmByDDQ(bindCardDto, request);
|
return ResultJson.ok(result);
|
}
|
|
|
@PostMapping("/bindCard")
|
@ApiOperation("随便绑定银行卡")
|
public ResultJson<Boolean> bindCard(@RequestBody DdqBindCardDto bindCardDto, HttpServletRequest request) {
|
boolean result = douDouQianService.bindCardConfirmByDDQ(bindCardDto, request);
|
return ResultJson.ok(result);
|
}
|
|
|
@GetMapping("/getPopupByDdq")
|
@ApiOperation("获取豆豆钱弹窗")
|
public ResultJson<DdqPopupVo> getPopupByDdq(HttpServletRequest request) {
|
DdqPopupVo result = douDouQianService.getPopupByDdq(request);
|
return ResultJson.ok(result);
|
}
|
|
@GetMapping(value = "/findOrdinaryApplyData")
|
@ApiOperation(value = "获取普通申请数据")
|
public ResultJson<Object> findOrdinaryApplyData(@AuthenticationPrincipal UserDetail userDetail) {
|
List<Object> ordinaryApplyData = capitalInfoService.findOrdinaryApplyData(userDetail);
|
return ResultJson.ok(ordinaryApplyData);
|
}
|
|
@GetMapping(value = "/findAppOrdinaryApplyData")
|
@ApiOperation(value = "获取普通申请数据不包括直贷")
|
public ResultJson<Object> findAppOrdinaryApplyData(@AuthenticationPrincipal UserDetail userDetail) {
|
List<Object> ordinaryApplyData = capitalInfoService.findAppOrdinaryApplyData(userDetail);
|
return ResultJson.ok(ordinaryApplyData);
|
}
|
|
@GetMapping(value = "/findVmOrdinaryApplyData")
|
@ApiOperation(value = "获取普通申请虚拟数据")
|
public ResultJson<Object> findVmOrdinaryApplyData(@AuthenticationPrincipal UserDetail userDetail) {
|
List<Object> ordinaryApplyData = capitalInfoService.findVmOrdinaryApplyData(userDetail);
|
return ResultJson.ok(ordinaryApplyData);
|
}
|
|
@GetMapping(value = "/findPlatformCapital")
|
@ApiOperation(value = "获取撞库资方相关资料")
|
public ResultJson<List<PlatformCapital>> findPlatformCapital(@AuthenticationPrincipal UserDetail userDetail) {
|
List<PlatformCapital> list = capitalInfoService.findPlatformCapital(userDetail);
|
return ResultJson.ok(list);
|
}
|
|
/**
|
* @param capitalId 资方ID
|
* @return
|
*/
|
@GetMapping(value = "/pushIsSucc")
|
@ApiOperation(value = "银行直贷推送是否成功")
|
public ResultJson<Boolean> pushIsSucc(HttpServletRequest request, Long capitalId) {
|
Boolean rs = capitalInfoService.pushIsSucc(request, capitalId);
|
return ResultJson.ok(rs);
|
}
|
}
|