update订单逻辑改造工厂模式

This commit is contained in:
2023-09-04 15:37:43 +08:00
parent 7cc8563de6
commit f6621a9a22
5 changed files with 28 additions and 15 deletions

View File

@@ -14,6 +14,9 @@ import com.jsowell.common.util.id.IdUtils;
import com.jsowell.pile.domain.MemberBasicInfo;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.service.IMemberBasicInfoService;
import com.jsowell.pile.service.IPileMerchantInfoService;
import com.jsowell.pile.service.orderlogic.AbstractOrderLogic;
import com.jsowell.pile.service.orderlogic.OrderLogicFactory;
import com.jsowell.pile.vo.uniapp.PayModeVO;
import com.jsowell.service.MemberService;
import com.jsowell.service.OrderService;
@@ -48,6 +51,9 @@ public class PayController extends BaseController {
@Autowired
private IMemberBasicInfoService memberBasicInfoService;
@Autowired
private IPileMerchantInfoService pileMerchantInfoService;
/**
* 充值余额支付/微信余额充值
* 提供给小程序使用
@@ -273,7 +279,13 @@ public class PayController extends BaseController {
// }
dto.setOpenId(memberBasicInfo.getOpenId());
// 充值余额 附加参数
Map<String, Object> weixinMap = memberService.rechargeBalanceWithAdapay(dto);
// Map<String, Object> weixinMap = memberService.rechargeBalanceWithAdapay(dto);
String mode = pileMerchantInfoService.getDelayModeByWechatAppId(dto.getWechatAppId());
// 获取处理逻辑
AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode);
Map<String, Object> weixinMap = orderLogic.rechargeBalance(dto);
response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap));
} catch (BusinessException e) {
logger.error("汇付余额充值接口 error", e);

View File

@@ -67,7 +67,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
*/
@Override
public OrderBasicInfo generateOrder(GenerateOrderDTO dto) throws ParseException {
logger.info("{}-生成订单start, param:{}", this.getClass().getSimpleName(), JSONObject.toJSONString(dto));
logger.info("{}-生成订单start, param:{}", this.getClass().getSimpleName(), JSONObject.toJSONString(dto));
// 处理前端传的参数
analysisPileParameter(dto);
@@ -185,7 +185,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
@Override
public Map<String, Object> payOrder(PayOrderDTO dto) {
logger.info("{}-支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
logger.info("{}-支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
if (orderInfo == null) {
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL);
@@ -220,7 +220,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
*/
@Transactional(rollbackFor = Exception.class)
public void balancePayOrder(PayOrderDTO dto) {
logger.info("{}-余额支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
logger.info("{}-余额支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
// 订单编号
String orderCode = dto.getOrderCode();
// 支付金额
@@ -328,7 +328,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
* 在线支付订单
*/
public Map<String, Object> onlinePaymentOrder(PayOrderDTO dto) {
logger.info("{}-在线支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
logger.info("{}-在线支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
Map<String, Object> weixinMap = adapayService.createPayment(dto);
return weixinMap;
}
@@ -337,7 +337,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
* 白名单支付订单
*/
public void whitelistPaymentOrder(PayOrderDTO dto) {
logger.info("{}-白名单支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
logger.info("{}-白名单支付订单start, param:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
String orderCode = dto.getOrderCode();
BigDecimal payAmount = dto.getPayAmount();
String payMode = dto.getPayMode();
@@ -358,7 +358,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
*/
@Override
public void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) {
logger.info("{}-结算订单start data:{}, orderBasicInfo:{}", this.getClass().getSimpleName(), data.toString(), JSON.toJSONString(orderBasicInfo));
logger.info("{}-结算订单start data:{}, orderBasicInfo:{}", this.getClass().getSimpleName(), data.toString(), JSON.toJSONString(orderBasicInfo));
// 判断订单状态
if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) {
logger.info("结算订单:{}, 是订单完成状态", orderBasicInfo.getOrderCode());
@@ -425,7 +425,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
logger.info("订单:{}使用白名单支付,不进行退款处理", orderBasicInfo.getOrderCode());
}
} catch (Exception e) {
logger.error("{}-订单退款逻辑异常orderCode:{}", this.getClass().getSimpleName(), orderBasicInfo.getOrderCode(), e);
logger.error("{}-订单退款逻辑异常orderCode:{}", this.getClass().getSimpleName(), orderBasicInfo.getOrderCode(), e);
}
}
@@ -436,6 +436,7 @@ public class DelayMerchantOrderLogic extends AbstractOrderLogic {
*/
@Override
public Map<String, Object> rechargeBalance(WeixinPayDTO dto) {
logger.info("【{}】-余额充值start dto:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
// 获取支付配置
AbstractAdapayConfig config = AdapayConfigFactory.getConfig(dto.getWechatAppId());
if (config == null) {

View File

@@ -408,6 +408,7 @@ public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
*/
@Override
public Map<String, Object> rechargeBalance(WeixinPayDTO dto) {
logger.info("【{}】-余额充值start dto:{}", this.getClass().getSimpleName(), JSON.toJSONString(dto));
// 获取支付配置
AbstractAdapayConfig config = AdapayConfigFactory.getConfig(dto.getWechatAppId());
if (config == null) {
@@ -439,10 +440,6 @@ public class NotDelayMerchantOrderLogic extends AbstractOrderLogic{
map.put("payMode", payMode);
map.put("memberId", dto.getMemberId());
createAdaPaymentParam.setDescription(JSON.toJSONString(map));
// 延时分账
if (StringUtils.isNotBlank(payMode)) {
createAdaPaymentParam.setPay_mode(payMode);
}
try {
logger.info("创建汇付支付参数:{}", JSONObject.toJSONString(createAdaPaymentParam));
Map<String, Object> response = Payment.create(BeanMap.create(createAdaPaymentParam), config.getWechatAppId());

View File

@@ -5,9 +5,11 @@ import com.jsowell.wxpay.common.WeChatPayParameter;
import com.jsowell.wxpay.utils.WechatPayUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
// @Order(value = 2)
// @Component
@Order(value = 2)
@Component
public class WechatPayConfig implements CommandLineRunner {
/**
* 公众号appid

View File

@@ -2,8 +2,9 @@ package com.jsowell.wxpay.config;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
// @Component
@Component
public class WeixinLoginProperties implements InitializingBean {
@Value("${weixin.login.gateway}")