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 17 import org.springframework.beans.BeanUtils;
18 18  
19 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 24 * MallBizOrder
... ... @@ -348,8 +347,13 @@ public class MallBizOrder extends BaseDO {
348 347 /**
349 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 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 357 MallSnowflakeKeyManager snowflakeKeyManager = SpringContextUtils.getBean(MallSnowflakeKeyManager.class);
354 358 List<MallBizOrder> mallBizOrders = orderCos
355 359 .stream()
... ... @@ -358,7 +362,8 @@ public class MallBizOrder extends BaseDO {
358 362 MallBizOrder mallBizOrder = new MallBizOrder();
359 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 367 mallBizOrder.setOrderNo(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_ORDER_ID).toString());
363 368 mallBizOrder.setOrderExpire(Optional.ofNullable(orderCo.getOrderExpire()).orElse(10));
364 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 9 import com.diligrp.cashier.shared.spi.domain.RefundResultBO;
10 10 import com.diligrp.cashier.shared.util.SpringContextUtils;
11 11 import com.diligrp.cashier.trade.type.SnowflakeKey;
  12 +import org.apache.commons.lang3.ObjectUtils;
12 13 import org.springframework.beans.BeanUtils;
13 14  
14 15 import java.time.LocalDateTime;
... ... @@ -365,6 +366,7 @@ public class MallBizRefund extends BaseDO {
365 366 mallBizRefund.setPayTradeNo(mallBizPaymentOrder.getPayTradeNo());
366 367 mallBizRefund.setPayTradeId(mallBizPaymentOrder.getPayTradeId());
367 368 mallBizRefund.setCreaterName(refundCo.getUserCode());
  369 + mallBizRefund.setRefundFee(ObjectUtils.defaultIfNull(refundCo.getRefundFee(), mallBizRefund.getRefundFee()));
368 370  
369 371 // 回调地址
370 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 73 public OrderSuccessVO createOrder(List<OrderCO> orderCos) {
74 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 79 // order
77   - List<MallBizOrder> mallBizOrders = MallBizOrder.of(orderCos, authLogin);
  80 + List<MallBizOrder> mallBizOrders = MallBizOrder.of(existOrders, orderCos, authLogin);
78 81  
79 82 // payment
80 83 MallBizPayment mallBizPayment = MallBizPayment.of(mallBizOrders);
... ... @@ -83,7 +86,7 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
83 86 submitOrder(mallBizPayment, mallBizOrders);
84 87  
85 88 // save
86   - commonCreate(mallBizOrders, mallBizPayment);
  89 + commonCreate(existOrders, mallBizOrders, mallBizPayment);
87 90 return new OrderSuccessVO(mallBizPayment.getPayTradeNo(), mallBizPayment.getCashierUrl());
88 91 }
89 92  
... ... @@ -142,15 +145,13 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
142 145 /**
143 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 150 final MallBizPayment mallBizPayment) {
147 151 if (CollectionUtils.isEmpty(mallBizOrders)) {
148 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 155 // save
155 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 32 Optional.ofNullable(payer).ifPresent(user -> {
33 33 mallBizPayment.setCardNo((String) user.get("cardNo"));
34 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 38 } catch (Exception e) {
39 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 48 @Override
44 49 public Integer getPayChannel() {
45 50 return ChannelType.DILIPAY.getCode();
... ...