Kaynağa Gözat

Phase 1 #17: Spring Cloud Alibaba 微服务框架搭建

- Maven 父工程 wm-parent (Spring Boot 3.3.5 + Cloud 2023.0.3 + Alibaba 2023.0.1)
- 12个子模块: wm-common/gateway/base/iot/data-engine/bpm/production/revenue/patrol/bi/notify/job
- wm-common: 统一响应 R<T> + 全局异常处理 + BusinessException
- wm-gateway: Spring Cloud Gateway 路由配置(7个微服务路由)
- 集成: Nacos(注册/配置) + PostgreSQL + Redis + Kafka + Sa-Token + MyBatis-Plus + Knife4j
- docker-compose.yml: 一键启动10个中间件(PG+PostGIS/TDengine/Redis/Kafka/EMQX/Nacos/ES/Kibana/MinIO/GeoServer)
bot_pm 5 gün önce
ebeveyn
işleme
e929f65948
39 değiştirilmiş dosya ile 933 ekleme ve 0 silme
  1. 184
    0
      docker-compose.yml
  2. 121
    0
      pom.xml
  3. 16
    0
      wm-base/pom.xml
  4. 11
    0
      wm-base/src/main/java/com/water/base/BaseApplication.java
  5. 31
    0
      wm-base/src/main/resources/application.yml
  6. 16
    0
      wm-bi/pom.xml
  7. 11
    0
      wm-bi/src/main/java/com/water/bi/BiApplication.java
  8. 17
    0
      wm-bi/src/main/resources/application.yml
  9. 16
    0
      wm-bpm/pom.xml
  10. 11
    0
      wm-bpm/src/main/java/com/water/bpm/BpmApplication.java
  11. 17
    0
      wm-bpm/src/main/resources/application.yml
  12. 15
    0
      wm-common/pom.xml
  13. 10
    0
      wm-common/src/main/java/com/water/common/core/exception/BusinessException.java
  14. 24
    0
      wm-common/src/main/java/com/water/common/core/exception/GlobalExceptionHandler.java
  15. 36
    0
      wm-common/src/main/java/com/water/common/core/result/R.java
  16. 17
    0
      wm-data-engine/pom.xml
  17. 11
    0
      wm-data-engine/src/main/java/com/water/data_engine/DataEngineApplication.java
  18. 17
    0
      wm-data-engine/src/main/resources/application.yml
  19. 14
    0
      wm-gateway/pom.xml
  20. 13
    0
      wm-gateway/src/main/java/com/water/gateway/GatewayApplication.java
  21. 54
    0
      wm-gateway/src/main/resources/application.yml
  22. 17
    0
      wm-iot/pom.xml
  23. 11
    0
      wm-iot/src/main/java/com/water/iot/IotApplication.java
  24. 22
    0
      wm-iot/src/main/resources/application.yml
  25. 16
    0
      wm-job/pom.xml
  26. 11
    0
      wm-job/src/main/java/com/water/job/JobApplication.java
  27. 17
    0
      wm-job/src/main/resources/application.yml
  28. 17
    0
      wm-notify/pom.xml
  29. 11
    0
      wm-notify/src/main/java/com/water/notify/NotifyApplication.java
  30. 17
    0
      wm-notify/src/main/resources/application.yml
  31. 16
    0
      wm-patrol/pom.xml
  32. 11
    0
      wm-patrol/src/main/java/com/water/patrol/PatrolApplication.java
  33. 17
    0
      wm-patrol/src/main/resources/application.yml
  34. 16
    0
      wm-production/pom.xml
  35. 11
    0
      wm-production/src/main/java/com/water/production/ProductionApplication.java
  36. 17
    0
      wm-production/src/main/resources/application.yml
  37. 16
    0
      wm-revenue/pom.xml
  38. 11
    0
      wm-revenue/src/main/java/com/water/revenue/RevenueApplication.java
  39. 17
    0
      wm-revenue/src/main/resources/application.yml

+ 184
- 0
docker-compose.yml Dosyayı Görüntüle

