Commit e2a07d8f13286e9377f9940c21e877319006e615

Authored by dengwei
1 parent 34d290d2

fix number convert

cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizOrder.java
@@ -17,9 +17,8 @@ import org.apache.commons.lang3.math.NumberUtils; @@ -17,9 +17,8 @@ import org.apache.commons.lang3.math.NumberUtils;
17 import org.springframework.beans.BeanUtils; 17 import org.springframework.beans.BeanUtils;
18 18
19 import java.time.LocalDateTime; 19 import java.time.LocalDateTime;
20 -import java.util.Arrays;  
21 -import java.util.List;  
22 -import java.util.Optional; 20 +import java.util.*;
  21 +import java.util.stream.Collectors;
23 22
24 /** 23 /**
25 * MallBizOrder 24 * MallBizOrder
@@ -348,8 +347,13 @@ public class MallBizOrder extends BaseDO { @@ -348,8 +347,13 @@ public class MallBizOrder extends BaseDO {
348 /** 347 /**
349 * of 348 * of
350 */ 349 */
351 - public static List<MallBizOrder> of(final List<OrderCO> orderCos, 350 + public static List<MallBizOrder> of(final List<MallBizOrder> existOrders,
  351 + final List<OrderCO> orderCos,
352 final AuthLoginCO authLogin) { 352 final AuthLoginCO authLogin) {
  353 + Map<String, Long> existOrderMapId = Optional.ofNullable(existOrders).orElse(Collections.emptyList())
  354 + .stream()
  355 + .collect(Collectors.toMap(MallBizOrder::getOrderId, BaseDO::getId));
  356 +
353 MallSnowflakeKeyManager snowflakeKeyManager = SpringContextUtils.getBean(MallSnowflakeKeyManager.class); 357 MallSnowflakeKeyManager snowflakeKeyManager = SpringContextUtils.getBean(MallSnowflakeKeyManager.class);
354 List<MallBizOrder> mallBizOrders = orderCos 358 List<MallBizOrder> mallBizOrders = orderCos
355 .stream() 359 .stream()
@@ -358,7 +362,8 @@ public class MallBizOrder extends BaseDO { @@ -358,7 +362,8 @@ public class MallBizOrder extends BaseDO {
358 MallBizOrder mallBizOrder = new MallBizOrder(); 362 MallBizOrder mallBizOrder = new MallBizOrder();
359 BeanUtils.copyProperties(orderCo, mallBizOrder); 363 BeanUtils.copyProperties(orderCo, mallBizOrder);
360 364
361 - mallBizOrder.setId(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_ORDER_ID)); 365 + Long id = existOrderMapId.getOrDefault(orderCo.getOrderId(), snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_ORDER_ID));
  366 + mallBizOrder.setId(id);
362 mallBizOrder.setOrderNo(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_ORDER_ID).toString()); 367 mallBizOrder.setOrderNo(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_ORDER_ID).toString());
363 mallBizOrder.setOrderExpire(Optional.ofNullable(orderCo.getOrderExpire()).orElse(10)); 368 mallBizOrder.setOrderExpire(Optional.ofNullable(orderCo.getOrderExpire()).orElse(10));
364 BeanUtils.copyProperties(authLogin, mallBizOrder); 369 BeanUtils.copyProperties(authLogin, mallBizOrder);
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizRefund.java
@@ -9,6 +9,7 @@ import com.diligrp.cashier.shared.domain.BaseDO; @@ -9,6 +9,7 @@ import com.diligrp.cashier.shared.domain.BaseDO;
9 import com.diligrp.cashier.shared.spi.domain.RefundResultBO; 9 import com.diligrp.cashier.shared.spi.domain.RefundResultBO;
10 import com.diligrp.cashier.shared.util.SpringContextUtils; 10 import com.diligrp.cashier.shared.util.SpringContextUtils;
11 import com.diligrp.cashier.trade.type.SnowflakeKey; 11 import com.diligrp.cashier.trade.type.SnowflakeKey;
  12 +import org.apache.commons.lang3.ObjectUtils;
