diff --git a/bonus-modules/bonus-shared-station/pom.xml b/bonus-modules/bonus-shared-station/pom.xml
new file mode 100644
index 00000000..9768fb51
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/pom.xml
@@ -0,0 +1,213 @@
+
+
+
+ com.bonus
+ bonus-modules
+ 24.12.0-SNAPSHOT
+
+ 4.0.0
+
+ bonus-shared-station
+
+
+ bonus-modules-shared-station 共享驿站
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.1
+
+
+
+ com.github.ulisesbocchio
+ jasypt-spring-boot-starter
+ ${jasypt-spring-boot-starter.version}
+
+
+ org.springframework
+ spring-test
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ ${swagger.fox.version}
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.bonus
+ bonus-common-datasource
+
+
+
+
+ com.bonus
+ bonus-common-datascope
+
+
+
+
+ com.bonus
+ bonus-common-log
+
+
+
+
+ com.bonus
+ bonus-common-swagger
+
+
+ com.google.guava
+ guava
+ 30.0-jre
+ compile
+
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+ com.bonus
+ bonus-common-biz
+ 24.12.0-SNAPSHOT
+ compile
+
+
+ junit
+ junit
+ test
+
+
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 5.2.3
+
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.34.0.ALL
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ ${mybatis-plus.version}
+ pom
+ import
+
+
+
+ com.alibaba
+ easyexcel
+ 3.0.5
+
+
+ cn.hutool
+ hutool-all
+ 5.8.11
+
+
+ cn.hutool
+ hutool-all
+ 5.8.23
+ compile
+
+
+
+ org.redisson
+ redisson
+ 3.44.0
+
+
+
+
+ org.apache.rocketmq
+ rocketmq-spring-boot-starter
+ 2.3.1
+
+
+
+ org.springframework.amqp
+ spring-amqp
+ 2.4.8
+
+
+ org.springframework.amqp
+ spring-rabbit
+ 2.4.8
+
+
+
+ org.eclipse.paho
+ org.eclipse.paho.mqttv5.client
+ 1.2.5
+
+
+
+ com.xuxueli
+ xxl-job-core
+ 2.4.0
+
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.4.2
+
+
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java
new file mode 100644
index 00000000..eeaa1397
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java
@@ -0,0 +1,37 @@
+package com.bonus.core;
+
+import com.bonus.common.security.annotation.EnableCustomConfig;
+import com.bonus.common.security.annotation.EnableRyFeignClients;
+import com.bonus.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * 系统模块
+ *
+ * @author bonus
+ */
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableScheduling
+@EnableRyFeignClients
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+public class BonusSharedStationApplication
+{
+ public static void main(String[] args)
+ {
+ SpringApplication.run(BonusSharedStationApplication.class, args);
+ System.out.println("(♥◠‿◠)ノ゙ 2025博诺思共享驿站启动成功 ლ(´ڡ`ლ)゙ \n" +
+ " .-------. ____ __ \n" +
+ " | _ _ \\ \\ \\ / / \n" +
+ " | ( ' ) | \\ _. / ' \n" +
+ " |(_ o _) / _( )_ .' \n" +
+ " | (_,_).' __ ___(_ o _)' \n" +
+ " | |\\ \\ | || |(_,_)' \n" +
+ " | | \\ `' /| `-' / \n" +
+ " | | \\ / \\ / \n" +
+ " ''-' `'-' `-..-' ");
+ }
+}
diff --git a/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java
new file mode 100644
index 00000000..cb7b1d0a
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java
@@ -0,0 +1,43 @@
+package com.bonus.core.common.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BaseTreeNode {
+ private Long id;
+ private Long parentId;
+ private List children;
+
+ public void addChild(BaseTreeNode baseTreeNode) {
+ if (this.children == null) {
+ this.setChildren(new ArrayList());
+ }
+
+ this.getChildren().add(baseTreeNode);
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public Long getParentId() {
+ return this.parentId;
+ }
+
+ public List getChildren() {
+ return this.children;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setParentId(final Long parentId) {
+ this.parentId = parentId;
+ }
+
+ public void setChildren(final List children) {
+ this.children = children;
+ }
+
+}
diff --git a/bonus-modules/bonus-shared-station/src/main/resources/banner.txt b/bonus-modules/bonus-shared-station/src/main/resources/banner.txt
new file mode 100644
index 00000000..fbd45f53
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/src/main/resources/banner.txt
@@ -0,0 +1,10 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+ _ _
+ (_) | |
+ _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___
+| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \
+| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | |
+|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_|
+ __/ | __/ |
+ |___/ |___/
\ No newline at end of file
diff --git a/bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml
new file mode 100644
index 00000000..f14f3a3b
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml
@@ -0,0 +1,45 @@
+# Tomcat
+server:
+ port: 58691
+
+# Spring
+spring:
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 127.0.0.1:8848
+ namespace: smart_canteen
+ username: nacos
+ password: nacos
+ config:
+ # 配置中心地址
+ server-addr: 127.0.0.1:8848
+ namespace: smart_canteen
+ username: nacos
+ password: nacos
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+
+#加密组件
+jasypt:
+ encryptor:
+ password: Encrypt
+
+mybatis:
+ configuration:
+ map-underscore-to-camel-case: true
+
+
+system:
+ sysfile:
+ prefixOffline: http://localhost:9000/lnyst
+ prefixOnline: http://localhost:9000/lnyst
+ bucket: /lnyst
+
+
+oss:
+ endpoint: http://localhost:9000
diff --git a/bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml
new file mode 100644
index 00000000..146518d5
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml
@@ -0,0 +1,84 @@
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: bonus-shared-station
+ profiles:
+ # 环境配置
+ active: smart_canteen_local
+ messages:
+ basename: "message_device,message_account,message_adapter,message_allocation,message_attendance,message_auth,message_common,message_customer,message_dorm,message_drp,message_kitchen,message_marketing,message_menu,message_merchant,message_notice,message_nutrition,message_open,message_order,message_pay,message_report,message_supermarket,message_backfield,message_bus"
+ fallback-to-system-locale: false
+ mq:
+ type: ${MQ_TYPE:rabbitmq}
+ namespace: __yunshitang__
+ topics:
+ - name: order #订单
+ - name: backfield #后场
+ - name: drp #出入库
+ - name: supermarket #商超
+ - name: device #设备
+ - name: acc #账户
+ - name: notice #通知
+ - name: auth #权限
+ - name: menuai #菜品识别
+ - name: dishes #菜品
+ - name: marketing #营销
+ - name: backfield-mqtt
+ - name: device-mqtt
+ - name: customer
+ - name: pay
+ - name: canteen
+ - name: merchant
+ - name: paddle-ai
+ rabbitmq:
+ clean-none-namespace-queue: true
+ publisher-confirm-type: correlated
+ publisher-returns: true
+ username: guest
+ password: guest
+ addresses: ${RABBITMQ_ADDRESS:localhost:5672}
+ address-shuffle-mode: random
+ connection-timeout: 3000
+ listener:
+ simple:
+ acknowledge-mode: manual
+ prefetch: ${RABBITMQ_CONSUMER_PREFETCH:10}
+ rocketmq:
+ name-server: ${ROCKETMQ_NAME_SERVER:rocketmq-nameserver:9876}
+ access-key: ${ROCKETMQ_ACCESS_KEY:root@rocket}
+ secret-key: ${ROCKETMQ_SECRET_KEY:do@u.can}
+ mqtt-enabled: true
+ producer:
+ group: default
+
+alipay:
+ URL: https://openapi.alipay.com/gateway.do
+ PID: 2088041561080184
+ APPID: 2021002125609361
+ PRIVATE_KEY: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCpBulkHcSEQvo0GmPyYmyNOWjlCxTn/r/zrOLoXlLN44ZECgdn+Kn9E0EFjwenc/xz4H3V89KrwCA0kNX3m5Hs5qfbKIaycIQf7MvBQHPeUxQ+HeiBwg8b5vcaNy9RtS+wEuU21GF2ZU4QFpk9wYU/MWtvyt/vtj/HCL3/IGvVhcQcbumGlmBEYfoFZLez/7PfIY0SOZ7jdxCS/XGOwwBx2hMTCsMS05VPEaEwDYV5U2WN8FDDXCt6NvHPPR+BUoDON7xxaalHcN/mokpkyFmTXXAadjLVof9BJFPIYaJKmN/aRG7TWMvvZwEDKmcmeyLGiph9M4UEviiXJus/369TAgMBAAECggEAN1Bqune/YuUkSj7ErIKnMYQzHpmEyvMkUBMo4pBTmss1mjiJ+e13e7l8Utxezd74I9e4dnbnX4ttPqaTTwebNqK5FdBqXCTUKDpu55w3Du+zNSzGdQhTt3bbMLoUgzG/HGjimBHin0NBy6QJnBsjhu2eUiRbKnBC6NikjMRIZcRrAhFx65s6M6X7tRmWCybPDcWyp2Zz+nQZhCaku+qVdNz1+Jt1z3R7RZvcVNMXV0XKTu/TdMGfeGOzmyjwCEQG2iw/e7y7QkJHQDU0dKjeBCcZ9xAeGjY9m2gEK2nk1drPJ4TUEtREbZbS8lVkdjOGFQ0VMEY00KEb4JLRwam16QKBgQDlMyaqhiYAY8o1QxZ/4i2YxNHnP8Q0qQ4lyvTaVjZH3trINIXMjwtlezxwjXoMKvcgYfXFdJ9La88qsBOrqzkgePI5sX3AAGMACgUSfQmbLCfxQ4pzN2/bigWl5apFWWrfi7vmUlE+xUZmbv+HePLVslOS8RmCE79sHjwIEGQghQKBgQC8yo1xCdripF8aLMZVFDBabi3i8n6jJFzEJvY74HqoIegjSAUkmivSvw/VkGdg+bGoAinza/4zUAF7oCn/z+Q422ZQ6ldHetDioxxtumUU1Zt6ilwdpiQzMGj9B9+fHtpEaXZJjjcUQCKUMOBegcki4H4WkHcyqkLHk7TY8DPD9wKBgQDV0LwXhIHbBzzSJz3MG2HSDHqMsm4FelhaZVW6gYat0XZkIqtXQ3KsPyUJEtJym3pjWT9/7uXT5EUlW5FeKqNmaa3+qFfZUAMLPE2zC7Z0beLtLcbw6RyOv9m5A+GuRFZxKNgna0+jsUGVuaLj7K8NMAjLIeRb9rQy1pnGJBRkSQKBgFyr6OY1+jYKjYxhsjGNKXcaYnfmpPccIFVA8tnNhSgHDNZUwgGHlD9s/i7NJZHav7RC66jLuAokGbY/lp41xEeMmxrZDWLPDL5TZt8OAhRKDnoGdNUw+tAN0Vtzg/etw2KVijTtFGhiWxb3Lwv1FXCDViFpZLmADiu9e6aJsj9dAoGBAK2IuG617pbbFq6vl9lYyYxT5wBYWQ47uHu8vKTfKnZ6zkGecZssiLdSKMwmAB0oJOXPc9QcWe3MYAnFEBw2DygmluxDlE5hK36Nb2Tvs75MD7Bj0noQ4pCC12v1KF57zzhaU9PqkAM8VouLLWe7eOa6ScBZn+3P9Q0EijuPesn/
+ FORMAT: JSON
+ CHARSET: UTF-8
+ SIGN_TYPE: RSA2
+ ALIPAY_PUBLIC_KEY: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApnqCjevyilI4LcWsrUI7d6zSSc/+xqKO6U0Bmf3yCKRNPNubqHeOQ7Wd9+63lswObGNa6sHYkoZEmoO3WhIRu1ruV1gG3dqnuZ93PNHtoG22S6fPoSwJyB1i1N61dPHV7ikU5Ljq/VJhP05cYH+MiZOb5sx47Ub4KqKghVkyZu6mSlVWu/ojipd0H3kl88QXnF1W3QT1B9DSkODg94u4A28SrJHT+8nkPhOsD8cs5NmwmZJUieFiHh69hEgR+Af2xl1G+LNRWN4vTZ4sWcAnQp+
+
+system:
+ sysfile:
+ prefixOffline: http://localhost:9000/lnyst
+ prefixOnline: http://localhost:9000/lnyst
+ bucket: /lnyst
+ max-upload-file-size: ${MAX_UPLOAD_FILE_SIZE:5}
+ notify:
+ unify-host: ${NOTIFY_UNIFY_HOST:}
+
+oss:
+ endpoint: ${OSS_ENDPOINT:http://127.0.0.1:9000}
+ access-key: ${OSS_ACCESS_KEY:minioadmin}
+ secret-key: ${OSS_SECRET_KEY:minioadmin}
+ bucketName: ${OSS_BUCKET:lnyst}
+ expiresTime: ${OSS_EXPIRES_TIME:604600}
+ useToken: ${OSS_USE_TOKEN:false}
+ region: ${OSS_REGION:}
+ path-style-access: ${OSS_PATH_STYLE:true}
+ useHttp: ${OSS_USE_HTTP:false}
+
diff --git a/bonus-modules/bonus-shared-station/src/main/resources/logback.xml b/bonus-modules/bonus-shared-station/src/main/resources/logback.xml
new file mode 100644
index 00000000..b5892608
--- /dev/null
+++ b/bonus-modules/bonus-shared-station/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bonus-modules/bonus-shared-station/src/main/resources/template/template.xlsx b/bonus-modules/bonus-shared-station/src/main/resources/template/template.xlsx
new file mode 100644
index 00000000..2eddd2cc
Binary files /dev/null and b/bonus-modules/bonus-shared-station/src/main/resources/template/template.xlsx differ
diff --git a/bonus-modules/pom.xml b/bonus-modules/pom.xml
index ca1ca661..e7cf8d83 100644
--- a/bonus-modules/pom.xml
+++ b/bonus-modules/pom.xml
@@ -12,6 +12,8 @@
bonus-smart-canteen
+ bonus-shared-station
+ bonus-shared-station
bonus-modules