Commit e850fbf675336c9ad46b84ea2d0dc5c5988f9561

Authored by YunaiV
1 parent b632726a

【功能优化】支付:支付应用,增加 appKey 标识,用于不同接入方的标识

yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
... ... @@ -113,7 +113,7 @@ public class PayRefundServiceImpl implements PayRefundService {
113 113 // 2.1 插入退款单
114 114 String no = noRedisDAO.generate(payProperties.getRefundNoPrefix());
115 115 refund = PayRefundConvert.INSTANCE.convert(reqDTO)
116   - .setNo(no).setOrderId(order.getId()).setOrderNo(order.getNo())
  116 + .setNo(no).setAppId(app.getId()).setOrderId(order.getId()).setOrderNo(order.getNo())
117 117 .setChannelId(order.getChannelId()).setChannelCode(order.getChannelCode())
118 118 // 商户相关的字段
119 119 .setNotifyUrl(app.getRefundNotifyUrl())
... ...
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
... ... @@ -243,6 +243,9 @@ public class PayOrderServiceTest extends BaseDbAndRedisUnitTest {
243 243 // mock 数据
244 244 PayOrderDO dbOrder = randomPojo(PayOrderDO.class, o -> o.setAppId(1L).setMerchantOrderId("10"));
245 245 orderMapper.insert(dbOrder);
  246 + // mock 方法
  247 + PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L).setOrderNotifyUrl("http://127.0.0.1"));
  248 + when(appService.validPayApp(eq(reqDTO.getAppKey()))).thenReturn(app);
246 249  
247 250 // 调用
248 251 Long orderId = orderService.createOrder(reqDTO);
... ...
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
... ... @@ -212,7 +212,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
212 212 o -> o.setAppKey("demo"));
213 213 // mock 方法(app)
214 214 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
215   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  215 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
216 216  
217 217 // 调用,并断言异常
218 218 assertServiceException(() -> refundService.createPayRefund(reqDTO),
... ... @@ -235,7 +235,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
235 235 o -> o.setAppKey("demo").setMerchantOrderId("100"));
236 236 // mock 方法(app)
237 237 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
238   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  238 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
239 239 // mock 数据(order)
240 240 PayOrderDO order = randomPojo(PayOrderDO.class, o -> o.setStatus(status));
241 241 when(orderService.getOrder(eq(1L), eq("100"))).thenReturn(order);
... ... @@ -252,7 +252,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
252 252 o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10));
253 253 // mock 方法(app)
254 254 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
255   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  255 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
256 256 // mock 数据(order)
257 257 PayOrderDO order = randomPojo(PayOrderDO.class, o ->
258 258 o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
... ... @@ -271,7 +271,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
271 271 o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(10));
272 272 // mock 方法(app)
273 273 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
274   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  274 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
275 275 // mock 数据(order)
276 276 PayOrderDO order = randomPojo(PayOrderDO.class, o ->
277 277 o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
... ... @@ -294,7 +294,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
294 294 o -> o.setAppKey("demo").setMerchantOrderId("100").setPrice(9));
295 295 // mock 方法(app)
296 296 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
297   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  297 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
298 298 // mock 数据(order)
299 299 PayOrderDO order = randomPojo(PayOrderDO.class, o ->
300 300 o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
... ... @@ -319,7 +319,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
319 319 .setMerchantRefundId("200").setReason("测试退款"));
320 320 // mock 方法(app)
321 321 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
322   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  322 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
323 323 // mock 数据(order)
324 324 PayOrderDO order = randomPojo(PayOrderDO.class, o ->
325 325 o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
... ... @@ -351,7 +351,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
351 351 .setMerchantRefundId("200").setReason("测试退款"));
352 352 // mock 方法(app)
353 353 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
354   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  354 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
355 355 // mock 数据(order)
356 356 PayOrderDO order = randomPojo(PayOrderDO.class, o ->
357 357 o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
... ... @@ -395,7 +395,7 @@ public class PayRefundServiceTest extends BaseDbAndRedisUnitTest {
395 395 .setMerchantRefundId("200").setReason("测试退款"));
396 396 // mock 方法(app)
397 397 PayAppDO app = randomPojo(PayAppDO.class, o -> o.setId(1L));
398   - when(appService.validPayApp(eq(1L))).thenReturn(app);
  398 + when(appService.validPayApp(eq("demo"))).thenReturn(app);
399 399 // mock 数据(order)
400 400 PayOrderDO order = randomPojo(PayOrderDO.class, o ->
401 401 o.setStatus(PayOrderStatusEnum.REFUND.getStatus())
... ...
yudao-module-pay/yudao-module-pay-biz/src/test/resources/sql/create_tables.sql
1 1 CREATE TABLE IF NOT EXISTS "pay_app" (
2 2 "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  3 + "app_key" varchar(64) NOT NULL,
3 4 "name" varchar(64) NOT NULL,
4 5 "status" tinyint NOT NULL,
5 6 "remark" varchar(255) DEFAULT NULL,
... ...