From 5b48a7579815f7f9c25fca5861ef8ba65acec703 Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Tue, 9 May 2023 15:45:09 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=94=AF=E4=BB=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bnyer/pay/bo/QueryOrderBo.java | 4 --- .../main/java/com/bnyer/pay/bo/RefundBo.java | 17 ++++++++++ .../java/com/bnyer/pay/bo/UnifiedOrderBo.java | 2 +- .../pay/controller/UnifiedPayController.java | 13 ++++---- .../pay/design/strategy/AliPayStrategy.java | 15 ++++++--- .../pay/design/strategy/DYPayStrategy.java | 23 +++++++++----- .../pay/design/strategy/IPayStrategy.java | 23 +++++++++----- .../pay/design/strategy/KSPayStrategy.java | 23 +++++++++----- .../pay/design/strategy/WxPayStrategy.java | 31 ++++++++++++------- .../java/com/bnyer/pay/dto/QueryOrderDto.java | 3 ++ .../java/com/bnyer/pay/dto/RefundDto.java | 17 ++++++++++ .../{InOrderDto.java => UnifiedOrderDto.java} | 2 +- .../bnyer/pay/enums/EnumPayConfigStatus.java | 2 +- .../bnyer/pay/service/UnifiedPayService.java | 6 ++-- .../service/impl/UnifiedPayServiceImpl.java | 22 ++++++------- .../java/com/bnyer/pay/vo/ThirdRefundVo.java | 10 ++++++ ...nOrderVo.java => ThirdUnifiedOrderVo.java} | 5 ++- .../{InOrderVo.java => UnifiedOrderVo.java} | 10 +++--- 18 files changed, 152 insertions(+), 76 deletions(-) create mode 100644 bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java create mode 100644 bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/{InOrderDto.java => UnifiedOrderDto.java} (97%) create mode 100644 bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/{ThirdInOrderVo.java => ThirdUnifiedOrderVo.java} (92%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/{InOrderVo.java => UnifiedOrderVo.java} (85%) diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java index 2f6c7a9..e11717d 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java @@ -14,10 +14,6 @@ import lombok.Setter; @NoArgsConstructor public class QueryOrderBo { - /** - * 支付类型:wxpay/alipay/kspay/dypay - */ - private String payType; /** * 交易类型 1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付,微信支付必填 */ diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java new file mode 100644 index 0000000..f448d03 --- /dev/null +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java @@ -0,0 +1,17 @@ +package com.bnyer.pay.bo; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author :WXC + * @Date :2023/05/08 + * @description : + */ +@Getter +@Setter +@NoArgsConstructor +public class RefundBo { + +} diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java index d722651..42340fe 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java @@ -21,7 +21,7 @@ public class UnifiedOrderBo { */ private String payId; /** - * trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。 + * 用户在商户appid下的唯一标识。 */ private String openId; /** diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java index 512d799..9456a76 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java @@ -1,12 +1,11 @@ package com.bnyer.pay.controller; import com.bnyer.common.core.domain.R; -import com.bnyer.pay.dto.InOrderDto; +import com.bnyer.pay.dto.UnifiedOrderDto; import com.bnyer.pay.dto.QueryOrderDto; import com.bnyer.pay.service.UnifiedPayService; -import com.bnyer.pay.vo.InOrderVo; +import com.bnyer.pay.vo.UnifiedOrderVo; import com.bnyer.pay.vo.QueryOrderVo; -import com.bnyer.pay.vo.ThirdInOrderVo; import io.swagger.annotations.Api; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; @@ -33,11 +32,11 @@ public class UnifiedPayController { @Autowired private UnifiedPayService unifiedPayService; - @PostMapping("/inOrder") + @PostMapping("/unifiedOrder") @Operation(summary = "统一下单,并生成支付订单" , description = "生成支付订单,返回前端支付所需参数") - public R inOrder(@Valid @RequestBody InOrderDto dto, HttpServletRequest request){ - InOrderVo inOrderVo = unifiedPayService.inOrder(dto,request); - return R.ok(inOrderVo); + public R unifiedOrder(@Valid @RequestBody UnifiedOrderDto dto, HttpServletRequest request){ + UnifiedOrderVo unifiedOrderVo = unifiedPayService.unifiedOrder(dto,request); + return R.ok(unifiedOrderVo); } @PostMapping("/queryOrder") diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java index 035e63c..75e95af 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java @@ -22,6 +22,7 @@ import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.DateUtils; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.pay.bo.QueryOrderBo; +import com.bnyer.pay.bo.RefundBo; import com.bnyer.pay.bo.UnifiedOrderBo; import com.bnyer.pay.constant.AliPayConstant; import com.bnyer.pay.dto.EditPayInfoNotifyDto; @@ -29,7 +30,8 @@ import com.bnyer.pay.dto.PayNotifyCheckDto; import com.bnyer.pay.enums.EnumPayChannel; import com.bnyer.pay.manager.AliPayManager; import com.bnyer.pay.service.PayInfoService; -import com.bnyer.pay.vo.ThirdInOrderVo; +import com.bnyer.pay.vo.ThirdRefundVo; +import com.bnyer.pay.vo.ThirdUnifiedOrderVo; import com.bnyer.pay.vo.ThirdQueryOrderVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -60,7 +62,7 @@ public class AliPayStrategy extends AbstractPayStrategy { } @Override - public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) { + public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { log.info("支付宝支付:统一下单接口调用开始,AliPayStrategy.unifiedOrder bo:{}", JSON.toJSONString(bo)); AlipayConfig alipayConfig = aliPayManager.getAlipayConfig(); String appid = alipayConfig.getAppid(); @@ -88,8 +90,8 @@ public class AliPayStrategy extends AbstractPayStrategy { // 这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); if(response.isSuccess()){ - ThirdInOrderVo vo = new ThirdInOrderVo(); - ThirdInOrderVo.AliThirdInOrderVo aliThirdInOrderVo = new ThirdInOrderVo.AliThirdInOrderVo(); + ThirdUnifiedOrderVo vo = new ThirdUnifiedOrderVo(); + ThirdUnifiedOrderVo.AliThirdInOrderVo aliThirdInOrderVo = new ThirdUnifiedOrderVo.AliThirdInOrderVo(); aliThirdInOrderVo.setOutStr(response.getBody()); vo.setAliThirdInOrderVo(aliThirdInOrderVo); vo.setOutOrderNo(bo.getPayId()); @@ -209,5 +211,10 @@ public class AliPayStrategy extends AbstractPayStrategy { } } + @Override + public ThirdRefundVo refund(RefundBo bo) { + return null; + } + } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java index 71609a7..2c2783b 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java @@ -11,6 +11,7 @@ import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.pay.bo.QueryOrderBo; +import com.bnyer.pay.bo.RefundBo; import com.bnyer.pay.bo.UnifiedOrderBo; import com.bnyer.pay.constant.DYPayConstants; import com.bnyer.pay.dto.EditPayInfoNotifyDto; @@ -22,7 +23,8 @@ import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.utils.DYPayUtil; import com.bnyer.pay.utils.MoneyUtil; import com.bnyer.pay.utils.PayRestTemplateUtil; -import com.bnyer.pay.vo.ThirdInOrderVo; +import com.bnyer.pay.vo.ThirdRefundVo; +import com.bnyer.pay.vo.ThirdUnifiedOrderVo; import com.bnyer.pay.vo.ThirdQueryOrderVo; import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; import com.github.binarywang.wxpay.bean.result.BaseWxPayResult; @@ -75,7 +77,7 @@ public class DYPayStrategy extends AbstractPayStrategy{ } @Override - public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) { + public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { String result = ""; DypayConfig dypayConfig = getDypayConfig(); String appId = dypayConfig.getAppid(); @@ -145,15 +147,15 @@ public class DYPayStrategy extends AbstractPayStrategy{ throw new ServiceException(ResponseEnum.PAY_FAILS); } //保存预下单信息 - ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo(); - thirdInOrderVo.setAppId(appId); - ThirdInOrderVo.DyThirdInOrderVo dyThirdInOrderVo = new ThirdInOrderVo.DyThirdInOrderVo(); - thirdInOrderVo.setOutOrderNo(bo.getPayId()); + ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); + thirdUnifiedOrderVo.setAppId(appId); + ThirdUnifiedOrderVo.DyThirdInOrderVo dyThirdInOrderVo = new ThirdUnifiedOrderVo.DyThirdInOrderVo(); + thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId()); //把order_no和order_info_token返回前端用于调起收银台 dyThirdInOrderVo.setOrderId(orderId); dyThirdInOrderVo.setOrderToken(orderToken); - thirdInOrderVo.setDyThirdInOrderVo(dyThirdInOrderVo); - return thirdInOrderVo; + thirdUnifiedOrderVo.setDyThirdInOrderVo(dyThirdInOrderVo); + return thirdUnifiedOrderVo; } @Override @@ -291,4 +293,9 @@ public class DYPayStrategy extends AbstractPayStrategy{ thirdQueryOrderVo.setChannelNo(channelNo); return thirdQueryOrderVo; } + + @Override + public ThirdRefundVo refund(RefundBo bo) { + return null; + } } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java index c0c46e3..09075d2 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java @@ -1,8 +1,10 @@ package com.bnyer.pay.design.strategy; import com.bnyer.pay.bo.QueryOrderBo; +import com.bnyer.pay.bo.RefundBo; import com.bnyer.pay.bo.UnifiedOrderBo; -import com.bnyer.pay.vo.ThirdInOrderVo; +import com.bnyer.pay.vo.ThirdRefundVo; +import com.bnyer.pay.vo.ThirdUnifiedOrderVo; import com.bnyer.pay.vo.ThirdQueryOrderVo; /** @@ -16,10 +18,10 @@ public interface IPayStrategy { * @param bo * @return */ - ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo); + ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo); /** - * 支付回调处理 + * 统一支付回调处理 * 满足支付成功需要几个条件: * 1.回调到pay服务时要保证修改支付状态:payStatus为1001、对账状态:singStatus为1001 * 2.pay服务处理完以后发送消息到order服务修改order表订单状态:orderStatus为1、支付状态:payStatus为1001 @@ -31,15 +33,20 @@ public interface IPayStrategy { String parsePayNotify(String params); /** - * 订单查询 + * 统一订单查询 + * @param bo 入参 + * @return 第三方订单查询信息 */ ThirdQueryOrderVo queryOrder(QueryOrderBo bo); - //===========待完成================ - // TODO: 2023/04/03 订单查询 - // TODO: 2023/04/03 退款 -// void refund(); + /** + * 统一退款 + * @param bo 入参 + * @return 第三方退款信息 + */ + ThirdRefundVo refund(RefundBo bo); + //===========待完成================ // TODO: 2023/04/03 退款查询 // void refundQuery(); } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java index d99123f..dbe1f1c 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java @@ -13,6 +13,7 @@ import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.pay.bo.QueryOrderBo; +import com.bnyer.pay.bo.RefundBo; import com.bnyer.pay.bo.UnifiedOrderBo; import com.bnyer.pay.constant.KSPayConstants; import com.bnyer.pay.dto.EditPayInfoNotifyDto; @@ -24,7 +25,8 @@ import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.utils.KSPayUtil; import com.bnyer.pay.utils.MoneyUtil; import com.bnyer.pay.utils.PayRestTemplateUtil; -import com.bnyer.pay.vo.ThirdInOrderVo; +import com.bnyer.pay.vo.ThirdRefundVo; +import com.bnyer.pay.vo.ThirdUnifiedOrderVo; import com.bnyer.pay.vo.ThirdQueryOrderVo; import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; import lombok.extern.slf4j.Slf4j; @@ -77,7 +79,7 @@ public class KSPayStrategy extends AbstractPayStrategy{ } @Override - public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) { + public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { String result = ""; KspayConfig kspayConfig = getKspayConfig(); String openId = SecurityContextHolder.getFhOpenId(); @@ -150,15 +152,15 @@ public class KSPayStrategy extends AbstractPayStrategy{ throw new ServiceException(ResponseEnum.PAY_FAILS); } //保存预下单信息 - ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo(); - thirdInOrderVo.setAppId(appId); - ThirdInOrderVo.KsThirdInOrderVo ksThirdInOrderVo = new ThirdInOrderVo.KsThirdInOrderVo(); - thirdInOrderVo.setOutOrderNo(bo.getPayId()); + ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); + thirdUnifiedOrderVo.setAppId(appId); + ThirdUnifiedOrderVo.KsThirdInOrderVo ksThirdInOrderVo = new ThirdUnifiedOrderVo.KsThirdInOrderVo(); + thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId()); //把order_no和order_info_token返回前端用于调起收银台 ksThirdInOrderVo.setOrderNo(orderNo); ksThirdInOrderVo.setOrderToken(orderToken); - thirdInOrderVo.setKsThirdInOrderVo(ksThirdInOrderVo); - return thirdInOrderVo; + thirdUnifiedOrderVo.setKsThirdInOrderVo(ksThirdInOrderVo); + return thirdUnifiedOrderVo; } @Override @@ -294,4 +296,9 @@ public class KSPayStrategy extends AbstractPayStrategy{ thirdQueryOrderVo.setOpenId(openId); return thirdQueryOrderVo; } + + @Override + public ThirdRefundVo refund(RefundBo bo) { + return null; + } } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java index e9b868c..55a1a03 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java @@ -8,6 +8,7 @@ import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.pay.bo.QueryOrderBo; +import com.bnyer.pay.bo.RefundBo; import com.bnyer.pay.bo.UnifiedOrderBo; import com.bnyer.pay.dto.EditPayInfoNotifyDto; import com.bnyer.pay.dto.PayNotifyCheckDto; @@ -17,7 +18,8 @@ import com.bnyer.pay.enums.EnumWxPayStatus; import com.bnyer.pay.manager.WxPayManager; import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.utils.WXPayUtil; -import com.bnyer.pay.vo.ThirdInOrderVo; +import com.bnyer.pay.vo.ThirdRefundVo; +import com.bnyer.pay.vo.ThirdUnifiedOrderVo; import com.bnyer.pay.vo.ThirdQueryOrderVo; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result; @@ -56,20 +58,20 @@ public class WxPayStrategy extends AbstractPayStrategy { } @Override - public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) { + public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { log.info("微信支付:统一下单接口调用开始,WxPayStrategy.unifiedOrder bo:{}",JSON.toJSONString(bo)); - ThirdInOrderVo thirdInOrderVo = null; + ThirdUnifiedOrderVo thirdUnifiedOrderVo = null; EnumTradeType payByTradeType = EnumTradeType.getPayByTradeType(bo.getTradeType()); switch (payByTradeType){ case JSAPI_MINI: - thirdInOrderVo = jsApiPay(bo); + thirdUnifiedOrderVo = jsApiPay(bo); break; case JSAPI_PUBLIC: break; default: throw new ServiceException("TradeType未匹配上对应支付方式"); } - return thirdInOrderVo; + return thirdUnifiedOrderVo; } /** @@ -77,7 +79,7 @@ public class WxPayStrategy extends AbstractPayStrategy { * @param bo * @return */ - private ThirdInOrderVo jsApiPay(UnifiedOrderBo bo) { + private ThirdUnifiedOrderVo jsApiPay(UnifiedOrderBo bo) { WxpayConfig wxPayConfig = wxPayManager.getWxPayConfigByTradeType(bo.getTradeType()); WxPayService wxPayService = wxPayManager.getWxPayService(wxPayConfig); String openId = SecurityContextHolder.getWechatOpenId(); @@ -95,16 +97,16 @@ public class WxPayStrategy extends AbstractPayStrategy { WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.createOrderV3(TradeTypeEnum.JSAPI, orderRequest); WxPayUnifiedOrderV3Result.JsapiResult jsapiResult = wxPayUnifiedOrderV3Result.getPayInfo(TradeTypeEnum.JSAPI, wxPayConfig.getAppid(), wxPayConfig.getMchid(), wxPayService.getConfig().getPrivateKey()); //返回数据 - ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo(); - thirdInOrderVo.setAppId(wxPayConfig.getAppid()); - ThirdInOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdInOrderVo.WxThirdInOrderVo(); + ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); + thirdUnifiedOrderVo.setAppId(wxPayConfig.getAppid()); + ThirdUnifiedOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdUnifiedOrderVo.WxThirdInOrderVo(); wxThirdInOrderVo.setPackageValue(jsapiResult.getPackageValue()); wxThirdInOrderVo.setTimeStamp(jsapiResult.getTimeStamp()); wxThirdInOrderVo.setNonceStr(jsapiResult.getNonceStr()); wxThirdInOrderVo.setPaySign(jsapiResult.getPaySign()); - thirdInOrderVo.setOutOrderNo(bo.getPayId()); - thirdInOrderVo.setAppId(jsapiResult.getAppId()); - return thirdInOrderVo; + thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId()); + thirdUnifiedOrderVo.setAppId(jsapiResult.getAppId()); + return thirdUnifiedOrderVo; } catch (WxPayException e) { log.error("微信支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), e.getMessage()); throw new ServiceException(ResponseEnum.PAY_FAILS); @@ -201,4 +203,9 @@ public class WxPayStrategy extends AbstractPayStrategy { throw new ServiceException(ResponseEnum.ORDER_QUERY_FAILS); } } + + @Override + public ThirdRefundVo refund(RefundBo bo) { + return null; + } } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java index 3580ba0..bff44d9 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java @@ -21,4 +21,7 @@ public class QueryOrderDto { @ApiModelProperty(value="支付单号",required = true) private String payId; + @ApiModelProperty(value = "第三方流水号") + private String payNo; + } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java new file mode 100644 index 0000000..09c921d --- /dev/null +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java @@ -0,0 +1,17 @@ +package com.bnyer.pay.dto; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author :WXC + * @Date :2023/05/08 + * @description : + */ +@Getter +@Setter +@NoArgsConstructor +public class RefundDto { + +} diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/InOrderDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java similarity index 97% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/InOrderDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java index 4691d0c..34df2fd 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/InOrderDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java @@ -17,7 +17,7 @@ import javax.validation.constraints.NotNull; @Getter @Setter @NoArgsConstructor -public class InOrderDto { +public class UnifiedOrderDto { @NotBlank(message = "业务主订单号不能为空") @ApiModelProperty(value="业务主订单号:关联内部业务订单表",required = true) diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumPayConfigStatus.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumPayConfigStatus.java index 515826f..51ef684 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumPayConfigStatus.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumPayConfigStatus.java @@ -13,7 +13,7 @@ import java.util.Objects; @AllArgsConstructor public enum EnumPayConfigStatus { - ENABLE("0","正常"), + ENABLE("0","启用"), DISABLE("1","停用"), ; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java index 1e807f2..0e70f08 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java @@ -1,8 +1,8 @@ package com.bnyer.pay.service; -import com.bnyer.pay.dto.InOrderDto; +import com.bnyer.pay.dto.UnifiedOrderDto; import com.bnyer.pay.dto.QueryOrderDto; -import com.bnyer.pay.vo.InOrderVo; +import com.bnyer.pay.vo.UnifiedOrderVo; import com.bnyer.pay.vo.QueryOrderVo; import javax.servlet.http.HttpServletRequest; @@ -20,7 +20,7 @@ public interface UnifiedPayService { * @param request * @return */ - InOrderVo inOrder(InOrderDto dto, HttpServletRequest request); + UnifiedOrderVo unifiedOrder(UnifiedOrderDto dto, HttpServletRequest request); /** * 统一订单查询 diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java index c87e1d9..e79a0b3 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java @@ -15,7 +15,7 @@ import com.bnyer.pay.constant.KSPayConstants; import com.bnyer.pay.design.factory.PayFactory; import com.bnyer.pay.design.strategy.IPayStrategy; import com.bnyer.pay.dto.AddPayInfoDto; -import com.bnyer.pay.dto.InOrderDto; +import com.bnyer.pay.dto.UnifiedOrderDto; import com.bnyer.pay.dto.QueryOrderDto; import com.bnyer.pay.enums.EnumAliPayStatus; import com.bnyer.pay.enums.EnumDyPayStatus; @@ -56,7 +56,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { * @return */ @Override - public InOrderVo inOrder(InOrderDto dto, HttpServletRequest request) { + public UnifiedOrderVo unifiedOrder(UnifiedOrderDto dto, HttpServletRequest request) { //支付金额 String payAmount; //商品类型:快手支付需要 @@ -93,32 +93,32 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { if (Objects.isNull(payStrategy)){ throw new ServiceException("暂不支持该支付方式"); } - ThirdInOrderVo thirdInOrderVo = payStrategy.unifiedOrder(unifiedOrderBo); + ThirdUnifiedOrderVo thirdUnifiedOrderVo = payStrategy.unifiedOrder(unifiedOrderBo); //构建支付订单完成入库 - AddPayInfoDto addPayInfoDto = buildPayInfo(thirdInOrderVo, unifiedOrderBo,dto); + AddPayInfoDto addPayInfoDto = buildPayInfo(thirdUnifiedOrderVo, unifiedOrderBo,dto); payInfoService.addPayInfo(addPayInfoDto); - InOrderVo inOrderVo = EntityConvertUtil.copy(thirdInOrderVo, InOrderVo.class); - return inOrderVo; + UnifiedOrderVo unifiedOrderVo = EntityConvertUtil.copy(thirdUnifiedOrderVo, UnifiedOrderVo.class); + return unifiedOrderVo; } /** * 构建支付订单 * - * @param thirdInOrderVo + * @param thirdUnifiedOrderVo * @param unifiedOrderBo * @param dto * @return */ - private AddPayInfoDto buildPayInfo(ThirdInOrderVo thirdInOrderVo, UnifiedOrderBo unifiedOrderBo, InOrderDto dto) { + private AddPayInfoDto buildPayInfo(ThirdUnifiedOrderVo thirdUnifiedOrderVo, UnifiedOrderBo unifiedOrderBo, UnifiedOrderDto dto) { AddPayInfoDto addPayInfoDto = new AddPayInfoDto(); - addPayInfoDto.setAppid(thirdInOrderVo.getAppId()); + addPayInfoDto.setAppid(thirdUnifiedOrderVo.getAppId()); addPayInfoDto.setOrderNo(dto.getOrderNo()); addPayInfoDto.setSceneCode(dto.getSceneCode()); addPayInfoDto.setRemark(dto.getRemark()); addPayInfoDto.setPayType(dto.getPayType()); addPayInfoDto.setPayId(unifiedOrderBo.getPayId()); addPayInfoDto.setPayAmount(new BigDecimal(unifiedOrderBo.getPayAmount())); - addPayInfoDto.setAppid(thirdInOrderVo.getAppId()); + addPayInfoDto.setAppid(thirdUnifiedOrderVo.getAppId()); addPayInfoDto.setGoodsSubject(unifiedOrderBo.getGoodsSubject()); addPayInfoDto.setGoodsDesc(unifiedOrderBo.getGoodsDesc()); addPayInfoDto.setTradeType(dto.getTradeType()); @@ -138,7 +138,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { * @param request 请求request用于获取ip地址 * @return */ - private UnifiedOrderBo buildUnifiedOrderDto(InOrderDto dto, String goodsDesc, int goodsType, String payAmount, String payId, HttpServletRequest request) { + private UnifiedOrderBo buildUnifiedOrderDto(UnifiedOrderDto dto, String goodsDesc, int goodsType, String payAmount, String payId, HttpServletRequest request) { String openId = ""; //当前时间 Date currDate = new Date(); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java new file mode 100644 index 0000000..867d90b --- /dev/null +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java @@ -0,0 +1,10 @@ +package com.bnyer.pay.vo; + +/** + * @author :WXC + * @Date :2023/05/08 + * @description : + */ +public class ThirdRefundVo { + +} diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdInOrderVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java similarity index 92% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdInOrderVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java index f4c0f1c..4f6f0a6 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdInOrderVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java @@ -2,7 +2,6 @@ package com.bnyer.pay.vo; import io.swagger.annotations.ApiModelProperty; import lombok.*; -import lombok.experimental.Accessors; import java.io.Serializable; @@ -13,7 +12,7 @@ import java.io.Serializable; */ @Data @NoArgsConstructor -public class ThirdInOrderVo implements Serializable { +public class ThirdUnifiedOrderVo implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "应用id") @@ -44,7 +43,7 @@ public class ThirdInOrderVo implements Serializable { private String nonceStr; @ApiModelProperty(value = "会话标识") private String packageValue; - @ApiModelProperty(value = "微信返回的字段") + @ApiModelProperty(value = "签名类型") private String signType; @ApiModelProperty(value = "签名") private String paySign; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/InOrderVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java similarity index 85% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/InOrderVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java index e162659..1362941 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/InOrderVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java @@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; */ @Data @NoArgsConstructor -public class InOrderVo { +public class UnifiedOrderVo { @ApiModelProperty(value = "应用id") private String appId; @@ -20,16 +20,16 @@ public class InOrderVo { private String outOrderNo; @ApiModelProperty(value = "微信下单返回") - private ThirdInOrderVo.WxThirdInOrderVo wxThirdInOrderVo; + private ThirdUnifiedOrderVo.WxThirdInOrderVo wxThirdInOrderVo; @ApiModelProperty(value = "支付宝下单返回") - private ThirdInOrderVo.AliThirdInOrderVo aliThirdInOrderVo; + private ThirdUnifiedOrderVo.AliThirdInOrderVo aliThirdInOrderVo; @ApiModelProperty(value = "快手下单返回") - private ThirdInOrderVo.KsThirdInOrderVo ksThirdInOrderVo; + private ThirdUnifiedOrderVo.KsThirdInOrderVo ksThirdInOrderVo; @ApiModelProperty(value = "抖音下单返回") - private ThirdInOrderVo.DyThirdInOrderVo dyThirdInOrderVo; + private ThirdUnifiedOrderVo.DyThirdInOrderVo dyThirdInOrderVo; @Data public static class WxThirdInOrderVo { From 7bc766fcf4a3bf7a77e71952d37494be6dce934f Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Tue, 9 May 2023 17:40:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnyer/common/core/enums/ResponseEnum.java | 1 + .../com/bnyer/common/core/vo/UserInfoVo.java | 2 +- .../common/security/utils/SecurityUtils.java | 151 +++++++++--------- .../com/bnyer/order/dto/AddVipOrderDto.java | 6 - .../vip/VipOrderPayNotifyConsumer.java | 4 +- .../order/query/VipOrderDetailsQuery.java | 19 +++ .../bnyer/order/service/VipOrderService.java | 9 ++ .../service/impl/VipOrderServiceImpl.java | 31 +++- .../com/bnyer/order/vo/VipOrderDetailsVo.java | 16 ++ .../java/com/bnyer/order/vo/VipOrderVo.java | 2 - .../java/com/bnyer/pay/bo/UnifiedOrderBo.java | 2 +- .../design/strategy/AbstractPayStrategy.java | 42 ++--- .../pay/design/strategy/DYPayStrategy.java | 88 +++++----- .../pay/design/strategy/KSPayStrategy.java | 103 ++++++------ .../pay/design/strategy/WxPayStrategy.java | 5 +- .../com/bnyer/pay/service/PayInfoService.java | 2 +- .../pay/service/impl/PayInfoServiceImpl.java | 2 +- .../service/impl/UnifiedPayServiceImpl.java | 12 +- 18 files changed, 285 insertions(+), 212 deletions(-) create mode 100644 bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java create mode 100644 bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/ResponseEnum.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/ResponseEnum.java index 17efcb3..e0fd2ea 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/ResponseEnum.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/ResponseEnum.java @@ -9,6 +9,7 @@ public enum ResponseEnum { //======================系统异常========================, SERVER_ERROR(500, "系统繁忙,请稍候重试!"), + NOT_AUTH(500, "未登录!"), PARAM_ERROR(400, "参数异常!"), NOT_EXIST(110001, "查询为空"), PAY_CONFIG_ERROR(110002, "支付配置未启用或未配置!"), diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java index 61d6ea2..ae5565d 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java @@ -81,7 +81,7 @@ public class UserInfoVo implements Serializable { /** * 用户类型 抖音->10;快手->20;微信->30;微信艺术家->40 */ - private int userClientType; + private Integer userClientType; private static final long serialVersionUID = 1L; } diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java index 8027a6f..c0a9ac3 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java @@ -4,6 +4,7 @@ import com.bnyer.common.core.constant.SecurityConstants; import com.bnyer.common.core.constant.TokenConstants; import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.enums.EnumUserClientType; +import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.StringUtils; @@ -34,82 +35,82 @@ public class SecurityUtils */ public static UserInfoVo getUserInfo(){ String platform = ServletUtils.getRequest().getHeader("platform"); - if(StringUtils.isNotEmpty(platform)){ - EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); - switch (userClientType){ - case DU: - UserInfoVo tiktokUserInfo = new UserInfoVo(); - LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); - tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); - tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); - tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); - tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); - tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); - tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); - tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); - tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); - tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); - tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); - tiktokUserInfo.setUserClientType(userClientType.getType()); - return tiktokUserInfo; - case WU: - UserInfoVo wechatUserInfo = new UserInfoVo(); - LoginWechatUser loginWechatUser = getLoginWechatUser(); - wechatUserInfo.setId(loginWechatUser.getWxUserId()); - wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); - wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); - wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); - wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); - wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); - wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); - wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); - wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); - wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); - wechatUserInfo.setUserClientType(userClientType.getType()); - return wechatUserInfo; - case KU: - UserInfoVo fhUserInfo = new UserInfoVo(); - LoginFhUser loginFhUser = getLoginFhUser(); - fhUserInfo.setId(loginFhUser.getFhUserId()); - fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); - fhUserInfo.setUserName(loginFhUser.getFhUserName()); - fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); - fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); - fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); - fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); - fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); - fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); - fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); - fhUserInfo.setUserClientType(userClientType.getType()); - return fhUserInfo; - case WY: - UserInfoVo creatorInfo = new UserInfoVo(); - LoginCreator loginCreator = getLoginCreator(); - creatorInfo.setId(loginCreator.getCreatorId()); - creatorInfo.setPhone(loginCreator.getCreatorPhone()); - creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); - creatorInfo.setAmt(loginCreator.getCreator().getAmt()); - creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); - creatorInfo.setStatus(loginCreator.getCreator().getStatus()); - creatorInfo.setUrl(loginCreator.getCreator().getUrl()); - creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); - creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); - creatorInfo.setIntro(loginCreator.getCreator().getIntro()); - creatorInfo.setUserName(loginCreator.getCreator().getName()); - creatorInfo.setIpaddr(loginCreator.getIpaddr()); - creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); - creatorInfo.setImg(loginCreator.getCreator().getImg()); - creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); - creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); - creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); - creatorInfo.setSort(loginCreator.getCreator().getSort()); - creatorInfo.setUserClientType(userClientType.getType()); - return creatorInfo; - default: - throw new ServiceException("userClientType 未匹配上对应用户类型"); - } + if(StringUtils.isBlank(platform)){ + throw new ServiceException(ResponseEnum.NOT_AUTH); + } + EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); + switch (userClientType){ + case DU: + UserInfoVo tiktokUserInfo = new UserInfoVo(); + LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); + tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); + tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); + tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); + tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); + tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); + tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); + tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); + tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); + tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); + tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); + tiktokUserInfo.setUserClientType(userClientType.getType()); + return tiktokUserInfo; + case WU: + UserInfoVo wechatUserInfo = new UserInfoVo(); + LoginWechatUser loginWechatUser = getLoginWechatUser(); + wechatUserInfo.setId(loginWechatUser.getWxUserId()); + wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); + wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); + wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); + wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); + wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); + wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); + wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); + wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); + wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); + wechatUserInfo.setUserClientType(userClientType.getType()); + return wechatUserInfo; + case KU: + UserInfoVo fhUserInfo = new UserInfoVo(); + LoginFhUser loginFhUser = getLoginFhUser(); + fhUserInfo.setId(loginFhUser.getFhUserId()); + fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); + fhUserInfo.setUserName(loginFhUser.getFhUserName()); + fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); + fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); + fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); + fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); + fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); + fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); + fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); + fhUserInfo.setUserClientType(userClientType.getType()); + return fhUserInfo; + case WY: + UserInfoVo creatorInfo = new UserInfoVo(); + LoginCreator loginCreator = getLoginCreator(); + creatorInfo.setId(loginCreator.getCreatorId()); + creatorInfo.setPhone(loginCreator.getCreatorPhone()); + creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); + creatorInfo.setAmt(loginCreator.getCreator().getAmt()); + creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); + creatorInfo.setStatus(loginCreator.getCreator().getStatus()); + creatorInfo.setUrl(loginCreator.getCreator().getUrl()); + creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); + creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); + creatorInfo.setIntro(loginCreator.getCreator().getIntro()); + creatorInfo.setUserName(loginCreator.getCreator().getName()); + creatorInfo.setIpaddr(loginCreator.getIpaddr()); + creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); + creatorInfo.setImg(loginCreator.getCreator().getImg()); + creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); + creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); + creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); + creatorInfo.setSort(loginCreator.getCreator().getSort()); + creatorInfo.setUserClientType(userClientType.getType()); + return creatorInfo; + default: + throw new ServiceException("userClientType 未匹配上对应用户类型"); } - return null; } //******************************通用获取信息结束********************************************* diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java index 5ece95d..f42a1cc 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java @@ -1,11 +1,9 @@ package com.bnyer.order.dto; -import com.bnyer.common.core.annotation.CustomParamsValidation; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.hibernate.validator.constraints.Range; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -29,8 +27,4 @@ public class AddVipOrderDto implements Serializable { @ApiModelProperty(value="vip表id") private Long vipId; - @NotNull(message = "用户客户端类型不能为空!") - @ApiModelProperty(value="用户客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信") - private Integer userClientType; - } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/listener/vip/VipOrderPayNotifyConsumer.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/listener/vip/VipOrderPayNotifyConsumer.java index 33b4a2d..9292742 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/listener/vip/VipOrderPayNotifyConsumer.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/listener/vip/VipOrderPayNotifyConsumer.java @@ -34,6 +34,9 @@ public class VipOrderPayNotifyConsumer implements RocketMQListener { @Resource private VipOrderMapper vipOrderMapper; + @Resource + private VipOrderService vipOrderService; + @Resource private RocketMQTemplate vipRecordMqTemplate; @@ -41,7 +44,6 @@ public class VipOrderPayNotifyConsumer implements RocketMQListener { public void onMessage(String message) { log.info("收到消息:{}", message); //修改订单并添加会员记录 - VipOrderService vipOrderService = SpringUtils.getBean(VipOrderService.class); JSONObject orderObj = JSON.parseObject(message); String orderNo = orderObj.getString("orderNo"); VipOrder vipOrder = vipOrderMapper.selectOne(new LambdaQueryWrapper().eq(VipOrder::getOrderNo, orderNo)); diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java new file mode 100644 index 0000000..d0e17cf --- /dev/null +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java @@ -0,0 +1,19 @@ +package com.bnyer.order.query; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +/** + * @author :WXC + * @Date :2023/05/09 + * @description : + */ +@Getter +@Setter +@Builder +public class VipOrderDetailsQuery { + @ApiModelProperty(value="订单号") + private String orderNo; +} diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java index 83e70f1..90c10ab 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.bnyer.common.core.domain.VipOrder; import com.bnyer.order.dto.QueryVipOrderDto; import com.bnyer.order.dto.AddVipOrderDto; +import com.bnyer.order.query.VipOrderDetailsQuery; +import com.bnyer.order.vo.VipOrderDetailsVo; import com.bnyer.order.vo.VipOrderVo; import java.util.List; @@ -37,6 +39,13 @@ public interface VipOrderService extends IService { */ List getVipOrderList(QueryVipOrderDto dto); + /** + * 查询会员订单详情 + * @param query + * @return + */ + VipOrderDetailsVo queryVipOrder(VipOrderDetailsQuery query); + /** * 更新订单信息 * @param vipOrder diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java index eeadbe1..e1e37cc 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java @@ -11,17 +11,21 @@ import com.bnyer.common.core.enums.*; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.DateUtils; import com.bnyer.common.core.utils.OrderUtil; +import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.bean.EntityConvertUtil; +import com.bnyer.common.core.vo.UserInfoVo; import com.bnyer.common.rocketmq.config.RocketMqConstant; import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.img.api.dto.QueryUserVipDto; import com.bnyer.img.api.remote.RemoteWxMiniService; import com.bnyer.img.api.vo.UserVipInfoVo; import com.bnyer.order.dto.AddVipOrderDto; +import com.bnyer.order.query.VipOrderDetailsQuery; import com.bnyer.order.dto.QueryVipOrderDto; import com.bnyer.order.enums.EnumVipOrderStatus; import com.bnyer.order.mapper.VipOrderMapper; import com.bnyer.order.service.VipOrderService; +import com.bnyer.order.vo.VipOrderDetailsVo; import com.bnyer.order.vo.VipOrderVo; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.SendStatus; @@ -66,6 +70,25 @@ public class VipOrderServiceImpl extends ServiceImpl i return vipOrderVoList; } + /** + * 查询会员订单详情 + * @param query + * @return + */ + @Override + public VipOrderDetailsVo queryVipOrder(VipOrderDetailsQuery query) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotBlank(query.getOrderNo())){ + queryWrapper.eq(VipOrder::getOrderNo,query.getOrderNo()); + } + VipOrder vipOrder = vipOrderMapper.selectOne(queryWrapper); + if (Objects.isNull(vipOrder)){ + throw new ServiceException(ResponseEnum.NOT_EXIST,"会员订单"); + } + VipOrderDetailsVo orderDetailsVo = EntityConvertUtil.copy(vipOrder, VipOrderDetailsVo.class); + return orderDetailsVo; + } + /** * 生成会员订单,返回订单号 @@ -132,7 +155,9 @@ public class VipOrderServiceImpl extends ServiceImpl i * @return */ private VipOrder buildImgVipOrder(UserVipInfoVo userVipInfoVo, AddVipOrderDto addVipOrderDto) { - Long userId = SecurityUtils.getUserId(); + UserInfoVo userInfo = SecurityUtils.getUserInfo(); + Long userId = userInfo.getId(); + Integer userClientType = userInfo.getUserClientType(); VipOrder vipOrder = new VipOrder(); vipOrder.setVipId(userVipInfoVo.getId()); vipOrder.setVipCode(userVipInfoVo.getVipCode()); @@ -153,8 +178,8 @@ public class VipOrderServiceImpl extends ServiceImpl i vipOrder.setEndTime(DateUtils.getDateByType(enumTimeUnitByUnit,nowDate, userVipInfoVo.getValidTimeNum())); //开通的天数 vipOrder.setDays((int) DateUtil.betweenDay(vipOrder.getStartTime(), vipOrder.getEndTime(), true)); - vipOrder.setUserClientType(addVipOrderDto.getUserClientType()); - vipOrder.setOrderNo(OrderUtil.getOrderNo("RV",nowDate, EnumUserClientType.getCodeByType(addVipOrderDto.getUserClientType()),String.valueOf(userId))); + vipOrder.setUserClientType(userClientType); + vipOrder.setOrderNo(OrderUtil.getOrderNo("RV",nowDate, EnumUserClientType.getCodeByType(userClientType),String.valueOf(userId))); vipOrder.setCreateTime(nowDate); return vipOrder; } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java new file mode 100644 index 0000000..4f48dfe --- /dev/null +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java @@ -0,0 +1,16 @@ +package com.bnyer.order.vo; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author :WXC + * @Date :2023/03/27 + * @description : + */ +@Getter +@Setter +public class VipOrderDetailsVo extends VipOrderVo{ + + +} diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java index cf40fc4..4d8ed14 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java @@ -1,7 +1,5 @@ package com.bnyer.order.vo; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java index 42340fe..6196ffb 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java @@ -49,7 +49,7 @@ public class UnifiedOrderBo { */ private String goodsSubject; /** - * 商品描述: 会员充值 + * 商品描述: 支付场景名称:会员类型-会员名称 */ private String goodsDesc; } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java index 9ade772..9f8142d 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java @@ -3,18 +3,17 @@ package com.bnyer.pay.design.strategy; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alipay.api.msg.MsgConstants; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bnyer.common.core.constant.RedisKeyConstant; -import com.bnyer.common.core.domain.PayInfo; import com.bnyer.common.core.enums.EnumPayType; import com.bnyer.common.redis.service.RedissonService; import com.bnyer.pay.dto.PayNotifyCheckDto; -import com.bnyer.pay.mapper.PayInfoMapper; -import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; +import com.bnyer.pay.service.PayInfoService; +import com.bnyer.pay.vo.PayInfoDetailsVo; +import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Response; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; +import org.springframework.beans.factory.annotation.Autowired; -import javax.annotation.Resource; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -26,11 +25,15 @@ import java.util.concurrent.TimeUnit; @Slf4j public abstract class AbstractPayStrategy implements IPayStrategy { - @Resource - private PayInfoMapper payInfoMapper; + private static PayInfoService payInfoService; - @Resource - private RedissonService redissonService; + private static RedissonService redissonService; + + @Autowired + public void setBean(PayInfoService payInfoService, RedissonService redissonService) { + AbstractPayStrategy.payInfoService = payInfoService; + AbstractPayStrategy.redissonService = redissonService; + } /** * 校验是否已支付避免重复调用 @@ -38,38 +41,35 @@ public abstract class AbstractPayStrategy implements IPayStrategy { * @return */ public String payNotifyCheck(PayNotifyCheckDto checkDto){ - log.error("回调结果校验开始,支付单号:{}",checkDto.getPayId()); + log.info("回调结果校验开始,支付单号:{}",checkDto.getPayId()); String resultMsg = ""; RLock rLock = redissonService.getRLock(RedisKeyConstant.PAY_NOTIFY_LOCK_KEY + checkDto.getPayId()); try{ if(rLock.tryLock(2L, 10L, TimeUnit.SECONDS)){ - PayInfo payInfo = payInfoMapper.selectOne(new LambdaQueryWrapper().eq(PayInfo::getPayId, checkDto.getPayId()).eq(PayInfo::getIsShow, "1")); - if (Objects.isNull(payInfo)){ - return buildNotifyCheckResultMsg(checkDto.getPayType(),false,"business fail"); - } - log.info("查询到支付订单信息为:{}", JSON.toJSONString(payInfo)); + PayInfoDetailsVo payInfoDetailsVo = payInfoService.queryPayInfo(checkDto.getPayId()); + log.info("查询到支付订单信息为:{}", JSON.toJSONString(payInfoDetailsVo)); //订单中的金额 - String payInfoPayAmount = payInfo.getPayAmount().toString(); + String payInfoPayAmount = payInfoDetailsVo.getPayAmount().toString(); //回调中的金额 String notifyPayAmount = checkDto.getPayAmount(); //对账状态 - Integer singleStatus = payInfo.getSingleStatus(); + Integer singleStatus = payInfoDetailsVo.getSingleStatus(); log.info("回调中的金额:{},订单中的金额:{}",notifyPayAmount,payInfoPayAmount); if (payInfoPayAmount.equals(notifyPayAmount)){ if (Objects.nonNull(singleStatus)){ resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),true,checkDto.getMsg()); } }else { - resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),false,"business fail"); + resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),false,"trade fail"); } }else { log.error("获取锁失败,支付单号:{}",checkDto.getPayId()); - resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),false,"business fail"); + resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),false,"trade fail"); } }catch (Exception e){ e.printStackTrace(); log.error("回调结果校验失败,支付单号:{}",checkDto.getPayId()); - resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),false,"business fail"); + resultMsg = buildNotifyCheckResultMsg(checkDto.getPayType(),false,"trade fail"); }finally { rLock.unlock(); } @@ -86,7 +86,7 @@ public abstract class AbstractPayStrategy implements IPayStrategy { public String buildNotifyCheckResultMsg(EnumPayType payType,boolean isSuccess,String msg){ String result = ""; if (EnumPayType.WX_PAY == payType){ - result = isSuccess?WxPayNotifyResponse.success(msg):WxPayNotifyResponse.fail(msg); + result = isSuccess?WxPayNotifyV3Response.success(msg): WxPayNotifyV3Response.fail(msg); }else if (EnumPayType.ALI_PAY == payType){ result = isSuccess?MsgConstants.SUCCESS:MsgConstants.FAIL; } else if (EnumPayType.KS_PAY == payType) { diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java index 2c2783b..6ecf4fb 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java @@ -173,53 +173,57 @@ public class DYPayStrategy extends AbstractPayStrategy{ //订单信息的json字符串 String message = object.getString("msg"); JSONObject msgJsonObj = JSON.parseObject(message); + log.info("快手支付:统一回调处理,params:{}",message); + if (StringUtils.isBlank(msgSignature)) { + log.info("抖音支付回调参数丢失,payId:{}",object.getString("cp_orderno")); + return super.buildNotifyCheckResultMsg(EnumPayType.DY_PAY,false,"trade fail"); + } //校验回调签名 String signMessage = dyPayUtil.getCallbackSignature(timestamp, nonce, message,token); //签名校验 - if (msgSignature.equals(signMessage)) { - //固定值SUCCESS - String status = msgJsonObj.getString("status"); - //开发者侧的订单号 - String outOrderNo = msgJsonObj.getString("cp_orderno"); - //支付渠道: 1-微信支付,2-支付宝支付,10-抖音支付 - String payChannel = msgJsonObj.getString("way"); - //支付金额,单位为分 - Integer totalAmount = msgJsonObj.getInteger("total_amount"); - //支付渠道侧PC单号,支付页面可见(微信支付宝侧的订单号) - String paymentOrderNo = msgJsonObj.getString("payment_order_no"); - //抖音侧订单号 - String dyOrderId = msgJsonObj.getString("order_id"); - //这里无论回调失败还是成功,都需要都各个业务层去处理相关逻辑 - if("success".equals(status)){ - //处理业务 - PayNotifyCheckDto payNotifyCheckDto = new PayNotifyCheckDto(); - payNotifyCheckDto.setPayType(EnumPayType.DY_PAY); - payNotifyCheckDto.setPayAmount(BaseWxPayResult.fenToYuan(totalAmount)); - payNotifyCheckDto.setPayId(outOrderNo); - payNotifyCheckDto.setMsg("success"); - String notifyCheck = super.payNotifyCheck(payNotifyCheckDto); - if (StringUtils.isNotBlank(notifyCheck)){ - return notifyCheck; - } - log.info("抖音支付回调,交易正常:封装参数修改内部支付单信息"); - EditPayInfoNotifyDto editPayInfoNotifyDto = new EditPayInfoNotifyDto(); - editPayInfoNotifyDto.setPayAmount(MoneyUtil.fenToYuan(String.valueOf(totalAmount))); - editPayInfoNotifyDto.setPayTime(DateUtil.formatDateTime(new Date())); - editPayInfoNotifyDto.setAppId(appId); - editPayInfoNotifyDto.setPayId(outOrderNo); - editPayInfoNotifyDto.setPayNo(dyOrderId); - editPayInfoNotifyDto.setTradeNo(paymentOrderNo); - editPayInfoNotifyDto.setPayChannel(EnumPayChannel.getPayChannelName(payChannel,EnumPayType.DY_PAY)); - payInfoService.editPayInfoNotify(editPayInfoNotifyDto); - //正确处理后返回以下内容格式通知小程序平台不再持续回调 - return super.buildNotifyCheckResultMsg(EnumPayType.DY_PAY,true,"success"); - }else { - log.info("抖音支付回调不是支付成功不做处理:支付状态:{},payId:{}",status,outOrderNo); - } - } else { + if (!msgSignature.equals(signMessage)) { log.info("抖音支付回调签名校验失败,payId:{}",msgJsonObj.getString("cp_orderno")); + return super.buildNotifyCheckResultMsg(EnumPayType.DY_PAY,false,"trade fail"); + } + //固定值SUCCESS + String status = msgJsonObj.getString("status"); + //开发者侧的订单号 + String outOrderNo = msgJsonObj.getString("cp_orderno"); + //支付渠道: 1-微信支付,2-支付宝支付,10-抖音支付 + String payChannel = msgJsonObj.getString("way"); + //支付金额,单位为分 + Integer totalAmount = msgJsonObj.getInteger("total_amount"); + //支付渠道侧PC单号,支付页面可见(微信支付宝侧的订单号) + String paymentOrderNo = msgJsonObj.getString("payment_order_no"); + //抖音侧订单号 + String dyOrderId = msgJsonObj.getString("order_id"); + //这里无论回调失败还是成功,都需要都各个业务层去处理相关逻辑 + if(!"success".equals(status)){ + log.info("抖音支付回调不是支付成功不做处理:支付状态:{},payId:{}",status,outOrderNo); + return super.buildNotifyCheckResultMsg(EnumPayType.DY_PAY,false,"trade fail"); + } + //处理业务 + PayNotifyCheckDto payNotifyCheckDto = new PayNotifyCheckDto(); + payNotifyCheckDto.setPayType(EnumPayType.DY_PAY); + payNotifyCheckDto.setPayAmount(BaseWxPayResult.fenToYuan(totalAmount)); + payNotifyCheckDto.setPayId(outOrderNo); + payNotifyCheckDto.setMsg("success"); + String notifyCheck = super.payNotifyCheck(payNotifyCheckDto); + if (StringUtils.isNotBlank(notifyCheck)){ + return notifyCheck; } - return super.buildNotifyCheckResultMsg(EnumPayType.DY_PAY,true,"business fail"); + log.info("抖音支付回调,交易正常:封装参数修改内部支付单信息"); + EditPayInfoNotifyDto editPayInfoNotifyDto = new EditPayInfoNotifyDto(); + editPayInfoNotifyDto.setPayAmount(MoneyUtil.fenToYuan(String.valueOf(totalAmount))); + editPayInfoNotifyDto.setPayTime(DateUtil.formatDateTime(new Date())); + editPayInfoNotifyDto.setAppId(appId); + editPayInfoNotifyDto.setPayId(outOrderNo); + editPayInfoNotifyDto.setPayNo(dyOrderId); + editPayInfoNotifyDto.setTradeNo(paymentOrderNo); + editPayInfoNotifyDto.setPayChannel(EnumPayChannel.getPayChannelName(payChannel,EnumPayType.DY_PAY)); + payInfoService.editPayInfoNotify(editPayInfoNotifyDto); + //正确处理后返回以下内容格式通知小程序平台不再持续回调 + return super.buildNotifyCheckResultMsg(EnumPayType.DY_PAY,true,"success"); } @Override diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java index dbe1f1c..fbe071f 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java @@ -82,7 +82,7 @@ public class KSPayStrategy extends AbstractPayStrategy{ public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { String result = ""; KspayConfig kspayConfig = getKspayConfig(); - String openId = SecurityContextHolder.getFhOpenId(); + String openId = bo.getOpenId(); String appId = kspayConfig.getAppid(); String backurl = kspayConfig.getBackurl(); String secret = kspayConfig.getSecret(); @@ -173,59 +173,58 @@ public class KSPayStrategy extends AbstractPayStrategy{ String kwaisign = jsonObject.getString("sign"); String jsonString = JSONObject.toJSONString(object, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.QuoteFieldNames); log.info("快手支付:统一回调处理,params:{}",jsonString); - if (StringUtils.isNotBlank(kwaisign)) { - jsonString = jsonString + secret; - //签名校验 - if (kwaisign.equals(DigestUtils.md5Hex(jsonString))) { - //当前回调消息的唯一ID,在同一个消息多次通知时,保持一致。 - String messageId = object.getString("message_id"); - JSONObject data = object.getJSONObject("data"); - //支付渠道。取值:UNKNOWN - 未知|WECHAT-微信|ALIPAY-支付宝 - String channel = data.getString("channel"); - //订单支付状态。 取值: PROCESSING-处理中|SUCCESS-成功|FAILED-失败 - String status = data.getString("status"); - //订单金额 - Integer orderAmount = data.getInteger("order_amount"); - //用户侧支付页交易单号 - String tradeNo = data.getString("trade_no"); - //商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一 - String outOrderNo = data.getString("out_order_no"); - //快手小程序平台订单号。 - String ksOrderNo = data.getString("ks_order_no"); - //回调支付成功 - if ("SUCCESS".equals(status)) { - //处理业务 - PayNotifyCheckDto payNotifyCheckDto = new PayNotifyCheckDto(); - payNotifyCheckDto.setPayType(EnumPayType.KS_PAY); - payNotifyCheckDto.setPayAmount(MoneyUtil.fenToYuan(String.valueOf(orderAmount))); - payNotifyCheckDto.setPayId(outOrderNo); - payNotifyCheckDto.setMsg(messageId); - String notifyCheck = super.payNotifyCheck(payNotifyCheckDto); - if (StringUtils.isNotBlank(notifyCheck)){ - return notifyCheck; - } - log.info("快手支付回调,交易正常:封装参数修改内部支付单信息"); - EditPayInfoNotifyDto editPayInfoNotifyDto = new EditPayInfoNotifyDto(); - editPayInfoNotifyDto.setPayAmount(MoneyUtil.fenToYuan(String.valueOf(orderAmount))); - editPayInfoNotifyDto.setPayTime(DateUtil.formatDateTime(new Date())); - editPayInfoNotifyDto.setAppId(appId); - editPayInfoNotifyDto.setPayId(outOrderNo); - editPayInfoNotifyDto.setPayNo(ksOrderNo); - editPayInfoNotifyDto.setTradeNo(tradeNo); - editPayInfoNotifyDto.setPayChannel(EnumPayChannel.getPayChannelName(channel,EnumPayType.KS_PAY)); - payInfoService.editPayInfoNotify(editPayInfoNotifyDto); - //正确处理后返回以下内容格式通知小程序平台不再持续回调 - return super.buildNotifyCheckResultMsg(EnumPayType.KS_PAY,true,messageId); - }else { - log.info("快手支付回调不是支付成功不做处理:支付状态:{},payId:{}",status,object.getString("trade_no")); - } - } else { - log.info("快手支付回调签名校验失败,payId:{}",object.getString("trade_no")); - } - } else { + if (StringUtils.isBlank(kwaisign)) { log.info("快手支付回调参数丢失,payId:{}",object.getString("trade_no")); + return super.buildNotifyCheckResultMsg(EnumPayType.KS_PAY,false,"trade fail"); } - return super.buildNotifyCheckResultMsg(EnumPayType.KS_PAY,true,"business fail"); + jsonString = jsonString + secret; + //签名校验 + if (!kwaisign.equals(DigestUtils.md5Hex(jsonString))) { + log.info("快手支付回调签名校验失败,payId:{}",object.getString("trade_no")); + return super.buildNotifyCheckResultMsg(EnumPayType.KS_PAY,false,"trade fail"); + } + //当前回调消息的唯一ID,在同一个消息多次通知时,保持一致。 + String messageId = object.getString("message_id"); + JSONObject data = object.getJSONObject("data"); + //支付渠道。取值:UNKNOWN - 未知|WECHAT-微信|ALIPAY-支付宝 + String channel = data.getString("channel"); + //订单支付状态。 取值: PROCESSING-处理中|SUCCESS-成功|FAILED-失败 + String status = data.getString("status"); + //订单金额 + Integer orderAmount = data.getInteger("order_amount"); + //用户侧支付页交易单号 + String tradeNo = data.getString("trade_no"); + //商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一 + String outOrderNo = data.getString("out_order_no"); + //快手小程序平台订单号。 + String ksOrderNo = data.getString("ks_order_no"); + //回调支付成功 + if (!"SUCCESS".equals(status)) { + log.info("快手支付回调不是支付成功不做处理:支付状态:{},payId:{}",status,object.getString("trade_no")); + return super.buildNotifyCheckResultMsg(EnumPayType.KS_PAY,false,"trade fail"); + } + //处理业务 + PayNotifyCheckDto payNotifyCheckDto = new PayNotifyCheckDto(); + payNotifyCheckDto.setPayType(EnumPayType.KS_PAY); + payNotifyCheckDto.setPayAmount(MoneyUtil.fenToYuan(String.valueOf(orderAmount))); + payNotifyCheckDto.setPayId(outOrderNo); + payNotifyCheckDto.setMsg(messageId); + String notifyCheck = super.payNotifyCheck(payNotifyCheckDto); + if (StringUtils.isNotBlank(notifyCheck)){ + return notifyCheck; + } + log.info("快手支付回调,交易正常:封装参数修改内部支付单信息"); + EditPayInfoNotifyDto editPayInfoNotifyDto = new EditPayInfoNotifyDto(); + editPayInfoNotifyDto.setPayAmount(MoneyUtil.fenToYuan(String.valueOf(orderAmount))); + editPayInfoNotifyDto.setPayTime(DateUtil.formatDateTime(new Date())); + editPayInfoNotifyDto.setAppId(appId); + editPayInfoNotifyDto.setPayId(outOrderNo); + editPayInfoNotifyDto.setPayNo(ksOrderNo); + editPayInfoNotifyDto.setTradeNo(tradeNo); + editPayInfoNotifyDto.setPayChannel(EnumPayChannel.getPayChannelName(channel,EnumPayType.KS_PAY)); + payInfoService.editPayInfoNotify(editPayInfoNotifyDto); + //正确处理后返回以下内容格式通知小程序平台不再持续回调 + return super.buildNotifyCheckResultMsg(EnumPayType.KS_PAY,true,messageId); } @Override diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java index 55a1a03..9506372 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java @@ -82,7 +82,7 @@ public class WxPayStrategy extends AbstractPayStrategy { private ThirdUnifiedOrderVo jsApiPay(UnifiedOrderBo bo) { WxpayConfig wxPayConfig = wxPayManager.getWxPayConfigByTradeType(bo.getTradeType()); WxPayService wxPayService = wxPayManager.getWxPayService(wxPayConfig); - String openId = SecurityContextHolder.getWechatOpenId(); + String openId = bo.getOpenId(); try { WxPayUnifiedOrderV3Request orderRequest = new WxPayUnifiedOrderV3Request(); WxPayUnifiedOrderV3Request.Payer payer = new WxPayUnifiedOrderV3Request.Payer(); @@ -147,8 +147,9 @@ public class WxPayStrategy extends AbstractPayStrategy { String timeEnd = result.getSuccessTime(); //支付状态 String tradeState = result.getTradeState(); + //如果不是交易成功不往下走 if (!EnumWxPayStatus.SUCCESS.getStatus().equals(tradeState)){ - return super.buildNotifyCheckResultMsg(EnumPayType.WX_PAY,false,"交易失败"); + return super.buildNotifyCheckResultMsg(EnumPayType.WX_PAY,false,"trade fail"); } //校验是否已支付避免重复调用 PayNotifyCheckDto payNotifyCheckDto = new PayNotifyCheckDto(); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java index 4e9896b..b58473c 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java @@ -29,5 +29,5 @@ public interface PayInfoService extends IService{ * @param payId * @return */ - PayInfoDetailsVo queryOrder(String payId); + PayInfoDetailsVo queryPayInfo(String payId); } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java index 834e1e1..037e772 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java @@ -127,7 +127,7 @@ public class PayInfoServiceImpl extends ServiceImpl impl * @return */ @Override - public PayInfoDetailsVo queryOrder(String payId) { + public PayInfoDetailsVo queryPayInfo(String payId) { PayInfo payInfo = payInfoMapper.selectOne(new LambdaQueryWrapper().eq(PayInfo::getPayId, payId)); if (Objects.isNull(payInfo)){ throw new ServiceException(ResponseEnum.NOT_EXIST,"支付订单"); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java index e79a0b3..c909c3d 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java @@ -6,6 +6,8 @@ import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.OrderUtil; import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.common.core.utils.ip.IpUtils; +import com.bnyer.common.core.vo.UserInfoVo; +import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.order.api.dto.QueryVipOrderDto; import com.bnyer.order.api.remote.RemoteVipOrderService; import com.bnyer.order.api.vo.VipOrderVo; @@ -15,8 +17,8 @@ import com.bnyer.pay.constant.KSPayConstants; import com.bnyer.pay.design.factory.PayFactory; import com.bnyer.pay.design.strategy.IPayStrategy; import com.bnyer.pay.dto.AddPayInfoDto; -import com.bnyer.pay.dto.UnifiedOrderDto; import com.bnyer.pay.dto.QueryOrderDto; +import com.bnyer.pay.dto.UnifiedOrderDto; import com.bnyer.pay.enums.EnumAliPayStatus; import com.bnyer.pay.enums.EnumDyPayStatus; import com.bnyer.pay.enums.EnumKsPayStatus; @@ -131,7 +133,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { * 构建统一下单请求实体 * * @param dto 入参 - * @param goodsDesc + * @param goodsDesc 商品描述 * @param goodsType 商品类型 * @param payAmount 不同支付场景下的支付金额 * @param payId 内部系统支付单号 @@ -139,12 +141,14 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { * @return */ private UnifiedOrderBo buildUnifiedOrderDto(UnifiedOrderDto dto, String goodsDesc, int goodsType, String payAmount, String payId, HttpServletRequest request) { - String openId = ""; + UserInfoVo userInfo = SecurityUtils.getUserInfo(); + String openId = userInfo.getOpenId(); //当前时间 Date currDate = new Date(); //ip地址 String ip = IpUtils.getIpAddr(request); UnifiedOrderBo unifiedOrderBo = EntityConvertUtil.copy(dto, UnifiedOrderBo.class); + unifiedOrderBo.setOpenId(openId); unifiedOrderBo.setPayId(payId); unifiedOrderBo.setIp(ip); unifiedOrderBo.setCurrDate(currDate); @@ -163,7 +167,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { @Override public QueryOrderVo queryOrder(QueryOrderDto dto) { //先查询系统支付单是否已经完成支付,如果因为延迟导致没有及时同步,在调用第三方接口查询支付状态返回 - PayInfoDetailsVo payInfoDetailsVo = payInfoService.queryOrder(dto.getPayId()); + PayInfoDetailsVo payInfoDetailsVo = payInfoService.queryPayInfo(dto.getPayId()); if (Objects.isNull(payInfoDetailsVo)){ throw new ServiceException(ResponseEnum.NOT_EXIST); } From 1a62ed968f7783fff0da122097a982c67d0376ca Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Wed, 10 May 2023 10:13:39 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RemoteVipOrderFallbackFactory.java | 4 +- .../VipOrderQuery.java} | 4 +- .../api/remote/RemoteVipOrderService.java | 8 +- .../common/core/domain/UserVipRecord.java | 4 +- .../common/core/dto/AddUserVipRecordDto.java | 5 +- .../com/bnyer/common/core/dto/BaseDto.java | 85 +++++++++++++++++++ .../common/core/utils/bean/ReflectUtils.java | 45 ++++++++++ .../impl/UserVipServiceRecordImpl.java | 4 +- .../order/controller/VipOrderController.java | 8 +- .../com/bnyer/order/dto/AddVipOrderDto.java | 4 +- .../bnyer/order/mapper/VipOrderMapper.java | 4 +- .../order/query/VipOrderDetailsQuery.java | 7 +- .../VipOrderQuery.java} | 4 +- .../bnyer/order/service/VipOrderService.java | 6 +- .../service/impl/VipOrderServiceImpl.java | 15 ++-- .../java/com/bnyer/pay/dto/AddPayInfoDto.java | 4 +- .../pay/service/impl/PayInfoServiceImpl.java | 4 +- .../service/impl/UnifiedPayServiceImpl.java | 8 +- 18 files changed, 176 insertions(+), 47 deletions(-) rename bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/{dto/QueryVipOrderDto.java => query/VipOrderQuery.java} (78%) create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/bean/ReflectUtils.java rename bnyer-services/bnyer-order/src/main/java/com/bnyer/order/{dto/QueryVipOrderDto.java => query/VipOrderQuery.java} (79%) diff --git a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java index be0e0f9..701eb37 100644 --- a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java +++ b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java @@ -1,7 +1,7 @@ package com.bnyer.order.api.factory; import com.bnyer.common.core.domain.R; -import com.bnyer.order.api.dto.QueryVipOrderDto; +import com.bnyer.order.api.query.VipOrderQuery; import com.bnyer.order.api.remote.RemoteVipOrderService; import com.bnyer.order.api.vo.VipOrderVo; import org.slf4j.Logger; @@ -28,7 +28,7 @@ public class RemoteVipOrderFallbackFactory implements FallbackFactory> getVipOrderList(QueryVipOrderDto dto) { + public R> queryVipOrderList(VipOrderQuery query) { return R.fail("获取会员订单信息失败:+"+throwable.getMessage()); } }; diff --git a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/dto/QueryVipOrderDto.java b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderQuery.java similarity index 78% rename from bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/dto/QueryVipOrderDto.java rename to bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderQuery.java index f4f4d1a..c772a84 100644 --- a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/dto/QueryVipOrderDto.java +++ b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderQuery.java @@ -1,4 +1,4 @@ -package com.bnyer.order.api.dto; +package com.bnyer.order.api.query; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -15,7 +15,7 @@ import java.io.Serializable; @Getter @Setter @NoArgsConstructor -public class QueryVipOrderDto implements Serializable { +public class VipOrderQuery implements Serializable { @ApiModelProperty(value="订单号") private String orderNo; diff --git a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java index 26c2eee..729efa1 100644 --- a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java +++ b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java @@ -2,7 +2,7 @@ package com.bnyer.order.api.remote; import com.bnyer.common.core.constant.ServiceNameConstants; import com.bnyer.common.core.domain.R; -import com.bnyer.order.api.dto.QueryVipOrderDto; +import com.bnyer.order.api.query.VipOrderQuery; import com.bnyer.order.api.factory.RemoteVipOrderFallbackFactory; import com.bnyer.order.api.vo.VipOrderVo; import org.springframework.cloud.openfeign.FeignClient; @@ -21,9 +21,9 @@ public interface RemoteVipOrderService { /** * 获取会员订单信息 - * @param dto + * @param query * @return */ - @PostMapping("/vip/getVipOrderList") - R> getVipOrderList(@RequestBody QueryVipOrderDto dto); + @PostMapping("/vip/queryVipOrderList") + R> queryVipOrderList(@RequestBody VipOrderQuery query); } diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVipRecord.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVipRecord.java index 0bb7f43..0744aa4 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVipRecord.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVipRecord.java @@ -63,10 +63,10 @@ public class UserVipRecord extends BaseDomain { private Date endTime; /** - * 支付状态(0->待支付;1->已支付;2->支付失败;3->支付异常) + * 状态(0->已到期;1->已生效) */ @TableField(value = "status") - @ApiModelProperty(value="支付状态(0->待支付;1->已支付;2->支付失败;3->支付异常)") + @ApiModelProperty(value="状态(0->已到期;1->已生效;)") private Integer status; /** diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/AddUserVipRecordDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/AddUserVipRecordDto.java index 091f238..54025f9 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/AddUserVipRecordDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/AddUserVipRecordDto.java @@ -1,5 +1,6 @@ package com.bnyer.common.core.dto; +import com.bnyer.common.core.domain.UserVipRecord; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.*; @@ -8,10 +9,8 @@ import java.util.Date; @Getter @Setter -@ToString -@AllArgsConstructor @NoArgsConstructor -public class AddUserVipRecordDto { +public class AddUserVipRecordDto extends BaseDto{ @ApiModelProperty(value="订单号") private String orderNo; diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java new file mode 100644 index 0000000..9b8a38c --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java @@ -0,0 +1,85 @@ +package com.bnyer.common.core.dto; + +import cn.hutool.core.util.IdUtil; +import com.bnyer.common.core.domain.BaseDomain; +import com.bnyer.common.core.utils.StringUtils; +import com.bnyer.common.core.utils.bean.ReflectUtils; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.beans.BeanUtils; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @author :WXC + * @Date :2023/05/10 + * @description : + */ +@Data +public class BaseDto implements Serializable { + private static final long serialVersionUID = 320272502336434381L; + + /** + * 主键ID + */ + private Long id; + + /** + * 数据创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 数据更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 是否显示 + */ + private String isShow; + + /** + * 排序 + */ + private Integer sort; + + /** + * 主键ID集合 + */ + private List ids; + + /** + * 转为实体类 + * + * @return 实体类 + */ + public T toEntity() { + Class entity = ReflectUtils.getParameterizedType(this.getClass()); + T entityInstance = ReflectUtils.newInstance(entity); + BeanUtils.copyProperties(this, entityInstance); + if (this.id == null) { + entityInstance.setId(IdUtil.getSnowflakeNextId()); + entityInstance.setIsShow("1"); + entityInstance.setCreateTime(new Date()); + entityInstance.setUpdateTime(null); + if (StringUtils.isNotBlank(this.isShow)){ + entityInstance.setIsShow(this.isShow); + }else { + entityInstance.setIsShow("1"); + } + if (this.sort != null){ + entityInstance.setSort(this.sort); + }else { + entityInstance.setSort(0); + } + } else { + entityInstance.setUpdateTime(new Date()); + } + return entityInstance; + } +} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/bean/ReflectUtils.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/bean/ReflectUtils.java new file mode 100644 index 0000000..382337e --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/bean/ReflectUtils.java @@ -0,0 +1,45 @@ +package com.bnyer.common.core.utils.bean; + +import org.springframework.beans.BeanInstantiationException; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; + +/** + * @author :WXC + * @Date :2023/05/10 + * @description :反射工具 + */ +public class ReflectUtils { + + /** + * 得到传入类中当前指定得泛型 + * + * @param cls 待解析得类 + * @return 显示指定的泛型 + */ + @SuppressWarnings("unchecked") + public static Class getParameterizedType(Class cls) { + Type genType = cls.getGenericSuperclass(); + Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); + return (Class) params[0]; + } + + + /** + * 实例化class 对象 + * + * @param cls 待实例化类 + * @param 类类型 + * @return 实例化对象 + */ + public static T newInstance(Class cls) { + try { + return cls.newInstance(); + } catch (Exception e) { + throw new BeanInstantiationException(cls, e.getMessage()); + } + } + + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceRecordImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceRecordImpl.java index 2e081cb..2646c0e 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceRecordImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceRecordImpl.java @@ -87,10 +87,8 @@ public class UserVipServiceRecordImpl implements UserVipRecordService { @Override public void addUserVipRecord(AddUserVipRecordDto dto) { - UserVipRecord userVipRecord = EntityConvertUtil.copy(dto, UserVipRecord.class); + UserVipRecord userVipRecord = dto.toEntity(); userVipRecord.setStatus(EnumUserVipRecordStatus.VALID.getStatus()); - userVipRecord.setCreateTime(new Date()); - userVipRecord.setIsShow("1"); userVipRecordMapper.insert(userVipRecord); } } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java index 107c996..b59b26f 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java @@ -3,7 +3,7 @@ package com.bnyer.order.controller; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.web.controller.BaseController; import com.bnyer.order.dto.AddVipOrderDto; -import com.bnyer.order.dto.QueryVipOrderDto; +import com.bnyer.order.query.VipOrderQuery; import com.bnyer.order.service.VipOrderService; import com.bnyer.order.vo.VipOrderVo; import io.swagger.annotations.Api; @@ -44,10 +44,10 @@ public class VipOrderController extends BaseController { /** * 查询订单信息 */ - @PostMapping("/getVipOrderList") + @PostMapping("/queryVipOrderList") @Operation(summary = "查询会员订单列表信息" , description = "查询会员订单列表信息") - public R> getVipOrderList(@Valid @RequestBody QueryVipOrderDto dto) { - List vipOrderVoList = vipOrderService.getVipOrderList(dto); + public R> queryVipOrderList(@Valid @RequestBody VipOrderQuery query) { + List vipOrderVoList = vipOrderService.queryVipOrderList(query); return R.ok(vipOrderVoList); } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java index f42a1cc..b213ab9 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java @@ -1,5 +1,7 @@ package com.bnyer.order.dto; +import com.bnyer.common.core.domain.VipOrder; +import com.bnyer.common.core.dto.BaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.NoArgsConstructor; @@ -17,7 +19,7 @@ import java.io.Serializable; @Getter @Setter @NoArgsConstructor -public class AddVipOrderDto implements Serializable { +public class AddVipOrderDto extends BaseDto implements Serializable { @NotBlank(message = "手机号不能为空!") @ApiModelProperty(value="手机号") diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java index 750e432..347da04 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java @@ -2,7 +2,7 @@ package com.bnyer.order.mapper; import java.util.List; -import com.bnyer.order.dto.QueryVipOrderDto; +import com.bnyer.order.query.VipOrderQuery; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.common.core.domain.VipOrder; @@ -20,7 +20,7 @@ public interface VipOrderMapper extends BaseMapper { * @param dto * @return */ - List queryVipOrderList(QueryVipOrderDto dto); + List queryVipOrderList(VipOrderQuery dto); /** * 取消订单 diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java index d0e17cf..16da386 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java @@ -1,10 +1,12 @@ package com.bnyer.order.query; import io.swagger.annotations.ApiModelProperty; -import lombok.Builder; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; +import javax.validation.constraints.NotBlank; + /** * @author :WXC * @Date :2023/05/09 @@ -12,8 +14,9 @@ import lombok.Setter; */ @Getter @Setter -@Builder +@NoArgsConstructor public class VipOrderDetailsQuery { + @NotBlank(message = "订单号不能为空") @ApiModelProperty(value="订单号") private String orderNo; } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/QueryVipOrderDto.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderQuery.java similarity index 79% rename from bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/QueryVipOrderDto.java rename to bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderQuery.java index 74bd07c..37457ab 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/QueryVipOrderDto.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderQuery.java @@ -1,4 +1,4 @@ -package com.bnyer.order.dto; +package com.bnyer.order.query; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -15,7 +15,7 @@ import java.io.Serializable; @Getter @Setter @NoArgsConstructor -public class QueryVipOrderDto implements Serializable { +public class VipOrderQuery implements Serializable { @ApiModelProperty(value="订单号") private String orderNo; diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java index 90c10ab..906c3bf 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java @@ -2,7 +2,7 @@ package com.bnyer.order.service; import com.baomidou.mybatisplus.extension.service.IService; import com.bnyer.common.core.domain.VipOrder; -import com.bnyer.order.dto.QueryVipOrderDto; +import com.bnyer.order.query.VipOrderQuery; import com.bnyer.order.dto.AddVipOrderDto; import com.bnyer.order.query.VipOrderDetailsQuery; import com.bnyer.order.vo.VipOrderDetailsVo; @@ -34,10 +34,10 @@ public interface VipOrderService extends IService { /** * 查询会员订单列表信息 - * @param dto + * @param query * @return */ - List getVipOrderList(QueryVipOrderDto dto); + List queryVipOrderList(VipOrderQuery query); /** * 查询会员订单详情 diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java index e1e37cc..7e3c6f3 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java @@ -21,7 +21,7 @@ import com.bnyer.img.api.remote.RemoteWxMiniService; import com.bnyer.img.api.vo.UserVipInfoVo; import com.bnyer.order.dto.AddVipOrderDto; import com.bnyer.order.query.VipOrderDetailsQuery; -import com.bnyer.order.dto.QueryVipOrderDto; +import com.bnyer.order.query.VipOrderQuery; import com.bnyer.order.enums.EnumVipOrderStatus; import com.bnyer.order.mapper.VipOrderMapper; import com.bnyer.order.service.VipOrderService; @@ -60,12 +60,12 @@ public class VipOrderServiceImpl extends ServiceImpl i /** * 查询会员订单列表信息 - * @param dto + * @param query * @return */ @Override - public List getVipOrderList(QueryVipOrderDto dto) { - List vipOrderList = vipOrderMapper.queryVipOrderList(dto); + public List queryVipOrderList(VipOrderQuery query) { + List vipOrderList = vipOrderMapper.queryVipOrderList(query); List vipOrderVoList = EntityConvertUtil.copy(vipOrderList, VipOrderVo.class); return vipOrderVoList; } @@ -155,16 +155,15 @@ public class VipOrderServiceImpl extends ServiceImpl i * @return */ private VipOrder buildImgVipOrder(UserVipInfoVo userVipInfoVo, AddVipOrderDto addVipOrderDto) { + VipOrder vipOrder = addVipOrderDto.toEntity(); UserInfoVo userInfo = SecurityUtils.getUserInfo(); Long userId = userInfo.getId(); Integer userClientType = userInfo.getUserClientType(); - VipOrder vipOrder = new VipOrder(); - vipOrder.setVipId(userVipInfoVo.getId()); vipOrder.setVipCode(userVipInfoVo.getVipCode()); vipOrder.setVipName(userVipInfoVo.getVipName()); vipOrder.setVipTypeName(userVipInfoVo.getVipTypeName()); + //// TODO: 2023/05/10 待加密 vipOrder.setPhone(addVipOrderDto.getPhone()); - vipOrder.setVipId(addVipOrderDto.getVipId()); vipOrder.setVipName(userVipInfoVo.getVipName()); vipOrder.setVipTypeName(userVipInfoVo.getVipTypeName()); vipOrder.setPayAmount(userVipInfoVo.getPrice()); @@ -180,7 +179,6 @@ public class VipOrderServiceImpl extends ServiceImpl i vipOrder.setDays((int) DateUtil.betweenDay(vipOrder.getStartTime(), vipOrder.getEndTime(), true)); vipOrder.setUserClientType(userClientType); vipOrder.setOrderNo(OrderUtil.getOrderNo("RV",nowDate, EnumUserClientType.getCodeByType(userClientType),String.valueOf(userId))); - vipOrder.setCreateTime(nowDate); return vipOrder; } @@ -210,7 +208,6 @@ public class VipOrderServiceImpl extends ServiceImpl i * 更新订单信息为已支付 * @param vipOrder */ - @Transactional(rollbackFor = Exception.class) @Override public void updateByToPaySuccess(VipOrder vipOrder) { vipOrder.setPayStatus(EnumPayStatus.SUCCESS.getStatus()); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java index cc6a75d..46dd80f 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java @@ -1,6 +1,8 @@ package com.bnyer.pay.dto; import com.baomidou.mybatisplus.annotation.TableField; +import com.bnyer.common.core.domain.PayInfo; +import com.bnyer.common.core.dto.BaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Getter; @@ -19,7 +21,7 @@ import java.util.Date; @Setter @NoArgsConstructor @AllArgsConstructor -public class AddPayInfoDto { +public class AddPayInfoDto extends BaseDto { @ApiModelProperty(value="支付单号(内部生成)") private String payId; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java index 037e772..0e50d2c 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java @@ -48,9 +48,7 @@ public class PayInfoServiceImpl extends ServiceImpl impl */ @Override public void addPayInfo(AddPayInfoDto dto) { - PayInfo payInfo = EntityConvertUtil.copy(dto, PayInfo.class); - payInfo.setCreateTime(new Date()); - payInfo.setIsShow("1"); + PayInfo payInfo = dto.toEntity(); payInfoMapper.insert(payInfo); } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java index c909c3d..de714a6 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java @@ -8,7 +8,7 @@ import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.common.core.utils.ip.IpUtils; import com.bnyer.common.core.vo.UserInfoVo; import com.bnyer.common.security.utils.SecurityUtils; -import com.bnyer.order.api.dto.QueryVipOrderDto; +import com.bnyer.order.api.query.VipOrderQuery; import com.bnyer.order.api.remote.RemoteVipOrderService; import com.bnyer.order.api.vo.VipOrderVo; import com.bnyer.pay.bo.QueryOrderBo; @@ -71,10 +71,10 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { switch (enumSceneCode){ //会员充值场景 case VIP_RECHARGE: - QueryVipOrderDto queryVipOrderDto = new QueryVipOrderDto(); - queryVipOrderDto.setOrderNo(dto.getOrderNo()); + VipOrderQuery vipOrderQuery = new VipOrderQuery(); + vipOrderQuery.setOrderNo(dto.getOrderNo()); //查询会员业务订单信息 - R> vipOrderVoListR = remoteVipOrderService.getVipOrderList(queryVipOrderDto); + R> vipOrderVoListR = remoteVipOrderService.queryVipOrderList(vipOrderQuery); if (!vipOrderVoListR.isSuccess()){ throw new ServiceException(vipOrderVoListR.getMsg()); } From 3dd6a73ddcbf10959fa9919bfdf9b6c0bd05be59 Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Wed, 10 May 2023 14:00:28 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnyer/img/api/dto/QueryUserVipDto.java | 23 ------- .../factory/RemoteWxMiniFallbackFactory.java | 15 ++--- .../img/api/remote/RemoteUserVipService.java | 24 +++++++ .../img/api/remote/RemoteWxMiniService.java | 27 -------- .../vo/{UserVipInfoVo.java => UserVipVo.java} | 2 +- .../RemoteVipOrderFallbackFactory.java | 6 ++ .../order/api/query/VipOrderExtQuery.java | 14 ++-- .../api/remote/RemoteVipOrderService.java | 13 +++- .../common/core/dto/QueryUserVipDto.java | 23 ------- .../img/controller/FhMiniController.java | 9 --- .../img/controller/TiktokMiniController.java | 10 --- .../img/controller/UserVipController.java | 43 ++++++++++++ .../img/controller/WxMiniController.java | 15 ++--- .../com/bnyer/img/mapper/UserVipMapper.java | 4 +- .../com/bnyer/img/query/UserVipQuery.java | 18 +++++ .../com/bnyer/img/service/UserVipService.java | 19 ++++-- .../img/service/impl/UserVipServiceImpl.java | 35 ++++++++-- .../com/bnyer/img/mapper/UserVipMapper.xml | 2 +- .../order/{ => bean}/dto/AddVipOrderDto.java | 2 +- .../order/bean/query/VipOrderExtQuery.java | 35 ++++++++++ .../order/{ => bean}/query/VipOrderQuery.java | 2 +- .../bnyer/order/{ => bean}/vo/VipOrderVo.java | 2 +- .../order/controller/VipOrderController.java | 29 ++++++-- .../bnyer/order/mapper/VipOrderMapper.java | 2 +- .../bnyer/order/service/VipOrderService.java | 11 ++- .../service/impl/VipOrderServiceImpl.java | 67 +++++++++---------- .../com/bnyer/order/vo/VipOrderDetailsVo.java | 16 ----- .../bnyer/pay/{ => bean}/bo/QueryOrderBo.java | 2 +- .../com/bnyer/pay/{ => bean}/bo/RefundBo.java | 2 +- .../pay/{ => bean}/bo/UnifiedOrderBo.java | 2 +- .../pay/{ => bean}/dto/AddPayInfoDto.java | 2 +- .../{ => bean}/dto/EditPayInfoNotifyDto.java | 2 +- .../{ => bean}/dto/EditPayInfoSingleDto.java | 2 +- .../pay/{ => bean}/dto/PayNotifyCheckDto.java | 2 +- .../pay/{ => bean}/dto/QueryOrderDto.java | 2 +- .../bnyer/pay/{ => bean}/dto/RefundDto.java | 2 +- .../pay/{ => bean}/dto/UnifiedOrderDto.java | 2 +- .../pay/{ => bean}/vo/PayInfoDetailsVo.java | 2 +- .../bnyer/pay/{ => bean}/vo/PayInfoVo.java | 2 +- .../bnyer/pay/{ => bean}/vo/QueryOrderVo.java | 2 +- .../pay/{ => bean}/vo/ThirdQueryOrderVo.java | 2 +- .../pay/{ => bean}/vo/ThirdRefundVo.java | 2 +- .../{ => bean}/vo/ThirdUnifiedOrderVo.java | 2 +- .../pay/{ => bean}/vo/UnifiedOrderVo.java | 2 +- .../pay/controller/UnifiedPayController.java | 8 +-- .../design/strategy/AbstractPayStrategy.java | 4 +- .../pay/design/strategy/AliPayStrategy.java | 16 ++--- .../pay/design/strategy/DYPayStrategy.java | 16 ++--- .../pay/design/strategy/IPayStrategy.java | 12 ++-- .../pay/design/strategy/KSPayStrategy.java | 17 +++-- .../pay/design/strategy/WxPayStrategy.java | 17 +++-- .../com/bnyer/pay/mapper/PayInfoMapper.java | 3 +- .../com/bnyer/pay/service/PayInfoService.java | 6 +- .../bnyer/pay/service/UnifiedPayService.java | 8 +-- .../pay/service/impl/PayInfoServiceImpl.java | 9 ++- .../service/impl/UnifiedPayServiceImpl.java | 27 ++++---- 56 files changed, 352 insertions(+), 293 deletions(-) delete mode 100644 bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/QueryUserVipDto.java create mode 100644 bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteUserVipService.java delete mode 100644 bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteWxMiniService.java rename bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/{UserVipInfoVo.java => UserVipVo.java} (96%) rename bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java => bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderExtQuery.java (57%) delete mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/QueryUserVipDto.java create mode 100644 bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java create mode 100644 bnyer-services/bnyer-img/src/main/java/com/bnyer/img/query/UserVipQuery.java rename bnyer-services/bnyer-order/src/main/java/com/bnyer/order/{ => bean}/dto/AddVipOrderDto.java (95%) create mode 100644 bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java rename bnyer-services/bnyer-order/src/main/java/com/bnyer/order/{ => bean}/query/VipOrderQuery.java (91%) rename bnyer-services/bnyer-order/src/main/java/com/bnyer/order/{ => bean}/vo/VipOrderVo.java (98%) delete mode 100644 bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/bo/QueryOrderBo.java (93%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/bo/RefundBo.java (86%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/bo/UnifiedOrderBo.java (97%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/AddPayInfoDto.java (98%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/EditPayInfoNotifyDto.java (95%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/EditPayInfoSingleDto.java (95%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/PayNotifyCheckDto.java (94%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/QueryOrderDto.java (94%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/RefundDto.java (86%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/dto/UnifiedOrderDto.java (97%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/PayInfoDetailsVo.java (88%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/PayInfoVo.java (98%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/QueryOrderVo.java (93%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/ThirdQueryOrderVo.java (98%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/ThirdRefundVo.java (75%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/ThirdUnifiedOrderVo.java (98%) rename bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/{ => bean}/vo/UnifiedOrderVo.java (98%) diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/QueryUserVipDto.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/QueryUserVipDto.java deleted file mode 100644 index 689c6ee..0000000 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/QueryUserVipDto.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bnyer.img.api.dto; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -/** - * @author :WXC - * @Date :2023/03/31 - * @description : - */ -@Getter -@Setter -@ApiModel("会员vip查询类") -public class QueryUserVipDto { - @ApiModelProperty(value="主键Id") - private Long id; - - @ApiModelProperty(value="vip客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信") - private Integer userClientType; - -} diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteWxMiniFallbackFactory.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteWxMiniFallbackFactory.java index 3196423..8c6d401 100644 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteWxMiniFallbackFactory.java +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteWxMiniFallbackFactory.java @@ -1,33 +1,30 @@ package com.bnyer.img.api.factory; import com.bnyer.common.core.domain.R; -import com.bnyer.img.api.dto.QueryUserVipDto; -import com.bnyer.img.api.remote.RemoteWxMiniService; -import com.bnyer.img.api.vo.UserVipInfoVo; +import com.bnyer.img.api.remote.RemoteUserVipService; +import com.bnyer.img.api.vo.UserVipVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; -import java.util.List; - /** * 图文服务降级处理 * * @author penny */ @Component -public class RemoteWxMiniFallbackFactory implements FallbackFactory +public class RemoteWxMiniFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteWxMiniFallbackFactory.class); @Override - public RemoteWxMiniService create(Throwable throwable) { + public RemoteUserVipService create(Throwable throwable) { log.error("api图文服务调用失败:{}", throwable.getMessage()); - return new RemoteWxMiniService() { + return new RemoteUserVipService() { @Override - public R> queryUserVipList(QueryUserVipDto dto) { + public R queryUserVip(Long id) { return R.fail("获取会员信息失败:+"+throwable.getMessage()); } diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteUserVipService.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteUserVipService.java new file mode 100644 index 0000000..da8241a --- /dev/null +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteUserVipService.java @@ -0,0 +1,24 @@ +package com.bnyer.img.api.remote; + +import com.bnyer.common.core.constant.ServiceNameConstants; +import com.bnyer.common.core.domain.R; +import com.bnyer.img.api.factory.RemoteWxMiniFallbackFactory; +import com.bnyer.img.api.vo.UserVipVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +/** + * @author :WXC + * @description : + */ +@FeignClient(path = "/img/mini/vip",contextId = "remoteWxMiniService", value = ServiceNameConstants.IMG_SERVICE, fallbackFactory = RemoteWxMiniFallbackFactory.class) +public interface RemoteUserVipService { + + /** + * 获取会员信息 + * @return + */ + @GetMapping(value = "/queryUserVip/{id}") + R queryUserVip(@PathVariable(value = "id") Long id); +} diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteWxMiniService.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteWxMiniService.java deleted file mode 100644 index 578a966..0000000 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteWxMiniService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bnyer.img.api.remote; - -import com.bnyer.common.core.constant.ServiceNameConstants; -import com.bnyer.common.core.domain.R; -import com.bnyer.img.api.dto.QueryUserVipDto; -import com.bnyer.img.api.factory.RemoteWxMiniFallbackFactory; -import com.bnyer.img.api.vo.UserVipInfoVo; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; - -/** - * @author :WXC - * @description : - */ -@FeignClient(contextId = "remoteWxMiniService", value = ServiceNameConstants.IMG_SERVICE, fallbackFactory = RemoteWxMiniFallbackFactory.class) -public interface RemoteWxMiniService { - - /** - * 获取会员列表 - * @return - */ - @PostMapping(value = "/img/mini/fh/queryUserVipList") - R> queryUserVipList(@RequestBody QueryUserVipDto dto); -} diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipInfoVo.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java similarity index 96% rename from bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipInfoVo.java rename to bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java index dad6916..67db1df 100644 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipInfoVo.java +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java @@ -12,7 +12,7 @@ import java.math.BigDecimal; @Getter @Setter @ApiModel("会员vip响应类") -public class UserVipInfoVo implements Serializable { +public class UserVipVo implements Serializable { @ApiModelProperty(value="主键Id") private Long id; diff --git a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java index 701eb37..dc47c56 100644 --- a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java +++ b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/factory/RemoteVipOrderFallbackFactory.java @@ -2,6 +2,7 @@ package com.bnyer.order.api.factory; import com.bnyer.common.core.domain.R; import com.bnyer.order.api.query.VipOrderQuery; +import com.bnyer.order.api.query.VipOrderExtQuery; import com.bnyer.order.api.remote.RemoteVipOrderService; import com.bnyer.order.api.vo.VipOrderVo; import org.slf4j.Logger; @@ -31,6 +32,11 @@ public class RemoteVipOrderFallbackFactory implements FallbackFactory> queryVipOrderList(VipOrderQuery query) { return R.fail("获取会员订单信息失败:+"+throwable.getMessage()); } + + @Override + public R queryVipOrder(VipOrderExtQuery query) { + return R.fail("获取会员订单信息失败:+"+throwable.getMessage()); + } }; } } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderExtQuery.java similarity index 57% rename from bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java rename to bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderExtQuery.java index 16da386..7d37f3f 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderDetailsQuery.java +++ b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/query/VipOrderExtQuery.java @@ -1,22 +1,26 @@ -package com.bnyer.order.query; +package com.bnyer.order.api.query; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import javax.validation.constraints.NotBlank; +import java.io.Serializable; /** * @author :WXC - * @Date :2023/05/09 + * @Date :2023/03/27 * @description : */ @Getter @Setter @NoArgsConstructor -public class VipOrderDetailsQuery { - @NotBlank(message = "订单号不能为空") +public class VipOrderExtQuery implements Serializable { + + @ApiModelProperty(value = "id") + private Long id; + @ApiModelProperty(value="订单号") private String orderNo; + } diff --git a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java index 729efa1..3fd1e45 100644 --- a/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java +++ b/bnyer-api/bnyer-api-order/src/main/java/com/bnyer/order/api/remote/RemoteVipOrderService.java @@ -2,8 +2,9 @@ package com.bnyer.order.api.remote; import com.bnyer.common.core.constant.ServiceNameConstants; import com.bnyer.common.core.domain.R; -import com.bnyer.order.api.query.VipOrderQuery; import com.bnyer.order.api.factory.RemoteVipOrderFallbackFactory; +import com.bnyer.order.api.query.VipOrderQuery; +import com.bnyer.order.api.query.VipOrderExtQuery; import com.bnyer.order.api.vo.VipOrderVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -16,7 +17,7 @@ import java.util.List; * @Date :2023/04/03 * @description :订单服务:vip订单接口远程调用 */ -@FeignClient(contextId = "remoteVipOrderService", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteVipOrderFallbackFactory.class) +@FeignClient(path = "/vip",contextId = "remoteVipOrderService", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteVipOrderFallbackFactory.class) public interface RemoteVipOrderService { /** @@ -24,6 +25,12 @@ public interface RemoteVipOrderService { * @param query * @return */ - @PostMapping("/vip/queryVipOrderList") + @PostMapping("/queryVipOrderList") R> queryVipOrderList(@RequestBody VipOrderQuery query); + + /** + * 查询会员订单信息(单表查询) + */ + @PostMapping("/queryVipOrder") + R queryVipOrder(@RequestBody VipOrderExtQuery query); } diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/QueryUserVipDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/QueryUserVipDto.java deleted file mode 100644 index ea669fe..0000000 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/QueryUserVipDto.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bnyer.common.core.dto; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -/** - * @author :WXC - * @Date :2023/03/31 - * @description : - */ -@Getter -@Setter -@ApiModel("会员vip查询类") -public class QueryUserVipDto { - @ApiModelProperty(value="主键Id") - private Long id; - - @ApiModelProperty(value="vip客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信") - private Integer userClientType; - -} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java index 378c584..b54fa80 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java @@ -64,9 +64,6 @@ public class FhMiniController extends BaseController { @Autowired private BzDataService bzDataService; - @Autowired - private UserVipService userVipService; - @Autowired private UserVipRecordService userVipRecordService; @@ -305,12 +302,6 @@ public class FhMiniController extends BaseController { return AjaxResult.error(); } - @ApiOperation(value="获取用户会员vip列表") - @PostMapping(value = "/queryUserVipList") - public R> queryUserVipList(@RequestBody QueryUserVipDto dto){ - return R.ok(userVipService.queryFront(dto)); - } - @ApiOperation(value="支付购买用户会员vip") @PostMapping(value = "/payUserVip") public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java index 491f5b2..3d5fcd8 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java @@ -64,9 +64,6 @@ public class TiktokMiniController extends BaseController { @Autowired private BzDataService bzDataService; - @Autowired - private UserVipService userVipService; - @Autowired private UserVipRecordService userVipRecordService; @@ -331,13 +328,6 @@ public class TiktokMiniController extends BaseController { } - @ApiOperation(value="获取用户会员vip列表") - @GetMapping(value = "/queryUserVipList") - public R> queryUserVipList(QueryUserVipDto dto){ - return R.ok(userVipService.queryFront(dto)); - } - - @ApiOperation(value="支付购买用户会员vip") @PostMapping(value = "/payUserVip") public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java new file mode 100644 index 0000000..8e2f856 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java @@ -0,0 +1,43 @@ +package com.bnyer.img.controller; + +import com.bnyer.common.core.domain.R; +import com.bnyer.img.query.UserVipQuery; +import com.bnyer.img.service.UserVipService; +import com.bnyer.img.vo.UserVipVo; +import io.swagger.annotations.Api; +import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author :WXC + * @Date :2023/05/10 + * @description : + */ +@Api(value = "【小程序】用户端接口",tags = "【小程序】用户端接口") +@RestController +@RequestMapping("/img/mini/vip") +@Slf4j +public class UserVipController { + + @Resource + private UserVipService userVipService; + + @Operation(summary="获取用户会员列表",description = "获取用户会员列表") + @PostMapping(value = "/queryUserVipList") + public R> queryUserVipList(@RequestBody UserVipQuery query){ + return R.ok(userVipService.queryUserVipList(query)); + } + + @Operation(summary="获取会员信息(单表查询)",description = "获取会员信息") + @GetMapping(value = "/queryUserVip/{id}") + public R queryUserVip(@PathVariable(value = "id") Long id){ + return R.ok(userVipService.queryUserVip(id)); + } + + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java index 8ca8379..f9d0e50 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java @@ -12,7 +12,10 @@ import com.bnyer.common.core.web.domain.AjaxResult; import com.bnyer.common.core.web.page.TableDataInfo; import com.bnyer.img.api.model.LoginWechatUser; import com.bnyer.img.service.*; -import com.bnyer.img.vo.*; +import com.bnyer.img.vo.CreatorDetailsVo; +import com.bnyer.img.vo.CreatorFollowVo; +import com.bnyer.img.vo.SignImgVo; +import com.bnyer.img.vo.TiktokImgVo; import com.github.pagehelper.PageHelper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -64,9 +67,6 @@ public class WxMiniController extends BaseController { @Autowired private BzDataService bzDataService; - @Autowired - private UserVipService userVipService; - @Autowired private UserVipRecordService userVipRecordService; @@ -318,13 +318,6 @@ public class WxMiniController extends BaseController { return AjaxResult.error(); } - - @ApiOperation(value="获取用户会员vip列表") - @GetMapping(value = "/queryUserVipList") - public R> queryUserVipList(QueryUserVipDto dto){ - return R.ok(userVipService.queryFront(dto)); - } - @ApiOperation(value="支付购买用户会员vip") @PostMapping(value = "/payUserVip") public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java index 73675ec..4cf1868 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java @@ -2,7 +2,7 @@ package com.bnyer.img.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.common.core.domain.UserVip; -import com.bnyer.common.core.dto.QueryUserVipDto; +import com.bnyer.img.query.UserVipQuery; import com.bnyer.img.vo.UserVipVo; import org.apache.ibatis.annotations.Mapper; @@ -15,6 +15,6 @@ public interface UserVipMapper extends BaseMapper { * 获取小程序端会员vip列表 * @return - */ - List queryFront(QueryUserVipDto dto); + List queryVipList(UserVipQuery query); } \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/query/UserVipQuery.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/query/UserVipQuery.java new file mode 100644 index 0000000..c3fe787 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/query/UserVipQuery.java @@ -0,0 +1,18 @@ +package com.bnyer.img.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author :WXC + * @Date :2023/03/31 + * @description : + */ +@Getter +@Setter +@ApiModel("会员查询类") +public class UserVipQuery { + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java index ad7f06e..f8e480f 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java @@ -1,16 +1,25 @@ package com.bnyer.img.service; -import com.bnyer.common.core.dto.QueryUserVipDto; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bnyer.common.core.domain.UserVip; +import com.bnyer.img.query.UserVipQuery; import com.bnyer.img.vo.UserVipVo; import java.util.List; -public interface UserVipService { +public interface UserVipService extends IService { /** - * 获取小程序端会员vip列表 - * @return - + * 获取用户会员列表 + * @param query + * @return */ - List queryFront(QueryUserVipDto dto); + List queryUserVipList(UserVipQuery query); + /** + * 获取会员详细信息 + * @param id + * @return + */ + UserVipVo queryUserVip(Long id); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java index 4f61520..7d673d1 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java @@ -1,7 +1,13 @@ package com.bnyer.img.service.impl; -import com.bnyer.common.core.dto.QueryUserVipDto; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bnyer.common.core.domain.UserVip; +import com.bnyer.common.core.enums.ResponseEnum; +import com.bnyer.common.core.exception.ServiceException; +import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.img.mapper.UserVipMapper; +import com.bnyer.img.query.UserVipQuery; import com.bnyer.img.service.UserVipService; import com.bnyer.img.vo.UserVipVo; import lombok.extern.slf4j.Slf4j; @@ -9,16 +15,37 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; @Service @Slf4j -public class UserVipServiceImpl implements UserVipService { +public class UserVipServiceImpl extends ServiceImpl implements UserVipService { @Autowired private UserVipMapper userVipMapper; + /** + * 获取用户会员列表 + * @param query + * @return + */ @Override - public List queryFront(QueryUserVipDto dto) { - return userVipMapper.queryFront(dto); + public List queryUserVipList(UserVipQuery query) { + return userVipMapper.queryVipList(query); + } + + /** + * 获取会员详细信息 + * @param id + * @return + */ + @Override + public UserVipVo queryUserVip(Long id) { + UserVip userVip = userVipMapper.selectOne(new LambdaQueryWrapper().eq(UserVip::getId, id).eq(UserVip::getIsShow, "1")); + if (Objects.isNull(userVip)){ + throw new ServiceException(ResponseEnum.NOT_EXIST,"会员信息"); + } + UserVipVo userVipVo = EntityConvertUtil.copy(userVip, UserVipVo.class); + return userVipVo; } } diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml index 26c8868..ead610e 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml @@ -39,7 +39,7 @@ v.update_time, v.sort - select , vt.type_code AS vip_type_code, diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/dto/AddVipOrderDto.java similarity index 95% rename from bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java rename to bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/dto/AddVipOrderDto.java index b213ab9..4913664 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/AddVipOrderDto.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/dto/AddVipOrderDto.java @@ -1,4 +1,4 @@ -package com.bnyer.order.dto; +package com.bnyer.order.bean.dto; import com.bnyer.common.core.domain.VipOrder; import com.bnyer.common.core.dto.BaseDto; diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java new file mode 100644 index 0000000..9ba7ee6 --- /dev/null +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java @@ -0,0 +1,35 @@ +package com.bnyer.order.bean.query; + +import com.bnyer.common.core.exception.ServiceException; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; + +import java.io.Serializable; + +/** + * @author :WXC + * @Date :2023/03/27 + * @description : + */ +@Getter +@Setter +@NoArgsConstructor +public class VipOrderExtQuery implements Serializable { + + @ApiModelProperty(value = "id") + private Long id; + + @ApiModelProperty(value="订单号") + private String orderNo; + + + public void valid() { + if (this.id == null || StringUtils.isBlank(this.orderNo)){ + throw new ServiceException("id 和 订单号不能同时为空"); + } + } + +} diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderQuery.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderQuery.java similarity index 91% rename from bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderQuery.java rename to bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderQuery.java index 37457ab..05da6aa 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/query/VipOrderQuery.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderQuery.java @@ -1,4 +1,4 @@ -package com.bnyer.order.query; +package com.bnyer.order.bean.query; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/vo/VipOrderVo.java similarity index 98% rename from bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java rename to bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/vo/VipOrderVo.java index 4d8ed14..47bc734 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/vo/VipOrderVo.java @@ -1,4 +1,4 @@ -package com.bnyer.order.vo; +package com.bnyer.order.bean.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java index b59b26f..2208272 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java @@ -2,16 +2,20 @@ package com.bnyer.order.controller; import com.bnyer.common.core.domain.R; import com.bnyer.common.core.web.controller.BaseController; -import com.bnyer.order.dto.AddVipOrderDto; -import com.bnyer.order.query.VipOrderQuery; +import com.bnyer.order.bean.dto.AddVipOrderDto; +import com.bnyer.order.bean.query.VipOrderExtQuery; +import com.bnyer.order.bean.query.VipOrderQuery; +import com.bnyer.order.bean.vo.VipOrderVo; import com.bnyer.order.service.VipOrderService; -import com.bnyer.order.vo.VipOrderVo; import io.swagger.annotations.Api; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; @@ -27,7 +31,7 @@ import java.util.List; public class VipOrderController extends BaseController { - @Autowired + @Resource private VipOrderService vipOrderService; @@ -42,7 +46,7 @@ public class VipOrderController extends BaseController { } /** - * 查询订单信息 + * 查询订单列表 */ @PostMapping("/queryVipOrderList") @Operation(summary = "查询会员订单列表信息" , description = "查询会员订单列表信息") @@ -51,4 +55,15 @@ public class VipOrderController extends BaseController { return R.ok(vipOrderVoList); } + /** + * 查询会员订单信息 + */ + @PostMapping("/queryVipOrder") + @Operation(summary = "查询会员订单信息(单表查询)" , description = "查询会员订单信息") + public R queryVipOrder(@RequestBody VipOrderExtQuery query) { + query.valid(); + VipOrderVo vipOrderVo = vipOrderService.queryVipOrder(query); + return R.ok(vipOrderVo); + } + } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java index 347da04..6c09ce1 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java @@ -2,7 +2,7 @@ package com.bnyer.order.mapper; import java.util.List; -import com.bnyer.order.query.VipOrderQuery; +import com.bnyer.order.bean.query.VipOrderQuery; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.common.core.domain.VipOrder; diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java index 906c3bf..b28a394 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java @@ -2,11 +2,10 @@ package com.bnyer.order.service; import com.baomidou.mybatisplus.extension.service.IService; import com.bnyer.common.core.domain.VipOrder; -import com.bnyer.order.query.VipOrderQuery; -import com.bnyer.order.dto.AddVipOrderDto; -import com.bnyer.order.query.VipOrderDetailsQuery; -import com.bnyer.order.vo.VipOrderDetailsVo; -import com.bnyer.order.vo.VipOrderVo; +import com.bnyer.order.bean.dto.AddVipOrderDto; +import com.bnyer.order.bean.query.VipOrderExtQuery; +import com.bnyer.order.bean.query.VipOrderQuery; +import com.bnyer.order.bean.vo.VipOrderVo; import java.util.List; @@ -44,7 +43,7 @@ public interface VipOrderService extends IService { * @param query * @return */ - VipOrderDetailsVo queryVipOrder(VipOrderDetailsQuery query); + VipOrderVo queryVipOrder(VipOrderExtQuery query); /** * 更新订单信息 diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java index 7e3c6f3..30f9d46 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java @@ -16,17 +16,15 @@ import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.common.core.vo.UserInfoVo; import com.bnyer.common.rocketmq.config.RocketMqConstant; import com.bnyer.common.security.utils.SecurityUtils; -import com.bnyer.img.api.dto.QueryUserVipDto; -import com.bnyer.img.api.remote.RemoteWxMiniService; -import com.bnyer.img.api.vo.UserVipInfoVo; -import com.bnyer.order.dto.AddVipOrderDto; -import com.bnyer.order.query.VipOrderDetailsQuery; -import com.bnyer.order.query.VipOrderQuery; +import com.bnyer.img.api.remote.RemoteUserVipService; +import com.bnyer.img.api.vo.UserVipVo; +import com.bnyer.order.bean.dto.AddVipOrderDto; +import com.bnyer.order.bean.query.VipOrderQuery; +import com.bnyer.order.bean.query.VipOrderExtQuery; +import com.bnyer.order.bean.vo.VipOrderVo; import com.bnyer.order.enums.EnumVipOrderStatus; import com.bnyer.order.mapper.VipOrderMapper; import com.bnyer.order.service.VipOrderService; -import com.bnyer.order.vo.VipOrderDetailsVo; -import com.bnyer.order.vo.VipOrderVo; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.SendStatus; import org.apache.rocketmq.spring.core.RocketMQTemplate; @@ -56,7 +54,7 @@ public class VipOrderServiceImpl extends ServiceImpl i private VipOrderMapper vipOrderMapper; @Autowired - private RemoteWxMiniService remoteWxMiniService; + private RemoteUserVipService remoteUserVipService; /** * 查询会员订单列表信息 @@ -76,8 +74,11 @@ public class VipOrderServiceImpl extends ServiceImpl i * @return */ @Override - public VipOrderDetailsVo queryVipOrder(VipOrderDetailsQuery query) { + public VipOrderVo queryVipOrder(VipOrderExtQuery query) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (Objects.nonNull(query.getId())){ + queryWrapper.eq(VipOrder::getId,query.getId()); + } if (StringUtils.isNotBlank(query.getOrderNo())){ queryWrapper.eq(VipOrder::getOrderNo,query.getOrderNo()); } @@ -85,8 +86,8 @@ public class VipOrderServiceImpl extends ServiceImpl i if (Objects.isNull(vipOrder)){ throw new ServiceException(ResponseEnum.NOT_EXIST,"会员订单"); } - VipOrderDetailsVo orderDetailsVo = EntityConvertUtil.copy(vipOrder, VipOrderDetailsVo.class); - return orderDetailsVo; + VipOrderVo vipOrderVo = EntityConvertUtil.copy(vipOrder, VipOrderVo.class); + return vipOrderVo; } @@ -120,23 +121,17 @@ public class VipOrderServiceImpl extends ServiceImpl i */ private VipOrder buildVipOrder(AddVipOrderDto addVipOrderDto) { //查询会员信息 - QueryUserVipDto queryUserVipDto = new QueryUserVipDto(); - queryUserVipDto.setId(addVipOrderDto.getVipId()); - R> userVipVoListResult = remoteWxMiniService.queryUserVipList(queryUserVipDto); - if (!userVipVoListResult.isSuccess()){ - log.error("内部接口调用异常:url:{}request{},result{},error:{}","queryUserVipList", JSON.toJSONString(queryUserVipDto),JSON.toJSONString(userVipVoListResult),userVipVoListResult.getMsg()); - throw new ServiceException(userVipVoListResult.getMsg()); - } - List userVipInfoVoList = userVipVoListResult.getData(); - if (CollUtil.isEmpty(userVipInfoVoList)){ - throw new ServiceException(ResponseEnum.NOT_EXIST,"会员信息"); + R userVipResult = remoteUserVipService.queryUserVip(addVipOrderDto.getVipId()); + if (!userVipResult.isSuccess()){ + log.error("内部接口调用异常:url:{}request{},result{},error:{}","queryUserVipList", addVipOrderDto.getVipId(),JSON.toJSONString(userVipResult),userVipResult.getMsg()); + throw new ServiceException(userVipResult.getMsg()); } - UserVipInfoVo userVipInfoVo = userVipInfoVoList.get(0); + UserVipVo userVipVo = userVipResult.getData(); VipOrder vipOrder = null; - EnumVipType enumVipType = EnumVipType.getVipTypeByCode(userVipInfoVo.getVipTypeCode()); + EnumVipType enumVipType = EnumVipType.getVipTypeByCode(userVipVo.getVipTypeCode()); switch (enumVipType){ case IMG_VIP: - vipOrder = buildImgVipOrder(userVipInfoVo,addVipOrderDto); + vipOrder = buildImgVipOrder(userVipVo,addVipOrderDto); break; case VIDEO_VIP: break; @@ -150,31 +145,31 @@ public class VipOrderServiceImpl extends ServiceImpl i /** * 构建下图会员订单 - * @param userVipInfoVo + * @param userVipDetailsVo * @param addVipOrderDto * @return */ - private VipOrder buildImgVipOrder(UserVipInfoVo userVipInfoVo, AddVipOrderDto addVipOrderDto) { + private VipOrder buildImgVipOrder(UserVipVo userVipVo, AddVipOrderDto addVipOrderDto) { VipOrder vipOrder = addVipOrderDto.toEntity(); UserInfoVo userInfo = SecurityUtils.getUserInfo(); Long userId = userInfo.getId(); Integer userClientType = userInfo.getUserClientType(); - vipOrder.setVipCode(userVipInfoVo.getVipCode()); - vipOrder.setVipName(userVipInfoVo.getVipName()); - vipOrder.setVipTypeName(userVipInfoVo.getVipTypeName()); + vipOrder.setVipCode(userVipVo.getVipCode()); + vipOrder.setVipName(userVipVo.getVipName()); + vipOrder.setVipTypeName(userVipVo.getVipTypeName()); //// TODO: 2023/05/10 待加密 vipOrder.setPhone(addVipOrderDto.getPhone()); - vipOrder.setVipName(userVipInfoVo.getVipName()); - vipOrder.setVipTypeName(userVipInfoVo.getVipTypeName()); - vipOrder.setPayAmount(userVipInfoVo.getPrice()); - vipOrder.setVipTypeName(userVipInfoVo.getVipTypeName()); + vipOrder.setVipName(userVipVo.getVipName()); + vipOrder.setVipTypeName(userVipVo.getVipTypeName()); + vipOrder.setPayAmount(userVipVo.getPrice()); + vipOrder.setVipTypeName(userVipVo.getVipTypeName()); vipOrder.setUserId(userId); // vipOrder.setIsDelay("0"); Date nowDate = new Date(); vipOrder.setStartTime(nowDate); - EnumTimeUnit enumTimeUnitByUnit = EnumTimeUnit.getEnumTimeUnitByUnit(userVipInfoVo.getValidTimeUnit()); + EnumTimeUnit enumTimeUnitByUnit = EnumTimeUnit.getEnumTimeUnitByUnit(userVipVo.getValidTimeUnit()); //计算会员结束时间 - vipOrder.setEndTime(DateUtils.getDateByType(enumTimeUnitByUnit,nowDate, userVipInfoVo.getValidTimeNum())); + vipOrder.setEndTime(DateUtils.getDateByType(enumTimeUnitByUnit,nowDate, userVipVo.getValidTimeNum())); //开通的天数 vipOrder.setDays((int) DateUtil.betweenDay(vipOrder.getStartTime(), vipOrder.getEndTime(), true)); vipOrder.setUserClientType(userClientType); diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java deleted file mode 100644 index 4f48dfe..0000000 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderDetailsVo.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bnyer.order.vo; - -import lombok.Getter; -import lombok.Setter; - -/** - * @author :WXC - * @Date :2023/03/27 - * @description : - */ -@Getter -@Setter -public class VipOrderDetailsVo extends VipOrderVo{ - - -} diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/QueryOrderBo.java similarity index 93% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/QueryOrderBo.java index e11717d..72521ab 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/QueryOrderBo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/QueryOrderBo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.bo; +package com.bnyer.pay.bean.bo; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/RefundBo.java similarity index 86% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/RefundBo.java index f448d03..4e93fe0 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/RefundBo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/RefundBo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.bo; +package com.bnyer.pay.bean.bo; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/UnifiedOrderBo.java similarity index 97% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/UnifiedOrderBo.java index 6196ffb..a5b8132 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bo/UnifiedOrderBo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/bo/UnifiedOrderBo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.bo; +package com.bnyer.pay.bean.bo; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/AddPayInfoDto.java similarity index 98% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/AddPayInfoDto.java index 46dd80f..7ed3f77 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/AddPayInfoDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/AddPayInfoDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import com.baomidou.mybatisplus.annotation.TableField; import com.bnyer.common.core.domain.PayInfo; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/EditPayInfoNotifyDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/EditPayInfoNotifyDto.java similarity index 95% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/EditPayInfoNotifyDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/EditPayInfoNotifyDto.java index 79af948..456d4ec 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/EditPayInfoNotifyDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/EditPayInfoNotifyDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/EditPayInfoSingleDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/EditPayInfoSingleDto.java similarity index 95% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/EditPayInfoSingleDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/EditPayInfoSingleDto.java index 0008067..35fab54 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/EditPayInfoSingleDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/EditPayInfoSingleDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/PayNotifyCheckDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/PayNotifyCheckDto.java similarity index 94% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/PayNotifyCheckDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/PayNotifyCheckDto.java index c65a65f..363474b 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/PayNotifyCheckDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/PayNotifyCheckDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import com.bnyer.common.core.enums.EnumPayType; import lombok.Getter; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/QueryOrderDto.java similarity index 94% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/QueryOrderDto.java index bff44d9..a1b406f 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/QueryOrderDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/QueryOrderDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/RefundDto.java similarity index 86% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/RefundDto.java index 09c921d..a48386d 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/RefundDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/RefundDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java similarity index 97% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java index 34df2fd..e564464 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/dto/UnifiedOrderDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.dto; +package com.bnyer.pay.bean.dto; import com.bnyer.common.core.annotation.CustomParamsValidation; import io.swagger.annotations.ApiModelProperty; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/PayInfoDetailsVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/PayInfoDetailsVo.java similarity index 88% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/PayInfoDetailsVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/PayInfoDetailsVo.java index 5b2dc4f..cc0fa96 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/PayInfoDetailsVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/PayInfoDetailsVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/PayInfoVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/PayInfoVo.java similarity index 98% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/PayInfoVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/PayInfoVo.java index 56a9868..20e0159 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/PayInfoVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/PayInfoVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/QueryOrderVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/QueryOrderVo.java similarity index 93% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/QueryOrderVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/QueryOrderVo.java index 9ab5baf..c892777 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/QueryOrderVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/QueryOrderVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdQueryOrderVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdQueryOrderVo.java similarity index 98% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdQueryOrderVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdQueryOrderVo.java index 34c9a17..e7a413e 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdQueryOrderVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdQueryOrderVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdRefundVo.java similarity index 75% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdRefundVo.java index 867d90b..51825af 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdRefundVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdRefundVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; /** * @author :WXC diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdUnifiedOrderVo.java similarity index 98% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdUnifiedOrderVo.java index 4f6f0a6..7bc707f 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/ThirdUnifiedOrderVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/ThirdUnifiedOrderVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; import io.swagger.annotations.ApiModelProperty; import lombok.*; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/UnifiedOrderVo.java similarity index 98% rename from bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java rename to bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/UnifiedOrderVo.java index 1362941..4772706 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/vo/UnifiedOrderVo.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/vo/UnifiedOrderVo.java @@ -1,4 +1,4 @@ -package com.bnyer.pay.vo; +package com.bnyer.pay.bean.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java index 9456a76..c0da0a4 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/UnifiedPayController.java @@ -1,11 +1,11 @@ package com.bnyer.pay.controller; import com.bnyer.common.core.domain.R; -import com.bnyer.pay.dto.UnifiedOrderDto; -import com.bnyer.pay.dto.QueryOrderDto; +import com.bnyer.pay.bean.dto.UnifiedOrderDto; +import com.bnyer.pay.bean.dto.QueryOrderDto; import com.bnyer.pay.service.UnifiedPayService; -import com.bnyer.pay.vo.UnifiedOrderVo; -import com.bnyer.pay.vo.QueryOrderVo; +import com.bnyer.pay.bean.vo.UnifiedOrderVo; +import com.bnyer.pay.bean.vo.QueryOrderVo; import io.swagger.annotations.Api; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java index 9f8142d..f066e7a 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AbstractPayStrategy.java @@ -6,9 +6,9 @@ import com.alipay.api.msg.MsgConstants; import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.enums.EnumPayType; import com.bnyer.common.redis.service.RedissonService; -import com.bnyer.pay.dto.PayNotifyCheckDto; +import com.bnyer.pay.bean.dto.PayNotifyCheckDto; import com.bnyer.pay.service.PayInfoService; -import com.bnyer.pay.vo.PayInfoDetailsVo; +import com.bnyer.pay.bean.vo.PayInfoDetailsVo; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Response; import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java index 75e95af..33e2c41 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/AliPayStrategy.java @@ -21,18 +21,18 @@ import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.DateUtils; import com.bnyer.common.core.utils.StringUtils; -import com.bnyer.pay.bo.QueryOrderBo; -import com.bnyer.pay.bo.RefundBo; -import com.bnyer.pay.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.bo.QueryOrderBo; +import com.bnyer.pay.bean.bo.RefundBo; +import com.bnyer.pay.bean.bo.UnifiedOrderBo; import com.bnyer.pay.constant.AliPayConstant; -import com.bnyer.pay.dto.EditPayInfoNotifyDto; -import com.bnyer.pay.dto.PayNotifyCheckDto; +import com.bnyer.pay.bean.dto.EditPayInfoNotifyDto; +import com.bnyer.pay.bean.dto.PayNotifyCheckDto; import com.bnyer.pay.enums.EnumPayChannel; import com.bnyer.pay.manager.AliPayManager; import com.bnyer.pay.service.PayInfoService; -import com.bnyer.pay.vo.ThirdRefundVo; -import com.bnyer.pay.vo.ThirdUnifiedOrderVo; -import com.bnyer.pay.vo.ThirdQueryOrderVo; +import com.bnyer.pay.bean.vo.ThirdRefundVo; +import com.bnyer.pay.bean.vo.ThirdUnifiedOrderVo; +import com.bnyer.pay.bean.vo.ThirdQueryOrderVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java index 6ecf4fb..eec946e 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java @@ -10,12 +10,12 @@ import com.bnyer.common.core.enums.EnumPayType; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.StringUtils; -import com.bnyer.pay.bo.QueryOrderBo; -import com.bnyer.pay.bo.RefundBo; -import com.bnyer.pay.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.bo.QueryOrderBo; +import com.bnyer.pay.bean.bo.RefundBo; +import com.bnyer.pay.bean.bo.UnifiedOrderBo; import com.bnyer.pay.constant.DYPayConstants; -import com.bnyer.pay.dto.EditPayInfoNotifyDto; -import com.bnyer.pay.dto.PayNotifyCheckDto; +import com.bnyer.pay.bean.dto.EditPayInfoNotifyDto; +import com.bnyer.pay.bean.dto.PayNotifyCheckDto; import com.bnyer.pay.enums.EnumPayChannel; import com.bnyer.pay.enums.EnumPayConfigStatus; import com.bnyer.pay.mapper.DypayConfigMapper; @@ -23,9 +23,9 @@ import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.utils.DYPayUtil; import com.bnyer.pay.utils.MoneyUtil; import com.bnyer.pay.utils.PayRestTemplateUtil; -import com.bnyer.pay.vo.ThirdRefundVo; -import com.bnyer.pay.vo.ThirdUnifiedOrderVo; -import com.bnyer.pay.vo.ThirdQueryOrderVo; +import com.bnyer.pay.bean.vo.ThirdRefundVo; +import com.bnyer.pay.bean.vo.ThirdUnifiedOrderVo; +import com.bnyer.pay.bean.vo.ThirdQueryOrderVo; import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; import com.github.binarywang.wxpay.bean.result.BaseWxPayResult; import lombok.extern.slf4j.Slf4j; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java index 09075d2..517ee70 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/IPayStrategy.java @@ -1,11 +1,11 @@ package com.bnyer.pay.design.strategy; -import com.bnyer.pay.bo.QueryOrderBo; -import com.bnyer.pay.bo.RefundBo; -import com.bnyer.pay.bo.UnifiedOrderBo; -import com.bnyer.pay.vo.ThirdRefundVo; -import com.bnyer.pay.vo.ThirdUnifiedOrderVo; -import com.bnyer.pay.vo.ThirdQueryOrderVo; +import com.bnyer.pay.bean.bo.QueryOrderBo; +import com.bnyer.pay.bean.bo.RefundBo; +import com.bnyer.pay.bean.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.vo.ThirdRefundVo; +import com.bnyer.pay.bean.vo.ThirdUnifiedOrderVo; +import com.bnyer.pay.bean.vo.ThirdQueryOrderVo; /** * @author :WXC diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java index fbe071f..679dd2d 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java @@ -6,18 +6,17 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.domain.KspayConfig; import com.bnyer.common.core.enums.EnumPayType; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.StringUtils; -import com.bnyer.pay.bo.QueryOrderBo; -import com.bnyer.pay.bo.RefundBo; -import com.bnyer.pay.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.bo.QueryOrderBo; +import com.bnyer.pay.bean.bo.RefundBo; +import com.bnyer.pay.bean.bo.UnifiedOrderBo; import com.bnyer.pay.constant.KSPayConstants; -import com.bnyer.pay.dto.EditPayInfoNotifyDto; -import com.bnyer.pay.dto.PayNotifyCheckDto; +import com.bnyer.pay.bean.dto.EditPayInfoNotifyDto; +import com.bnyer.pay.bean.dto.PayNotifyCheckDto; import com.bnyer.pay.enums.EnumPayChannel; import com.bnyer.pay.enums.EnumPayConfigStatus; import com.bnyer.pay.mapper.KspayConfigMapper; @@ -25,9 +24,9 @@ import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.utils.KSPayUtil; import com.bnyer.pay.utils.MoneyUtil; import com.bnyer.pay.utils.PayRestTemplateUtil; -import com.bnyer.pay.vo.ThirdRefundVo; -import com.bnyer.pay.vo.ThirdUnifiedOrderVo; -import com.bnyer.pay.vo.ThirdQueryOrderVo; +import com.bnyer.pay.bean.vo.ThirdRefundVo; +import com.bnyer.pay.bean.vo.ThirdUnifiedOrderVo; +import com.bnyer.pay.bean.vo.ThirdQueryOrderVo; import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java index 9506372..fd6af00 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java @@ -1,26 +1,25 @@ package com.bnyer.pay.design.strategy; import com.alibaba.fastjson.JSON; -import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.domain.WxpayConfig; import com.bnyer.common.core.enums.EnumPayType; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.StringUtils; -import com.bnyer.pay.bo.QueryOrderBo; -import com.bnyer.pay.bo.RefundBo; -import com.bnyer.pay.bo.UnifiedOrderBo; -import com.bnyer.pay.dto.EditPayInfoNotifyDto; -import com.bnyer.pay.dto.PayNotifyCheckDto; +import com.bnyer.pay.bean.bo.QueryOrderBo; +import com.bnyer.pay.bean.bo.RefundBo; +import com.bnyer.pay.bean.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.dto.EditPayInfoNotifyDto; +import com.bnyer.pay.bean.dto.PayNotifyCheckDto; import com.bnyer.pay.enums.EnumPayChannel; import com.bnyer.pay.enums.EnumTradeType; import com.bnyer.pay.enums.EnumWxPayStatus; import com.bnyer.pay.manager.WxPayManager; import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.utils.WXPayUtil; -import com.bnyer.pay.vo.ThirdRefundVo; -import com.bnyer.pay.vo.ThirdUnifiedOrderVo; -import com.bnyer.pay.vo.ThirdQueryOrderVo; +import com.bnyer.pay.bean.vo.ThirdRefundVo; +import com.bnyer.pay.bean.vo.ThirdUnifiedOrderVo; +import com.bnyer.pay.bean.vo.ThirdQueryOrderVo; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result; import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayInfoMapper.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayInfoMapper.java index 07257fc..1b7d77a 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayInfoMapper.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayInfoMapper.java @@ -2,9 +2,8 @@ package com.bnyer.pay.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.common.core.domain.PayInfo; -import com.bnyer.pay.dto.EditPayInfoSingleDto; +import com.bnyer.pay.bean.dto.EditPayInfoSingleDto; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; /** * @author :WXC diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java index b58473c..ebdcef9 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayInfoService.java @@ -2,9 +2,9 @@ package com.bnyer.pay.service; import com.bnyer.common.core.domain.PayInfo; import com.baomidou.mybatisplus.extension.service.IService; -import com.bnyer.pay.dto.AddPayInfoDto; -import com.bnyer.pay.dto.EditPayInfoNotifyDto; -import com.bnyer.pay.vo.PayInfoDetailsVo; +import com.bnyer.pay.bean.dto.AddPayInfoDto; +import com.bnyer.pay.bean.dto.EditPayInfoNotifyDto; +import com.bnyer.pay.bean.vo.PayInfoDetailsVo; /** * @author :WXC diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java index 0e70f08..75f8af8 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/UnifiedPayService.java @@ -1,9 +1,9 @@ package com.bnyer.pay.service; -import com.bnyer.pay.dto.UnifiedOrderDto; -import com.bnyer.pay.dto.QueryOrderDto; -import com.bnyer.pay.vo.UnifiedOrderVo; -import com.bnyer.pay.vo.QueryOrderVo; +import com.bnyer.pay.bean.dto.UnifiedOrderDto; +import com.bnyer.pay.bean.dto.QueryOrderDto; +import com.bnyer.pay.bean.vo.UnifiedOrderVo; +import com.bnyer.pay.bean.vo.QueryOrderVo; import javax.servlet.http.HttpServletRequest; diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java index 0e50d2c..0df3bd6 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayInfoServiceImpl.java @@ -10,12 +10,12 @@ import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.common.rocketmq.config.RocketMqConstant; -import com.bnyer.pay.dto.AddPayInfoDto; -import com.bnyer.pay.dto.EditPayInfoNotifyDto; -import com.bnyer.pay.dto.EditPayInfoSingleDto; +import com.bnyer.pay.bean.dto.AddPayInfoDto; +import com.bnyer.pay.bean.dto.EditPayInfoNotifyDto; +import com.bnyer.pay.bean.dto.EditPayInfoSingleDto; import com.bnyer.pay.mapper.PayInfoMapper; import com.bnyer.pay.service.PayInfoService; -import com.bnyer.pay.vo.PayInfoDetailsVo; +import com.bnyer.pay.bean.vo.PayInfoDetailsVo; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.producer.SendStatus; import org.apache.rocketmq.spring.core.RocketMQTemplate; @@ -24,7 +24,6 @@ import org.springframework.messaging.support.GenericMessage; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; import java.util.Objects; /** diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java index de714a6..3336c75 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java @@ -8,24 +8,24 @@ import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.common.core.utils.ip.IpUtils; import com.bnyer.common.core.vo.UserInfoVo; import com.bnyer.common.security.utils.SecurityUtils; -import com.bnyer.order.api.query.VipOrderQuery; +import com.bnyer.order.api.query.VipOrderExtQuery; import com.bnyer.order.api.remote.RemoteVipOrderService; import com.bnyer.order.api.vo.VipOrderVo; -import com.bnyer.pay.bo.QueryOrderBo; -import com.bnyer.pay.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.bo.QueryOrderBo; +import com.bnyer.pay.bean.bo.UnifiedOrderBo; +import com.bnyer.pay.bean.dto.AddPayInfoDto; +import com.bnyer.pay.bean.dto.QueryOrderDto; +import com.bnyer.pay.bean.dto.UnifiedOrderDto; +import com.bnyer.pay.bean.vo.*; import com.bnyer.pay.constant.KSPayConstants; import com.bnyer.pay.design.factory.PayFactory; import com.bnyer.pay.design.strategy.IPayStrategy; -import com.bnyer.pay.dto.AddPayInfoDto; -import com.bnyer.pay.dto.QueryOrderDto; -import com.bnyer.pay.dto.UnifiedOrderDto; import com.bnyer.pay.enums.EnumAliPayStatus; import com.bnyer.pay.enums.EnumDyPayStatus; import com.bnyer.pay.enums.EnumKsPayStatus; import com.bnyer.pay.enums.EnumWxPayStatus; import com.bnyer.pay.service.PayInfoService; import com.bnyer.pay.service.UnifiedPayService; -import com.bnyer.pay.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,7 +33,6 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.Date; -import java.util.List; import java.util.Objects; /** @@ -71,14 +70,14 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { switch (enumSceneCode){ //会员充值场景 case VIP_RECHARGE: - VipOrderQuery vipOrderQuery = new VipOrderQuery(); - vipOrderQuery.setOrderNo(dto.getOrderNo()); + VipOrderExtQuery vipOrderExtQuery = new VipOrderExtQuery(); + vipOrderExtQuery.setOrderNo(dto.getOrderNo()); //查询会员业务订单信息 - R> vipOrderVoListR = remoteVipOrderService.queryVipOrderList(vipOrderQuery); - if (!vipOrderVoListR.isSuccess()){ - throw new ServiceException(vipOrderVoListR.getMsg()); + R vipOrderR = remoteVipOrderService.queryVipOrder(vipOrderExtQuery); + if (!vipOrderR.isSuccess()){ + throw new ServiceException(vipOrderR.getMsg()); } - VipOrderVo vipOrderVo = vipOrderVoListR.getData().get(0); + VipOrderVo vipOrderVo = vipOrderR.getData(); payAmount = vipOrderVo.getPayAmount().toString(); goodsType = KSPayConstants.GOODS_TYPE_VIP; payId = OrderUtil.getOrderNo("RV",new Date(), EnumUserClientType.getCodeByType(vipOrderVo.getUserClientType()) From 77516afa82cd3ce64465d6a97fbef1c038166c45 Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Wed, 10 May 2023 16:58:24 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bnyer/img/api/vo/UserVipVo.java | 6 +- .../com/bnyer/common/core/domain/VipType.java | 30 ++++ .../bnyer/common/core/domain/WxpayConfig.java | 42 +++-- .../com/bnyer/common/core/dto/BaseDto.java | 2 - .../common/security/utils/SecurityUtils.java | 160 +++++++++--------- .../img/controller/UserVipController.java | 7 +- .../com/bnyer/img/mapper/VipTypeMapper.java | 15 ++ .../img/service/impl/UserVipServiceImpl.java | 8 + .../main/java/com/bnyer/img/vo/UserVipVo.java | 9 +- .../com/bnyer/img/mapper/UserVipMapper.xml | 1 - .../com/bnyer/img/mapper/VipTypeMapper.xml | 15 ++ .../order/bean/query/VipOrderExtQuery.java | 2 +- .../service/impl/VipOrderServiceImpl.java | 2 +- .../bnyer/pay/bean/dto/UnifiedOrderDto.java | 2 +- .../pay/design/strategy/WxPayStrategy.java | 2 +- .../com/bnyer/pay/enums/EnumTradeType.java | 4 +- .../com/bnyer/pay/manager/WxPayManager.java | 12 +- .../bnyer/pay/mapper/WxpayConfigMapper.xml | 6 +- 18 files changed, 211 insertions(+), 114 deletions(-) create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java create mode 100644 bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java create mode 100644 bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java index 67db1df..f38260c 100644 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java @@ -20,6 +20,9 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value="vip类型id") private Long vipTypeId; + @ApiModelProperty(value = "会员类型名称") + private String vipTypeName; + @ApiModelProperty(value="vip编码") private String vipCode; @@ -56,8 +59,5 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value = "会员类型编码") private String vipTypeCode; - @ApiModelProperty(value = "会员类型名称") - private String vipTypeName; - private static final long serialVersionUID = 1L; } diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java new file mode 100644 index 0000000..343462e --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java @@ -0,0 +1,30 @@ +package com.bnyer.common.core.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "img_vip_type") +public class VipType extends BaseDomain { + + /** + * 类型编码 + */ + @TableField(value = "type_code") + @ApiModelProperty(value="类型编码") + private String typeCode; + + /** + * 类型名称 + */ + @TableField(value = "type_name") + @ApiModelProperty(value="类型名称") + private String typeName; + +} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java index a9a60d8..573178c 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java @@ -28,18 +28,12 @@ import lombok.ToString; @NoArgsConstructor @TableName(value = "pay_wxpay_config") public class WxpayConfig extends BaseDomain { - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - @ApiModelProperty(value="主键") - private Long id; /** - * APP|JSAPI|MWEB|MINIPROGRAM 支付 + * 1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付 */ @TableField(value = "trade_type") - @ApiModelProperty(value="APP|JSAPI|MWEB|MINIPROGRAM 支付") + @ApiModelProperty(value="1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付") private String tradeType; /** @@ -66,14 +60,42 @@ public class WxpayConfig extends BaseDomain { /** * 密钥 */ - @TableField(value = "key") + @TableField(value = "`key`") @ApiModelProperty(value="密钥") private String key; + /** + * 接口密钥 + */ + @TableField(value = "api_key") + @ApiModelProperty(value="接口密钥") + private String apiKey; + + /** + * 证书序列号值 + */ + @TableField(value = "cert_serial_no") + @ApiModelProperty(value="证书序列号值") + private String certSerialNo; + + /** + * apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径. + */ + @TableField(value = "key_path") + @ApiModelProperty(value="apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径.") + private String keyPath; + + /** + * apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径. + */ + @TableField(value = "cert_path") + @ApiModelProperty(value="apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径.") + private String certPath; + /** * 帐号状态(0正常 1停用) */ - @TableField(value = "status") + @TableField(value = "`status`") @ApiModelProperty(value="帐号状态(0正常 1停用)") private String status; diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java index 9b8a38c..1756b3f 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java @@ -1,6 +1,5 @@ package com.bnyer.common.core.dto; -import cn.hutool.core.util.IdUtil; import com.bnyer.common.core.domain.BaseDomain; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.bean.ReflectUtils; @@ -63,7 +62,6 @@ public class BaseDto implements Serializable { T entityInstance = ReflectUtils.newInstance(entity); BeanUtils.copyProperties(this, entityInstance); if (this.id == null) { - entityInstance.setId(IdUtil.getSnowflakeNextId()); entityInstance.setIsShow("1"); entityInstance.setCreateTime(new Date()); entityInstance.setUpdateTime(null); diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java index c0a9ac3..d5d701e 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java @@ -34,83 +34,89 @@ public class SecurityUtils * @return - */ public static UserInfoVo getUserInfo(){ - String platform = ServletUtils.getRequest().getHeader("platform"); - if(StringUtils.isBlank(platform)){ - throw new ServiceException(ResponseEnum.NOT_AUTH); - } - EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); - switch (userClientType){ - case DU: - UserInfoVo tiktokUserInfo = new UserInfoVo(); - LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); - tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); - tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); - tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); - tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); - tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); - tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); - tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); - tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); - tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); - tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); - tiktokUserInfo.setUserClientType(userClientType.getType()); - return tiktokUserInfo; - case WU: - UserInfoVo wechatUserInfo = new UserInfoVo(); - LoginWechatUser loginWechatUser = getLoginWechatUser(); - wechatUserInfo.setId(loginWechatUser.getWxUserId()); - wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); - wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); - wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); - wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); - wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); - wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); - wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); - wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); - wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); - wechatUserInfo.setUserClientType(userClientType.getType()); - return wechatUserInfo; - case KU: - UserInfoVo fhUserInfo = new UserInfoVo(); - LoginFhUser loginFhUser = getLoginFhUser(); - fhUserInfo.setId(loginFhUser.getFhUserId()); - fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); - fhUserInfo.setUserName(loginFhUser.getFhUserName()); - fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); - fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); - fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); - fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); - fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); - fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); - fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); - fhUserInfo.setUserClientType(userClientType.getType()); - return fhUserInfo; - case WY: - UserInfoVo creatorInfo = new UserInfoVo(); - LoginCreator loginCreator = getLoginCreator(); - creatorInfo.setId(loginCreator.getCreatorId()); - creatorInfo.setPhone(loginCreator.getCreatorPhone()); - creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); - creatorInfo.setAmt(loginCreator.getCreator().getAmt()); - creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); - creatorInfo.setStatus(loginCreator.getCreator().getStatus()); - creatorInfo.setUrl(loginCreator.getCreator().getUrl()); - creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); - creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); - creatorInfo.setIntro(loginCreator.getCreator().getIntro()); - creatorInfo.setUserName(loginCreator.getCreator().getName()); - creatorInfo.setIpaddr(loginCreator.getIpaddr()); - creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); - creatorInfo.setImg(loginCreator.getCreator().getImg()); - creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); - creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); - creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); - creatorInfo.setSort(loginCreator.getCreator().getSort()); - creatorInfo.setUserClientType(userClientType.getType()); - return creatorInfo; - default: - throw new ServiceException("userClientType 未匹配上对应用户类型"); - } + UserInfoVo userInfoVo = new UserInfoVo(); + userInfoVo.setId(1L); + userInfoVo.setOpenId("iHbleh46vtOeGeyl91XOkdTrgjAv5BL6Sf64txO21gE="); + userInfoVo.setUserClientType(EnumUserClientType.WU.getType()); + return userInfoVo; + // TODO: 2023/05/10 暂时屏蔽 +// String platform = ServletUtils.getRequest().getHeader("platform"); +// if(StringUtils.isBlank(platform)){ +// throw new ServiceException(ResponseEnum.NOT_AUTH); +// } +// EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); +// switch (userClientType){ +// case DU: +// UserInfoVo tiktokUserInfo = new UserInfoVo(); +// LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); +// tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); +// tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); +// tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); +// tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); +// tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); +// tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); +// tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); +// tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); +// tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); +// tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); +// tiktokUserInfo.setUserClientType(userClientType.getType()); +// return tiktokUserInfo; +// case WU: +// UserInfoVo wechatUserInfo = new UserInfoVo(); +// LoginWechatUser loginWechatUser = getLoginWechatUser(); +// wechatUserInfo.setId(loginWechatUser.getWxUserId()); +// wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); +// wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); +// wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); +// wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); +// wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); +// wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); +// wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); +// wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); +// wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); +// wechatUserInfo.setUserClientType(userClientType.getType()); +// return wechatUserInfo; +// case KU: +// UserInfoVo fhUserInfo = new UserInfoVo(); +// LoginFhUser loginFhUser = getLoginFhUser(); +// fhUserInfo.setId(loginFhUser.getFhUserId()); +// fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); +// fhUserInfo.setUserName(loginFhUser.getFhUserName()); +// fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); +// fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); +// fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); +// fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); +// fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); +// fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); +// fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); +// fhUserInfo.setUserClientType(userClientType.getType()); +// return fhUserInfo; +// case WY: +// UserInfoVo creatorInfo = new UserInfoVo(); +// LoginCreator loginCreator = getLoginCreator(); +// creatorInfo.setId(loginCreator.getCreatorId()); +// creatorInfo.setPhone(loginCreator.getCreatorPhone()); +// creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); +// creatorInfo.setAmt(loginCreator.getCreator().getAmt()); +// creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); +// creatorInfo.setStatus(loginCreator.getCreator().getStatus()); +// creatorInfo.setUrl(loginCreator.getCreator().getUrl()); +// creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); +// creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); +// creatorInfo.setIntro(loginCreator.getCreator().getIntro()); +// creatorInfo.setUserName(loginCreator.getCreator().getName()); +// creatorInfo.setIpaddr(loginCreator.getIpaddr()); +// creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); +// creatorInfo.setImg(loginCreator.getCreator().getImg()); +// creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); +// creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); +// creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); +// creatorInfo.setSort(loginCreator.getCreator().getSort()); +// creatorInfo.setUserClientType(userClientType.getType()); +// return creatorInfo; +// default: +// throw new ServiceException("userClientType 未匹配上对应用户类型"); +// } } //******************************通用获取信息结束********************************************* diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java index 8e2f856..dd441e2 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java @@ -7,7 +7,6 @@ import com.bnyer.img.vo.UserVipVo; import io.swagger.annotations.Api; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -18,7 +17,7 @@ import java.util.List; * @Date :2023/05/10 * @description : */ -@Api(value = "【小程序】用户端接口",tags = "【小程序】用户端接口") +@Api(value = "会员相关接口",tags = "会员相关接口") @RestController @RequestMapping("/img/mini/vip") @Slf4j @@ -27,13 +26,13 @@ public class UserVipController { @Resource private UserVipService userVipService; - @Operation(summary="获取用户会员列表",description = "获取用户会员列表") + @Operation(summary="获取会员列表",description = "获取会员列表") @PostMapping(value = "/queryUserVipList") public R> queryUserVipList(@RequestBody UserVipQuery query){ return R.ok(userVipService.queryUserVipList(query)); } - @Operation(summary="获取会员信息(单表查询)",description = "获取会员信息") + @Operation(summary="获取会员信息",description = "获取会员信息") @GetMapping(value = "/queryUserVip/{id}") public R queryUserVip(@PathVariable(value = "id") Long id){ return R.ok(userVipService.queryUserVip(id)); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java new file mode 100644 index 0000000..177677a --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java @@ -0,0 +1,15 @@ +package com.bnyer.img.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bnyer.common.core.domain.UserVip; +import com.bnyer.common.core.domain.VipType; +import com.bnyer.img.query.UserVipQuery; +import com.bnyer.img.vo.UserVipVo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface VipTypeMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java index 7d673d1..608d0e6 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java @@ -3,10 +3,12 @@ package com.bnyer.img.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bnyer.common.core.domain.UserVip; +import com.bnyer.common.core.domain.VipType; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.img.mapper.UserVipMapper; +import com.bnyer.img.mapper.VipTypeMapper; import com.bnyer.img.query.UserVipQuery; import com.bnyer.img.service.UserVipService; import com.bnyer.img.vo.UserVipVo; @@ -24,6 +26,9 @@ public class UserVipServiceImpl extends ServiceImpl impl @Autowired private UserVipMapper userVipMapper; + @Autowired + private VipTypeMapper vipTypeMapper; + /** * 获取用户会员列表 * @param query @@ -45,7 +50,10 @@ public class UserVipServiceImpl extends ServiceImpl impl if (Objects.isNull(userVip)){ throw new ServiceException(ResponseEnum.NOT_EXIST,"会员信息"); } + VipType vipType = vipTypeMapper.selectById(userVip.getVipTypeId()); UserVipVo userVipVo = EntityConvertUtil.copy(userVip, UserVipVo.class); + userVipVo.setVipTypeCode(vipType.getTypeCode()); + userVipVo.setVipTypeName(vipType.getTypeName()); return userVipVo; } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java index b247082..32b8628 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java @@ -20,15 +20,15 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value="vip类型id") private Long vipTypeId; + @ApiModelProperty(value = "会员类型名称") + private String vipTypeName; + @ApiModelProperty(value="vip编码") private String vipCode; @ApiModelProperty(value="vip名称") private String vipName; - @ApiModelProperty(value = "vip类型:下图:0(月卡) 1(季卡) 2(年卡)") - private String vipType; - @ApiModelProperty(value="原价") private BigDecimal originPrice; @@ -59,8 +59,5 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value = "会员类型编码") private String vipTypeCode; - @ApiModelProperty(value = "会员类型名称") - private String vipTypeName; - private static final long serialVersionUID = 1L; } diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml index ead610e..4d5c474 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml @@ -6,7 +6,6 @@ - diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml new file mode 100644 index 0000000..677c648 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java index 9ba7ee6..3541719 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java @@ -27,7 +27,7 @@ public class VipOrderExtQuery implements Serializable { public void valid() { - if (this.id == null || StringUtils.isBlank(this.orderNo)){ + if (this.id == null && StringUtils.isBlank(this.orderNo)){ throw new ServiceException("id 和 订单号不能同时为空"); } } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java index 30f9d46..042c469 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java @@ -145,7 +145,7 @@ public class VipOrderServiceImpl extends ServiceImpl i /** * 构建下图会员订单 - * @param userVipDetailsVo + * @param userVipVo * @param addVipOrderDto * @return */ diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java index e564464..aed3d82 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java @@ -28,7 +28,7 @@ public class UnifiedOrderDto { private Integer sceneCode; @NotBlank(message = "支付类型不能为空") - @ApiModelProperty(value="支付类型:wxpay/alipay",required = true) + @ApiModelProperty(value="支付类型:wxpay/alipay/dypay/kspay",required = true) private String payType; @ApiModelProperty(value="交易类型 1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付,微信支付必填",example = "1") diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java index fd6af00..44d131b 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java @@ -60,7 +60,7 @@ public class WxPayStrategy extends AbstractPayStrategy { public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { log.info("微信支付:统一下单接口调用开始,WxPayStrategy.unifiedOrder bo:{}",JSON.toJSONString(bo)); ThirdUnifiedOrderVo thirdUnifiedOrderVo = null; - EnumTradeType payByTradeType = EnumTradeType.getPayByTradeType(bo.getTradeType()); + EnumTradeType payByTradeType = EnumTradeType.getEnumByCode(bo.getTradeType()); switch (payByTradeType){ case JSAPI_MINI: thirdUnifiedOrderVo = jsApiPay(bo); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java index b9fa152..38c42aa 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java @@ -24,11 +24,11 @@ public enum EnumTradeType { private final String code; - private final String name; + private final String type; private final String desc; - public static EnumTradeType getPayByTradeType(String code) { + public static EnumTradeType getEnumByCode(String code) { return Arrays.stream(values()) .filter(tradeType -> tradeType.getCode().equals(code)) .findFirst().orElse(EnumTradeType.UNKNOWN); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java index 14162a2..7b32a43 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java @@ -1,10 +1,12 @@ package com.bnyer.pay.manager; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bnyer.common.core.domain.WxpayConfig; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.SpringUtils; +import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.pay.enums.EnumPayConfigStatus; import com.bnyer.pay.enums.EnumTradeType; import com.bnyer.pay.mapper.WxpayConfigMapper; @@ -61,15 +63,17 @@ public class WxPayManager { public WxPayService getWxPayService(WxpayConfig wxpayConfig){ String appId = wxpayConfig.getAppid(); String mchId = wxpayConfig.getMchid(); - String key = wxpayConfig.getKey(); + String apiKey = wxpayConfig.getApiKey(); String backUrl = wxpayConfig.getBackurl(); WxPayConfig payConfig = new WxPayConfig(); payConfig.setAppId(appId); payConfig.setMchId(mchId); - payConfig.setMchKey(key); - payConfig.setSignType(WxPayConstants.SignType.MD5); + payConfig.setApiV3Key(apiKey); payConfig.setNotifyUrl(backUrl); - payConfig.setTradeType(EnumTradeType.getPayByTradeType(wxpayConfig.getTradeType()).getName()); + payConfig.setTradeType(EnumTradeType.getEnumByCode(wxpayConfig.getTradeType()).getType()); + payConfig.setPrivateCertPath(wxpayConfig.getCertPath()); + payConfig.setPrivateKeyPath(wxpayConfig.getKeyPath()); + payConfig.setCertSerialNo(wxpayConfig.getCertSerialNo()); WxPayService wxPayService = new WxPayServiceImpl(); wxPayService.setConfig(payConfig); return wxPayService; diff --git a/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml b/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml index ffd24f4..db623a6 100644 --- a/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml +++ b/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml @@ -10,6 +10,10 @@ + + + + @@ -19,6 +23,6 @@ - id, trade_type, appid, mchid, backurl, `key`, `status`, remark, create_time, update_time, sort, is_show + id, trade_type, appid, mchid, backurl, `key`,api_key,cert_serial_no,key_path,cert_path, `status`, remark, create_time, update_time, sort, is_show