Browse Source

0602 车站查询和乘车人查询接口

Qing 1 year ago
parent
commit
5f8b630f02
45 changed files with 545 additions and 59 deletions
  1. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/Builder.java
  2. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/Main.java
  3. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/MyBuilder.java
  4. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/Product.java
  5. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/CEO.java
  6. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Handler.java
  7. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Leader.java
  8. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Main.java
  9. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Manager.java
  10. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/CglibProxyDemo.java
  11. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/JdkProxyDemo.java
  12. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/TestMethodInvoke.java
  13. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/$Proxy0.java
  14. 9 9
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/$Proxy0Dump.java
  15. 1 5
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/MyJdkProxyDemo.java
  16. 1 2
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/TestDump.java
  17. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/Main.java
  18. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/MyStrategyA.java
  19. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/MyStrategyB.java
  20. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/Strategy.java
  21. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/filter/CustomFilter.java
  22. 2 2
      12306-demo/my-ticket-service/src/main/java/com/sf/common/filter/CustomFilter2.java
  23. 3 4
      12306-demo/my-ticket-service/src/main/java/com/sf/common/filter/config/FilterConfig.java
  24. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/interceptor/CustomInterceptor.java
  25. 3 3
      12306-demo/my-ticket-service/src/main/java/com/sf/common/interceptor/config/InterceptorConfig.java
  26. 1 1
      12306-demo/my-ticket-service/src/main/java/com/sf/common/threadpool/MyRejectedPolicy.java
  27. 1 2
      12306-demo/my-ticket-service/src/main/java/com/sf/common/threadpool/PolicyTest.java
  28. 28 0
      12306-demo/my-ticket-service/src/main/java/com/sf/controller/StationController.java
  29. 48 0
      12306-demo/my-ticket-service/src/main/java/com/sf/dto/resp/StationQueryRespDTO.java
  30. 58 0
      12306-demo/my-ticket-service/src/main/java/com/sf/dto/resp/TrainStationQueryRespDTO.java
  31. 13 0
      12306-demo/my-ticket-service/src/main/java/com/sf/service/StationService.java
  32. 28 0
      12306-demo/my-ticket-service/src/main/java/com/sf/service/impl/StationServiceImpl.java
  33. 5 0
      12306-demo/my-ticket-service/src/main/java/com/sf/service/impl/TicketServiceImpl.java
  34. 27 0
      12306-demo/my-user-service/src/main/java/com/sf/controller/PassengerController.java
  35. 2 2
      12306-demo/my-user-service/src/main/java/com/sf/controller/UserController.java
  36. 91 0
      12306-demo/my-user-service/src/main/java/com/sf/dto/resp/PassengerRespDTO.java
  37. 84 0
      12306-demo/my-user-service/src/main/java/com/sf/entity/PassengerDO.java
  38. 1 1
      12306-demo/my-user-service/src/main/java/com/sf/entity/UserDO.java
  39. 28 0
      12306-demo/my-user-service/src/main/java/com/sf/mapper/PassengerMapper.java
  40. 2 2
      12306-demo/my-user-service/src/main/java/com/sf/mapper/UserMapper.java
  41. 39 0
      12306-demo/my-user-service/src/main/java/com/sf/service/IPassengerService.java
  42. 2 2
      12306-demo/my-user-service/src/main/java/com/sf/service/IUserService.java
  43. 34 0
      12306-demo/my-user-service/src/main/java/com/sf/service/impl/PassengerServiceImpl.java
  44. 2 2
      12306-demo/my-user-service/src/main/java/com/sf/service/impl/UserServiceImpl.java
  45. 13 3
      12306-demo/my-user-service/src/main/resources/shardingsphere-config.yml

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/builder/Builder.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/Builder.java

