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,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(); |