12 import org.springframework.beans.BeanUtils; 13 import org.springframework.beans.BeanUtils;
13 14
14 import java.time.LocalDateTime; 15 import java.time.LocalDateTime;
@@ -365,6 +366,7 @@ public class MallBizRefund extends BaseDO { @@ -365,6 +366,7 @@ public class MallBizRefund extends BaseDO {
365 mallBizRefund.setPayTradeNo(mallBizPaymentOrder.getPayTradeNo()); 366 mallBizRefund.setPayTradeNo(mallBizPaymentOrder.getPayTradeNo());
366 mallBizRefund.setPayTradeId(mallBizPaymentOrder.getPayTradeId()); 367 mallBizRefund.setPayTradeId(mallBizPaymentOrder.getPayTradeId());
367 mallBizRefund.setCreaterName(refundCo.getUserCode()); 368 mallBizRefund.setCreaterName(refundCo.getUserCode());
  369 + mallBizRefund.setRefundFee(ObjectUtils.defaultIfNull(refundCo.getRefundFee(), mallBizRefund.getRefundFee()));
368 370
369 // 回调地址 371 // 回调地址
370 RtMallDynamicProperty rtMallDynamicProperty = SpringContextUtils.getBean(RtMallDynamicProperty.class); 372 RtMallDynamicProperty rtMallDynamicProperty = SpringContextUtils.getBean(RtMallDynamicProperty.class);
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/biz/impl/MallBizOrderServiceImpl.java
@@ -73,8 +73,11 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { @@ -73,8 +73,11 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
73 public OrderSuccessVO createOrder(List<OrderCO> orderCos) { 73 public OrderSuccessVO createOrder(List<OrderCO> orderCos) {
74 AuthLoginCO authLogin = getAuthLogin(orderCos.getFirst().getUserCode(), orderCos.getFirst().getOrderType()); 74 AuthLoginCO authLogin = getAuthLogin(orderCos.getFirst().getUserCode(), orderCos.getFirst().getOrderType());
75 75
  76 + // order - 扫码购存在相同订单重复扫码下单接口
  77 + List<MallBizOrder> existOrders = mallBizOrderDao.listByOrderIds(orderCos.stream().map(OrderCO::getOrderId).toList(), authLogin.getSource());
  78 +
76 // order 79 // order
77 - List<MallBizOrder> mallBizOrders = MallBizOrder.of(orderCos, authLogin); 80 + List<MallBizOrder> mallBizOrders = MallBizOrder.of(existOrders, orderCos, authLogin);
78 81
79 // payment 82 // payment
80 MallBizPayment mallBizPayment = MallBizPayment.of(mallBizOrders); 83 MallBizPayment mallBizPayment = MallBizPayment.of(mallBizOrders);
@@ -83,7 +86,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { @@ -83,7 +86,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
83 submitOrder(mallBizPayment, mallBizOrders); 86 submitOrder(mallBizPayment, mallBizOrders);
84 87
85 // save 88 // save
86 - commonCreate(mallBizOrders, mallBizPayment); 89 + commonCreate(existOrders, mallBizOrders, mallBizPayment);
87 return new OrderSuccessVO(mallBizPayment.getPayTradeNo(), mallBizPayment.getCashierUrl()); 90 return new OrderSuccessVO(mallBizPayment.getPayTradeNo(), mallBizPayment.getCashierUrl());
88 } 91 }
89 92
@@ -142,15 +145,13 @@ public class MallBizOrderServiceImpl implements MallBizOrderService { @@ -142,15 +145,13 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
142 /** 145 /**
143 * commonCreate 146 * commonCreate
144 */ 147 */
145 - public void commonCreate(final List<MallBizOrder> mallBizOrders, 148 + public void commonCreate(final List<MallBizOrder> existOrders,
  149 + final List<MallBizOrder> mallBizOrders,
146 final MallBizPayment mallBizPayment) { 150 final MallBizPayment mallBizPayment) {
147 if (CollectionUtils.isEmpty(mallBizOrders)) { 151 if (CollectionUtils.isEmpty(mallBizOrders)) {
148 return; 152 return;
149 } 153 }
150 154
151 - // order - 扫码购存在相同订单重复扫码下单接口  
152 - List<MallBizOrder> existOrders = mallBizOrderDao.listByOrderIds(mallBizOrders.stream().map(MallBizOrder::getOrderId).toList(), mallBizOrders.getFirst().getSource());  
153 -  
154 // save 155 // save
155 batchInsert(mallBizOrders, existOrders); 156 batchInsert(mallBizOrders, existOrders);
156 157
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/paychannel/CardPayChannel.java
@@ -32,14 +32,19 @@ public class CardPayChannel extends AbstractPayChannel { @@ -32,14 +32,19 @@ public class CardPayChannel extends AbstractPayChannel {
32 Optional.ofNullable(payer).ifPresent(user -> { 32 Optional.ofNullable(payer).ifPresent(user -> {
33 mallBizPayment.setCardNo((String) user.get("cardNo")); 33 mallBizPayment.setCardNo((String) user.get("cardNo"));
34 mallBizPayment.setUsername((String) user.get("name")); 34 mallBizPayment.setUsername((String) user.get("name"));
35 - mallBizPayment.setUserId((Long) user.get("customerId"));  
36 - mallBizPayment.setAccountId((Long) user.get("accountId")); 35 + mallBizPayment.setUserId(convertLong(user.get("customerId")));
  36 + mallBizPayment.setAccountId(convertLong(user.get("accountId")));
37 }); 37 });
38 } catch (Exception e) { 38 } catch (Exception e) {
39 LOG.warn("parse payerId json error, tradeId={} outTradeNo={}", event.getTradeId(), event.getOutTradeNo(), e); 39 LOG.warn("parse payerId json error, tradeId={} outTradeNo={}", event.getTradeId(), event.getOutTradeNo(), e);
40 } 40 }
41 } 41 }
42 42
  43 +
  44 + private Long convertLong(Object value) {
  45 + return value != null ? ((Number) value).longValue() : null;
  46 + }
  47 +
43 @Override 48 @Override
44 public Integer getPayChannel() { 49 public Integer getPayChannel() {
45 return ChannelType.DILIPAY.getCode(); 50 return ChannelType.DILIPAY.getCode();