@@ -1,4 +1,4 @@
-package com.sf.design.builder;
+package com.sf.common.design.builder;
 
 /**
  * 抽象的构建者

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/builder/Main.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/Main.java

@@ -1,4 +1,4 @@
-package com.sf.design.builder;
+package com.sf.common.design.builder;
 
 public class Main {
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/builder/MyBuilder.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/MyBuilder.java

@@ -1,4 +1,4 @@
-package com.sf.design.builder;
+package com.sf.common.design.builder;
 
 
 public class MyBuilder implements Builder{

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/builder/Product.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/builder/Product.java

@@ -1,4 +1,4 @@
-package com.sf.design.builder;
+package com.sf.common.design.builder;
 
 import lombok.Data;
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/chain/CEO.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/CEO.java

@@ -1,4 +1,4 @@
-package com.sf.design.chain;
+package com.sf.common.design.chain;
 
 public class CEO implements Handler{
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/chain/Handler.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Handler.java

@@ -1,4 +1,4 @@
-package com.sf.design.chain;
+package com.sf.common.design.chain;
 
 // 处理器
 public interface Handler {

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/chain/Leader.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Leader.java

@@ -1,4 +1,4 @@
-package com.sf.design.chain;
+package com.sf.common.design.chain;
 
 public class Leader implements Handler{
     // 需要下一个处理器  所以需要创建一个属性

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/chain/Main.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Main.java

@@ -1,4 +1,4 @@
-package com.sf.design.chain;
+package com.sf.common.design.chain;
 
 public class Main {
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/chain/Manager.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/chain/Manager.java

@@ -1,4 +1,4 @@
-package com.sf.design.chain;
+package com.sf.common.design.chain;
 
 public class Manager implements Handler {
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/CglibProxyDemo.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/CglibProxyDemo.java

@@ -1,4 +1,4 @@
-package com.sf.design.proxy;
+package com.sf.common.design.proxy;
 
 import net.sf.cglib.proxy.Enhancer;
 import net.sf.cglib.proxy.MethodInterceptor;

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/JdkProxyDemo.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/JdkProxyDemo.java

@@ -1,4 +1,4 @@
-package com.sf.design.proxy;
+package com.sf.common.design.proxy;
 
 import java.io.IOException;
 import java.lang.reflect.InvocationHandler;

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/TestMethodInvoke.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/TestMethodInvoke.java

@@ -1,4 +1,4 @@
-package com.sf.design.proxy;
+package com.sf.common.design.proxy;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/self/$Proxy0.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/$Proxy0.java

@@ -1,4 +1,4 @@
-package com.sf.design.proxy.self;
+package com.sf.common.design.proxy.self;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;

+ 9 - 9
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/self/$Proxy0Dump.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/$Proxy0Dump.java

@@ -1,4 +1,4 @@
-package com.sf.design.proxy.self;
+package com.sf.common.design.proxy.self;
 
 
 import org.springframework.asm.*;
@@ -13,11 +13,11 @@ public class $Proxy0Dump implements Opcodes {
         MethodVisitor methodVisitor;
         AnnotationVisitor annotationVisitor0;
 
-        classWriter.visit(V17, ACC_PUBLIC | ACC_SUPER, "com/sf/design/proxy/self/$Proxy0", null, "java/lang/reflect/Proxy", new String[]{"com/sf/design/proxy/self/MyJdkProxyDemo$Life"});
+        classWriter.visit(V17, ACC_PUBLIC | ACC_SUPER, "com/sf/common/design/proxy/self/$Proxy0", null, "java/lang/reflect/Proxy", new String[]{"com/sf/common/design/proxy/self/MyJdkProxyDemo$Life"});
 
         classWriter.visitSource("$Proxy0.java", null);
 
-        classWriter.visitInnerClass("com/sf/design/proxy/self/MyJdkProxyDemo$Life", "com/sf/design/proxy/self/MyJdkProxyDemo", "Life", ACC_STATIC | ACC_ABSTRACT | ACC_INTERFACE);
+        classWriter.visitInnerClass("com/sf/common/design/proxy/self/MyJdkProxyDemo$Life", "com/sf/common/design/proxy/self/MyJdkProxyDemo", "Life", ACC_STATIC | ACC_ABSTRACT | ACC_INTERFACE);
 
         {
             fieldVisitor = classWriter.visitField(ACC_STATIC, "learn", "Ljava/lang/reflect/Method;", null, null);
@@ -60,9 +60,9 @@ public class $Proxy0Dump implements Opcodes {
             methodVisitor.visitLabel(label0);
             methodVisitor.visitLineNumber(53, label0);
             methodVisitor.visitVarInsn(ALOAD, 0);
-            methodVisitor.visitFieldInsn(GETFIELD, "com/sf/design/proxy/self/$Proxy0", "h", "Ljava/lang/reflect/InvocationHandler;");
+            methodVisitor.visitFieldInsn(GETFIELD, "com/sf/common/design/proxy/self/$Proxy0", "h", "Ljava/lang/reflect/InvocationHandler;");
             methodVisitor.visitVarInsn(ALOAD, 0);
-            methodVisitor.visitFieldInsn(GETSTATIC, "com/sf/design/proxy/self/$Proxy0", "learn", "Ljava/lang/reflect/Method;");
+            methodVisitor.visitFieldInsn(GETSTATIC, "com/sf/common/design/proxy/self/$Proxy0", "learn", "Ljava/lang/reflect/Method;");
             methodVisitor.visitInsn(ICONST_0);
             methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Object");
             methodVisitor.visitMethodInsn(INVOKEINTERFACE, "java/lang/reflect/InvocationHandler", "invoke", "(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;", true);
@@ -119,9 +119,9 @@ public class $Proxy0Dump implements Opcodes {
             methodVisitor.visitLabel(label0);
             methodVisitor.visitLineNumber(67, label0);
             methodVisitor.visitVarInsn(ALOAD, 0);
-            methodVisitor.visitFieldInsn(GETFIELD, "com/sf/design/proxy/self/$Proxy0", "h", "Ljava/lang/reflect/InvocationHandler;");
+            methodVisitor.visitFieldInsn(GETFIELD, "com/sf/common/design/proxy/self/$Proxy0", "h", "Ljava/lang/reflect/InvocationHandler;");
             methodVisitor.visitVarInsn(ALOAD, 0);
-            methodVisitor.visitFieldInsn(GETSTATIC, "com/sf/design/proxy/self/$Proxy0", "sleep", "Ljava/lang/reflect/Method;");
+            methodVisitor.visitFieldInsn(GETSTATIC, "com/sf/common/design/proxy/self/$Proxy0", "sleep", "Ljava/lang/reflect/Method;");
             methodVisitor.visitInsn(ICONST_0);
             methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Object");
             methodVisitor.visitMethodInsn(INVOKEINTERFACE, "java/lang/reflect/InvocationHandler", "invoke", "(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;", true);
@@ -180,7 +180,7 @@ public class $Proxy0Dump implements Opcodes {
             methodVisitor.visitInsn(ICONST_0);
             methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Class");
             methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Class", "getDeclaredMethod", "(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;", false);
-            methodVisitor.visitFieldInsn(PUTSTATIC, "com/sf/design/proxy/self/$Proxy0", "learn", "Ljava/lang/reflect/Method;");
+            methodVisitor.visitFieldInsn(PUTSTATIC, "com/sf/common/design/proxy/self/$Proxy0", "learn", "Ljava/lang/reflect/Method;");
             Label label3 = new Label();
             methodVisitor.visitLabel(label3);
             methodVisitor.visitLineNumber(42, label3);
@@ -189,7 +189,7 @@ public class $Proxy0Dump implements Opcodes {
             methodVisitor.visitInsn(ICONST_0);
             methodVisitor.visitTypeInsn(ANEWARRAY, "java/lang/Class");
             methodVisitor.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Class", "getDeclaredMethod", "(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;", false);
-            methodVisitor.visitFieldInsn(PUTSTATIC, "com/sf/design/proxy/self/$Proxy0", "sleep", "Ljava/lang/reflect/Method;");
+            methodVisitor.visitFieldInsn(PUTSTATIC, "com/sf/common/design/proxy/self/$Proxy0", "sleep", "Ljava/lang/reflect/Method;");
             methodVisitor.visitLabel(label1);
             methodVisitor.visitLineNumber(45, label1);
             Label label4 = new Label();

+ 1 - 5
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/self/MyJdkProxyDemo.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/MyJdkProxyDemo.java

@@ -1,10 +1,6 @@
-package com.sf.design.proxy.self;
+package com.sf.common.design.proxy.self;
 
-import com.sf.design.proxy.JdkProxyDemo;
-
-import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 
 // 手写JDK动态代理
 public class MyJdkProxyDemo {

+ 1 - 2
12306-demo/my-ticket-service/src/main/java/com/sf/design/proxy/self/TestDump.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/proxy/self/TestDump.java

@@ -1,6 +1,5 @@
-package com.sf.design.proxy.self;
+package com.sf.common.design.proxy.self;
 
-import java.io.FileOutputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/strategy/Main.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/Main.java

@@ -1,4 +1,4 @@
-package com.sf.design.strategy;
+package com.sf.common.design.strategy;
 
 public class Main {
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/strategy/MyStrategyA.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/MyStrategyA.java

@@ -1,4 +1,4 @@
-package com.sf.design.strategy;
+package com.sf.common.design.strategy;
 
 public class MyStrategyA extends Strategy{
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/strategy/MyStrategyB.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/MyStrategyB.java

@@ -1,4 +1,4 @@
-package com.sf.design.strategy;
+package com.sf.common.design.strategy;
 
 public class MyStrategyB extends Strategy{
 

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/design/strategy/Strategy.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/design/strategy/Strategy.java

@@ -1,4 +1,4 @@
-package com.sf.design.strategy;
+package com.sf.common.design.strategy;
 
 // 策略抽象类
 public abstract class Strategy {

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/filter/CustomFilter.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/filter/CustomFilter.java

@@ -1,4 +1,4 @@
-package com.sf.filter;
+package com.sf.common.filter;
 
 import jakarta.servlet.*;
 

+ 2 - 2
12306-demo/my-ticket-service/src/main/java/com/sf/filter/CustomFilter2.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/filter/CustomFilter2.java

@@ -1,11 +1,11 @@
-package com.sf.filter;
+package com.sf.common.filter;
 
 import jakarta.servlet.*;
 import jakarta.servlet.annotation.WebFilter;
 
 import java.io.IOException;
 
-@WebFilter(filterName = "customFilter2",urlPatterns = {"/*"})
+//@WebFilter(filterName = "customFilter2",urlPatterns = {"/*"})
 public class CustomFilter2 implements Filter {
 
     @Override

+ 3 - 4
12306-demo/my-ticket-service/src/main/java/com/sf/filter/config/FilterConfig.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/filter/config/FilterConfig.java

@@ -1,12 +1,11 @@
-package com.sf.filter.config;
+package com.sf.common.filter.config;
 
-import com.sf.filter.CustomFilter;
+import com.sf.common.filter.CustomFilter;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 
 // 通过配置文件 让自定义的filter生效
-@Configuration
+//@Configuration
 public class FilterConfig {
 
     @Bean

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/interceptor/CustomInterceptor.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/interceptor/CustomInterceptor.java

@@ -1,4 +1,4 @@
-package com.sf.interceptor;
+package com.sf.common.interceptor;
 
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;

+ 3 - 3
12306-demo/my-ticket-service/src/main/java/com/sf/interceptor/config/InterceptorConfig.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/interceptor/config/InterceptorConfig.java

@@ -1,6 +1,6 @@
-package com.sf.interceptor.config;
+package com.sf.common.interceptor.config;
 
-import com.sf.interceptor.CustomInterceptor;
+import com.sf.common.interceptor.CustomInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@@ -18,6 +18,6 @@ public class InterceptorConfig implements WebMvcConfigurer {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
 //        WebMvcConfigurer.super.addInterceptors(registry);
-        registry.addInterceptor(customInterceptor).addPathPatterns("/**");
+//        registry.addInterceptor(customInterceptor).addPathPatterns("/**");
     }
 }

+ 1 - 1
12306-demo/my-ticket-service/src/main/java/com/sf/threadpool/MyRejectedPolicy.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/threadpool/MyRejectedPolicy.java

@@ -1,4 +1,4 @@
-package com.sf.threadpool;
+package com.sf.common.threadpool;
 
 import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.ThreadPoolExecutor;

+ 1 - 2
12306-demo/my-ticket-service/src/main/java/com/sf/threadpool/PolicyTest.java → 12306-demo/my-ticket-service/src/main/java/com/sf/common/threadpool/PolicyTest.java

@@ -1,6 +1,5 @@
-package com.sf.threadpool;
+package com.sf.common.threadpool;
 
-import java.util.concurrent.Callable;
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;

+ 28 - 0
12306-demo/my-ticket-service/src/main/java/com/sf/controller/StationController.java

@@ -0,0 +1,28 @@
+package com.sf.controller;
+
+import com.sf.dto.resp.StationQueryRespDTO;
+import com.sf.dto.resp.TrainStationQueryRespDTO;
+import com.sf.service.StationService;
+import lombok.RequiredArgsConstructor;
+import org.opengoofy.index12306.framework.starter.convention.result.Result;
+import org.opengoofy.index12306.framework.starter.web.Results;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequiredArgsConstructor
+public class StationController {
+
+    private final StationService stationService;
+
+    // http://localhost:9002/api/ticket-service/station/all
+    @GetMapping("/api/ticket-service/station/all")
+    public Result<List<StationQueryRespDTO>> listAllStation() {
+        System.out.println("StationController listAllStation");
+        List<StationQueryRespDTO> stationQueryRespDTOS = stationService.listAllStation();
+        System.out.println("stationQueryRespDTOS" + stationQueryRespDTOS);
+        return Results.success(stationQueryRespDTOS);
+    }
+}

+ 48 - 0
12306-demo/my-ticket-service/src/main/java/com/sf/dto/resp/StationQueryRespDTO.java

@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.sf.dto.resp;
+
+import lombok.Data;
+
+/**
+ * 站点分页查询响应参数
+ * 公众号:马丁玩编程,回复:加群,添加马哥微信(备注:12306)获取项目资料
+ */
+@Data
+public class StationQueryRespDTO {
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 地区编码
+     */
+    private String code;
+
+    /**
+     * 拼音
+     */
+    private String spell;
+
+    /**
+     * 城市名称
+     */
+    private String regionName;
+}

