diff --git a/src/main/java/com/sczx/order/common/enums/PaymentTypeEnum.java b/src/main/java/com/sczx/order/common/enums/PaymentTypeEnum.java index 04d6d5e..095da37 100644 --- a/src/main/java/com/sczx/order/common/enums/PaymentTypeEnum.java +++ b/src/main/java/com/sczx/order/common/enums/PaymentTypeEnum.java @@ -15,6 +15,8 @@ public enum PaymentTypeEnum { WX_DQ("WX_DQ", "微信代扣"), ZFB_PAY("ZFB_PAY", "支付宝支付"), ZFB_DQ("ZFB_DQ", "支付宝代扣"), + MT("MT", "美团团购"), + DY("DY", "抖音团购"), ; private final String code; diff --git a/src/main/java/com/sczx/order/service/DouyinService.java b/src/main/java/com/sczx/order/service/DouyinService.java index aa9a8a9..f1aeed1 100644 --- a/src/main/java/com/sczx/order/service/DouyinService.java +++ b/src/main/java/com/sczx/order/service/DouyinService.java @@ -9,7 +9,7 @@ public interface DouyinService { CertificateVerifyResponse verify(CertificateVerifyRequest req); - CertificateCancelResponse cancel(CertificateCancelRequest req); + CertificateCancelResponse cancel(String certificateId, String verifyId) ; diff --git a/src/main/java/com/sczx/order/service/MeiTuanService.java b/src/main/java/com/sczx/order/service/MeiTuanService.java index 8b0287d..db3dc43 100644 --- a/src/main/java/com/sczx/order/service/MeiTuanService.java +++ b/src/main/java/com/sczx/order/service/MeiTuanService.java @@ -15,6 +15,6 @@ public interface MeiTuanService { MeituanResponse consume(VerifyGroupBuyCouponsReq req); - MeituanResponse reverseconsume(VerifyGroupBuyCouponsReq req, String dealId); + MeituanResponse reverseconsume(Integer storeId,String couponCode, String dealId); } diff --git a/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java b/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java index 3bdfe94..e18a3be 100644 --- a/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/DouyinServiceImpl.java @@ -159,7 +159,7 @@ public class DouyinServiceImpl implements DouyinService { } @Override - public CertificateCancelResponse cancel(CertificateCancelRequest req) { + public CertificateCancelResponse cancel(String certificateId, String verifyId) { // 获取当前有效的access_token String accessToken = douyinTokenManager.getCurrentToken(); @@ -174,8 +174,8 @@ public class DouyinServiceImpl implements DouyinService { CertificateCancelRequest sdkRequest = new CertificateCancelRequest(); sdkRequest.setAccessToken(accessToken); - sdkRequest.setVerifyId(req.getVerifyId()); - sdkRequest.setCertificateId(req.getCertificateId()); + sdkRequest.setVerifyId(verifyId); + sdkRequest.setCertificateId(certificateId); CertificateCancelResponse sdkResponse = client.CertificateCancel(sdkRequest); System.out.println(JSONObject.toJSONString(sdkResponse)); diff --git a/src/main/java/com/sczx/order/service/impl/MeiTuanServiceImpl.java b/src/main/java/com/sczx/order/service/impl/MeiTuanServiceImpl.java index 696aff1..f4c89ea 100644 --- a/src/main/java/com/sczx/order/service/impl/MeiTuanServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/MeiTuanServiceImpl.java @@ -126,16 +126,16 @@ public class MeiTuanServiceImpl implements MeiTuanService { } @Override - public MeituanResponse reverseconsume(VerifyGroupBuyCouponsReq req, String dealId) { + public MeituanResponse reverseconsume(Integer storeId,String couponCode, String dealId) { try { MeituanClient meituanClient = DefaultMeituanClient.builder(DeveloperId, Signkey).build(); - CompanyStoreDTO companyStoreDTO = getAppAuthToken(req.getStoreId().intValue()); + CompanyStoreDTO companyStoreDTO = getAppAuthToken(storeId); TuangouReceiptReverseconsumeRequest tuangouReceiptReverseconsumeRequest = new TuangouReceiptReverseconsumeRequest(); tuangouReceiptReverseconsumeRequest.setAppShopAccount(companyStoreDTO.getStoreNumber()); tuangouReceiptReverseconsumeRequest.setAppShopAccountName(companyStoreDTO.getName()); - tuangouReceiptReverseconsumeRequest.setReceiptCode(req.getCouponCode()); + tuangouReceiptReverseconsumeRequest.setReceiptCode(couponCode); tuangouReceiptReverseconsumeRequest.setDealId(dealId); diff --git a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java index 5fa27db..f1fbb87 100644 --- a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java @@ -146,6 +146,7 @@ public class OrderServiceImpl implements OrderService { thirdRentCarOrder.setCustomerPhone(userInfoDTO.getPhoneNumber()); thirdRentCarOrder.setThirdOrderNo(productIdMap.get("mtOrderId")); thirdRentCarOrder.setCouponCode(req.getCouponCode()); + thirdRentCarOrder.setRentBatteyRuleId(carModelPackageDTO.getBatteyRuleId()); RentCarOrderResultDTO rentCarOrderResultDTO = thirdPlatformRentCarOrder(thirdRentCarOrder); return rentCarOrderResultDTO; @@ -210,6 +211,7 @@ public class OrderServiceImpl implements OrderService { thirdRentCarOrder.setCustomerPhone(userInfoDTO.getPhoneNumber()); thirdRentCarOrder.setThirdOrderNo(productIdMap.get("dyCertificateId")); thirdRentCarOrder.setCouponCode(productIdMap.get("dyVerifyId")); + thirdRentCarOrder.setRentBatteyRuleId(carModelPackageDTO.getBatteyRuleId()); RentCarOrderResultDTO rentCarOrderResultDTO = thirdPlatformRentCarOrder(thirdRentCarOrder); @@ -1372,6 +1374,7 @@ public class OrderServiceImpl implements OrderService { throw new BizException("订单状态异常,非待取车或待还车状态,无法驳回"); } + if(orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){ //获取租车子订单 LambdaQueryWrapper orderSubWrapper = new LambdaQueryWrapper<>(); @@ -1380,6 +1383,13 @@ public class OrderServiceImpl implements OrderService { .eq(OrderSubPO::getSuborderType, SubOrderTypeEnum.RENTCAR.getCode()) .eq(OrderSubPO::getPayStatus, PayStatusEnum.SUCCESS).last(" limit 1"); OrderSubPO orderSubPO = orderSubRepo.getOne(orderSubWrapper); + + if(orderSubPO.getPaymentMethod().equals(PaymentTypeEnum.MT.getCode())){ + meiTuanService.reverseconsume(orderMainPO.getStoreId().intValue(), orderSubPO.getPaymentId(), orderSubPO.getTransactionId()); + }else if (orderSubPO.getPaymentMethod().equals(PaymentTypeEnum.DY.getCode())){ + douyinService.cancel(orderSubPO.getTransactionId(), orderSubPO.getPaymentId()); + } + //异步退款订单 ThreadPoolUtils.getThreadPool().execute(() -> { //变更订单状态,记录结束订单时间,记录订单备注 diff --git a/src/main/java/com/sczx/order/thirdpart/dto/CarModelPackageDTO.java b/src/main/java/com/sczx/order/thirdpart/dto/CarModelPackageDTO.java index 90a11c8..11e2f51 100644 --- a/src/main/java/com/sczx/order/thirdpart/dto/CarModelPackageDTO.java +++ b/src/main/java/com/sczx/order/thirdpart/dto/CarModelPackageDTO.java @@ -15,6 +15,9 @@ public class CarModelPackageDTO { @ApiModelProperty("套餐ID") private Long carRuleId; + @ApiModelProperty("租电套餐ID") + private Long batteyRuleId; + @ApiModelProperty("美团商品ID") private String mtProductId;