diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/api/TransferService.java b/pay-java-common/src/main/java/com/egzosn/pay/common/api/TransferService.java new file mode 100644 index 0000000..695fe66 --- /dev/null +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/api/TransferService.java @@ -0,0 +1,33 @@ +package com.egzosn.pay.common.api; + +import java.util.Map; + +import com.egzosn.pay.common.bean.AssistOrder; +import com.egzosn.pay.common.bean.TransferOrder; + +/** + * 转账服务 + * + * @author Egan + * @email egan@egzosn.com + * @date 2023/1/8 + */ +public interface TransferService { + + /** + * 转账 + * + * @param transferOrder 转账订单 + * @return 结果 + */ + Map transfer(TransferOrder transferOrder); + + /** + * 转账查询 + * + * @param assistOrder 辅助交易订单 + * @return 对应的转账订单 + */ + Map transferQuery(AssistOrder assistOrder); + +} diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/AssistOrder.java b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/AssistOrder.java index 52cb462..09dbd18 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/AssistOrder.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/AssistOrder.java @@ -18,11 +18,11 @@ public class AssistOrder implements Order { /** - * 支付平台订单号,交易号 + * 支付平台订单号,交易号, 平台批次单号 */ private String tradeNo; /** - * 商户订单号 + * 商户订单号,商家批次单号 */ private String outTradeNo; /** @@ -77,18 +77,18 @@ public class AssistOrder implements Order { } /** - * 获取商户订单号 + * 获取商户订单号,商家批次单号 * - * @return 商户订单号 + * @return 商户订单号, 商家批次单号 */ public String getOutTradeNo() { return outTradeNo; } /** - * 设置商户订单号 + * 设置商户订单号,商家批次单号 * - * @param outTradeNo 商户订单号 + * @param outTradeNo 商户订单号,商家批次单号 */ public void setOutTradeNo(String outTradeNo) { this.outTradeNo = outTradeNo; diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/Attrs.java b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/Attrs.java index cd7d883..2713b0d 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/Attrs.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/Attrs.java @@ -1,6 +1,8 @@ package com.egzosn.pay.common.bean; import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; import java.util.Map; /** @@ -27,5 +29,92 @@ public interface Attrs extends Serializable { * @param key 属性名 * @return 属性 */ - Object getAttr(String key); + default Object getAttr(String key) { + return getAttrs().get(key); + } + + + /** + * 获取属性 这里可用做覆盖已设置的属性信息属性。 + * + * @param key 属性名 + * @return 属性 + */ + default Number getAttrForNumber(String key) { + final Object attr = getAttr(key); + if (null == attr || "".equals(attr)) { + return null; + } + if (attr instanceof Number) { + return (Number) attr; + } + + return new BigDecimal(attr.toString()); + } + + /** + * 获取属性 这里可用做覆盖已设置的属性信息属性。 + * + * @param key 属性名 + * @return 属性 + */ + default Integer getAttrForInt(String key) { + Number attr = getAttrForNumber(key); + if (null == attr) { + return null; + } + if (attr instanceof Integer) { + return (Integer) attr; + } + return attr.intValue(); + } + + /** + * 获取属性 这里可用做覆盖已设置的属性信息属性。 + * + * @param key 属性名 + * @return 属性 + */ + default Integer getAttrForInt(String key, Integer defaultValue) { + Integer value = getAttrForInt(key); + return null == value ? defaultValue : value; + } + + /** + * 获取属性 这里可用做覆盖已设置的属性信息属性。 + * + * @param key 属性名 + * @return 属性 + */ + default Long getAttrForLong(String key) { + Number attr = getAttrForNumber(key); + if (null == attr) { + return null; + } + if (attr instanceof Long) { + return (Long) attr; + } + + return attr.longValue(); + } + + /** + * 获取属性 这里可用做覆盖已设置的属性信息属性。 + * + * @param key 属性名 + * @return 属性 + */ + default String getAttrForString(String key) { + return (String) getAttr(key); + } + + /** + * 获取属性 这里可用做覆盖已设置的属性信息属性。 + * + * @param key 属性名 + * @return 属性 + */ + default Date getAttrForDate(String key) { + return (Date) getAttr(key); + } }