+ 58 - 0
12306-demo/my-ticket-service/src/main/java/com/sf/dto/resp/TrainStationQueryRespDTO.java

@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.sf.dto.resp;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 列车站点查询响应参数
+ * 公众号:马丁玩编程,回复:加群,添加马哥微信(备注:12306)获取项目资料
+ */
+@Data
+public class TrainStationQueryRespDTO {
+
+    /**
+     * 站序
+     */
+    private String sequence;
+
+    /**
+     * 站名
+     */
+    private String departure;
+
+    /**
+     * 到站时间
+     */
+    @JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
+    private Date arrivalTime;
+
+    /**
+     * 出发时间
+     */
+    @JsonFormat(pattern = "HH:mm", timezone = "GMT+8")
+    private Date departureTime;
+
+    /**
+     * 停留时间
+     */
+    private Integer stopoverTime;
+}

+ 13 - 0
12306-demo/my-ticket-service/src/main/java/com/sf/service/StationService.java

@@ -0,0 +1,13 @@
+package com.sf.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.sf.dto.resp.StationQueryRespDTO;
+import com.sf.dto.resp.TrainStationQueryRespDTO;
+import com.sf.entity.StationDO;
+
+import java.util.List;
+
+public interface StationService extends IService<StationDO> {
+
+    List<StationQueryRespDTO> listAllStation();
+}