@@ -0,0 +1,184 @@
1
+version: '3.8'
2
+
3
+services:
4
+  # ==================== 基础设施 ====================
5
+  postgres:
6
+    image: postgis/postgis:16-3.4
7
+    container_name: wm-postgres
8
+    environment:
9
+      POSTGRES_DB: water_management
10
+      POSTGRES_USER: water
11
+      POSTGRES_PASSWORD: water123
12
+    ports:
13
+      - "5432:5432"
14
+    volumes:
15
+      - pgdata:/var/lib/postgresql/data
16
+    healthcheck:
17
+      test: ["CMD-SHELL", "pg_isready -U water"]
18
+      interval: 10s
19
+      timeout: 5s
20
+      retries: 5
21
+
22
+  tdengine:
23
+    image: tdengine/tdengine:3.3.3.0
24
+    container_name: wm-tdengine
25
+    ports:
26
+      - "6030:6030"
27
+      - "6041:6041"
28
+      - "6043:6043"
29
+    environment:
30
+      TAOS_FQDN: tdengine
31
+    volumes:
32
+      - tddata:/var/lib/taos
33
+    healthcheck:
34
+      test: ["CMD", "taos", "-s", "show databases"]
35
+      interval: 10s
36
+      timeout: 5s
37
+      retries: 5
38
+
39
+  redis:
40
+    image: redis:7-alpine
41
+    container_name: wm-redis
42
+    ports:
43
+      - "6379:6379"
44
+    volumes:
45
+      - redisdata:/data
46
+    healthcheck:
47
+      test: ["CMD", "redis-cli", "ping"]
48
+      interval: 10s
49
+      timeout: 3s
50
+      retries: 5
51
+
52
+  # ==================== 消息队列 ====================
53
+  kafka:
54
+    image: bitnami/kafka:3.8
55
+    container_name: wm-kafka
56
+    ports:
57
+      - "9092:9092"
58
+    environment:
59
+      KAFKA_CFG_NODE_ID: 0
60
+      KAFKA_CFG_PROCESS_ROLES: controller,broker
61
+      KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@kafka:9093
62
+      KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
63
+      KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://${KAFKA_ADVERTISED:-localhost}:9092
64
+      KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
65
+      KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
66
+      KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: "true"
67
+    volumes:
68
+      - kafkadata:/bitnami/kafka
69
+    healthcheck:
70
+      test: ["CMD-SHELL", "kafka-topics.sh --bootstrap-server localhost:9092 --list"]
71
+      interval: 15s
72
+      timeout: 10s
73
+      retries: 5
74
+
75
+  # ==================== 物联网 MQTT ====================
76
+  emqx:
77
+    image: emqx/emqx:5.7.2
78
+    container_name: wm-emqx
79
+    ports:
80
+      - "1883:1883"
81
+      - "8083:8083"
82
+      - "18083:18083"
83
+    environment:
84
+      EMQX_DASHBOARD__DEFAULT_USERNAME: admin
85
+      EMQX_DASHBOARD__DEFAULT_PASSWORD: public
86
+    volumes:
87
+      - emqxdata:/opt/emqx/data
88
+    healthcheck:
89
+      test: ["CMD", "emqx", "ping"]
90
+      interval: 10s
91
+      timeout: 5s
92
+      retries: 5
93
+
94
+  # ==================== 服务注册/配置 ====================
95
+  nacos:
96
+    image: nacos/nacos-server:v2.3.2
97
+    container_name: wm-nacos
98
+    environment:
99
+      MODE: standalone
100
+      PREFER_HOST_MODE: hostname
101
+    ports:
102
+      - "8848:8848"
103
+      - "9848:9848"
104
+    volumes:
105
+      - nacosdata:/home/nacos/data
106
+    healthcheck:
107
+      test: ["CMD-SHELL", "curl -s http://localhost:8848/nacos/v1/console/health/readiness"]
108
+      interval: 15s
109
+      timeout: 5s
110
+      retries: 5
111
+
112
+  # ==================== 搜索引擎 ====================
113
+  elasticsearch:
114
+    image: elasticsearch:8.15.0
115
+    container_name: wm-es
116
+    environment:
117
+      discovery.type: single-node
118
+      xpack.security.enabled: "false"
119
+      "ES_JAVA_OPTS": "-Xms512m -Xmx512m"
120
+    ports:
121
+      - "9200:9200"
122
+    volumes:
123
+      - esdata:/usr/share/elasticsearch/data
124
+
125
+  kibana:
126
+    image: kibana:8.15.0
127
+    container_name: wm-kibana
128
+    ports:
129
+      - "5601:5601"
130
+    environment:
131
+      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
132
+    depends_on:
133
+      - elasticsearch
134
+
135
+  # ==================== 对象存储 ====================
136
+  minio:
137
+    image: minio/minio:latest
138
+    container_name: wm-minio
139
+    ports:
140
+      - "9000:9000"
141
+      - "9001:9001"
142
+    environment:
143
+      MINIO_ROOT_USER: minioadmin
144
+      MINIO_ROOT_PASSWORD: minioadmin
145
+    volumes:
146
+      - miniodata:/data
147
+    command: server /data --console-address ":9001"
148
+    healthcheck:
149
+      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
150
+      interval: 10s
151
+      timeout: 5s
152
+      retries: 5
153
+
154
+  # ==================== GIS 地图服务 ====================
155
+  geoserver:
156
+    image: docker.osgeo.org/geoserver:2.25.2
157
+    container_name: wm-geoserver
158
+    ports:
159
+      - "8081:8080"
160
+    environment:
161
+      INSTALL_EXTENSIONS: "true"
162
+      STABLE_EXTENSIONS: "wps,csw"
163
+      GEOSERVER_ADMIN_USER: admin
164
+      GEOSERVER_ADMIN_PASSWORD: geoserver
165
+    volumes:
166
+      - geoserverdata:/opt/geoserver_data
167
+    profiles:
168
+      - gis
169
+    healthcheck:
170
+      test: ["CMD-SHELL", "curl -s http://localhost:8080/geoserver/web/"]
171
+      interval: 20s
172
+      timeout: 10s
173
+      retries: 3
174
+
175
+volumes:
176
+  pgdata:
177
+  tddata:
178
+  redisdata:
179
+  kafkadata:
180
+  emqxdata:
181
+  nacosdata:
182
+  esdata:
183
+  miniodata:
184
+  geoserverdata:

