Commit c09450ac949257ddae57f2e83b164c5692d2e1ef

Authored by dengwei
1 parent a28e3d3b

feat sync source

cashier-mall/src/main/java/com/diligrp/cashier/mall/context/MallInitializeContext.java
... ... @@ -22,7 +22,7 @@ import java.util.Optional;
22 22 */
23 23 @Component
24 24 public class MallInitializeContext implements InitializingBean, DisposableBean {
25   - private static final Logger log = LoggerFactory.getLogger(MallInitializeContext.class);
  25 + private static final Logger LOG = LoggerFactory.getLogger(MallInitializeContext.class);
26 26 public static Map<Integer, AbstractSourceChannel> SOURCE_CHANNEL_MAP = Maps.newConcurrentMap();
27 27 public static Map<Integer, AbstractPayChannel> PAY_CHANNEL_MAP = Maps.newConcurrentMap();
28 28  
... ... @@ -38,6 +38,7 @@ public class MallInitializeContext implements InitializingBean, DisposableBean {
38 38 SpringContextUtils.getBeanOfTpe(AbstractPayChannel.class).forEach((key, value) -> {
39 39 PAY_CHANNEL_MAP.put(value.getPayChannel(), value);
40 40 });
  41 + LOG.info("MallInitializeContext initialize success");
41 42 }
42 43  
43 44 /**
... ... @@ -45,7 +46,7 @@ public class MallInitializeContext implements InitializingBean, DisposableBean {
45 46 */
46 47 @Override
47 48 public void destroy() throws Exception {
48   - log.info("spring container destroy");
  49 + LOG.info("spring container destroy");
49 50 }
50 51  
51 52 /**
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/domain/sams/package-info.java 0 → 100644
  1 +/**
  2 + * @ClassName package-info.java
  3 + * @author dengwei
  4 + * @version 1.0.0
  5 + * @Description TODO
  6 + * @date 2026-01-08 15:00
  7 + */
  8 +package com.diligrp.cashier.mall.domain.sams;
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/exception/MallException.java
... ... @@ -13,10 +13,10 @@ import com.diligrp.cashier.shared.exception.PlatformServiceException;
13 13 public class MallException extends PlatformServiceException {
14 14  
15 15 public MallException(String message) {
16   - super(ErrorCode.SYSTEM_UNKNOWN_ERROR, message);
  16 + super(ErrorCode.SYSTEM_UNKNOWN_ERROR, message, Boolean.TRUE);
17 17 }
18 18  
19 19 public MallException(String code, String message) {
20   - super(code, message);
  20 + super(code, message, Boolean.TRUE);
21 21 }
22 22 }
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/exception/RtMartMallException.java
1 1 package com.diligrp.cashier.mall.exception;
2 2  
3   -import com.diligrp.cashier.mall.MallConstants;
4 3 import com.diligrp.cashier.mall.type.RtMarkErrorCode;
5 4 import com.diligrp.cashier.shared.ErrorCode;
6 5  
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizOrder.java
... ... @@ -7,6 +7,7 @@ import com.diligrp.cashier.mall.type.OrderState;
7 7 import com.diligrp.cashier.mall.type.RtmartState;
8 8 import com.diligrp.cashier.mall.util.MallSnowflakeKeyManager;
9 9 import com.diligrp.cashier.shared.domain.BaseDO;
  10 +import com.diligrp.cashier.shared.type.SourceType;
10 11 import com.diligrp.cashier.shared.util.SpringContextUtils;
11 12 import com.diligrp.cashier.trade.type.SnowflakeKey;
12 13 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
... ... @@ -59,8 +60,8 @@ public class MallBizOrder extends BaseDO {
59 60 private String mchId;
60 61  
61 62 /**
62   - * 订单来源(1大润发 2山姆)-换取回调地址
63   - * @see com.diligrp.cashier.mall.type.OrderSource
  63 + * 订单来源(10大润发 2山姆)-换取回调地址
  64 + * @see SourceType
64 65 */
65 66 private Integer source;
66 67  
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/model/MallBizPayment.java
... ... @@ -108,7 +108,6 @@ public class MallBizPayment extends BaseDO {
108 108  
109 109 /**
110 110 * 支付渠道(微信 园区卡)
111   - * @see com.diligrp.cashier.mall.type.PaymentChanel
112 111 * @see com.diligrp.cashier.pipeline.type.ChannelType
113 112 */
114 113 private Integer channelId;
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/biz/impl/MallBizOrderServiceImpl.java
... ... @@ -17,10 +17,13 @@ import com.diligrp.cashier.mall.model.*;
17 17 import com.diligrp.cashier.mall.service.biz.MallBizOrderService;
18 18 import com.diligrp.cashier.mall.service.biz.MallBizPaymentService;
19 19 import com.diligrp.cashier.mall.type.OrderState;
  20 +import com.diligrp.cashier.mall.type.OrderType;
20 21 import com.diligrp.cashier.mall.type.RtMarkErrorCode;
  22 +import com.diligrp.cashier.shared.exception.PlatformServiceException;
21 23 import com.diligrp.cashier.shared.spi.ICashierDeskManager;
22 24 import com.diligrp.cashier.shared.spi.domain.CashierOrderBO;
23 25 import com.diligrp.cashier.shared.spi.domain.PaymentUrlBO;
  26 +import com.diligrp.cashier.shared.type.SourceType;
24 27 import com.diligrp.cashier.shared.util.JsonUtils;
25 28 import jakarta.annotation.Resource;
26 29 import org.apache.commons.collections4.CollectionUtils;
... ... @@ -40,7 +43,6 @@ import java.util.Optional;
40 43 * @author dengwei
41 44 * @version 1.0.0
42 45 * @Description MallBizOrderServiceImpl
43   - * @date 2025-12-26 14:42
44 46 */
45 47 @Service
46 48 public class MallBizOrderServiceImpl implements MallBizOrderService {
... ... @@ -63,7 +65,6 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
63 65  
64 66 /**
65 67 * createOrder
66   - *
67 68 */
68 69 @Override
69 70 @Transactional(rollbackFor = {Exception.class})
... ... @@ -86,7 +87,6 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
86 87  
87 88 /**
88 89 * info
89   - *
90 90 */
91 91 @Override
92 92 public OrderPaymentVO info(OrderInfoCO orderInfoCo) {
... ... @@ -178,7 +178,6 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
178 178  
179 179 /**
180 180 * getByOrderId
181   - *
182 181 */
183 182 @Override
184 183 public MallBizOrder getByOrderId(String orderId) {
... ... @@ -241,14 +240,18 @@ public class MallBizOrderServiceImpl implements MallBizOrderService {
241 240 cashierOrderBO.setMchId(Long.valueOf(mallBizPayment.getMchId()));
242 241 cashierOrderBO.setUserId(mallBizPayment.getUserCode());
243 242 cashierOrderBO.setCashierType(2);
244   - cashierOrderBO.setGoods("大润发支付");
245 243 cashierOrderBO.setAmount(mallBizPayment.getPayFee());
246 244 cashierOrderBO.setOutTradeNo(mallBizPayment.getPayTradeNo());
247 245 // 支付成功跳转页面
248 246 cashierOrderBO.setRedirectUrl(mallBizPayment.getCashierResultUrl());
249   - cashierOrderBO.setDescription("大润发在线支付");
250   - cashierOrderBO.setAttach("大润发在线支付");
251 247 cashierOrderBO.setTimeout(mallBizOrders.getFirst().getOrderExpire() * 1000);
  248 + cashierOrderBO.setSource(mallBizOrders.getFirst().getSource());
  249 + cashierOrderBO.setGoods(
  250 + SourceType.getName(mallBizOrders.getFirst().getSource()) +
  251 + OrderType.getDescription(mallBizOrders.getFirst().getOrderType()) + "支付!"
  252 + );
  253 + cashierOrderBO.setDescription(cashierOrderBO.getGoods());
  254 + cashierOrderBO.setAttach(cashierOrderBO.getGoods());
252 255 PaymentUrlBO paymentUrlBO = cashierDeskManager.submitOrder(cashierOrderBO);
253 256 Optional.ofNullable(paymentUrlBO).ifPresent(vo -> {
254 257 mallBizPayment.setCashierUrl(vo.paymentUrl());
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/sourcechannel/RtMallChannel.java
... ... @@ -11,12 +11,12 @@ import com.diligrp.cashier.mall.model.MallBizPayment;
11 11 import com.diligrp.cashier.mall.model.MallBizPaymentOrder;
12 12 import com.diligrp.cashier.mall.model.MallBizRefund;
13 13 import com.diligrp.cashier.mall.property.RtMallDynamicProperty;
14   -import com.diligrp.cashier.mall.type.OrderSource;
15 14 import com.diligrp.cashier.mall.type.OrderType;
16 15 import com.diligrp.cashier.mall.util.HttpClientUtils;
17 16 import com.diligrp.cashier.mall.util.RtMallSignMd5Utils;
18 17 import com.diligrp.cashier.shared.spi.domain.PaymentResultBO;
19 18 import com.diligrp.cashier.shared.spi.domain.RefundResultBO;
  19 +import com.diligrp.cashier.shared.type.SourceType;
20 20 import com.diligrp.cashier.shared.util.DateUtils;
21 21 import com.diligrp.cashier.shared.util.JsonUtils;
22 22 import com.diligrp.cashier.shared.util.UrlParamParserUtils;
... ... @@ -125,7 +125,7 @@ public class RtMallChannel extends AbstractSourceChannel {
125 125 param.put("event", event);
126 126 param.put("mallBizPayment", mallBizPayment);
127 127 param.put("callBackMethod", "pay");
128   - param.put("source", OrderSource.RT_MART.getCode());
  128 + param.put("source", mallBizOrder.getSource());
129 129 sendDelayMessage(JsonUtils.toJsonString(param));
130 130 }
131 131 LOG.info("payCallBack message: {}", JsonUtils.toJsonString(message));
... ... @@ -153,7 +153,7 @@ public class RtMallChannel extends AbstractSourceChannel {
153 153 param.put("event", event);
154 154 param.put("mallBizRefund", mallBizRefund);
155 155 param.put("callBackMethod", "refund");
156   - param.put("source", OrderSource.RT_MART.getCode());
  156 + param.put("source", mallBizOrder.getSource());
157 157 sendDelayMessage(JsonUtils.toJsonString(param));
158 158 }
159 159 LOG.info("refundCallBack message: {}", JsonUtils.toJsonString(message));
... ... @@ -180,6 +180,6 @@ public class RtMallChannel extends AbstractSourceChannel {
180 180  
181 181 @Override
182 182 public Integer source() {
183   - return OrderSource.RT_MART.getCode();
  183 + return SourceType.RTMARK.getCode();
184 184 }
185 185 }
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/service/sourcechannel/SamMallChannel.java 0 → 100644
  1 +package com.diligrp.cashier.mall.service.sourcechannel;
  2 +
  3 +import com.diligrp.cashier.mall.domain.rtmall.co.AuthLoginCO;
  4 +import com.diligrp.cashier.mall.domain.rtmall.vo.UserInfoVO;
  5 +import com.diligrp.cashier.mall.model.MallBizPayment;
  6 +import com.diligrp.cashier.mall.model.MallBizRefund;
  7 +import com.diligrp.cashier.mall.property.RtMallDynamicProperty;
  8 +import com.diligrp.cashier.shared.spi.domain.PaymentResultBO;
  9 +import com.diligrp.cashier.shared.spi.domain.RefundResultBO;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
  12 +import org.springframework.stereotype.Component;
  13 +
  14 +/**
  15 + * @ClassName SamsMallChannel.java
  16 + * @author dengwei
  17 + * @version 1.0.0
  18 + * 山姆订单来源渠道
  19 + * @Description SamMallChannel
  20 + */
  21 +@Component
  22 +public class SamMallChannel extends AbstractSourceChannel {
  23 + private static final Logger LOG = LoggerFactory.getLogger(SamMallChannel.class);
  24 +
  25 + @Override
  26 + public String authUrl(AuthLoginCO authLogin, String token, long timestamp) {
  27 + return "";
  28 + }
  29 +
  30 + @Override
  31 + public void userInfoChannel(UserInfoVO authLogin, RtMallDynamicProperty.AppSecretDynamicProperty userInfoVO) {
  32 +
  33 + }
  34 +
  35 + @Override
  36 + public void payCallBack(PaymentResultBO event, MallBizPayment mallBizPayment) {
  37 +
  38 + }
  39 +
  40 + @Override
  41 + public void refundCallBack(RefundResultBO event, MallBizRefund mallBizRefund) {
  42 +
  43 + }
  44 +
  45 + @Override
  46 + public Integer source() {
  47 + return 20;
  48 + }
  49 +}
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/type/OrderSource.java deleted 100644 → 0
1   -package com.diligrp.cashier.mall.type;
2   -
3   -/**
4   - * @ClassName OrderSrouce.java
5   - * @author dengwei
6   - * @version 1.0.0
7   - * @Description OrderSource
8   - * @date 2025-12-25 15:11
9   - */
10   -public enum OrderSource {
11   - RT_MART(1, "大润发"),
12   - SAM_CLUB(2, "山姆");
13   -
14   - public final int code;
15   - public final String name;
16   -
17   - OrderSource(int code, String name) {
18   - this.code = code;
19   - this.name = name;
20   - }
21   -
22   - public int getCode() {
23   - return code;
24   - }
25   -
26   - public String getName() {
27   - return name;
28   - }
29   -}
cashier-mall/src/main/java/com/diligrp/cashier/mall/type/OrderType.java
1 1 package com.diligrp.cashier.mall.type;
2 2  
  3 +import java.util.Arrays;
  4 +import java.util.Map;
  5 +import java.util.stream.Collectors;
  6 +
3 7 /**
4 8 * @ClassName OrderType.java
5 9 * @author dengwei
6 10 * @version 1.0.0
7 11 * @Description OrderType
8   - * @date 2025-12-25 11:17
9 12 */
10 13 public enum OrderType {
11 14 OFFLINE_SCAN(1, "线下扫码购"),
12 15 API_SCAN(2, "接口扫码购"),
13   - MINI_PROGRAM(3, "小程序");
  16 + MINI_PROGRAM(3, "小程序"),
  17 + ;
14 18  
15 19 public final int code;
16 20 public final String description;
17 21  
  22 + private static final Map<Integer, String> DATA = Arrays
  23 + .stream(values())
  24 + .collect(Collectors.toMap(OrderType::getCode, OrderType::getDescription));
  25 +
18 26 OrderType(int code, String description) {
19 27 this.code = code;
20 28 this.description = description;
... ... @@ -27,4 +35,8 @@ public enum OrderType {
27 35 public String getDescription() {
28 36 return description;
29 37 }
  38 +
  39 + public static String getDescription(int code) {
  40 + return DATA.get(code);
  41 + }
30 42 }
... ...
cashier-mall/src/main/java/com/diligrp/cashier/mall/type/PaymentChanel.java deleted 100644 → 0
1   -package com.diligrp.cashier.mall.type;
2   -
3   -/**
4   - * @ClassName PaymentChanel.java
5   - * @author dengwei
6   - * @version 1.0.0
7   - * @Description PaymentChanel
8   - */
9   -public enum PaymentChanel {
10   - WECHAT(10, "微信"),
11   - PARK_CARD(19, "园区卡");
12   -
13   - private final int code;
14   - private final String description;
15   -
16   - PaymentChanel(int code, String description) {
17   - this.code = code;
18   - this.description = description;
19   - }
20   -
21   - public int getCode() {
22   - return code;
23   - }
24   -
25   - public String getDescription() {
26   - return description;
27   - }
28   -}
cashier-shared/src/main/java/com/diligrp/cashier/shared/SharedConfiguration.java
... ... @@ -31,6 +31,8 @@ import java.time.LocalDateTime;
31 31 import java.time.LocalTime;
32 32 import java.time.format.DateTimeFormatter;
33 33 import java.util.Date;
  34 +import java.util.concurrent.Executor;
  35 +import java.util.concurrent.Executors;
34 36  
35 37 @Configuration
36 38 @ComponentScan("com.diligrp.cashier.shared")
... ... @@ -163,4 +165,13 @@ public class SharedConfiguration {
163 165 return new SecretKeySpec(source.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
164 166 }
165 167 }
166   -}
167 168 \ No newline at end of file
  169 +
  170 + /**
  171 + * 配置虚拟线程池
  172 + * 虚拟线程池不需要设置核心线程数等等factory
  173 + */
  174 + @Bean(name = "virtualThreadPoolTaskExecutor")
  175 + public Executor virtualThreadPoolTaskExecutor() {
  176 + return Executors.newVirtualThreadPerTaskExecutor();
  177 + }
  178 +}
... ...
cashier-shared/src/main/java/com/diligrp/cashier/shared/exception/PlatformServiceException.java
... ... @@ -26,6 +26,14 @@ public class PlatformServiceException extends RuntimeException {
26 26 this.stackTrace = false;
27 27 }
28 28  
  29 + public PlatformServiceException(String code, String message, boolean stackTrace) {
  30 + super(message);
  31 + if (stackTrace) {
  32 + super.fillInStackTrace();
  33 + }
  34 + this.code = code;
  35 + }
  36 +
29 37 public PlatformServiceException(String message, Throwable ex) {
30 38 super(message, ex);
31 39 }
... ...