+ 28 - 0
12306-demo/my-ticket-service/src/main/java/com/sf/service/impl/StationServiceImpl.java

@@ -0,0 +1,28 @@
+package com.sf.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sf.dto.resp.StationQueryRespDTO;
+import com.sf.dto.resp.TrainStationQueryRespDTO;
+import com.sf.entity.StationDO;
+import com.sf.mapper.StationMapper;
+import com.sf.service.StationService;
+import lombok.RequiredArgsConstructor;
+import org.opengoofy.index12306.framework.starter.common.toolkit.BeanUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class StationServiceImpl extends ServiceImpl<StationMapper, StationDO>
+        implements StationService {
+
+    private final StationMapper stationMapper;
+
+    @Override
+    public List<StationQueryRespDTO> listAllStation() {
+        List<StationDO> stationDOS = stationMapper.selectList(null);
+        return BeanUtil.convert(stationDOS, StationQueryRespDTO.class);
+    }
+
+}

+ 5 - 0
12306-demo/my-ticket-service/src/main/java/com/sf/service/impl/TicketServiceImpl.java

@@ -60,6 +60,11 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, TicketDO> imple
         List<Object> stationDetails = new ArrayList<>();
         stationDetails.add(regionTrainStationMap.get(requestParam.getFromStation()));
         stationDetails.add(regionTrainStationMap.get(requestParam.getToStation()));