+ 121
- 0
pom.xml Dosyayı Görüntüle

@@ -0,0 +1,121 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5
+         https://maven.apache.org/xsd/maven-4.0.0.xsd">
6
+    <modelVersion>4.0.0</modelVersion>
7
+
8
+    <parent>
9
+        <groupId>org.springframework.boot</groupId>
10
+        <artifactId>spring-boot-starter-parent</artifactId>
11
+        <version>3.3.5</version>
12
+        <relativePath/>
13
+    </parent>
14
+
15
+    <groupId>com.water</groupId>
16
+    <artifactId>wm-parent</artifactId>
17
+    <version>1.0.0-SNAPSHOT</version>
18
+    <packaging>pom</packaging>
19
+    <name>智慧水务管理系统</name>
20
+    <description>精河县供水工程综合管理平台</description>
21
+
22
+    <properties>
23
+        <java.version>17</java.version>
24
+        <spring-cloud.version>2023.0.3</spring-cloud.version>
25
+        <spring-cloud-alibaba.version>2023.0.1.0</spring-cloud-alibaba.version>
26
+        <mybatis-plus.version>3.5.7</mybatis-plus.version>
27
+        <sa-token.version>1.39.0</sa-token.version>
28
+        <hutool.version>5.8.29</hutool.version>
29
+        <knife4j.version>4.5.0</knife4j.version>
30
+        <easyexcel.version>3.3.4</easyexcel.version>
31
+        <postgis.version>2023.1.0</postgis.version>
32
+        <minio.version>8.5.10</minio.version>
33
+    </properties>
34
+
35
+    <modules>
36
+        <module>wm-common</module>
37
+        <module>wm-gateway</module>
38
+        <module>wm-base</module>
39
+        <module>wm-iot</module>
40
+        <module>wm-data-engine</module>
41
+        <module>wm-bpm</module>
42
+        <module>wm-production</module>
43
+        <module>wm-revenue</module>
44
+        <module>wm-patrol</module>
45
+        <module>wm-bi</module>
46
+        <module>wm-notify</module>
47
+        <module>wm-job</module>
48
+    </modules>
49
+
50
+    <dependencyManagement>
51
+        <dependencies>
52
+            <dependency>
53
+                <groupId>org.springframework.cloud</groupId>
54
+                <artifactId>spring-cloud-dependencies</artifactId>
55
+                <version>${spring-cloud.version}</version>
56
+                <type>pom</type>
57
+                <scope>import</scope>
58
+            </dependency>
59
+            <dependency>
60
+                <groupId>com.alibaba.cloud</groupId>
61
+                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
62
+                <version>${spring-cloud-alibaba.version}</version>
63
+                <type>pom</type>
64
+                <scope>import</scope>
65
+            </dependency>
66
+            <dependency>
67
+                <groupId>com.baomidou</groupId>
68
+                <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
69
+                <version>${mybatis-plus.version}</version>
70
+            </dependency>
71
+            <dependency>
72
+                <groupId>cn.dev33</groupId>
73
+                <artifactId>sa-token-spring-boot3-starter</artifactId>
74
+                <version>${sa-token.version}</version>
75
+            </dependency>
76
+            <dependency>
77
+                <groupId>cn.hutool</groupId>
78
+                <artifactId>hutool-all</artifactId>
79
+                <version>${hutool.version}</version>
80
+            </dependency>
81
+            <dependency>
82
+                <groupId>com.github.xiaoymin</groupId>
83
+                <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
84
+                <version>${knife4j.version}</version>
85
+            </dependency>
86
+            <dependency>
87
+                <groupId>com.alibaba</groupId>
88
+                <artifactId>easyexcel</artifactId>
89
+                <version>${easyexcel.version}</version>
90
+            </dependency>
91
+            <dependency>
92
+                <groupId>net.postgis</groupId>
93
+                <artifactId>postgis-jdbc</artifactId>
94
+                <version>${postgis.version}</version>
95
+            </dependency>
96
+            <dependency>
97
+                <groupId>io.minio</groupId>
98
+                <artifactId>minio</artifactId>
99
+                <version>${minio.version}</version>
100
+            </dependency>
101
+            <dependency>
102
+                <groupId>com.water</groupId>
103
+                <artifactId>wm-common</artifactId>
104
+                <version>${project.version}</version>
105
+            </dependency>
106
+        </dependencies>
107
+    </dependencyManagement>
108
+
109
+    <dependencies>
110
+        <dependency>
111
+            <groupId>org.projectlombok</groupId>
112
+            <artifactId>lombok</artifactId>
113
+            <optional>true</optional>
114
+        </dependency>
115
+        <dependency>
116
+            <groupId>org.springframework.boot</groupId>
117
+            <artifactId>spring-boot-starter-test</artifactId>
118
+            <scope>test</scope>
119
+        </dependency>
120
+    </dependencies>
121
+</project>

