Commit 07f54ce2deeed0fdad3b032cf5413c72de9875fb
1 parent
7ef99d77
feat rtmark hourly
Showing
21 changed files
with
411 additions
and
51 deletions
cashier-mall/src/main/java/com/diligrp/cashier/mall/MallConstants.java
| @@ -5,6 +5,7 @@ import com.diligrp.cashier.shared.Constants; | @@ -5,6 +5,7 @@ import com.diligrp.cashier.shared.Constants; | ||
| 5 | 5 | ||
| 6 | /** | 6 | /** |
| 7 | * 商城常量 | 7 | * 商城常量 |
| 8 | + * @author dengwei | ||
| 8 | */ | 9 | */ |
| 9 | public interface MallConstants { | 10 | public interface MallConstants { |
| 10 | String RESULT_SUCCESS = "success"; | 11 | String RESULT_SUCCESS = "success"; |
| @@ -14,4 +15,7 @@ public interface MallConstants { | @@ -14,4 +15,7 @@ public interface MallConstants { | ||
| 14 | 15 | ||
| 15 | String MALL_TOKEN = Constants.PRODUCT_NAME + "mall_token:"; | 16 | String MALL_TOKEN = Constants.PRODUCT_NAME + "mall_token:"; |
| 16 | String MALL_USER_INFO = Constants.PRODUCT_NAME + "mall_user_info:"; | 17 | String MALL_USER_INFO = Constants.PRODUCT_NAME + "mall_user_info:"; |
| 18 | + | ||
| 19 | + String HOURLY_PAYMENT_CALLBACK_METHOD = "hourly.payment.callback"; | ||
| 20 | + String HOURLY_REFUND_CALLBACK_METHOD = "hourly.refund.callback"; | ||
| 17 | } | 21 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/domain/rtmall/RtMarkBaseCO.java
| @@ -16,6 +16,7 @@ public class RtMarkBaseCO { | @@ -16,6 +16,7 @@ public class RtMarkBaseCO { | ||
| 16 | private String version; | 16 | private String version; |
| 17 | private String timestamp; | 17 | private String timestamp; |
| 18 | private String nonceStr; | 18 | private String nonceStr; |
| 19 | + private String method; | ||
| 19 | private String sign; | 20 | private String sign; |
| 20 | 21 | ||
| 21 | public String getAppKey() { | 22 | public String getAppKey() { |
| @@ -50,6 +51,14 @@ public class RtMarkBaseCO { | @@ -50,6 +51,14 @@ public class RtMarkBaseCO { | ||
| 50 | this.nonceStr = nonceStr; | 51 | this.nonceStr = nonceStr; |
| 51 | } | 52 | } |
| 52 | 53 | ||
| 54 | + public String getMethod() { | ||
| 55 | + return method; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public void setMethod(String method) { | ||
| 59 | + this.method = method; | ||
| 60 | + } | ||
| 61 | + | ||
| 53 | public String getSign() { | 62 | public String getSign() { |
| 54 | return sign; | 63 | return sign; |
| 55 | } | 64 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/domain/rtmall/dto/HourlyPaymentCallbackDTO.java
0 → 100644
| 1 | +package com.diligrp.cashier.mall.domain.rtmall.dto; | ||
| 2 | + | ||
| 3 | +import com.diligrp.cashier.mall.MallConstants; | ||
| 4 | +import com.diligrp.cashier.mall.domain.rtmall.RtMarkBaseCO; | ||
| 5 | +import com.diligrp.cashier.mall.model.MallBizPaymentOrder; | ||
| 6 | +import com.diligrp.cashier.mall.property.RtMallDynamicProperty; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * @ClassName HourlyPaymentCallbackDTO.java | ||
| 10 | + * @author dengwei | ||
| 11 | + * @version 1.0.0 | ||
| 12 | + * @Description HourlyPaymentCallbackDTO | ||
| 13 | + */ | ||
| 14 | +public class HourlyPaymentCallbackDTO extends RtMarkBaseCO { | ||
| 15 | + /** | ||
| 16 | + * 订单号 | ||
| 17 | + */ | ||
| 18 | + private String orderId; | ||
| 19 | + | ||
| 20 | + /** | ||
| 21 | + * 支付单号 | ||
| 22 | + */ | ||
| 23 | + private String tradeId; | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 第三方支付流水号 | ||
| 27 | + */ | ||
| 28 | + private String transactionId; | ||
| 29 | + | ||
| 30 | + /** | ||
| 31 | + * 支付金额(分) | ||
| 32 | + */ | ||
| 33 | + private Long payFee; | ||
| 34 | + | ||
| 35 | + public static HourlyPaymentCallbackDTO of(final MallBizPaymentOrder mallBizPaymentOrder, | ||
| 36 | + final RtMallDynamicProperty.AppSecretDynamicProperty property) { | ||
| 37 | + HourlyPaymentCallbackDTO callbackDTO = new HourlyPaymentCallbackDTO(); | ||
| 38 | + callbackDTO.setOrderId(mallBizPaymentOrder.getOrderId()); | ||
| 39 | + callbackDTO.setTradeId(mallBizPaymentOrder.getTradeId()); | ||
| 40 | + callbackDTO.setTransactionId(mallBizPaymentOrder.getPayTradeId()); | ||
| 41 | + callbackDTO.setPayFee(mallBizPaymentOrder.getPayFee()); | ||
| 42 | + callbackDTO.setMethod(MallConstants.HOURLY_PAYMENT_CALLBACK_METHOD); | ||
| 43 | + return callbackDTO; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + public String getOrderId() { | ||
| 47 | + return orderId; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + public void setOrderId(String orderId) { | ||
| 51 | + this.orderId = orderId; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + public String getTradeId() { | ||
| 55 | + return tradeId; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public void setTradeId(String tradeId) { | ||
| 59 | + this.tradeId = tradeId; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + public String getTransactionId() { | ||
| 63 | + return transactionId; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public void setTransactionId(String transactionId) { | ||
| 67 | + this.transactionId = transactionId; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + public Long getPayFee() { | ||
| 71 | + return payFee; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + public void setPayFee(Long payFee) { | ||
| 75 | + this.payFee = payFee; | ||
| 76 | + } | ||
| 77 | +} |
cashier-mall/src/main/java/com/diligrp/cashier/mall/domain/rtmall/dto/HourlyRefundCallbackDTO.java
0 → 100644
| 1 | +package com.diligrp.cashier.mall.domain.rtmall.dto; | ||
| 2 | + | ||
| 3 | +import com.diligrp.cashier.mall.MallConstants; | ||
| 4 | +import com.diligrp.cashier.mall.domain.rtmall.RtMarkBaseCO; | ||
| 5 | +import com.diligrp.cashier.mall.model.MallBizOrder; | ||
| 6 | +import com.diligrp.cashier.mall.model.MallBizRefund; | ||
| 7 | +import com.diligrp.cashier.mall.property.RtMallDynamicProperty; | ||
| 8 | +import com.diligrp.cashier.mall.type.RefundState; | ||
| 9 | +import com.diligrp.cashier.shared.jackson.serialization.DateToSecondSerializer; | ||
| 10 | +import com.fasterxml.jackson.databind.annotation.JsonSerialize; | ||
| 11 | + | ||
| 12 | +import java.time.LocalDateTime; | ||
| 13 | +import java.util.Objects; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * @ClassName HourlyRefundCallbackDTO.java | ||
| 17 | + * @author dengwei | ||
| 18 | + * @version 1.0.0 | ||
| 19 | + * @Description HourlyRefundCallbackDTO | ||
| 20 | + */ | ||
| 21 | +public class HourlyRefundCallbackDTO extends RtMarkBaseCO { | ||
| 22 | + /** | ||
| 23 | + * 订单号 | ||
| 24 | + */ | ||
| 25 | + private String orderId; | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * 支付单号 | ||
| 29 | + */ | ||
| 30 | + private String tradeId; | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 退款单号 | ||
| 34 | + */ | ||
| 35 | + private String refundBn; | ||
| 36 | + | ||
| 37 | + /** | ||
| 38 | + * 第三方退款单号 | ||
| 39 | + */ | ||
| 40 | + private String refundId; | ||
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * 支付金额(分) | ||
| 44 | + */ | ||
| 45 | + private Long payFee; | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * 退款状态 | ||
| 49 | + * SUCCESS成功,ERROR为失败 | ||
| 50 | + */ | ||
| 51 | + private String refundStatus; | ||
| 52 | + | ||
| 53 | + /** | ||
| 54 | + * 退款失败原因,退款失败时必传 | ||
| 55 | + */ | ||
| 56 | + private String refuseReason; | ||
| 57 | + | ||
| 58 | + /** | ||
| 59 | + * 退款时间 | ||
| 60 | + */ | ||
| 61 | + @JsonSerialize(using = DateToSecondSerializer.class) | ||
| 62 | + private LocalDateTime refundTime; | ||
| 63 | + | ||
| 64 | + /** | ||
| 65 | + * of | ||
| 66 | + */ | ||
| 67 | + public static HourlyRefundCallbackDTO of(final MallBizOrder mallBizOrder, | ||
| 68 | + final MallBizRefund mallBizRefund, | ||
| 69 | + final RtMallDynamicProperty.AppSecretDynamicProperty property) { | ||
| 70 | + HourlyRefundCallbackDTO dto = new HourlyRefundCallbackDTO(); | ||
| 71 | + dto.setOrderId(mallBizOrder.getOrderId()); | ||
| 72 | + dto.setTradeId(mallBizOrder.getTradeId()); | ||
| 73 | + dto.setRefundBn(mallBizRefund.getRefundBn()); | ||
| 74 | + dto.setRefundId(mallBizRefund.getRefundTradeId()); | ||
| 75 | + dto.setPayFee(mallBizRefund.getRefundFee()); | ||
| 76 | + if (Objects.equals(mallBizRefund.getRefundState(), RefundState.SUCCESS.code)) { | ||
| 77 | + dto.setRefundStatus("SUCCESS"); | ||
| 78 | + } else { | ||
| 79 | + dto.setRefundStatus("ERROR"); | ||
| 80 | + } | ||
| 81 | + dto.setRefuseReason(mallBizRefund.getRefuseReason()); | ||
| 82 | + dto.setRefundTime(mallBizRefund.getRefundTime()); | ||
| 83 | + dto.setMethod(MallConstants.HOURLY_REFUND_CALLBACK_METHOD); | ||
| 84 | + return dto; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + public String getOrderId() { | ||
| 88 | + return orderId; | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + public void setOrderId(String orderId) { | ||
| 92 | + this.orderId = orderId; | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + public String getTradeId() { | ||
| 96 | + return tradeId; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + public void setTradeId(String tradeId) { | ||
| 100 | + this.tradeId = tradeId; | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + public String getRefundBn() { | ||
| 104 | + return refundBn; | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + public void setRefundBn(String refundBn) { | ||
| 108 | + this.refundBn = refundBn; | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + public String getRefundId() { | ||
| 112 | + return refundId; | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + public void setRefundId(String refundId) { | ||
| 116 | + this.refundId = refundId; | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + public Long getPayFee() { | ||
| 120 | + return payFee; | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + public void setPayFee(Long payFee) { | ||
| 124 | + this.payFee = payFee; | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + public String getRefundStatus() { | ||
| 128 | + return refundStatus; | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | + public void setRefundStatus(String refundStatus) { | ||
| 132 | + this.refundStatus = refundStatus; | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + public String getRefuseReason() { | ||
| 136 | + return refuseReason; | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + public void setRefuseReason(String refuseReason) { | ||
| 140 | + this.refuseReason = refuseReason; | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + public LocalDateTime getRefundTime() { | ||
| 144 | + return refundTime; | ||
| 145 | + } | ||
| 146 | + | ||
| 147 | + public void setRefundTime(LocalDateTime refundTime) { | ||
| 148 | + this.refundTime = refundTime; | ||
| 149 | + } | ||
| 150 | +} |
cashier-mall/src/main/java/com/diligrp/cashier/mall/domain/rtmall/dto/package-info.java deleted
100644 → 0
cashier-mall/src/main/java/com/diligrp/cashier/mall/exception/MallExceptionHandler.java
| 1 | package com.diligrp.cashier.mall.exception; | 1 | package com.diligrp.cashier.mall.exception; |
| 2 | 2 | ||
| 3 | import com.diligrp.cashier.mall.domain.rtmall.RtMarkMessage; | 3 | import com.diligrp.cashier.mall.domain.rtmall.RtMarkMessage; |
| 4 | +import com.diligrp.cashier.mall.type.RtMarkErrorCode; | ||
| 4 | import org.slf4j.Logger; | 5 | import org.slf4j.Logger; |
| 5 | import org.slf4j.LoggerFactory; | 6 | import org.slf4j.LoggerFactory; |
| 6 | import org.springframework.core.annotation.Order; | 7 | import org.springframework.core.annotation.Order; |
| @@ -24,4 +25,10 @@ public class MallExceptionHandler { | @@ -24,4 +25,10 @@ public class MallExceptionHandler { | ||
| 24 | LOG.warn("rt mart mall exception", ex); | 25 | LOG.warn("rt mart mall exception", ex); |
| 25 | return RtMarkMessage.failure(ex.getCode(), ex.getMessage()); | 26 | return RtMarkMessage.failure(ex.getCode(), ex.getMessage()); |
| 26 | } | 27 | } |
| 28 | + | ||
| 29 | + @ExceptionHandler(Exception.class) | ||
| 30 | + public RtMarkMessage<?> exception(Exception ex) { | ||
| 31 | + LOG.warn("exception", ex); | ||
| 32 | + return RtMarkMessage.failure(RtMarkErrorCode.E5000.getCode()); | ||
| 33 | + } | ||
| 27 | } | 34 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizOrder.java
| @@ -106,7 +106,7 @@ public class MallBizOrder extends BaseDO { | @@ -106,7 +106,7 @@ public class MallBizOrder extends BaseDO { | ||
| 106 | private Long discountFee; | 106 | private Long discountFee; |
| 107 | 107 | ||
| 108 | /** | 108 | /** |
| 109 | - * 订单状态(0-notpay-未支付-1-payed-已支付 2-notpaycancel-未支付取消 3-payedcancel-已支付取消 4-done-订单完成 5-buyer_confirm-待用户收货) | 109 | + * 订单状态(0-notpay-未支付 1-payed-已支付 2-notpaycancel-已取消 3-payedcancel-已退款 4-done-订单完成 5-buyer_confirm-待用户收货) |
| 110 | * @see OrderState | 110 | * @see OrderState |
| 111 | */ | 111 | */ |
| 112 | private Integer state; | 112 | private Integer state; |
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizPayment.java
| @@ -41,7 +41,7 @@ public class MallBizPayment extends BaseDO { | @@ -41,7 +41,7 @@ public class MallBizPayment extends BaseDO { | ||
| 41 | /** | 41 | /** |
| 42 | * dili交易流水号 | 42 | * dili交易流水号 |
| 43 | */ | 43 | */ |
| 44 | - private String payPaymentId; | 44 | + private String payTradeId; |
| 45 | 45 | ||
| 46 | /** | 46 | /** |
| 47 | * 商户code | 47 | * 商户code |
| @@ -97,6 +97,7 @@ public class MallBizPayment extends BaseDO { | @@ -97,6 +97,7 @@ public class MallBizPayment extends BaseDO { | ||
| 97 | /** | 97 | /** |
| 98 | * 支付渠道(微信 园区卡) | 98 | * 支付渠道(微信 园区卡) |
| 99 | * @see com.diligrp.cashier.mall.type.PaymentChanel | 99 | * @see com.diligrp.cashier.mall.type.PaymentChanel |
| 100 | + * @see com.diligrp.cashier.pipeline.type.ChannelType | ||
| 100 | */ | 101 | */ |
| 101 | private Integer channelId; | 102 | private Integer channelId; |
| 102 | 103 | ||
| @@ -110,6 +111,11 @@ public class MallBizPayment extends BaseDO { | @@ -110,6 +111,11 @@ public class MallBizPayment extends BaseDO { | ||
| 110 | */ | 111 | */ |
| 111 | private String paymentCallback; | 112 | private String paymentCallback; |
| 112 | 113 | ||
| 114 | + /** | ||
| 115 | + * 扩展信息 | ||
| 116 | + */ | ||
| 117 | + private String ext; | ||
| 118 | + | ||
| 113 | public MallBizPayment() { | 119 | public MallBizPayment() { |
| 114 | } | 120 | } |
| 115 | 121 | ||
| @@ -183,12 +189,12 @@ public class MallBizPayment extends BaseDO { | @@ -183,12 +189,12 @@ public class MallBizPayment extends BaseDO { | ||
| 183 | this.tradeId = tradeId; | 189 | this.tradeId = tradeId; |
| 184 | } | 190 | } |
| 185 | 191 | ||
| 186 | - public String getPayPaymentId() { | ||
| 187 | - return payPaymentId; | 192 | + public String getPayTradeId() { |
| 193 | + return payTradeId; | ||
| 188 | } | 194 | } |
| 189 | 195 | ||
| 190 | - public void setPayPaymentId(String payPaymentId) { | ||
| 191 | - this.payPaymentId = payPaymentId; | 196 | + public void setPayTradeId(String payTradeId) { |
| 197 | + this.payTradeId = payTradeId; | ||
| 192 | } | 198 | } |
| 193 | 199 | ||
| 194 | public String getMchId() { | 200 | public String getMchId() { |
| @@ -295,6 +301,14 @@ public class MallBizPayment extends BaseDO { | @@ -295,6 +301,14 @@ public class MallBizPayment extends BaseDO { | ||
| 295 | this.paymentCallback = paymentCallback; | 301 | this.paymentCallback = paymentCallback; |
| 296 | } | 302 | } |
| 297 | 303 | ||
| 304 | + public String getExt() { | ||
| 305 | + return ext; | ||
| 306 | + } | ||
| 307 | + | ||
| 308 | + public void setExt(String ext) { | ||
| 309 | + this.ext = ext; | ||
| 310 | + } | ||
| 311 | + | ||
| 298 | /** | 312 | /** |
| 299 | * ofOrderPaymentVO | 313 | * ofOrderPaymentVO |
| 300 | * | 314 | * |
| @@ -305,7 +319,7 @@ public class MallBizPayment extends BaseDO { | @@ -305,7 +319,7 @@ public class MallBizPayment extends BaseDO { | ||
| 305 | orderPaymentVO.setPayStatus(payState); | 319 | orderPaymentVO.setPayStatus(payState); |
| 306 | orderPaymentVO.setPayFee(payFee); | 320 | orderPaymentVO.setPayFee(payFee); |
| 307 | orderPaymentVO.setPayTime(payTime); | 321 | orderPaymentVO.setPayTime(payTime); |
| 308 | - orderPaymentVO.setTransactionId(payPaymentId); | 322 | + orderPaymentVO.setTransactionId(payTradeId); |
| 309 | return orderPaymentVO; | 323 | return orderPaymentVO; |
| 310 | } | 324 | } |
| 311 | } | 325 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizPaymentOrder.java
| @@ -36,9 +36,9 @@ public class MallBizPaymentOrder extends BaseDO { | @@ -36,9 +36,9 @@ public class MallBizPaymentOrder extends BaseDO { | ||
| 36 | private String tradeId; | 36 | private String tradeId; |
| 37 | 37 | ||
| 38 | /** | 38 | /** |
| 39 | - * dili交易流水号(mall_biz_payment.pay_payment_id) | 39 | + * dili交易流水号(mall_biz_payment.pay_trade_id) |
| 40 | */ | 40 | */ |
| 41 | - private String payPaymentId; | 41 | + private String payTradeId; |
| 42 | 42 | ||
| 43 | /** | 43 | /** |
| 44 | * 支付金额分 | 44 | * 支付金额分 |
| @@ -104,12 +104,12 @@ public class MallBizPaymentOrder extends BaseDO { | @@ -104,12 +104,12 @@ public class MallBizPaymentOrder extends BaseDO { | ||
| 104 | this.tradeId = tradeId; | 104 | this.tradeId = tradeId; |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | - public String getPayPaymentId() { | ||
| 108 | - return payPaymentId; | 107 | + public String getPayTradeId() { |
| 108 | + return payTradeId; | ||
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | - public void setPayPaymentId(String payPaymentId) { | ||
| 112 | - this.payPaymentId = payPaymentId; | 111 | + public void setPayTradeId(String payTradeId) { |
| 112 | + this.payTradeId = payTradeId; | ||
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | public Long getPayFee() { | 115 | public Long getPayFee() { |
| @@ -146,7 +146,7 @@ public class MallBizPaymentOrder extends BaseDO { | @@ -146,7 +146,7 @@ public class MallBizPaymentOrder extends BaseDO { | ||
| 146 | orderPaymentVO.setPayStatus(payState); | 146 | orderPaymentVO.setPayStatus(payState); |
| 147 | orderPaymentVO.setPayFee(payFee); | 147 | orderPaymentVO.setPayFee(payFee); |
| 148 | orderPaymentVO.setPayTime(payTime); | 148 | orderPaymentVO.setPayTime(payTime); |
| 149 | - orderPaymentVO.setTransactionId(payPaymentId); | 149 | + orderPaymentVO.setTransactionId(payTradeId); |
| 150 | return orderPaymentVO; | 150 | return orderPaymentVO; |
| 151 | } | 151 | } |
| 152 | } | 152 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizRefund.java
| @@ -48,12 +48,12 @@ public class MallBizRefund extends BaseDO { | @@ -48,12 +48,12 @@ public class MallBizRefund extends BaseDO { | ||
| 48 | /** | 48 | /** |
| 49 | * dili退款流水号 | 49 | * dili退款流水号 |
| 50 | */ | 50 | */ |
| 51 | - private String refundPaymentId; | 51 | + private String refundTradeId; |
| 52 | 52 | ||
| 53 | /** | 53 | /** |
| 54 | * dili交易流水号 | 54 | * dili交易流水号 |
| 55 | */ | 55 | */ |
| 56 | - private String payPaymentId; | 56 | + private String payTradeId; |
| 57 | 57 | ||
| 58 | /** | 58 | /** |
| 59 | * dili客户卡号 | 59 | * dili客户卡号 |
| @@ -161,20 +161,20 @@ public class MallBizRefund extends BaseDO { | @@ -161,20 +161,20 @@ public class MallBizRefund extends BaseDO { | ||
| 161 | this.tradeId = tradeId; | 161 | this.tradeId = tradeId; |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | - public String getRefundPaymentId() { | ||
| 165 | - return refundPaymentId; | 164 | + public String getRefundTradeId() { |
| 165 | + return refundTradeId; | ||
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | - public void setRefundPaymentId(String refundPaymentId) { | ||
| 169 | - this.refundPaymentId = refundPaymentId; | 168 | + public void setRefundTradeId(String refundTradeId) { |
| 169 | + this.refundTradeId = refundTradeId; | ||
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | - public String getPayPaymentId() { | ||
| 173 | - return payPaymentId; | 172 | + public String getPayTradeId() { |
| 173 | + return payTradeId; | ||
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | - public void setPayPaymentId(String payPaymentId) { | ||
| 177 | - this.payPaymentId = payPaymentId; | 176 | + public void setPayTradeId(String payTradeId) { |
| 177 | + this.payTradeId = payTradeId; | ||
| 178 | } | 178 | } |
| 179 | 179 | ||
| 180 | public String getRefundCardNo() { | 180 | public String getRefundCardNo() { |
| @@ -293,10 +293,11 @@ public class MallBizRefund extends BaseDO { | @@ -293,10 +293,11 @@ public class MallBizRefund extends BaseDO { | ||
| 293 | BeanUtils.copyProperties(refundCo, mallBizRefund); | 293 | BeanUtils.copyProperties(refundCo, mallBizRefund); |
| 294 | 294 | ||
| 295 | mallBizRefund.setOrderId(mallBizOrder.getOrderId()); | 295 | mallBizRefund.setOrderId(mallBizOrder.getOrderId()); |
| 296 | + mallBizRefund.setRefundTradeNo(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_REFUND_ID).toString()); | ||
| 296 | mallBizRefund.setTradeId(mallBizPaymentOrder.getTradeId()); | 297 | mallBizRefund.setTradeId(mallBizPaymentOrder.getTradeId()); |
| 297 | mallBizRefund.setPayTradeNo(mallBizPaymentOrder.getPayTradeNo()); | 298 | mallBizRefund.setPayTradeNo(mallBizPaymentOrder.getPayTradeNo()); |
| 298 | - mallBizRefund.setRefundTradeNo(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_REFUND_ID).toString()); | ||
| 299 | - mallBizRefund.setPayPaymentId(mallBizPaymentOrder.getPayPaymentId()); | 299 | + mallBizRefund.setPayTradeId(mallBizPaymentOrder.getPayTradeId()); |
| 300 | + mallBizRefund.setCreaterName(refundCo.getUserCode()); | ||
| 300 | 301 | ||
| 301 | // 回调地址 | 302 | // 回调地址 |
| 302 | RtMallDynamicProperty rtMallDynamicProperty = SpringContextUtils.getBean(RtMallDynamicProperty.class); | 303 | RtMallDynamicProperty rtMallDynamicProperty = SpringContextUtils.getBean(RtMallDynamicProperty.class); |
cashier-mall/src/main/java/com/diligrp/cashier/mall/property/RtMallDynamicProperty.java
| @@ -33,6 +33,9 @@ public class RtMallDynamicProperty { | @@ -33,6 +33,9 @@ public class RtMallDynamicProperty { | ||
| 33 | @Value("${orderType:3}") | 33 | @Value("${orderType:3}") |
| 34 | private Integer orderType; | 34 | private Integer orderType; |
| 35 | 35 | ||
| 36 | + @Value("${version:v1}") | ||
| 37 | + private String version; | ||
| 38 | + | ||
| 36 | @Value("${appKey:}") | 39 | @Value("${appKey:}") |
| 37 | private String appKey; | 40 | private String appKey; |
| 38 | 41 | ||
| @@ -45,6 +48,9 @@ public class RtMallDynamicProperty { | @@ -45,6 +48,9 @@ public class RtMallDynamicProperty { | ||
| 45 | @Value("${authUrl:https://hourh5-em-shop.feiniugo.com}") | 48 | @Value("${authUrl:https://hourh5-em-shop.feiniugo.com}") |
| 46 | private String authUrl; | 49 | private String authUrl; |
| 47 | 50 | ||
| 51 | + @Value("${cashierResultUrl:}") | ||
| 52 | + private String cashierResultUrl; | ||
| 53 | + | ||
| 48 | @Value("${callbackDomain:}") | 54 | @Value("${callbackDomain:}") |
| 49 | private String callbackDomain; | 55 | private String callbackDomain; |
| 50 | 56 | ||
| @@ -80,6 +86,14 @@ public class RtMallDynamicProperty { | @@ -80,6 +86,14 @@ public class RtMallDynamicProperty { | ||
| 80 | this.authUrl = authUrl; | 86 | this.authUrl = authUrl; |
| 81 | } | 87 | } |
| 82 | 88 | ||
| 89 | + public String getCashierResultUrl() { | ||
| 90 | + return cashierResultUrl; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + public void setCashierResultUrl(String cashierResultUrl) { | ||
| 94 | + this.cashierResultUrl = cashierResultUrl; | ||
| 95 | + } | ||
| 96 | + | ||
| 83 | public Integer getOrderType() { | 97 | public Integer getOrderType() { |
| 84 | return orderType; | 98 | return orderType; |
| 85 | } | 99 | } |
| @@ -88,6 +102,14 @@ public class RtMallDynamicProperty { | @@ -88,6 +102,14 @@ public class RtMallDynamicProperty { | ||
| 88 | this.orderType = orderType; | 102 | this.orderType = orderType; |
| 89 | } | 103 | } |
| 90 | 104 | ||
| 105 | + public String getVersion() { | ||
| 106 | + return version; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + public void setVersion(String version) { | ||
| 110 | + this.version = version; | ||
| 111 | + } | ||
| 112 | + | ||
| 91 | public String getCompanyCode() { | 113 | public String getCompanyCode() { |
| 92 | return companyCode; | 114 | return companyCode; |
| 93 | } | 115 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/biz/impl/MallBizOrderServiceImpl.java
| @@ -72,7 +72,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { | @@ -72,7 +72,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { | ||
| 72 | MallBizPayment mallBizPayment = MallBizPayment.of(mallBizOrders); | 72 | MallBizPayment mallBizPayment = MallBizPayment.of(mallBizOrders); |
| 73 | 73 | ||
| 74 | // TODO 2025/12/30: 预支付信息 收银台地址信息 | 74 | // TODO 2025/12/30: 预支付信息 收银台地址信息 |
| 75 | - mallBizPayment.setPayPaymentId(IdUtil.simpleUUID()); | 75 | + mallBizPayment.setPayTradeId(IdUtil.simpleUUID()); |
| 76 | mallBizPayment.setCashierUrl("https://cashier.test.gszdtop.com?payTradeNo=" + mallBizPayment.getPayTradeNo()); | 76 | mallBizPayment.setCashierUrl("https://cashier.test.gszdtop.com?payTradeNo=" + mallBizPayment.getPayTradeNo()); |
| 77 | 77 | ||
| 78 | // save | 78 | // save |
| @@ -164,7 +164,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { | @@ -164,7 +164,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { | ||
| 164 | Optional.of(bizPaymentOrders) | 164 | Optional.of(bizPaymentOrders) |
| 165 | .ifPresent(paymentOrders -> { | 165 | .ifPresent(paymentOrders -> { |
| 166 | paymentOrders.forEach(vo -> { | 166 | paymentOrders.forEach(vo -> { |
| 167 | - vo.setPayPaymentId(mallBizPayment.getPayPaymentId()); | 167 | + vo.setPayTradeId(mallBizPayment.getPayTradeId()); |
| 168 | }); | 168 | }); |
| 169 | mallBizPaymentOrderDao.batchInsert(paymentOrders); | 169 | mallBizPaymentOrderDao.batchInsert(paymentOrders); |
| 170 | }); | 170 | }); |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/biz/impl/MallBizRefundServiceImpl.java
| @@ -48,6 +48,9 @@ public class MallBizRefundServiceImpl implements MallBizRefundService { | @@ -48,6 +48,9 @@ public class MallBizRefundServiceImpl implements MallBizRefundService { | ||
| 48 | @Transactional(rollbackFor = {Exception.class}) | 48 | @Transactional(rollbackFor = {Exception.class}) |
| 49 | public RefundSuccessVO refund(RefundCO refundCo) { | 49 | public RefundSuccessVO refund(RefundCO refundCo) { |
| 50 | MallBizOrder mallBizOrder = mallBizOrderDao.getByOrderId(refundCo.getOrderId()); | 50 | MallBizOrder mallBizOrder = mallBizOrderDao.getByOrderId(refundCo.getOrderId()); |
| 51 | + if (Objects.isNull(mallBizOrder)) { | ||
| 52 | + throw new RtMartMallException(RtMarkErrorCode.E5004); | ||
| 53 | + } | ||
| 51 | MallBizRefund mallBizRefund = MallInitializeContext.getBySource(mallBizOrder.getSource()).refund(refundCo); | 54 | MallBizRefund mallBizRefund = MallInitializeContext.getBySource(mallBizOrder.getSource()).refund(refundCo); |
| 52 | return new RefundSuccessVO(mallBizRefund.getPayTradeNo(), mallBizRefund.getRefundTradeNo()); | 55 | return new RefundSuccessVO(mallBizRefund.getPayTradeNo(), mallBizRefund.getRefundTradeNo()); |
| 53 | } | 56 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/paychannel/CardPayChannel.java
| 1 | package com.diligrp.cashier.mall.service.paychannel; | 1 | package com.diligrp.cashier.mall.service.paychannel; |
| 2 | 2 | ||
| 3 | -import com.diligrp.cashier.mall.type.PaymentChanel; | 3 | +import com.diligrp.cashier.pipeline.type.ChannelType; |
| 4 | import org.springframework.stereotype.Component; | 4 | import org.springframework.stereotype.Component; |
| 5 | 5 | ||
| 6 | /** | 6 | /** |
| @@ -14,6 +14,6 @@ import org.springframework.stereotype.Component; | @@ -14,6 +14,6 @@ import org.springframework.stereotype.Component; | ||
| 14 | public class CardPayChannel extends AbstractPayChannel { | 14 | public class CardPayChannel extends AbstractPayChannel { |
| 15 | @Override | 15 | @Override |
| 16 | public Integer getPayChannel() { | 16 | public Integer getPayChannel() { |
| 17 | - return PaymentChanel.PARK_CARD.getCode(); | 17 | + return ChannelType.DILIPAY.getCode(); |
| 18 | } | 18 | } |
| 19 | } | 19 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/paychannel/WeChatPayChannel.java
| 1 | package com.diligrp.cashier.mall.service.paychannel; | 1 | package com.diligrp.cashier.mall.service.paychannel; |
| 2 | 2 | ||
| 3 | -import com.diligrp.cashier.mall.type.PaymentChanel; | 3 | +import com.diligrp.cashier.pipeline.type.ChannelType; |
| 4 | import org.springframework.stereotype.Component; | 4 | import org.springframework.stereotype.Component; |
| 5 | 5 | ||
| 6 | /** | 6 | /** |
| @@ -14,6 +14,6 @@ import org.springframework.stereotype.Component; | @@ -14,6 +14,6 @@ import org.springframework.stereotype.Component; | ||
| 14 | public class WeChatPayChannel extends AbstractPayChannel { | 14 | public class WeChatPayChannel extends AbstractPayChannel { |
| 15 | @Override | 15 | @Override |
| 16 | public Integer getPayChannel() { | 16 | public Integer getPayChannel() { |
| 17 | - return PaymentChanel.WECHAT.getCode(); | 17 | + return ChannelType.WXPAY.getCode(); |
| 18 | } | 18 | } |
| 19 | } | 19 | } |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/sourcechannel/AbstractSourceChannel.java
| @@ -10,11 +10,13 @@ import com.diligrp.cashier.mall.domain.rtmall.co.RefundCO; | @@ -10,11 +10,13 @@ import com.diligrp.cashier.mall.domain.rtmall.co.RefundCO; | ||
| 10 | import com.diligrp.cashier.mall.domain.rtmall.vo.UserInfoVO; | 10 | import com.diligrp.cashier.mall.domain.rtmall.vo.UserInfoVO; |
| 11 | import com.diligrp.cashier.mall.exception.RtMartMallException; | 11 | import com.diligrp.cashier.mall.exception.RtMartMallException; |
| 12 | import com.diligrp.cashier.mall.model.MallBizOrder; | 12 | import com.diligrp.cashier.mall.model.MallBizOrder; |
| 13 | +import com.diligrp.cashier.mall.model.MallBizPayment; | ||
| 13 | import com.diligrp.cashier.mall.model.MallBizPaymentOrder; | 14 | import com.diligrp.cashier.mall.model.MallBizPaymentOrder; |
| 14 | import com.diligrp.cashier.mall.model.MallBizRefund; | 15 | import com.diligrp.cashier.mall.model.MallBizRefund; |
| 15 | import com.diligrp.cashier.mall.property.RtMallDynamicProperty; | 16 | import com.diligrp.cashier.mall.property.RtMallDynamicProperty; |
| 16 | import com.diligrp.cashier.mall.service.biz.MallBizPaymentService; | 17 | import com.diligrp.cashier.mall.service.biz.MallBizPaymentService; |
| 17 | import com.diligrp.cashier.mall.type.PayState; | 18 | import com.diligrp.cashier.mall.type.PayState; |
| 19 | +import com.diligrp.cashier.mall.type.RefundState; | ||
| 18 | import com.diligrp.cashier.mall.type.RtMarkErrorCode; | 20 | import com.diligrp.cashier.mall.type.RtMarkErrorCode; |
| 19 | import com.diligrp.cashier.shared.util.DateUtils; | 21 | import com.diligrp.cashier.shared.util.DateUtils; |
| 20 | import com.diligrp.cashier.shared.util.JsonUtils; | 22 | import com.diligrp.cashier.shared.util.JsonUtils; |
| @@ -96,13 +98,19 @@ public abstract class AbstractSourceChannel { | @@ -96,13 +98,19 @@ public abstract class AbstractSourceChannel { | ||
| 96 | MallBizOrder mallBizOrder = mallBizOrderDao.getByOrderId(refundCo.getOrderId()); | 98 | MallBizOrder mallBizOrder = mallBizOrderDao.getByOrderId(refundCo.getOrderId()); |
| 97 | MallBizPaymentOrder mallBizPaymentOrder = getPayment(refundCo); | 99 | MallBizPaymentOrder mallBizPaymentOrder = getPayment(refundCo); |
| 98 | 100 | ||
| 99 | - // 支付成功才能退款 | ||
| 100 | - if (ObjectUtils.notEqual(mallBizPaymentOrder.getPayState(), PayState.SUCCESS.code)) { | ||
| 101 | - throw new RtMartMallException(RtMarkErrorCode.E5005); | ||
| 102 | - } | ||
| 103 | - | ||
| 104 | - // TODO 2025/12/30: 调用支付完善信息 | ||
| 105 | MallBizRefund refund = MallBizRefund.of(refundCo, mallBizOrder, mallBizPaymentOrder); | 101 | MallBizRefund refund = MallBizRefund.of(refundCo, mallBizOrder, mallBizPaymentOrder); |
| 102 | + // 售前取消 需不需要通知支付进行取消预支付信息 | ||
| 103 | + if (ObjectUtils.notEqual(mallBizPaymentOrder.getPayState(), PayState.PENDING.code)) { | ||
| 104 | + refund.setRefundState(RefundState.SUCCESS.code); | ||
| 105 | + } else { | ||
| 106 | + // 支付成功才能退款 | ||
| 107 | + if (ObjectUtils.notEqual(mallBizPaymentOrder.getPayState(), PayState.SUCCESS.code)) { | ||
| 108 | + throw new RtMartMallException(RtMarkErrorCode.E5005); | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + // TODO 2025/12/30: 调用支付完善信息 | ||
| 112 | + refund.setRefundTradeId("99999999999"); | ||
| 113 | + } | ||
| 106 | 114 | ||
| 107 | save(refund); | 115 | save(refund); |
| 108 | return refund; | 116 | return refund; |
| @@ -124,6 +132,16 @@ public abstract class AbstractSourceChannel { | @@ -124,6 +132,16 @@ public abstract class AbstractSourceChannel { | ||
| 124 | public abstract void userInfoChannel(UserInfoVO authLogin, RtMallDynamicProperty.AppSecretDynamicProperty userInfoVO); | 132 | public abstract void userInfoChannel(UserInfoVO authLogin, RtMallDynamicProperty.AppSecretDynamicProperty userInfoVO); |
| 125 | 133 | ||
| 126 | /** | 134 | /** |
| 135 | + * payCallBack | ||
| 136 | + */ | ||
| 137 | + public abstract void payCallBack(MallBizOrder mallBizOrder, MallBizPayment mallBizPayment, MallBizPaymentOrder mallBizPaymentOrder); | ||
| 138 | + | ||
| 139 | + /** | ||
| 140 | + * refundCallBack | ||
| 141 | + */ | ||
| 142 | + public abstract void refundCallBack(MallBizOrder mallBizOrder, MallBizRefund mallBizRefund); | ||
| 143 | + | ||
| 144 | + /** | ||
| 127 | * getPayment | 145 | * getPayment |
| 128 | */ | 146 | */ |
| 129 | private MallBizPaymentOrder getPayment(RefundCO refundCo) { | 147 | private MallBizPaymentOrder getPayment(RefundCO refundCo) { |
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/sourcechannel/RtMallChannel.java
| 1 | package com.diligrp.cashier.mall.service.sourcechannel; | 1 | package com.diligrp.cashier.mall.service.sourcechannel; |
| 2 | 2 | ||
| 3 | +import com.diligrp.cashier.mall.domain.rtmall.RtMarkBaseCO; | ||
| 4 | +import com.diligrp.cashier.mall.domain.rtmall.RtMarkMessage; | ||
| 3 | import com.diligrp.cashier.mall.domain.rtmall.co.AuthLoginCO; | 5 | import com.diligrp.cashier.mall.domain.rtmall.co.AuthLoginCO; |
| 6 | +import com.diligrp.cashier.mall.domain.rtmall.dto.HourlyPaymentCallbackDTO; | ||
| 7 | +import com.diligrp.cashier.mall.domain.rtmall.dto.HourlyRefundCallbackDTO; | ||
| 4 | import com.diligrp.cashier.mall.domain.rtmall.vo.UserInfoVO; | 8 | import com.diligrp.cashier.mall.domain.rtmall.vo.UserInfoVO; |
| 9 | +import com.diligrp.cashier.mall.model.MallBizOrder; | ||
| 10 | +import com.diligrp.cashier.mall.model.MallBizPayment; | ||
| 11 | +import com.diligrp.cashier.mall.model.MallBizPaymentOrder; | ||
| 12 | +import com.diligrp.cashier.mall.model.MallBizRefund; | ||
| 5 | import com.diligrp.cashier.mall.property.RtMallDynamicProperty; | 13 | import com.diligrp.cashier.mall.property.RtMallDynamicProperty; |
| 6 | import com.diligrp.cashier.mall.type.OrderSource; | 14 | import com.diligrp.cashier.mall.type.OrderSource; |
| 15 | +import com.diligrp.cashier.mall.util.HttpClientUtils; | ||
| 7 | import com.diligrp.cashier.mall.util.RtMallSignMd5Utils; | 16 | import com.diligrp.cashier.mall.util.RtMallSignMd5Utils; |
| 17 | +import com.diligrp.cashier.shared.util.DateUtils; | ||
| 8 | import com.diligrp.cashier.shared.util.JsonUtils; | 18 | import com.diligrp.cashier.shared.util.JsonUtils; |
| 9 | import com.diligrp.cashier.shared.util.UrlParamParserUtils; | 19 | import com.diligrp.cashier.shared.util.UrlParamParserUtils; |
| 20 | +import com.fasterxml.jackson.core.type.TypeReference; | ||
| 10 | import org.slf4j.Logger; | 21 | import org.slf4j.Logger; |
| 11 | import org.slf4j.LoggerFactory; | 22 | import org.slf4j.LoggerFactory; |
| 12 | import org.springframework.stereotype.Component; | 23 | import org.springframework.stereotype.Component; |
| @@ -55,6 +66,58 @@ public class RtMallChannel extends AbstractSourceChannel { | @@ -55,6 +66,58 @@ public class RtMallChannel extends AbstractSourceChannel { | ||
| 55 | authLogin.setCompanyCode(property.getCompanyCode()); | 66 | authLogin.setCompanyCode(property.getCompanyCode()); |
| 56 | } | 67 | } |
| 57 | 68 | ||
| 69 | + /** | ||
| 70 | + * payCallBack | ||
| 71 | + * @see https://shopex.yuque.com/hl0rrx/vlp0m4/nkwt5yrhdfzoy78s?singleDoc#RtKpF | ||
| 72 | + * 支付回调接口 | ||
| 73 | + * | ||
| 74 | + */ | ||
| 75 | + @Override | ||
| 76 | + public void payCallBack(final MallBizOrder mallBizOrder, | ||
| 77 | + final MallBizPayment mallBizPayment, | ||
| 78 | + final MallBizPaymentOrder mallBizPaymentOrder) { | ||
| 79 | + RtMallDynamicProperty.AppSecretDynamicProperty property = getProperty(mallBizOrder); | ||
| 80 | + HourlyPaymentCallbackDTO hourlyPaymentCallback = HourlyPaymentCallbackDTO.of(mallBizPaymentOrder, property); | ||
| 81 | + hourlyPaymentCallback.setSign(sign(hourlyPaymentCallback, property)); | ||
| 82 | + RtMarkMessage<?> message = HttpClientUtils.postJson(mallBizPayment.getPaymentCallback(), hourlyPaymentCallback, null, new TypeReference<>() { | ||
| 83 | + }, "rt-mall"); | ||
| 84 | + log.info("payCallBack message: {}", JsonUtils.toJsonString(message)); | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + /** | ||
| 88 | + * refundCallBack | ||
| 89 | + * @see https://shopex.yuque.com/hl0rrx/vlp0m4/nkwt5yrhdfzoy78s?singleDoc#RtKpF | ||
| 90 | + * 退款回调接口 | ||
| 91 | + */ | ||
| 92 | + @Override | ||
| 93 | + public void refundCallBack(MallBizOrder mallBizOrder, MallBizRefund mallBizRefund) { | ||
| 94 | + RtMallDynamicProperty.AppSecretDynamicProperty property = getProperty(mallBizOrder); | ||
| 95 | + HourlyRefundCallbackDTO hourlyRefundCallback = HourlyRefundCallbackDTO.of(mallBizOrder, mallBizRefund, property); | ||
| 96 | + hourlyRefundCallback.setSign(sign(hourlyRefundCallback, property)); | ||
| 97 | + RtMarkMessage<?> message = HttpClientUtils.postJson(mallBizRefund.getRefundCallback(), hourlyRefundCallback, null, new TypeReference<>() { | ||
| 98 | + }, "rt-mall"); | ||
| 99 | + log.info("refundCallBack message: {}", JsonUtils.toJsonString(message)); | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + /** | ||
| 103 | + * getProperty | ||
| 104 | + */ | ||
| 105 | + private RtMallDynamicProperty.AppSecretDynamicProperty getProperty(MallBizOrder mallBizOrder) { | ||
| 106 | + RtMallDynamicProperty.AppSecretDynamicProperty property = rtMallDynamicProperty.getBySourceAndType(mallBizOrder.getSource(), mallBizOrder.getOrderType()); | ||
| 107 | + log.info("source {} orderType {} property: {}", mallBizOrder.getSource(), mallBizOrder.getOrderType(), JsonUtils.toJsonString(property)); | ||
| 108 | + return property; | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + /** | ||
| 112 | + * 计算签名 | ||
| 113 | + */ | ||
| 114 | + private String sign(RtMarkBaseCO base, RtMallDynamicProperty.AppSecretDynamicProperty property) { | ||
| 115 | + base.setAppKey(property.getAppKey()); | ||
| 116 | + base.setVersion(property.getVersion()); | ||
| 117 | + base.setTimestamp(DateUtils.timestampInSeconds() + ""); | ||
| 118 | + return RtMallSignMd5Utils.generateSign(base, property.getAppSecret()); | ||
| 119 | + } | ||
| 120 | + | ||
| 58 | @Override | 121 | @Override |
| 59 | public Integer source() { | 122 | public Integer source() { |
| 60 | return OrderSource.RT_MART.getCode(); | 123 | return OrderSource.RT_MART.getCode(); |
cashier-mall/src/main/java/com/diligrp/cashier/mall/sign/RtMallSign.java
| @@ -41,7 +41,7 @@ public class RtMallSign implements SecuritySign { | @@ -41,7 +41,7 @@ public class RtMallSign implements SecuritySign { | ||
| 41 | 41 | ||
| 42 | Object appKey = paramMap.get("app_key"); | 42 | Object appKey = paramMap.get("app_key"); |
| 43 | if (Objects.isNull(appKey)) { | 43 | if (Objects.isNull(appKey)) { |
| 44 | - throw new RtMartMallException(RtMarkErrorCode.E4003); | 44 | + throw new RtMartMallException(RtMarkErrorCode.E4001); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | Object sign = paramMap.get("sign"); | 47 | Object sign = paramMap.get("sign"); |
cashier-mall/src/main/java/com/diligrp/cashier/mall/type/OrderState.java
| @@ -16,8 +16,8 @@ import java.util.stream.Collectors; | @@ -16,8 +16,8 @@ import java.util.stream.Collectors; | ||
| 16 | public enum OrderState { | 16 | public enum OrderState { |
| 17 | NOT_PAY(0, "notpay", "未支付"), | 17 | NOT_PAY(0, "notpay", "未支付"), |
| 18 | PAYED(1, "payed", "已支付"), | 18 | PAYED(1, "payed", "已支付"), |
| 19 | - NOT_PAY_CANCEL(2, "notpaycancel", "未支付取消"), | ||
| 20 | - PAYED_CANCEL(3, "payedcancel", "已支付取消"), | 19 | + NOT_PAY_CANCEL(2, "notpaycancel", "已取消"), |
| 20 | + PAYED_CANCEL(3, "payedcancel", "已退款"), | ||
| 21 | DONE(4, "done", "订单完成"), | 21 | DONE(4, "done", "订单完成"), |
| 22 | CONFIRM_RECEIPT(4, "confirmreceipt", "订单完成"), | 22 | CONFIRM_RECEIPT(4, "confirmreceipt", "订单完成"), |
| 23 | BUYER_CONFIRM(5, "buyer_confirm", "待用户收货"), | 23 | BUYER_CONFIRM(5, "buyer_confirm", "待用户收货"), |
cashier-shared/src/main/java/com/diligrp/cashier/shared/jackson/deserializer/SecondToDateDeserializer.java
| @@ -23,7 +23,7 @@ public class SecondToDateDeserializer extends JsonDeserializer<LocalDateTime> { | @@ -23,7 +23,7 @@ public class SecondToDateDeserializer extends JsonDeserializer<LocalDateTime> { | ||
| 23 | long timestamp = parser.getValueAsLong(); | 23 | long timestamp = parser.getValueAsLong(); |
| 24 | return LocalDateTime.ofInstant( | 24 | return LocalDateTime.ofInstant( |
| 25 | Instant.ofEpochSecond(timestamp), | 25 | Instant.ofEpochSecond(timestamp), |
| 26 | - ZoneOffset.UTC | 26 | + ZoneOffset.systemDefault() |
| 27 | ); | 27 | ); |
| 28 | } | 28 | } |
| 29 | } | 29 | } |
cashier-shared/src/main/java/com/diligrp/cashier/shared/jackson/serialization/DateToSecondSerializer.java
| @@ -18,6 +18,6 @@ import java.time.ZoneOffset; | @@ -18,6 +18,6 @@ import java.time.ZoneOffset; | ||
| 18 | public class DateToSecondSerializer extends JsonSerializer<LocalDateTime> { | 18 | public class DateToSecondSerializer extends JsonSerializer<LocalDateTime> { |
| 19 | @Override | 19 | @Override |
| 20 | public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { | 20 | public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { |
| 21 | - gen.writeNumber(value.toInstant(ZoneOffset.UTC).getEpochSecond()); | 21 | + gen.writeNumber(value.atZone(ZoneOffset.systemDefault()).toEpochSecond()); |
| 22 | } | 22 | } |
| 23 | } | 23 | } |