订单支付金额为0时问题解决。
This commit is contained in:
		
							parent
							
								
									203abe1087
								
							
						
					
					
						commit
						c2367f763f
					
				@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					package cn.lili.event.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.lili.event.TradeEvent;
 | 
				
			||||||
 | 
					import cn.lili.modules.order.cart.entity.dto.TradeDTO;
 | 
				
			||||||
 | 
					import cn.lili.modules.order.order.service.TradeService;
 | 
				
			||||||
 | 
					import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 订单状态处理类
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Chopper
 | 
				
			||||||
 | 
					 * @date 2020-07-03 11:20
 | 
				
			||||||
 | 
					 **/
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class OrderStatusHandlerExecute implements TradeEvent {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private TradeService tradeService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void orderCreate(TradeDTO tradeDTO) {
 | 
				
			||||||
 | 
					        //如果订单需要支付金额为0,则将订单步入到下一个流程
 | 
				
			||||||
 | 
					        if (tradeDTO.getPriceDetailDTO().getFlowPrice() <= 0) {
 | 
				
			||||||
 | 
					            tradeService.payTrade(tradeDTO.getSn(), PaymentMethodEnum.BANK_TRANSFER.name(), "-1");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -141,6 +141,7 @@ public enum ResultCode {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 支付
 | 
					     * 支付
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					    PAY_UN_WANTED(32000, "当前订单不需要付款,返回订单列表等待系统订单出库即可"),
 | 
				
			||||||
    PAY_SUCCESS(32001, "支付成功"),
 | 
					    PAY_SUCCESS(32001, "支付成功"),
 | 
				
			||||||
    PAY_INCONSISTENT_ERROR(32002, "付款金额和应付金额不一致"),
 | 
					    PAY_INCONSISTENT_ERROR(32002, "付款金额和应付金额不一致"),
 | 
				
			||||||
    PAY_DOUBLE_ERROR(32003, "订单已支付,不能再次进行支付"),
 | 
					    PAY_DOUBLE_ERROR(32003, "订单已支付,不能再次进行支付"),
 | 
				
			||||||
 | 
				
			|||||||
@ -220,6 +220,8 @@ public class Order extends BaseEntity {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //设置默认支付状态
 | 
				
			||||||
        this.setOrderStatus(OrderStatusEnum.UNPAID.name());
 | 
					        this.setOrderStatus(OrderStatusEnum.UNPAID.name());
 | 
				
			||||||
        this.setPayStatus(PayStatusEnum.UNPAID.name());
 | 
					        this.setPayStatus(PayStatusEnum.UNPAID.name());
 | 
				
			||||||
        this.setDeliverStatus(DeliverStatusEnum.UNDELIVERED.name());
 | 
					        this.setDeliverStatus(DeliverStatusEnum.UNDELIVERED.name());
 | 
				
			||||||
 | 
				
			|||||||
@ -145,7 +145,10 @@ public class CashierSupport {
 | 
				
			|||||||
    public CashierParam cashierParam(PayParam payParam) {
 | 
					    public CashierParam cashierParam(PayParam payParam) {
 | 
				
			||||||
        for (CashierExecute paramInterface : cashierExecuteList) {
 | 
					        for (CashierExecute paramInterface : cashierExecuteList) {
 | 
				
			||||||
            CashierParam cashierParam = paramInterface.getPaymentParams(payParam);
 | 
					            CashierParam cashierParam = paramInterface.getPaymentParams(payParam);
 | 
				
			||||||
            if (cashierParam != null) {
 | 
					            //如果订单不需要付款,则抛出异常,直接返回
 | 
				
			||||||
 | 
					            if (cashierParam.getPrice() <= 0) {
 | 
				
			||||||
 | 
					                throw new ServiceException(ResultCode.PAY_UN_WANTED);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            cashierParam.setSupport(support(payParam.getClientType()));
 | 
					            cashierParam.setSupport(support(payParam.getClientType()));
 | 
				
			||||||
            cashierParam.setWalletValue(memberWalletService.getMemberWallet(UserContext.getCurrentUser().getId()).getMemberWallet());
 | 
					            cashierParam.setWalletValue(memberWalletService.getMemberWallet(UserContext.getCurrentUser().getId()).getMemberWallet());
 | 
				
			||||||
            OrderSetting orderSetting = JSONUtil.toBean(settingService.get(SettingEnum.ORDER_SETTING.name()).getSettingValue(), OrderSetting.class);
 | 
					            OrderSetting orderSetting = JSONUtil.toBean(settingService.get(SettingEnum.ORDER_SETTING.name()).getSettingValue(), OrderSetting.class);
 | 
				
			||||||
@ -153,12 +156,17 @@ public class CashierSupport {
 | 
				
			|||||||
            cashierParam.setAutoCancel(cashierParam.getCreateTime().getTime() + minute * 1000 * 60);
 | 
					            cashierParam.setAutoCancel(cashierParam.getCreateTime().getTime() + minute * 1000 * 60);
 | 
				
			||||||
            return cashierParam;
 | 
					            return cashierParam;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        log.error("错误的支付请求:{}", payParam.toString());
 | 
					        log.error("错误的支付请求:{}", payParam.toString());
 | 
				
			||||||
        throw new ServiceException(ResultCode.PAY_CASHIER_ERROR);
 | 
					        throw new ServiceException(ResultCode.PAY_CASHIER_ERROR);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 支付结果
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param payParam
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    public Boolean paymentResult(PayParam payParam) {
 | 
					    public Boolean paymentResult(PayParam payParam) {
 | 
				
			||||||
        for (CashierExecute cashierExecute : cashierExecuteList) {
 | 
					        for (CashierExecute cashierExecute : cashierExecuteList) {
 | 
				
			||||||
            if (cashierExecute.cashierEnum().name().equals(payParam.getOrderType())) {
 | 
					            if (cashierExecute.cashierEnum().name().equals(payParam.getOrderType())) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user