+
+//        LambdaQueryWrapper<StationDO> stationWrapper = new LambdaQueryWrapper<>();
+//        stationWrapper.in(StationDO::getCode, List.of(requestParam.getFromStation(), requestParam.getToStation()));
+//        List<StationDO> stationDOS = stationMapper.selectList(stationWrapper);
+
         // 这里可以直接将code值传入数据库  就不需要再转化成map了
 
         // 然后将两个名字作为参数 去 train_station_relation表中查询

+ 27 - 0
12306-demo/my-user-service/src/main/java/com/sf/controller/PassengerController.java

@@ -0,0 +1,27 @@
+package com.sf.controller;
+
+import com.sf.dto.resp.PassengerRespDTO;
+import com.sf.service.IPassengerService;
+import lombok.RequiredArgsConstructor;
+import org.opengoofy.index12306.framework.starter.convention.result.Result;
+import org.opengoofy.index12306.framework.starter.web.Results;
+import org.opengoofy.index12306.frameworks.starter.user.core.UserContext;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequiredArgsConstructor
+public class PassengerController {
+
+    private final IPassengerService passengerService;
+
+    @GetMapping("/api/user-service/passenger/query")
+    public Result<List<PassengerRespDTO>> listPassengerQueryByUsername() {
+        String username = "admin";
+        // UserContext.getUsername()
+        return Results.success(passengerService.listPassengerQueryByUsername(username));
+    }
+
+}

