|
|
@@ -34,45 +34,50 @@ import java.util.Objects;
|
|
|
@Slf4j
|
|
|
public class RetrieveTTQFApi {
|
|
|
|
|
|
-
|
|
|
private static TangClient tangClient;
|
|
|
|
|
|
private static SavePayOrder savePayOrder;
|
|
|
|
|
|
private static PayUserSignService signService;
|
|
|
|
|
|
+ private static TTFQConfig ttfQConfig;
|
|
|
|
|
|
@Resource
|
|
|
- private void setSignService(PayUserSignService userSignService){
|
|
|
+ private void setSignService(PayUserSignService userSignService) {
|
|
|
signService = userSignService;
|
|
|
}
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
- private void setSavePayOrder(SavePayOrder order){
|
|
|
+ private void setSavePayOrder(SavePayOrder order) {
|
|
|
savePayOrder = order;
|
|
|
}
|
|
|
|
|
|
@Resource(name = "tangClient")
|
|
|
- private void setConfig(TangClient client){
|
|
|
+ private void setConfig(TangClient client) {
|
|
|
tangClient = client;
|
|
|
}
|
|
|
|
|
|
+ @Resource
|
|
|
+ public void setTtfQConfig(TTFQConfig config) {
|
|
|
+ ttfQConfig = config;
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- public static boolean extractBalance(SysUser sysUser,UserWithdrawal withdrawal){
|
|
|
+ public static boolean extractBalance(SysUser sysUser, UserWithdrawal withdrawal) {
|
|
|
QueryPresignResultModel resultModel = queryPressing(sysUser.getIdentity());
|
|
|
//这俩验证银行卡是否处于绑定状态
|
|
|
- List<QueryPresignResultModel.BankCard> cards = resultModel.getCards();
|
|
|
+// List<QueryPresignResultModel.BankCard> cards = resultModel.getCards();
|
|
|
//
|
|
|
- QueryPresignResultModel.BankCard bankCard = cards.stream().filter(v -> v.getBankCardNo().equals(withdrawal.getBankNumber())).findAny().orElse(null);
|
|
|
- if (bankCard == null){
|
|
|
- throw new SystemException("银行卡未绑定");
|
|
|
- }
|
|
|
- if (Objects.equals(PayConstantStatus.SIGN_STATUS,resultModel.getSignStatus()) &&
|
|
|
- Objects.equals(PayConstantStatus.AUTH_STATUS,resultModel.getAuthStatus())){
|
|
|
+// QueryPresignResultModel.BankCard bankCard = cards.stream()
|
|
|
+// .filter(v -> v.getBankCardNo().equals(withdrawal.getBankNumber()))
|
|
|
+// .findAny().orElse(null);
|
|
|
+// if (bankCard == null) {
|
|
|
+// throw new SystemException("银行卡未绑定");
|
|
|
+// }
|
|
|
+ if (Objects.equals(PayConstantStatus.SIGN_STATUS, resultModel.getSignStatus()) &&
|
|
|
+ Objects.equals(PayConstantStatus.AUTH_STATUS, resultModel.getAuthStatus())) {
|
|
|
BigDecimal accountBalance = balance();
|
|
|
- if (BigDecimal.ZERO.compareTo(accountBalance) == 0 || (accountBalance.compareTo(withdrawal.getAmount()) == -1)){
|
|
|
+ if (BigDecimal.ZERO.compareTo(accountBalance) == 0 || (accountBalance.compareTo(withdrawal.getAmount()) < 0)) {
|
|
|
throw new SystemException("商户余额不足,请联系管理员");
|
|
|
}
|
|
|
//用户已经签约 进行打款操作
|
|
|
@@ -82,8 +87,8 @@ public class RetrieveTTQFApi {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public static boolean orderAdd(SysUser sysUser,UserWithdrawal withdrawal){
|
|
|
+
|
|
|
+ public static boolean orderAdd(SysUser sysUser, UserWithdrawal withdrawal) {
|
|
|
OrderAddModel addModel = OrderAddModel.builder()
|
|
|
.mchBatchNo(System.currentTimeMillis() + "")
|
|
|
.mchOrderNo(GenerateOrderNumberUtils.nextNumber() + "")
|
|
|
@@ -96,11 +101,9 @@ public class RetrieveTTQFApi {
|
|
|
//收款人身份证号
|
|
|
.userIdCardNo(sysUser.getIdentity())
|
|
|
//工作量衡量标准模板
|
|
|
- .userWorkload("1849326302238785538")
|
|
|
+ .userWorkload(ttfQConfig.getUserWorkload())
|
|
|
//工作量衡量标准
|
|
|
- .userWorkloadLevel(
|
|
|
- "[{\"proj\":\"山西掌柜鼎科技有限公司\",\"std\":\"1\"}]"
|
|
|
- )
|
|
|
+ .userWorkloadLevel(ttfQConfig.getUserWorkloadLevel())
|
|
|
//打款金额 Number(15,2)
|
|
|
// M 单位为元,风控可调额
|
|
|
.amount(withdrawal.getAmount())
|
|
|
@@ -112,10 +115,11 @@ public class RetrieveTTQFApi {
|
|
|
.notifyUrl(PayConstantStatus.getPaymentNoticeUrl())
|
|
|
.build();
|
|
|
OrderAddResponse response = testOrderAdd(addModel, sysUser.getId());
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
log.info("成功 ====>orderAdd {}", response.getResultModel());
|
|
|
} else {
|
|
|
log.error("失败 ====>orderAdd {}", response.getRespData());
|
|
|
+ throw new SystemException(response.getRespData());
|
|
|
}
|
|
|
return response.isSuccess();
|
|
|
|
|
|
@@ -130,7 +134,7 @@ public class RetrieveTTQFApi {
|
|
|
OrderNotifyModel model = OrderNotifyModel.builder().orderId("czhl00000001")
|
|
|
.tradeTime(new Date()).tradeStatus("3").cardNo("1234567890").build();
|
|
|
request.setBizModel(model);
|
|
|
- request.setRequestId(System.currentTimeMillis()+"");
|
|
|
+ request.setRequestId(System.currentTimeMillis() + "");
|
|
|
OrderNotifyResponse response = tangClient.execute(request);
|
|
|
System.out.println(response);
|
|
|
|
|
|
@@ -139,13 +143,14 @@ public class RetrieveTTQFApi {
|
|
|
|
|
|
/**
|
|
|
* 图片上传接口
|
|
|
+ *
|
|
|
* @throws IOException
|
|
|
*/
|
|
|
private static String testPictureUpload(String encodeBase64) throws IOException {
|
|
|
PictureUploadRequest request = new PictureUploadRequest();
|
|
|
PictureUploadModel model = PictureUploadModel.builder().picture(encodeBase64).build();
|
|
|
request.setBizModel(model);
|
|
|
- request.setRequestId(System.currentTimeMillis()+"");
|
|
|
+ request.setRequestId(System.currentTimeMillis() + "");
|
|
|
PictureUploadResponse response = tangClient.execute(request);
|
|
|
log.info(JSON.toJSONString(response));
|
|
|
return response.getResultModel().getFileId();
|
|
|
@@ -154,22 +159,22 @@ public class RetrieveTTQFApi {
|
|
|
/**
|
|
|
* 账单下载接口
|
|
|
*/
|
|
|
- public static BillDownloadResponse billDownload(Integer type,String date) {
|
|
|
+ public static BillDownloadResponse billDownload(Integer type, String date) {
|
|
|
BillDownloadRequest request = new BillDownloadRequest();
|
|
|
BillDownloadModel model = BillDownloadModel.builder().type(type).date(date).build();
|
|
|
request.setBizModel(model);
|
|
|
- request.setRequestId(System.currentTimeMillis()+"");
|
|
|
+ request.setRequestId(System.currentTimeMillis() + "");
|
|
|
return tangClient.execute(request);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- *电子回执单瞎子啊接口
|
|
|
+ * 电子回执单瞎子啊接口
|
|
|
*/
|
|
|
public static ReceiptlDownloadResponse receiptDownload(String mchOrderNo, String orderNo) {
|
|
|
ReceiptDownloadRequest request = new ReceiptDownloadRequest();
|
|
|
ReceiptDownloadModel model = ReceiptDownloadModel.builder().mchOrderNo(mchOrderNo).orderNo(orderNo).build();
|
|
|
request.setBizModel(model);
|
|
|
- request.setRequestId(System.currentTimeMillis()+"");
|
|
|
+ request.setRequestId(System.currentTimeMillis() + "");
|
|
|
return tangClient.execute(request);
|
|
|
}
|
|
|
|
|
|
@@ -182,7 +187,7 @@ public class RetrieveTTQFApi {
|
|
|
request.setBizModel(model);
|
|
|
request.setRequestId(System.currentTimeMillis() + "");
|
|
|
PreviewResponse response = tangClient.execute(request);
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
log.info("成功 ====>Preview {}", response);
|
|
|
} else {
|
|
|
log.error("失败 ====>Preview {}", response);
|
|
|
@@ -192,10 +197,10 @@ public class RetrieveTTQFApi {
|
|
|
/**
|
|
|
* 用户预签约接口
|
|
|
*/
|
|
|
- public static String pres(SysUser sysUser,UserWithdrawal withdrawal){
|
|
|
+ public static String pres(SysUser sysUser, UserWithdrawal withdrawal) {
|
|
|
PresignRequest request = new PresignRequest();
|
|
|
List<EsmUserImageQueryVo> esmUserImageQueryVo = SpringUtil.getBean(EsmUserImageService.class).getEsmUserImageQueryVo(sysUser.getId());
|
|
|
- if (CollectionUtils.isEmpty(esmUserImageQueryVo)){
|
|
|
+ if (CollectionUtils.isEmpty(esmUserImageQueryVo)) {
|
|
|
throw new SystemException("用户影像资料不存在,请补全后在申请提现");
|
|
|
}
|
|
|
PresignModel presignModel = new PresignModel();
|
|
|
@@ -203,29 +208,29 @@ public class RetrieveTTQFApi {
|
|
|
presignModel.setMobile(sysUser.getMobile());
|
|
|
presignModel.setIdCardNo(sysUser.getIdentity());
|
|
|
presignModel.setBankCardNo(withdrawal.getBankNumber());
|
|
|
- if (sysUser.getIdentityTime().contains(",")){
|
|
|
+ if (sysUser.getIdentityTime().contains(",")) {
|
|
|
presignModel.setExpiryStart(sysUser.getIdentityTime().split(",")[0]);
|
|
|
presignModel.setExpiryEnd(sysUser.getIdentityTime().split(",")[1]);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
throw new SystemException("用户身份证有效日期不全,请检查");
|
|
|
}
|
|
|
presignModel.setNotifyUrl(PayConstantStatus.getUserSignNotifyUrl());
|
|
|
for (EsmUserImageQueryVo item : esmUserImageQueryVo) {
|
|
|
try {
|
|
|
- if (StringUtils.isEmpty(item.getPath())){
|
|
|
+ if (StringUtils.isEmpty(item.getPath())) {
|
|
|
throw new SystemException("用户身份证影像资料不存在,请检查");
|
|
|
}
|
|
|
- String encoded = Base64Utils.encodeToString(FileUtil.readBytes(item.getPath()));
|
|
|
- if (StringUtils.isEmpty(encoded)){
|
|
|
+ String encoded = Base64Utils.encodeToString(FileUtil.readBytes(item.getFilePath()));
|
|
|
+ if (StringUtils.isEmpty(encoded)) {
|
|
|
throw new SystemException("用户身份证影像资料不存在或已删除,请刷新后重试");
|
|
|
}
|
|
|
- if (DocumentClass.SFZ_01.getCode().equals(item.getType())){
|
|
|
+ if (DocumentClass.SFZ_01.getCode().equals(item.getType())) {
|
|
|
presignModel.setIdCardPicAFileId(testPictureUpload(encoded));
|
|
|
- }else if(DocumentClass.SFZ_02.getCode().equals(item.getType())){
|
|
|
+ } else if (DocumentClass.SFZ_02.getCode().equals(item.getType())) {
|
|
|
presignModel.setIdCardPicBFileId(testPictureUpload(encoded));
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
- log.error("获取影像信息错误:{}",e.getMessage());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("获取影像信息错误:{}", e.getMessage());
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
@@ -234,14 +239,14 @@ public class RetrieveTTQFApi {
|
|
|
request.setBizModel(presignModel);
|
|
|
request.setRequestId(System.currentTimeMillis() + "");
|
|
|
PresignResponse response = tangClient.execute(request);
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
log.info("成功 ====>Pressing {}", response.getResultModel());
|
|
|
ContractH5Response h5Response = contractH5(sysUser.getIdentity());
|
|
|
- if(h5Response.isSuccess()) {
|
|
|
+ if (h5Response.isSuccess()) {
|
|
|
// 返回当前签约H5页面
|
|
|
String signUrl = h5Response.getResultModel().getSignUrl();
|
|
|
- if (!StringUtils.isEmpty(signUrl)){
|
|
|
- signService.saveUserSign(sysUser.getIdentity(),sysUser.getId());
|
|
|
+ if (!StringUtils.isEmpty(signUrl)) {
|
|
|
+ signService.saveUserSign(sysUser.getIdentity(), sysUser.getId());
|
|
|
}
|
|
|
log.info("成功 ====>ContractH5 {}", response.getResultModel());
|
|
|
return signUrl;
|
|
|
@@ -261,7 +266,7 @@ public class RetrieveTTQFApi {
|
|
|
public static QueryPresignResultModel queryPressing(String idCardNo) {
|
|
|
QueryPresignResponse response = tangClient.execute(QueryPresignRequest.builder().requestId(System.currentTimeMillis() + "")
|
|
|
.bizModel(new QueryPresignModel(idCardNo)).build());
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
log.info("成功 ====>QueryPressing {}", response.getResultModel());
|
|
|
return response.getResultModel();
|
|
|
} else {
|
|
|
@@ -284,7 +289,7 @@ public class RetrieveTTQFApi {
|
|
|
/**
|
|
|
* 打款订单新增接口
|
|
|
*/
|
|
|
- public static OrderAddResponse testOrderAdd(OrderAddModel addModel,String userId) {
|
|
|
+ public static OrderAddResponse testOrderAdd(OrderAddModel addModel, String userId) {
|
|
|
OrderAddRequest addRequest = OrderAddRequest.builder()
|
|
|
.requestId(System.currentTimeMillis() + "")
|
|
|
.bizModel(addModel)
|
|
|
@@ -292,11 +297,11 @@ public class RetrieveTTQFApi {
|
|
|
OrderAddResponse response = tangClient.execute(addRequest);
|
|
|
boolean confirm = false;
|
|
|
String sysAmountAuditingId = "";
|
|
|
- if (response.isSuccess()){
|
|
|
- confirm = confirm(response.getResultModel().getOrderNo(),response.getResultModel().getBatchNo());
|
|
|
+ if (response.isSuccess()) {
|
|
|
+ confirm = confirm(response.getResultModel().getOrderNo(), response.getResultModel().getBatchNo());
|
|
|
sysAmountAuditingId = SpringUtil.getBean(AmountAuditingService.class).sendMessage(response.getResultModel().getAmount(), userId, addModel.getUserBankCardNo());
|
|
|
}
|
|
|
- savePayOrder.savePayOrder(addRequest.getApiUrl(),response, JSONObject.toJSONString(addModel),JSONObject.toJSONString(response),userId, confirm,sysAmountAuditingId);
|
|
|
+ savePayOrder.savePayOrder(addRequest.getApiUrl(), response, JSONObject.toJSONString(addModel), JSONObject.toJSONString(response), userId, confirm, sysAmountAuditingId);
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
@@ -310,7 +315,7 @@ public class RetrieveTTQFApi {
|
|
|
.mchOrderNo("abc1111111114")
|
|
|
.orderNo("")
|
|
|
.build()).build());
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
System.out.println("成功 ====>OrderCancel " + response.getResultModel());
|
|
|
} else {
|
|
|
System.out.println("失败 ====>OrderCancel " + response.getRespData());
|
|
|
@@ -325,7 +330,7 @@ public class RetrieveTTQFApi {
|
|
|
.requestId(System.currentTimeMillis() + "")
|
|
|
.bizModel(OrderQueryModel.builder().mchOrderNo("").orderNo(orderNo).build())
|
|
|
.build());
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
log.info("成功 ====>OrderQuery {}", response.getResultModel());
|
|
|
} else {
|
|
|
log.error("失败 ====>OrderQuery {}", response.getRespData());
|
|
|
@@ -336,11 +341,11 @@ public class RetrieveTTQFApi {
|
|
|
/**
|
|
|
* \确认打款接口
|
|
|
*/
|
|
|
- public static boolean confirm(String orderNo,String batchNo) {
|
|
|
+ public static boolean confirm(String orderNo, String batchNo) {
|
|
|
ConfirmRequest confirmRequest = ConfirmRequest.builder().requestId(System.currentTimeMillis() + "")
|
|
|
.bizModel(ConfirmModel.builder().mchBatchNo("").batchNo(batchNo).build()).build();
|
|
|
ConfirmResponse response = tangClient.execute(confirmRequest);
|
|
|
- if(response.isSuccess()) {
|
|
|
+ if (response.isSuccess()) {
|
|
|
log.info("成功 ====>Confirm{}", response.getResultModel());
|
|
|
//startPaymentResultCallback(orderNo);
|
|
|
} else {
|
|
|
@@ -352,17 +357,18 @@ public class RetrieveTTQFApi {
|
|
|
|
|
|
/**
|
|
|
* 异步检查打款状态
|
|
|
+ *
|
|
|
* @param orderNo
|
|
|
*/
|
|
|
- public static void startPaymentResultCallback(String orderNo){
|
|
|
+ public static void startPaymentResultCallback(String orderNo) {
|
|
|
try {
|
|
|
HashMap<String, String> hashMap = new HashMap<>();
|
|
|
- hashMap.put("orderNo",orderNo);
|
|
|
+ hashMap.put("orderNo", orderNo);
|
|
|
QuartzManager manager = QuartzManager.getInstance();
|
|
|
- manager.getContext().put("flag",true);
|
|
|
+ manager.getContext().put("flag", true);
|
|
|
//manager.addJob(orderNo,"jobGroup" + orderNo, RegularlyUpdateStatus.class,"*/5 * * * * ?",hashMap);
|
|
|
manager.start();
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
@@ -376,12 +382,12 @@ public class RetrieveTTQFApi {
|
|
|
.requestId(System.currentTimeMillis() + "").bizModel(MerchantBalanceModel.builder().build())
|
|
|
.build();
|
|
|
MerchantBalanceResponse response = tangClient.execute(balanceRequest);
|
|
|
- if (response.isSuccess()){
|
|
|
+ if (response.isSuccess()) {
|
|
|
return response.getResultModel().getAvailableBalance();
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
return BigDecimal.ZERO;
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
log.error("查询商户余额异常{}", e.getMessage());
|
|
|
return BigDecimal.ZERO;
|
|
|
}
|