diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 109d12ef4..e1752445a 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -18,6 +18,7 @@ import com.jsowell.adapay.config.AbstractAdapayConfig; import com.jsowell.adapay.dto.QueryAcctFlowDTO; import com.jsowell.adapay.factory.AdapayConfigFactory; import com.jsowell.adapay.service.AdapayService; +import com.jsowell.adapay.vo.DrawCashDetailVO; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.entity.SysDictData; @@ -197,6 +198,14 @@ public class SpringBootTestController { @Autowired private OrderPileOccupyService orderPileOccupyService; + @Test + public void queryDrawcashDetailTest() throws BaseAdaPayException { + String orderNo = "drawcash_1692339516947"; + String wechatAppId = "wxbb3e0d474569481d"; + DrawCashDetailVO drawCashDetailVO = adapayService.queryDrawCashDetail(orderNo, wechatAppId); + System.out.println(drawCashDetailVO); + } + @Test public void queryPaymentConfirmListTest() { // QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO(); diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/AdapayBaseResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/AdapayBaseResponse.java new file mode 100644 index 000000000..6ac106fd6 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/AdapayBaseResponse.java @@ -0,0 +1,23 @@ +package com.jsowell.adapay.response; + +import lombok.*; + +/** + * 汇付基础响应 + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AdapayBaseResponse { + /** + * 当前交易结果状态,参见 状态 说明 + * @see com.jsowell.common.enums.adapay.AdapayStatusEnum + */ + private String status; + + private String error_code; + private String error_msg; + private String error_type; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/BalancePaymentResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/BalancePaymentResponse.java index 42f5e2409..46e8c6dbb 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/BalancePaymentResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/BalancePaymentResponse.java @@ -7,15 +7,7 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor @Builder -public class BalancePaymentResponse { - /** - * 当前交易结果状态,参见 状态 说明 - */ - private String status; - - private String error_code; - private String error_msg; - private String error_type; +public class BalancePaymentResponse extends AdapayBaseResponse{ /** * 商户客户号 diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentConfirmResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentConfirmResponse.java index efca82d91..b1e300993 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentConfirmResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentConfirmResponse.java @@ -13,7 +13,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class PaymentConfirmResponse { +public class PaymentConfirmResponse extends AdapayBaseResponse{ /** * 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 @@ -80,8 +80,4 @@ public class PaymentConfirmResponse { */ private String object; - /** - * 当前交易状态,参见 状态 说明 - */ - private String status; } diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentReverseResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentReverseResponse.java index c960cd096..8238517fa 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentReverseResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/PaymentReverseResponse.java @@ -10,7 +10,7 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor @Builder -public class PaymentReverseResponse { +public class PaymentReverseResponse extends AdapayBaseResponse{ /** * Adapay生成的支付撤销对象id */ @@ -21,11 +21,6 @@ public class PaymentReverseResponse { */ private String object; - /** - * 当前支付撤销状态,参见 状态 说明 - */ - private String status; - /** * true是prod模式,false是mock模式 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryCorpMemberResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryCorpMemberResponse.java index f1fd57ac9..19d4284f9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryCorpMemberResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryCorpMemberResponse.java @@ -7,7 +7,7 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor @Builder -public class QueryCorpMemberResponse { +public class QueryCorpMemberResponse extends AdapayBaseResponse{ // 商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 private String memberId; @@ -65,9 +65,6 @@ public class QueryCorpMemberResponse { // 企业邮箱 private String email; - // 当前交易状态,参见 状态 说明 - private String status; - // 银行代码 private String bank_code; diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryDrawCashResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryDrawCashResponse.java new file mode 100644 index 000000000..9d41ddfb9 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryDrawCashResponse.java @@ -0,0 +1,48 @@ +package com.jsowell.adapay.response; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.jsowell.common.util.StringUtils; +import lombok.*; + +import java.util.List; + +/** + * 查询取现对象response + */ +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class QueryDrawCashResponse extends AdapayBaseResponse{ + @JSONField(name = "cash_list") + private List cashList; + + @JSONField(name = "prod_mode") + private String prodMode; + + @Getter + @Setter + public static class Cash{ + @JSONField(name = "cash_id") + private String cashId; + + @JSONField(name = "trans_stat") + private String transStat; + + @JSONField(name = "cash_amt") + private String cashAmt; + + public String getTransStatusDesc() { + String transStatusDesc; + if (StringUtils.equals("F", transStat)) { + transStatusDesc = "失败"; + } else if (StringUtils.equals("P", transStat)) { + transStatusDesc = "处理中"; + } else { + transStatusDesc = "成功"; + } + return transStatusDesc; + } + } +} diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryMemberResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryMemberResponse.java index f6da0899f..7da3fff4f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryMemberResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryMemberResponse.java @@ -12,7 +12,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class QueryMemberResponse { +public class QueryMemberResponse extends AdapayBaseResponse{ private String member_id; private String created_time; private String cert_type; @@ -26,7 +26,6 @@ public class QueryMemberResponse { private List settle_accounts; private String email; private String object; - private String status; @Getter @Setter diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java index 8af94d2a2..028e0e1a4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java @@ -7,7 +7,7 @@ import lombok.Data; * 查询支付确认对象详情反参 */ @Data -public class QueryPaymentConfirmDetailResponse { +public class QueryPaymentConfirmDetailResponse extends AdapayBaseResponse{ @JSONField(name = "payment_id") private String paymentId; @@ -26,9 +26,6 @@ public class QueryPaymentConfirmDetailResponse { @JSONField(name = "object") private String object; - @JSONField(name = "status") - private String status; - static class PaymentConfirm { } diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/RefundResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/RefundResponse.java index 840f4f0af..eaab95832 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/RefundResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/RefundResponse.java @@ -10,7 +10,7 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor @Builder -public class RefundResponse { +public class RefundResponse extends AdapayBaseResponse{ /** * 由 Adapay 生成的退款对象 id */ @@ -41,8 +41,4 @@ public class RefundResponse { */ private String fee_amt; - /** - * 当前交易状态,参见 状态 说明 - */ - private String status; } diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java index df08d5f2c..3c9cd23b4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java @@ -14,10 +14,7 @@ import com.jsowell.adapay.config.AbstractAdapayConfig; import com.jsowell.adapay.dto.*; import com.jsowell.adapay.factory.AdapayConfigFactory; import com.jsowell.adapay.response.*; -import com.jsowell.adapay.vo.AdapayAccountBalanceVO; -import com.jsowell.adapay.vo.AdapayCorpMemberVO; -import com.jsowell.adapay.vo.AdapayMemberInfoVO; -import com.jsowell.adapay.vo.AdapaySettleAccountVO; +import com.jsowell.adapay.vo.*; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.redis.RedisCache; @@ -583,7 +580,7 @@ public class AdapayService { } /** - * 提现逻辑 + * 提现逻辑/创建取现对象 * * @param dto * @throws BaseAdaPayException @@ -653,6 +650,34 @@ public class AdapayService { clearingBillInfoService.updateStatus(clearingBillIds, billStatus); } + /** + * 查询取现对象 + * @param orderNo 请求订单号 + */ + public DrawCashDetailVO queryDrawCashDetail(String orderNo, String wechatAppId) throws BaseAdaPayException { + Map queryCashParam = Maps.newHashMap(); + queryCashParam.put("order_no", orderNo); + + Map response = Drawcash.query(queryCashParam, wechatAppId); + log.info("查询取现对象param:{}, result:{}", JSON.toJSONString(queryCashParam), JSON.toJSONString(response)); + + if (response != null) { + QueryDrawCashResponse queryDrawCashResponse = JSON.parseObject(JSON.toJSONString(response), QueryDrawCashResponse.class); + if (queryDrawCashResponse == null || !StringUtils.equals(queryDrawCashResponse.getStatus(), "succeeded")) { + return null; + } + QueryDrawCashResponse.Cash cash = queryDrawCashResponse.getCashList().get(0); + + DrawCashDetailVO vo = new DrawCashDetailVO(); + vo.setCashId(cash.getCashId()); + vo.setCashAmt(cash.getCashAmt()); + vo.setTransStat(cash.getTransStat()); + vo.setStatusDesc(cash.getTransStatusDesc()); + return vo; + } + return null; + } + /** * 更新汇付会员信息 * diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/vo/DrawCashDetailVO.java b/jsowell-pile/src/main/java/com/jsowell/adapay/vo/DrawCashDetailVO.java new file mode 100644 index 000000000..602e4ca19 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/vo/DrawCashDetailVO.java @@ -0,0 +1,23 @@ +package com.jsowell.adapay.vo; + +import lombok.Getter; +import lombok.Setter; + +/** + * 查询取现信息VO + */ +@Getter +@Setter +public class DrawCashDetailVO { + // Adapay生成的取现对象 id + private String cashId; + + // 取现金额 + private String cashAmt; + + // 取现状态:S-成功,F-失败,P-处理中 + private String transStat; + + // 状态描述 + private String statusDesc; +}