+ 16
- 0
wm-base/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-base</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-base/src/main/java/com/water/base/BaseApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.base;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class BaseApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(BaseApplication.class, args);
10
+    }
11
+}

+ 31
- 0
wm-base/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,31 @@
1
+server:
2
+  port: 8081
3
+
4
+spring:
5
+  application:
6
+    name: wm-base
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+    driver-class-name: org.postgresql.Driver
12
+  cloud:
13
+    nacos:
14
+      discovery:
15
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
16
+
17
+sa-token:
18
+  token-name: Authorization
19
+  timeout: 86400
20
+  is-concurrent: false
21
+  is-share: false
22
+  token-style: uuid
23
+
24
+mybatis-plus:
25
+  mapper-locations: classpath*:/mapper/**/*.xml
26
+  global-config:
27
+    db-config:
28
+      id-type: auto
29
+      logic-delete-field: deleted
30
+      logic-delete-value: 1
31
+      logic-not-delete-value: 0

+ 16
- 0
wm-bi/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-bi</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-bi/src/main/java/com/water/bi/BiApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.bi;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class BiApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(BiApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-bi/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8088
3
+
4
+spring:
5
+  application:
6
+    name: wm-bi
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 16
- 0
wm-bpm/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-bpm</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-bpm/src/main/java/com/water/bpm/BpmApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.bpm;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class BpmApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(BpmApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-bpm/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8084
3
+
4
+spring:
5
+  application:
6
+    name: wm-bpm
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 15
- 0
wm-common/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-common</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
10
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
11
+        <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId></dependency>
12
+        <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency>
13
+        <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId></dependency>
14
+    </dependencies>
15
+</project>

+ 10
- 0
wm-common/src/main/java/com/water/common/core/exception/BusinessException.java Dosyayı Görüntüle

@@ -0,0 +1,10 @@
1
+package com.water.common.core.exception;
2
+
3
+import lombok.Getter;
4
+
5
+@Getter
6
+public class BusinessException extends RuntimeException {
7
+    private final int code;
8
+    public BusinessException(int code, String message) { super(message); this.code = code; }
9
+    public BusinessException(String message) { this(400, message); }
10
+}

+ 24
- 0
wm-common/src/main/java/com/water/common/core/exception/GlobalExceptionHandler.java Dosyayı Görüntüle

@@ -0,0 +1,24 @@
1
+package com.water.common.core.exception;
2
+
3
+import com.water.common.core.result.R;
4
+import jakarta.servlet.http.HttpServletRequest;
5
+import lombok.extern.slf4j.Slf4j;
6
+import org.springframework.web.bind.annotation.ExceptionHandler;
7
+import org.springframework.web.bind.annotation.RestControllerAdvice;
8
+
9
+@Slf4j
10
+@RestControllerAdvice
11
+public class GlobalExceptionHandler {
12
+
13
+    @ExceptionHandler(BusinessException.class)
14
+    public R<Void> handleBusiness(BusinessException e, HttpServletRequest request) {
15
+        log.warn("Business exception: {} - {}", e.getCode(), e.getMessage());
16
+        return R.fail(e.getCode(), e.getMessage());
17
+    }
18
+
19
+    @ExceptionHandler(Exception.class)
20
+    public R<Void> handleException(Exception e, HttpServletRequest request) {
21
+        log.error("System exception: {}", e.getMessage(), e);
22
+        return R.fail(500, "系统内部错误");
23
+    }
24
+}

+ 36
- 0
wm-common/src/main/java/com/water/common/core/result/R.java Dosyayı Görüntüle

@@ -0,0 +1,36 @@
1
+package com.water.common.core.result;
2
+
3
+import lombok.Data;
4
+import java.io.Serializable;
5
+
6
+@Data
7
+public class R<T> implements Serializable {
8
+
9
+    private int code;
10
+    private String message;
11
+    private T data;
12
+    private long timestamp = System.currentTimeMillis();
13
+
14
+    public static <T> R<T> ok() {
15
+        return ok(null);
16
+    }
17
+
18
+    public static <T> R<T> ok(T data) {
19
+        R<T> r = new R<>();
20
+        r.code = 200;
21
+        r.message = "success";
22
+        r.data = data;
23
+        return r;
24
+    }
25
+
26
+    public static <T> R<T> fail(int code, String message) {
27
+        R<T> r = new R<>();
28
+        r.code = code;
29
+        r.message = message;
30
+        return r;
31
+    }
32
+
33
+    public static <T> R<T> fail(String message) {
34
+        return fail(500, message);
35
+    }
36
+}

+ 17
- 0
wm-data-engine/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-data-engine</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>
13
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+        <dependency><groupId>net.postgis</groupId><artifactId>postgis-jdbc</artifactId></dependency>
16
+    </dependencies>
17
+</project>

+ 11
- 0
wm-data-engine/src/main/java/com/water/data_engine/DataEngineApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.data_engine;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class DataEngineApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(DataEngineApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-data-engine/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8083
3
+
4
+spring:
5
+  application:
6
+    name: wm-data-engine
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 14
- 0
wm-gateway/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,14 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-gateway</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>
10
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
12
+        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>
13
+    </dependencies>
14
+</project>

+ 13
- 0
wm-gateway/src/main/java/com/water/gateway/GatewayApplication.java Dosyayı Görüntüle

@@ -0,0 +1,13 @@
1
+package com.water.gateway;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6
+
7
+@SpringBootApplication
8
+@EnableDiscoveryClient
9
+public class GatewayApplication {
10
+    public static void main(String[] args) {
11
+        SpringApplication.run(GatewayApplication.class, args);
12
+    }
13
+}

+ 54
- 0
wm-gateway/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,54 @@
1
+server:
2
+  port: 8080
3
+
4
+spring:
5
+  application:
6
+    name: wm-gateway
7
+  cloud:
8
+    nacos:
9
+      discovery:
10
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
11
+      config:
12
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
13
+    gateway:
14
+      discovery:
15
+        locator:
16
+          enabled: true
17
+          lower-case-service-id: true
18
+      routes:
19
+        - id: wm-base
20
+          uri: lb://wm-base
21
+          predicates:
22
+            - Path=/api/base/**
23
+          filters:
24
+            - StripPrefix=1
25
+        - id: wm-iot
26
+          uri: lb://wm-iot
27
+          predicates:
28
+            - Path=/api/iot/**
29
+          filters:
30
+            - StripPrefix=1
31
+        - id: wm-production
32
+          uri: lb://wm-production
33
+          predicates:
34
+            - Path=/api/production/**
35
+          filters:
36
+            - StripPrefix=1
37
+        - id: wm-revenue
38
+          uri: lb://wm-revenue
39
+          predicates:
40
+            - Path=/api/revenue/**
41
+          filters:
42
+            - StripPrefix=1
43
+        - id: wm-patrol
44
+          uri: lb://wm-patrol
45
+          predicates:
46
+            - Path=/api/patrol/**
47
+          filters:
48
+            - StripPrefix=1
49
+        - id: wm-bi
50
+          uri: lb://wm-bi
51
+          predicates:
52
+            - Path=/api/bi/**
53
+          filters:
54
+            - StripPrefix=1

+ 17
- 0
wm-iot/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-iot</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>
13
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+        <dependency><groupId>net.postgis</groupId><artifactId>postgis-jdbc</artifactId></dependency>
16
+    </dependencies>
17
+</project>

+ 11
- 0
wm-iot/src/main/java/com/water/iot/IotApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.iot;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class IotApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(IotApplication.class, args);
10
+    }
11
+}

+ 22
- 0
wm-iot/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,22 @@
1
+server:
2
+  port: 8082
3
+
4
+spring:
5
+  application:
6
+    name: wm-iot
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  data:
12
+    redis:
13
+      host: ${REDIS_HOST:127.0.0.1}
14
+      port: 6379
15
+  kafka:
16
+    bootstrap-servers: ${KAFKA_HOST:127.0.0.1}:9092
17
+    consumer:
18
+      group-id: wm-iot-consumer
19
+  cloud:
20
+    nacos:
21
+      discovery:
22
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848

+ 16
- 0
wm-job/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-job</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-job/src/main/java/com/water/job/JobApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.job;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class JobApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(JobApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-job/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8090
3
+
4
+spring:
5
+  application:
6
+    name: wm-job
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 17
- 0
wm-notify/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-notify</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>
13
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+        <dependency><groupId>net.postgis</groupId><artifactId>postgis-jdbc</artifactId></dependency>
16
+    </dependencies>
17
+</project>

+ 11
- 0
wm-notify/src/main/java/com/water/notify/NotifyApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.notify;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class NotifyApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(NotifyApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-notify/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8089
3
+
4
+spring:
5
+  application:
6
+    name: wm-notify
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 16
- 0
wm-patrol/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-patrol</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-patrol/src/main/java/com/water/patrol/PatrolApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.patrol;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class PatrolApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(PatrolApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-patrol/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8087
3
+
4
+spring:
5
+  application:
6
+    name: wm-patrol
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 16
- 0
wm-production/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-production</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-production/src/main/java/com/water/production/ProductionApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.production;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class ProductionApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(ProductionApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-production/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8085
3
+
4
+spring:
5
+  application:
6
+    name: wm-production
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml

+ 16
- 0
wm-revenue/pom.xml Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0"
3
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <modelVersion>4.0.0</modelVersion>
6
+    <parent><groupId>com.water</groupId><artifactId>wm-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent>
7
+    <artifactId>wm-revenue</artifactId>
8
+    <dependencies>
9
+        <dependency><groupId>com.water</groupId><artifactId>wm-common</artifactId></dependency>
10
+        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
11
+        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
12
+        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
13
+        <dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId></dependency>
14
+        <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency>
15
+    </dependencies>
16
+</project>

+ 11
- 0
wm-revenue/src/main/java/com/water/revenue/RevenueApplication.java Dosyayı Görüntüle

@@ -0,0 +1,11 @@
1
+package com.water.revenue;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class RevenueApplication {
8
+    public static void main(String[] args) {
9
+        SpringApplication.run(RevenueApplication.class, args);
10
+    }
11
+}

+ 17
- 0
wm-revenue/src/main/resources/application.yml Dosyayı Görüntüle

@@ -0,0 +1,17 @@
1
+server:
2
+  port: 8086
3
+
4
+spring:
5
+  application:
6
+    name: wm-revenue
7
+  datasource:
8
+    url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
9
+    username: ${PG_USER:water}
10
+    password: ${PG_PASS:water123}
11
+  cloud:
12
+    nacos:
13
+      discovery:
14
+        server-addr: ${NACOS_HOST:127.0.0.1}:8848
15
+
16
+mybatis-plus:
17
+  mapper-locations: classpath*:/mapper/**/*.xml