+ 2 - 2
12306-demo/my-user-service/src/main/java/com/sf/controller/UserController.java

@@ -1,6 +1,6 @@
 package com.sf.controller;
 
-import com.sf.entity.User;
+import com.sf.entity.UserDO;
 import com.sf.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -15,7 +15,7 @@ public class UserController {
     // http://localhost:9001/save
     @GetMapping("/save")
     public String save() {
-        User user = User.builder().username("test").password("123").realName("testtest").build();
+        UserDO user = UserDO.builder().username("test").password("123").realName("testtest").build();
         userService.save(user);
         return "success";
     }

+ 91 - 0
12306-demo/my-user-service/src/main/java/com/sf/dto/resp/PassengerRespDTO.java

@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.sf.dto.resp;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 乘车人返回参数
+ * 公众号:马丁玩编程,回复:加群,添加马哥微信(备注:12306)获取项目资料
+ */
+@Data
+@Accessors(chain = true)
+public class PassengerRespDTO {
+
+    /**
+     * 乘车人id
+     */
+    private String id;
+
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 真实姓名
+     */
+    private String realName;
+
+    /**
+     * 证件类型
+     */
+    private Integer idType;
+
+    /**
+     * 证件号码
+     */
+//    @JsonSerialize(using = IdCardDesensitizationSerializer.class)
+    private String idCard;
+
+    /**
+     * 真实证件号码
+     */
+    private String actualIdCard;
+
+    /**
+     * 优惠类型
+     */
+    private Integer discountType;
+
+    /**
+     * 手机号
+     */
+//    @JsonSerialize(using = PhoneDesensitizationSerializer.class)
+    private String phone;
+
+    /**
+     * 真实手机号
+     */
+    private String actualPhone;
+
+    /**
+     * 添加日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createDate;
+
+    /**
+     * 审核状态
+     */
+    private Integer verifyStatus;
+}

+ 84 - 0
12306-demo/my-user-service/src/main/java/com/sf/entity/PassengerDO.java

@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.sf.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.opengoofy.index12306.framework.starter.database.base.BaseDO;
+
+import java.util.Date;
+
+/**
+ * 乘车人实体
+ * 公众号:马丁玩编程,回复:加群,添加马哥微信(备注:12306)获取项目资料
+ */
+@Data
+@TableName("t_passenger")
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class PassengerDO extends BaseDO {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 真实姓名
+     */
+    private String realName;
+
+    /**
+     * 证件类型
+     */
+    private Integer idType;
+
+    /**
+     * 证件号码
+     */
+    private String idCard;
+
+    /**
+     * 优惠类型
+     */
+    private Integer discountType;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 添加日期
+     */
+    private Date createDate;
+
+    /**
+     * 审核状态
+     */
+    private Integer verifyStatus;
+}

+ 1 - 1
12306-demo/my-user-service/src/main/java/com/sf/entity/User.java → 12306-demo/my-user-service/src/main/java/com/sf/entity/UserDO.java

@@ -15,7 +15,7 @@ import java.util.Date;
 @AllArgsConstructor
 @Builder
 @TableName("t_user")
-public class User {
+public class UserDO {
 
     /**
      * id

+ 28 - 0
12306-demo/my-user-service/src/main/java/com/sf/mapper/PassengerMapper.java

@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.sf.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sf.entity.PassengerDO;
+
+/**
+ * 乘车人持久层
+ * 公众号:马丁玩编程,回复:加群,添加马哥微信(备注:12306)获取项目资料
+ */
+public interface PassengerMapper extends BaseMapper<PassengerDO> {
+}

+ 2 - 2
12306-demo/my-user-service/src/main/java/com/sf/mapper/UserMapper.java

@@ -1,7 +1,7 @@
 package com.sf.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.sf.entity.User;
+import com.sf.entity.UserDO;
 
-public interface UserMapper extends BaseMapper<User> {
+public interface UserMapper extends BaseMapper<UserDO> {
 }

+ 39 - 0
12306-demo/my-user-service/src/main/java/com/sf/service/IPassengerService.java

@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.sf.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.sf.dto.resp.PassengerRespDTO;
+import com.sf.entity.PassengerDO;
+
+import java.util.List;
+
+/**
+ * 乘车人接口层
+ * 公众号:马丁玩编程,回复:加群,添加马哥微信(备注:12306)获取项目资料
+ */
+public interface IPassengerService extends IService<PassengerDO> {
+
+    /**
+     * 根据用户名查询乘车人列表
+     *
+     * @param username 用户名
+     * @return 乘车人返回列表
+     */
+    List<PassengerRespDTO> listPassengerQueryByUsername(String username);
+}

+ 2 - 2
12306-demo/my-user-service/src/main/java/com/sf/service/IUserService.java

@@ -1,7 +1,7 @@
 package com.sf.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.sf.entity.User;
+import com.sf.entity.UserDO;
 
-public interface IUserService extends IService<User> {
+public interface IUserService extends IService<UserDO> {
 }

+ 34 - 0
12306-demo/my-user-service/src/main/java/com/sf/service/impl/PassengerServiceImpl.java

@@ -0,0 +1,34 @@
+package com.sf.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sf.dto.resp.PassengerRespDTO;
+import com.sf.entity.PassengerDO;
+import com.sf.mapper.PassengerMapper;
+import com.sf.service.IPassengerService;
+import lombok.RequiredArgsConstructor;
+import org.opengoofy.index12306.framework.starter.common.toolkit.BeanUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class PassengerServiceImpl extends ServiceImpl<PassengerMapper, PassengerDO>
+        implements IPassengerService {
+
+    private final PassengerMapper passengerMapper;
+
+    @Override
+    public List<PassengerRespDTO> listPassengerQueryByUsername(String username) {
+        // 根据username查询数据
+        LambdaQueryWrapper<PassengerDO> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PassengerDO::getUsername, username);
+        List<PassengerDO> passengerDOS = passengerMapper.selectList(queryWrapper);
+        // 遍历查询出来的do 逐个转化为dto 然后放入list中
+        List<PassengerRespDTO> passengerRespDTOS = passengerDOS.stream()
+                .map(passengerDO -> BeanUtil.convert(passengerDO, PassengerRespDTO.class))
+                .toList();
+        return passengerRespDTOS;
+    }
+}

+ 2 - 2
12306-demo/my-user-service/src/main/java/com/sf/service/impl/UserServiceImpl.java

@@ -1,11 +1,11 @@
 package com.sf.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.sf.entity.User;
+import com.sf.entity.UserDO;
 import com.sf.mapper.UserMapper;
 import com.sf.service.IUserService;
 import org.springframework.stereotype.Service;
 
 @Service
-public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
+public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements IUserService {
 }

+ 13 - 3
12306-demo/my-user-service/src/main/resources/shardingsphere-config.yml

@@ -21,15 +21,21 @@ rules:
       # 逻辑表名
       t_user:
         # 真实存在数据库的物理表集合
-        actualDataNodes: ds_0.t_user_${0..1}
+        actualDataNodes: ds_0.t_user_${0..15}
         # 分表策略
         tableStrategy:
           # 单分片键分表
           standard:
             # 自定义分片字段
-            shardingColumn: id
+            shardingColumn: username
             # 自定义分片算法名称,对应 {rules[0].shardingAlgorithms.user_table_hash_mod}
             shardingAlgorithmName: user_table_hash_mod
+      t_passenger:
+        actualDataNodes: ds_0.t_passenger_${0..15}
+        tableStrategy:
+          standard:
+            shardingColumn: username
+            shardingAlgorithmName: passenger_table_hash_mod
     # 数据分片算法定义集合
     shardingAlgorithms:
       # 自定义分片算法名称
@@ -38,7 +44,11 @@ rules:
         type: HASH_MOD
         props:
           # 物理表分片数量
-          sharding-count: 2
+          sharding-count: 16
+      passenger_table_hash_mod:
+        type: HASH_MOD
+        props:
+          sharding-count: 16
 props:
   # 是否打印逻辑SQL和真实SQL,开发测试环境建议开放,生产环境建议关闭
   sql-show: true