Commit e2a07d8f13286e9377f9940c21e877319006e615
1 parent
34d290d2
fix number convert
Showing
4 changed files
with
26 additions
and
13 deletions
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(); | ... | ... |