From 827b2160094482c075968b74e6b69284e7c6eb80 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期三, 24 四月 2024 17:00:01 +0800
Subject: [PATCH] 最新版本

---
 server/visits/admin_timer/src/main/resources/application.yml                                           |    2 
 server/meeting/meeting_web/src/main/resources/application.yml                                          |    2 
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                           |   30 ++
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Projects.java               |    2 
 server/meeting/meeting_admin/src/main/resources/bootstrap.yml                                          |   12 
 server/system_gateway/src/main/resources/application-test.yml                                          |   29 ++
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java                |    2 
 server/visits/dmvisit_admin/src/main/resources/META-INF/MANIFEST.MF                                    |    2 
 server/meeting/meeting_admin/src/main/java/com/doumee/api/cloud/CloudBookingsController.java           |  208 ++++++++++++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java                       |    6 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CloudCarsController.java                |  106 +++++++
 server/system_gateway/src/main/java/com/doumee/Main.java                                               |    7 
 server/visits/dmvisit_web/src/main/resources/application.yml                                           |    2 
 server/system_gateway/src/main/resources/application-dev.yml                                           |   60 ++++
 server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java                |   20 +
 server/visits/openapi/src/main/resources/application.yml                                               |    2 
 server/system_gateway/src/main/resources/META-INF/MANIFEST.MF                                          |    3 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Rooms.java                  |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomRecord.java             |    2 
 server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java                    |    1 
 server/visits/dmvisit_admin/src/main/resources/application.yml                                         |    6 
 server/system_gateway/src/main/resources/bootstrap.yml                                                 |   43 +++
 server/meeting/meeting_web/src/main/java/com/doumee/api/web/MeetingApi.java                            |    2 
 server/system_gateway/src/main/resources/application-pro.yml                                           |   51 +++
 server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java                           |   20 +
 server/pom.xml                                                                                         |  115 +++++---
 server/visits/dmvisit_screen/src/main/resources/application.yml                                        |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/ProjectRel.java             |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java               |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java                     |    1 
 server/system_gateway/src/main/resources/application.yml                                               |   79 +++++
 server/meeting/meeting_admin/src/main/resources/application.yml                                        |   11 
 33 files changed, 771 insertions(+), 65 deletions(-)

diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/api/cloud/CloudBookingsController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/api/cloud/CloudBookingsController.java
new file mode 100644
index 0000000..13c076a
--- /dev/null
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/api/cloud/CloudBookingsController.java
@@ -0,0 +1,208 @@
+package com.doumee.api.cloud;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.model.Bookings;
+import com.doumee.dao.business.vo.RoomStatisticsVo;
+import com.doumee.dao.system.dto.UserStatisticsDTO;
+import com.doumee.dao.system.vo.UserStatisticsVo;
+import com.doumee.dao.web.response.DateTimeResourceDate;
+import com.doumee.dao.web.response.MeetingDetailResponse;
+import com.doumee.service.business.BookingsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/05/04 18:18
+ */
+@Api(tags = "浼氳瀹ら瀹氫俊鎭〃")
+@RestController
+@RequestMapping("/cloud/bookings")
+public class CloudBookingsController extends BaseController {
+
+    @Autowired
+    private BookingsService bookingsService;
+
+    @ApiOperation("娴嬭瘯缃戠")
+    @GetMapping("/test")
+    public ApiResponse test() {
+        return ApiResponse.success("浼氳瀹ゆ祴璇曟垚鍔�");
+    }
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    public ApiResponse create(@RequestBody Bookings bookings) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        bookings.setCreator(user.getId());
+        return ApiResponse.success(bookingsService.create(bookings));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        bookingsService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        bookingsService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    public ApiResponse updateById(@RequestBody Bookings bookings) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        bookings.setCreator(user.getId());
+        bookingsService.updateById(bookings);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    public ApiResponse<PageData<Bookings>> findPage (@RequestBody PageWrap<Bookings> pageWrap) {
+        return ApiResponse.success(bookingsService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:bookings:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<Bookings> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(Bookings.class).export(bookingsService.findPage(pageWrap).getRecords(), "浼氳瀹ら瀹氫俊鎭〃", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    public ApiResponse<MeetingDetailResponse> findById(@PathVariable Integer id) {
+        return ApiResponse.success(bookingsService.getMeetingDetail(id));
+    }
+
+
+    @ApiOperation("鍙栨秷")
+    @PostMapping("/cancelById")
+    public ApiResponse cancelById(@RequestBody Bookings bookings) {
+        bookingsService.cancelById(bookings);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("浼氳瀹や娇鐢ㄦ椂闀跨粺璁�")
+    @GetMapping("/getRoomStatistics")
+    public ApiResponse<List<RoomStatisticsVo>> getRoomStatistics(@RequestParam Integer yearNum, @RequestParam Integer roomId){
+        return ApiResponse.success(bookingsService.getRoomStatistics(yearNum));
+    }
+
+    @ApiOperation("浜哄憳鍙傚姞浼氳鏃跺父")
+    @PostMapping("/getUserStatistics")
+    public ApiResponse<PageData<UserStatisticsVo>> getUserStatistics(@RequestBody PageWrap<UserStatisticsDTO> pageWrap ){
+        return ApiResponse.success(bookingsService.getUserStatistics(pageWrap));
+    }
+
+    @ApiOperation("浜哄憳鍙備細鏃堕暱缁熻瀵煎嚭Excel")
+    @PostMapping("/exportUserStatistics")
+    public void exportUserStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response) {
+
+        List<UserStatisticsVo> records = bookingsService.getUserStatistics(pageWrap).getRecords();
+        if (!CollectionUtils.isEmpty(records)){
+            JSONArray o = (JSONArray) JSON.toJSON(records);
+            o.forEach(s->{
+                JSONObject jsonObject = (JSONObject) s;
+                Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
+                for (Map.Entry<String, Object> entry:entries){
+
+                    if (entry.getValue() instanceof BigDecimal){
+                        BigDecimal value = (BigDecimal) entry.getValue();
+                        entry.setValue(value.compareTo(value.setScale(0, RoundingMode.DOWN)) > 0 ? value : value.setScale(0, RoundingMode.DOWN));
+                    }
+                }
+            });
+            records = o.toJavaList(UserStatisticsVo.class);
+        }
+        ExcelExporter.build(UserStatisticsVo.class).export(records, "浜哄憳鍙備細鏃堕暱缁熻", response);
+    }
+
+    @ApiOperation("浼氳瀹や娇鐢ㄦ椂闀跨粺璁″鍑篍xcel")
+    @PostMapping("/exportRoomStatistics")
+    public void exportRoomStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response) {
+        List<RoomStatisticsVo> roomStatistics = bookingsService.getRoomStatistics(pageWrap.getModel().getYearNum());
+        if (!CollectionUtils.isEmpty(roomStatistics)){
+            JSONArray o = (JSONArray) JSON.toJSON(roomStatistics);
+            o.forEach(s->{
+                JSONObject jsonObject = (JSONObject) s;
+                Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
+                for (Map.Entry<String, Object> entry:entries){
+
+                    if (entry.getValue() instanceof BigDecimal){
+                        BigDecimal value = (BigDecimal) entry.getValue();
+                        entry.setValue(value.compareTo(value.setScale(0, RoundingMode.DOWN)) > 0 ? value : value.setScale(0, RoundingMode.DOWN));
+                    }
+                }
+            });
+            roomStatistics = o.toJavaList(RoomStatisticsVo.class);
+        }
+        ExcelExporter.build(RoomStatisticsVo.class).export(roomStatistics, "浼氳瀹や娇鐢ㄦ椂闀跨粺璁�", response);
+    }
+
+    @ApiOperation("鍙備笌鐨勯绾︿細璁�")
+    @GetMapping("/reservationCancel")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "1 浠婂ぉ 2 鏈懆", required = true),
+    })
+    public ApiResponse<List<Bookings>> getMyJoinBookingMeet(@RequestParam Integer type){
+
+        LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(00,00,00));
+        LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(23,59,59));
+        if(Constants.equalsInteger(type,Constants.TWO)){
+            startTime =  DateUtil.getMonday();
+            endTime = DateUtil.getSunday();
+        }
+        return ApiResponse.success(bookingsService.getMyJoinBookingMeet(getLoginUser().getId(), null,startTime,endTime));
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛褰撳綋鏈堥绾︿細璁儏鍐�
+     * @return
+     */
+    @ApiOperation("鑾峰彇鐢ㄦ埛褰撳綋鏈堥绾︿細璁儏鍐�")
+    @PostMapping("/findMothBookingMeet")
+    public ApiResponse<List<DateTimeResourceDate>> findMothBookingMeet( @RequestParam(required = false) Integer roomId,String dateMonth){
+
+
+        return ApiResponse.success(bookingsService.findMothBookingMeet(getLoginUser().getId(),roomId,dateMonth));
+    }
+}
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index edfd770..bd5138b 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -73,6 +73,7 @@
         map.put("/common/captcha", "anon");
         //鏂囦欢涓婁紶鍙栨秷鎷︽埅
         map.put("/public/**", "anon");
+        map.put("/cloud/**", "anon");
 
         // - 鏀捐swagger
         map.put("/doc.html", "anon");
diff --git a/server/meeting/meeting_admin/src/main/resources/application.yml b/server/meeting/meeting_admin/src/main/resources/application.yml
index 5ed0488..3f027c1 100644
--- a/server/meeting/meeting_admin/src/main/resources/application.yml
+++ b/server/meeting/meeting_admin/src/main/resources/application.yml
@@ -6,12 +6,10 @@
 #  env: production
 
 spring:
-  #  application:
-  #    name: doumeemes
+  application:
+    name: meetingAdmin
   profiles:
     active: dev
-
-
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯
@@ -23,6 +21,9 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
+
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml
@@ -63,6 +64,8 @@
     enable: true
     username: admin
     password: 111111
+  main:
+    allow-circular-references: true
 
 # WEB鏈嶅姟鍣ㄩ厤缃�
 server:
diff --git a/server/meeting/meeting_admin/src/main/resources/bootstrap.yml b/server/meeting/meeting_admin/src/main/resources/bootstrap.yml
index f502e10..1076d83 100644
--- a/server/meeting/meeting_admin/src/main/resources/bootstrap.yml
+++ b/server/meeting/meeting_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   application:
-    name: meeting
+    name: meetingAdmin
   cloud:
     loadbalancer:
       enabled: true
@@ -17,14 +17,14 @@
       password: nacos
       config:
         server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: meeting
+        namespace: dmvisit
         username: nacos
         password: nacos
-        file-extension: yaml
-        group: dev
-        data-id: com.doumee.meeting.admin
+#        file-extension: yaml
+#        group: dev
+#        data-id: com.doumee.meeting.admin
       discovery:
         server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
-        namespace: meeting
+        namespace: dmvisit
         username: nacos
         password: nacos
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/ProjectRel.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/ProjectRel.java
index a6fc66c..0be3120 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/ProjectRel.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/ProjectRel.java
@@ -18,7 +18,7 @@
  */
 @Data
 @ApiModel("鏈嶅姟椤圭洰鍏宠仈琛�")
-@TableName("`project_rel`")
+@TableName("`meeting_project_rel`")
 public class ProjectRel {
 
     @TableId(type = IdType.AUTO)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Projects.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Projects.java
index 4c1f106..8db1e41 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Projects.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Projects.java
@@ -18,7 +18,7 @@
  */
 @Data
 @ApiModel("鏈嶅姟椤圭洰淇℃伅琛�")
-@TableName("`projects`")
+@TableName("`meeting_projects`")
 public class Projects {
 
     @TableId(type = IdType.AUTO)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomRecord.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomRecord.java
index 599c373..fb0da76 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomRecord.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomRecord.java
@@ -19,7 +19,7 @@
  */
 @Data
 @ApiModel("浼氳瀹ゅ紑闂ㄨ褰曡〃")
-@TableName("`room_record`")
+@TableName("`meeting_room_record`")
 public class RoomRecord {
 
     @TableId(type = IdType.AUTO)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java
index 31dc145..a2af730 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/RoomTime.java
@@ -18,7 +18,7 @@
  */
 @Data
 @ApiModel("浼氳瀹ら绾︽椂闂存淇℃伅琛�")
-@TableName("`room_time`")
+@TableName("`meeting_room_time`")
 public class RoomTime {
 
     @TableId(type = IdType.AUTO)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Rooms.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Rooms.java
index ff41dd5..61ea3b0 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Rooms.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Rooms.java
@@ -22,7 +22,7 @@
  */
 @Data
 @ApiModel("浼氳瀹や俊鎭〃")
-@TableName("`rooms`")
+@TableName("`meeting_rooms`")
 public class Rooms {
 
     @TableId(type = IdType.AUTO)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java
index 7d53d53..924deb6 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/UserRel.java
@@ -19,7 +19,7 @@
  */
 @Data
 @ApiModel("浼氳瀹ょ鐞嗗憳鍜屽弬浼氫汉鍛樺叧鑱旇〃")
-@TableName("`user_rel`")
+@TableName("`meeting_user_rel`")
 public class UserRel {
 
     @TableId(type = IdType.AUTO)
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 4470e01..fb949c1 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -938,7 +938,7 @@
                 .eq("ISDELETED",MeetConstants.ZERO)
                 .eq("SEND_NOTICE", MeetConstants.ZERO)
                 .apply(" now() >= SUBDATE(START_TIME,interval + " + minute + " minute) ")
-                .apply(" ROOM_ID in ( select r.id from rooms r where r.ISDELETED = 0 and r.STATUS = 0  )")
+                .apply(" ROOM_ID in ( select r.id from meeting_rooms r where r.ISDELETED = 0 and r.STATUS = 0  )")
         );
         for (Bookings bookings : bookingsList) {
             bookings.setSendNotice(MeetConstants.ONE);
diff --git a/server/meeting/meeting_web/src/main/java/com/doumee/api/web/MeetingApi.java b/server/meeting/meeting_web/src/main/java/com/doumee/api/web/MeetingApi.java
index 2703fe4..a0070b2 100644
--- a/server/meeting/meeting_web/src/main/java/com/doumee/api/web/MeetingApi.java
+++ b/server/meeting/meeting_web/src/main/java/com/doumee/api/web/MeetingApi.java
@@ -123,6 +123,7 @@
         QrCodeUtils.encode(content,null, response.getOutputStream(), true);
     }
 
+/*
     @LoginRequired
     @ApiOperation("鍙備細浜哄憳鍒嗛〉")
     @PostMapping("/userPage")
@@ -133,6 +134,7 @@
         IPage<UserResponse> page = systemUserService.getUserPage(pageWrap);
         return ApiResponse.success("鏌ヨ鎴愬姛", page);
     }
+*/
 
 
     @LoginRequired
diff --git a/server/meeting/meeting_web/src/main/resources/application.yml b/server/meeting/meeting_web/src/main/resources/application.yml
index 3af5437..c04429b 100644
--- a/server/meeting/meeting_web/src/main/resources/application.yml
+++ b/server/meeting/meeting_web/src/main/resources/application.yml
@@ -23,6 +23,8 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml
diff --git a/server/pom.xml b/server/pom.xml
index 6e90def..960bf01 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -20,7 +20,36 @@
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.3.12.RELEASE</version>
   </parent>
+  <properties>
+    <java.version>1.8</java.version>
+    <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
+    <spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
+    <maven.compiler.source>8</maven.compiler.source>
+    <maven.compiler.target>8</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <!-- Spring Cloud 渚濊禆绠$悊 -->
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-dependencies</artifactId>
+        <version>${spring-cloud.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
 
+      <!-- Alibaba Cloud 渚濊禆绠$悊 -->
+      <dependency>
+        <groupId>com.alibaba.cloud</groupId>
+        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
+        <version>${spring-cloud-alibaba.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+<!--
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -34,20 +63,20 @@
     <oshi.version>5.7.0</oshi.version>
     <jna.version>5.7.0</jna.version>
     <poi.version>5.0.0</poi.version>
-    <!-- jwtToken -->
+    &lt;!&ndash; jwtToken &ndash;&gt;
     <jjwt.version>0.9.1</jjwt.version>
-    <!-- hutool 宸ュ叿鐩稿叧-->
+    &lt;!&ndash; hutool 宸ュ叿鐩稿叧&ndash;&gt;
     <hutool.version>5.5.8</hutool.version>
-    <!-- 寰俊灏忕▼搴� -->
+    &lt;!&ndash; 寰俊灏忕▼搴� &ndash;&gt;
     <weixin-java-miniapp.version>4.1.0</weixin-java-miniapp.version>
-    <!-- 寰俊鏀粯 -->
+    &lt;!&ndash; 寰俊鏀粯 &ndash;&gt;
     <weixin-java-pay.version>4.1.0</weixin-java-pay.version>
-    <!-- 闃块噷浜慜SS瀛樺偍 -->
+    &lt;!&ndash; 闃块噷浜慜SS瀛樺偍 &ndash;&gt;
     <aliyun-oss.version>3.8.0</aliyun-oss.version>
   </properties>
 
   <dependencies>
-    <!-- Spring Boot -->
+    &lt;!&ndash; Spring Boot &ndash;&gt;
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
@@ -56,7 +85,7 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-quartz</artifactId>
     </dependency>
-    <!-- Shiro -->
+    &lt;!&ndash; Shiro &ndash;&gt;
     <dependency>
       <groupId>org.apache.shiro</groupId>
       <artifactId>shiro-spring</artifactId>
@@ -67,21 +96,21 @@
       <artifactId>weixin-java-miniapp</artifactId>
       <version>${weixin-java-miniapp.version}</version>
     </dependency>
-    <!-- MyBatis plus -->
+    &lt;!&ndash; MyBatis plus &ndash;&gt;
     <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>${mybatis.plus.version}</version>
     </dependency>
-    <!-- MyBatis鍒嗛〉 -->
+    &lt;!&ndash; MyBatis鍒嗛〉 &ndash;&gt;
     <dependency>
       <groupId>com.github.pagehelper</groupId>
       <artifactId>pagehelper-spring-boot-starter</artifactId>
       <version>1.3.0</version>
-      <!--浣跨敤spring boot2鏁村悎 pagehelper-spring-boot-starter蹇呴』鎺掗櫎涓�涓嬩緷璧�
+      &lt;!&ndash;浣跨敤spring boot2鏁村悎 pagehelper-spring-boot-starter蹇呴』鎺掗櫎涓�涓嬩緷璧�
           鍥犱负pagehelper-spring-boot-starter涔熷凡缁忓湪pom渚濊禆浜唌ybatis涓巑ybatis-spring
           鎵�浠ヤ細涓巑ybatis-plus-boot-starter涓殑mybatis涓巑ybatis-spring鍙戠敓鍐茬獊
-      -->
+      &ndash;&gt;
       <exclusions>
         <exclusion>
           <groupId>org.mybatis</groupId>
@@ -91,14 +120,14 @@
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis-spring</artifactId>
         </exclusion>
-        <!-- 瑙e喅jsqlparser 渚濊禆鐗堟湰鍐茬獊-->
+        &lt;!&ndash; 瑙e喅jsqlparser 渚濊禆鐗堟湰鍐茬獊&ndash;&gt;
         <exclusion>
           <artifactId>jsqlparser</artifactId>
           <groupId>com.github.jsqlparser</groupId>
         </exclusion>
       </exclusions>
     </dependency>
-    <!-- 杩炴帴姹� -->
+    &lt;!&ndash; 杩炴帴姹� &ndash;&gt;
     <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
@@ -110,14 +139,14 @@
       <scope>runtime</scope>
     </dependency>
 
-    <!-- swagger -->
+    &lt;!&ndash; swagger &ndash;&gt;
     <dependency>
       <groupId>com.github.xiaoymin</groupId>
       <artifactId>knife4j-spring-boot-starter</artifactId>
       <version>3.0.3</version>
     </dependency>
 
-    <!-- lombok -->
+    &lt;!&ndash; lombok &ndash;&gt;
     <dependency>
       <groupId>javax.validation</groupId>
       <artifactId>validation-api</artifactId>
@@ -142,13 +171,13 @@
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
     </dependency>
-    <!--google kaptcha-->
+    &lt;!&ndash;google kaptcha&ndash;&gt;
     <dependency>
       <groupId>com.github.penggle</groupId>
       <artifactId>kaptcha</artifactId>
       <version>2.3.2</version>
     </dependency>
-    <!-- 宸ュ叿鍖� -->
+    &lt;!&ndash; 宸ュ叿鍖� &ndash;&gt;
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
@@ -158,7 +187,7 @@
       <artifactId>fastjson</artifactId>
       <version>${fastjson.version}</version>
     </dependency>
-    <!-- Excel瀵煎叆/瀵煎嚭渚濊禆鍖� -->
+    &lt;!&ndash; Excel瀵煎叆/瀵煎嚭渚濊禆鍖� &ndash;&gt;
     <dependency>
       <groupId>org.apache.poi</groupId>
       <artifactId>poi</artifactId>
@@ -169,7 +198,7 @@
       <artifactId>poi-ooxml</artifactId>
       <version>${poi.version}</version>
     </dependency>
-    <!-- 鑾峰彇绯荤粺淇℃伅渚濊禆鍖� -->
+    &lt;!&ndash; 鑾峰彇绯荤粺淇℃伅渚濊禆鍖� &ndash;&gt;
     <dependency>
       <groupId>com.github.oshi</groupId>
       <artifactId>oshi-core</artifactId>
@@ -185,34 +214,34 @@
       <artifactId>jna-platform</artifactId>
       <version>${jna.version}</version>
     </dependency>
-    <!-- https://mvnrepository.com/artifact/com.github.yulichang/mybatis-plus-join -->
+    &lt;!&ndash; https://mvnrepository.com/artifact/com.github.yulichang/mybatis-plus-join &ndash;&gt;
     <dependency>
       <groupId>com.github.yulichang</groupId>
       <artifactId>mybatis-plus-join</artifactId>
       <version>1.4.2.2</version>
     </dependency>
 
-    <!--娣诲姞fileupload渚濊禆-->
+    &lt;!&ndash;娣诲姞fileupload渚濊禆&ndash;&gt;
     <dependency>
       <groupId>commons-fileupload</groupId>
       <artifactId>commons-fileupload</artifactId>
       <version>1.3.3</version>
     </dependency>
 
-    <!-- FILE杞崲 -->
+    &lt;!&ndash; FILE杞崲 &ndash;&gt;
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-test</artifactId>
     </dependency>
 
-    <!--jwt-->
+    &lt;!&ndash;jwt&ndash;&gt;
     <dependency>
       <groupId>io.jsonwebtoken</groupId>
       <artifactId>jjwt</artifactId>
       <version>${jjwt.version}</version>
     </dependency>
 
-    <!--hutool宸ュ叿-->
+    &lt;!&ndash;hutool宸ュ叿&ndash;&gt;
     <dependency>
       <groupId>cn.hutool</groupId>
       <artifactId>hutool-all</artifactId>
@@ -223,27 +252,27 @@
       <artifactId>pinyin4j</artifactId>
       <version>2.5.1</version>
     </dependency>
-<!--    &lt;!&ndash; WeChat 灏忕▼搴� &ndash;&gt;-->
-<!--    <dependency>-->
-<!--      <groupId>com.github.binarywang</groupId>-->
-<!--      <artifactId>weixin-java-miniapp</artifactId>-->
-<!--      <version>${weixin-java-miniapp.version}</version>-->
-<!--    </dependency>-->
-<!--    &lt;!&ndash; WeChat 鏀粯 &ndash;&gt;-->
-<!--    <dependency>-->
-<!--      <groupId>com.github.binarywang</groupId>-->
-<!--      <artifactId>weixin-java-pay</artifactId>-->
-<!--      <version>${weixin-java-pay.version}</version>-->
-<!--    </dependency>-->
+&lt;!&ndash;    &lt;!&ndash; WeChat 灏忕▼搴� &ndash;&gt;&ndash;&gt;
+&lt;!&ndash;    <dependency>&ndash;&gt;
+&lt;!&ndash;      <groupId>com.github.binarywang</groupId>&ndash;&gt;
+&lt;!&ndash;      <artifactId>weixin-java-miniapp</artifactId>&ndash;&gt;
+&lt;!&ndash;      <version>${weixin-java-miniapp.version}</version>&ndash;&gt;
+&lt;!&ndash;    </dependency>&ndash;&gt;
+&lt;!&ndash;    &lt;!&ndash; WeChat 鏀粯 &ndash;&gt;&ndash;&gt;
+&lt;!&ndash;    <dependency>&ndash;&gt;
+&lt;!&ndash;      <groupId>com.github.binarywang</groupId>&ndash;&gt;
+&lt;!&ndash;      <artifactId>weixin-java-pay</artifactId>&ndash;&gt;
+&lt;!&ndash;      <version>${weixin-java-pay.version}</version>&ndash;&gt;
+&lt;!&ndash;    </dependency>&ndash;&gt;
 
-    <!--  闃块噷浜慜SS-->
+    &lt;!&ndash;  闃块噷浜慜SS&ndash;&gt;
     <dependency>
       <groupId>com.aliyun.oss</groupId>
       <artifactId>aliyun-sdk-oss</artifactId>
       <version>${aliyun-oss.version}</version>
     </dependency>
 
-    <!-- aliyun sms SDK -->
+    &lt;!&ndash; aliyun sms SDK &ndash;&gt;
     <dependency>
       <groupId>com.aliyun</groupId>
       <artifactId>aliyun-java-sdk-core</artifactId>
@@ -255,18 +284,18 @@
       <artifactId>spring-boot-configuration-processor</artifactId>
       <optional>true</optional>
     </dependency>
-    <!-- mqtt -->
+    &lt;!&ndash; mqtt &ndash;&gt;
     <dependency>
       <groupId>org.springframework.integration</groupId>
       <artifactId>spring-integration-mqtt</artifactId>
     </dependency>
-    <!--	娴峰悍绯荤粺	-->
+    &lt;!&ndash;	娴峰悍绯荤粺	&ndash;&gt;
     <dependency>
       <groupId>com.hikvision.ga</groupId>
       <artifactId>artemis-http-client</artifactId>
       <version>1.1.3</version>
     </dependency>
-    <!--鐢熸垚浜岀淮鐮�-->
+    &lt;!&ndash;鐢熸垚浜岀淮鐮�&ndash;&gt;
     <dependency>
       <groupId>com.google.zxing</groupId>
       <artifactId>javase</artifactId>
@@ -282,7 +311,7 @@
       <artifactId>spring-boot-starter-data-redis</artifactId>
     </dependency>
 
-    <!-- WxJava鍏紬鍙� -->
+    &lt;!&ndash; WxJava鍏紬鍙� &ndash;&gt;
     <dependency>
       <groupId>com.github.binarywang</groupId>
       <artifactId>weixin-java-mp</artifactId>
@@ -311,7 +340,7 @@
       <type>pom</type>
       <scope>import</scope>
     </dependency>
-  </dependencies>
+  </dependencies>-->
   <build>
     <plugins>
       <plugin>
diff --git a/server/system_gateway/src/main/java/com/doumee/Main.java b/server/system_gateway/src/main/java/com/doumee/Main.java
new file mode 100644
index 0000000..ada0d0d
--- /dev/null
+++ b/server/system_gateway/src/main/java/com/doumee/Main.java
@@ -0,0 +1,7 @@
+package com.doumee;
+
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file
diff --git a/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java b/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java
new file mode 100644
index 0000000..361805f
--- /dev/null
+++ b/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java
@@ -0,0 +1,20 @@
+package com.doumee;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.context.ApplicationContext;
+
+/**
+ * 鍚姩绫�
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class SystemGatewayApplication {
+    public static void main(String[] args) {
+        ApplicationContext context = SpringApplication.run(SystemGatewayApplication.class);
+        context.getEnvironment();
+    }
+}
diff --git a/server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java b/server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java
new file mode 100644
index 0000000..22b9424
--- /dev/null
+++ b/server/system_gateway/src/main/java/com/doumee/api/meeting/CloudBookingsController.java
@@ -0,0 +1,20 @@
+package com.doumee.api.meeting;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/05/04 18:18
+ */
+@RestController
+@RequestMapping("/gateway")
+public class CloudBookingsController  {
+
+    @GetMapping("/test")
+    public String test() {
+        return ("缃戠娴嬭瘯鎴愬姛");
+    }
+
+}
diff --git a/server/system_gateway/src/main/resources/META-INF/MANIFEST.MF b/server/system_gateway/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..70963e1
--- /dev/null
+++ b/server/system_gateway/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: com.doumee.SystemGatewayApplication
+
diff --git a/server/system_gateway/src/main/resources/application-dev.yml b/server/system_gateway/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..fad750a
--- /dev/null
+++ b/server/system_gateway/src/main/resources/application-dev.yml
@@ -0,0 +1,60 @@
+spring:
+  # 鏁版嵁婧愰厤缃�
+  datasource:
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: doumee
+    password: rtjgfEr@&0c0m
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.alibaba.druid.pool.DruidDataSource
+
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
+
+#rocketmq:
+#  namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
+#  groupId: GID-wakatest
+#  topic: waka-test
+#  username: 4derRb4Sw5EkqUMI
+#  password: v50N97wf4av8Q8I4
+
+knife4j:
+  enable: true
+  basic:
+    enable: true
+    username: admin
+    password: 111111
+
+debug_model: true
+
+captcha_check: false
+
+# Swagger閰嶇疆
+swagger:
+  host:
+  title: ${project.name}鎺ュ彛鏂囨。
+  description: ${project.name}鎺ュ彛鏂囨。
+  enabled: true
+  # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
+  redirect-uri: /
+
+########################寰俊鏀粯鐩稿叧閰嶇疆########################
+wx:
+  pay:
+    appId: wxfab6da18632e28de
+    appSecret: 4ee3b22afa90287834319fc3c1635271
+    mchId: 1229817002
+    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
+    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
+    keyPath: /usr/local/apiclient_cert.p12
+
+tencent:
+  map:
+    remoteHost: https://apis.map.qq.com
+    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
+
+
+########################瀹氭椂寮�鍚厤缃�########################
+timing: true
+
+des_pwd: 123456SDFKDJF
diff --git a/server/system_gateway/src/main/resources/application-pro.yml b/server/system_gateway/src/main/resources/application-pro.yml
new file mode 100644
index 0000000..b3934c8
--- /dev/null
+++ b/server/system_gateway/src/main/resources/application-pro.yml
@@ -0,0 +1,51 @@
+spring:
+  # 鏁版嵁婧愰厤缃�
+  datasource:
+    url: jdbc:mysql://localhost:3306/smart_meeting?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+    username: root
+    password: Znhys@168.com
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.alibaba.druid.pool.DruidDataSource
+
+
+knife4j:
+  enable: true
+  basic:
+    enable: true
+    username: admin
+    password: doumee@168.com
+
+debug_model: true
+
+captcha_check: false
+
+# Swagger閰嶇疆
+swagger:
+  host:
+  title: ${project.name}鎺ュ彛鏂囨。
+  description: ${project.name}鎺ュ彛鏂囨。
+  enabled: true
+  # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
+  redirect-uri: /
+
+
+########################寰俊鏀粯鐩稿叧閰嶇疆########################
+wx:
+  pay:
+    appId: wxfab6da18632e28de
+    appSecret: 4ee3b22afa90287834319fc3c1635271
+    mchId: 1229817002
+    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
+    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
+    keyPath: /usr/local/apiclient_cert.p12
+
+tencent:
+  map:
+    remoteHost: https://apis.map.qq.com
+    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
+
+
+########################瀹氭椂寮�鍚厤缃�########################
+timing: true
+
+des_pwd: 123456SDFKDJF
\ No newline at end of file
diff --git a/server/system_gateway/src/main/resources/application-test.yml b/server/system_gateway/src/main/resources/application-test.yml
new file mode 100644
index 0000000..e4c1f69
--- /dev/null
+++ b/server/system_gateway/src/main/resources/application-test.yml
@@ -0,0 +1,29 @@
+spring:
+  # 鏁版嵁婧愰厤缃�
+  datasource:
+    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: doumee
+    password: rtjgfEr@&0c0m
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.alibaba.druid.pool.DruidDataSource
+
+
+knife4j:
+  enable: true
+  basic:
+    enable: true
+    username: admin
+    password: test@168.com
+
+debug_model: true
+
+captcha_check: false
+
+# Swagger閰嶇疆
+swagger:
+  host:
+  title: ${project.name}鎺ュ彛鏂囨。
+  description: ${project.name}鎺ュ彛鏂囨。
+  enabled: true
+  # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
+  redirect-uri: /
\ No newline at end of file
diff --git a/server/system_gateway/src/main/resources/application.yml b/server/system_gateway/src/main/resources/application.yml
new file mode 100644
index 0000000..076be11
--- /dev/null
+++ b/server/system_gateway/src/main/resources/application.yml
@@ -0,0 +1,79 @@
+# 椤圭洰淇℃伅閰嶇疆
+project:
+  name: 璁垮绯荤粺
+  version: 1.0.0
+  env: development
+#  env: production
+
+
+spring:
+  application:
+    name: system_gateway
+  profiles:
+    active: dev
+
+  # JSON杩斿洖閰嶇疆
+  jackson:
+    # 榛樿鏃跺尯
+    time-zone: GMT+8
+    # 榛樿鏃ユ湡鏍煎紡鍖�
+    date-format: yyyy-MM-dd HH:mm:ss
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+      enabled: true
+  main:
+    allow-circular-references: true
+# MyBatis閰嶇疆
+mybatis-plus:
+  mapper-locations: classpath*:/mappers/**/*.xml
+  configuration:
+    map-underscore-to-camel-case: true
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+# 缂撳瓨鍐呭璁剧疆
+cache:
+  session:
+    # 浼氳瘽杩囨湡鏃堕暱(s)
+    expire: 18000
+  captcha:
+    # 楠岃瘉鐮佽繃鏈熸椂闀�(s)
+    expire: 300
+
+# 璺熻釜鏃ュ織
+trace:
+  # 寮�鍚櫤鑳借窡韪ā寮�
+  smart: true
+  # 鎺掗櫎璺熻釜鐨刄RL姝e垯
+  exclude-patterns: .+/list[a-zA-Z0-9\-\_]*$, .+/tree[a-zA-Z0-9\-\_]*$, .+/page[a-zA-Z0-9\-\_]*$, .+/all[a-zA-Z0-9\-\_]*$, /swagger-resources.*
+
+# 鏃ュ織閰嶇疆
+logback:
+  level: INFO
+  appender: ${project.env}
+# dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql
+logging:
+  level:
+    com.doumee.dao: debug
+
+knife4j:
+  enable: true
+  basic:
+    enable: true
+    username: admin
+    password: 111111
+
+# WEB鏈嶅姟鍣ㄩ厤缃�
+server:
+  compression:
+    enabled: true
+    mime-types: application/json
+  port: 10010
+  tomcat:
+    max-swallow-size: -1
+  servlet:
+    session:
+      timeout: PT3H  #琛ㄧず12灏忔椂
+
+
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..d6bacc9
--- /dev/null
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+spring:
+  application:
+    name: system_gateway
+  cloud:
+    nacos:
+      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      username: nacos
+      password: nacos
+      discovery:
+        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+        namespace: dmvisit
+        username: nacos
+        password: nacos
+    gateway:
+      discovery:
+        locator:
+          #寮�鍚粠娉ㄥ唽涓績鍔ㄦ�佸垱寤鸿矾鐢辩殑鍔熻兘锛屽埄鐢ㄥ井鏈嶅姟鍚嶈繘琛岃矾鐢�
+          enabled: true
+          #寮�鍚皬鍐欓獙璇侊紝榛樿feign鏍规嵁鏈嶅姟鍚嶆煡鎵鹃兘鏄敤鐨勫叏澶у啓
+          lower-case-service-id: true
+      routes:
+        - id: meetingAdmin
+          uri: lb://meetingAdmin
+#          uri: http://localhost:10013
+          # 鏂█,璺緞鐩稿尮閰嶇殑杩涜璺敱
+          predicates:
+            - Path=/meetingAdmin/**
+          filters:
+            - StripPrefix=1
+
+        - id: visitsAdmin
+          uri: lb://visitsAdmin
+#          uri: http://localhost:10028
+          # 鏂█,璺緞鐩稿尮閰嶇殑杩涜璺敱
+          predicates:
+            - Path=/visitsAdmin/**
+          filters:
+            - StripPrefix=1
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
diff --git a/server/visits/admin_timer/src/main/resources/application.yml b/server/visits/admin_timer/src/main/resources/application.yml
index fefb609..b52a3fb 100644
--- a/server/visits/admin_timer/src/main/resources/application.yml
+++ b/server/visits/admin_timer/src/main/resources/application.yml
@@ -23,6 +23,8 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/AdminApplication.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
similarity index 72%
rename from server/visits/dmvisit_admin/src/main/java/com/doumee/AdminApplication.java
rename to server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
index adfd32e..05108b1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/AdminApplication.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
@@ -4,6 +4,7 @@
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.context.ApplicationContext;
 import org.springframework.scheduling.annotation.EnableAsync;
 
@@ -16,10 +17,11 @@
 @EnableAsync
 @SpringBootApplication
 @MapperScan("com.doumee.dao.*")
-public class AdminApplication {
+@EnableDiscoveryClient
+public class VisitsAdminApplication {
 
     public static void main(String[] args) {
-        ApplicationContext context = SpringApplication.run(AdminApplication.class);
+        ApplicationContext context = SpringApplication.run(VisitsAdminApplication.class);
         context.getEnvironment();
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CloudCarsController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CloudCarsController.java
new file mode 100644
index 0000000..5e48302
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CloudCarsController.java
@@ -0,0 +1,106 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Cars;
+import com.doumee.service.business.CarsService;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Api(tags = "杞﹁締鎺ュ彛")
+@RestController
+@RequestMapping("/cloud/cars")
+public class CloudCarsController extends BaseController {
+
+    @Autowired
+    private CarsService carsService;
+    @Autowired
+    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
+    @PreventRepeat
+    @ApiOperation("娴嬭瘯缃戠")
+    @GetMapping("/test")
+    public ApiResponse test() {
+        return ApiResponse.success("璁垮绠$悊娴嬭瘯鎴愬姛");
+    }
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:cars:create")
+    public ApiResponse create(@RequestBody Cars cars) {
+        return ApiResponse.success(carsService.create(cars));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:cars:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        carsService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:cars:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        carsService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:cars:update")
+    public ApiResponse updateById(@RequestBody Cars cars) {
+        carsService.updateById(cars);
+        return ApiResponse.success(null);
+    }
+    @ApiOperation("鍏ㄩ噺鍚屾杞﹁締淇℃伅")
+    @PostMapping("/sync")
+    @RequiresPermissions("business:cars:sync")
+    public ApiResponse sync(@RequestBody Cars cars) {
+        hkSyncVehicleFromHKService.syncVehicleData();
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:cars:query")
+    public ApiResponse<PageData<Cars>> findPage (@RequestBody PageWrap<Cars> pageWrap) {
+        return ApiResponse.success(carsService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:cars:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<Cars> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(Cars.class).export(carsService.findPage(pageWrap).getRecords(), "杞﹁締淇℃伅琛�", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:cars:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(carsService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index cd9d3e2..9c2fd8c 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -99,6 +99,7 @@
         map.put("/system/initCompany", "anon");
         map.put("/system/logout", "anon");
         map.put("/common/captcha", "anon");
+        map.put("/cloud/**", "anon");
         map.put("/statistics/**", "anon");
         map.put("/business/hksync/push/**", "anon");
         map.put("/business/member/empowerByList", "anon");
diff --git a/server/visits/dmvisit_admin/src/main/resources/META-INF/MANIFEST.MF b/server/visits/dmvisit_admin/src/main/resources/META-INF/MANIFEST.MF
index 7ff5b00..a143bed 100644
--- a/server/visits/dmvisit_admin/src/main/resources/META-INF/MANIFEST.MF
+++ b/server/visits/dmvisit_admin/src/main/resources/META-INF/MANIFEST.MF
@@ -1,3 +1,3 @@
 Manifest-Version: 1.0
-Main-Class: com.doumee.AdminApplication
+Main-Class: com.doumee.VisitsAdminApplication
 
diff --git a/server/visits/dmvisit_admin/src/main/resources/application.yml b/server/visits/dmvisit_admin/src/main/resources/application.yml
index 11e389c..9f08258 100644
--- a/server/visits/dmvisit_admin/src/main/resources/application.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/application.yml
@@ -7,8 +7,8 @@
 
 
 spring:
-  #  application:
-  #    name: doumeevisit
+  application:
+    name: visitsAdmin
   profiles:
     active: dev
 
@@ -23,6 +23,8 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..de8f5dc
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -0,0 +1,30 @@
+spring:
+  application:
+    name: visitsAdmin
+  cloud:
+    loadbalancer:
+      enabled: true
+      nacos:
+        # 浣跨敤Nacos璐熻浇绛栫暐锛屽紑鍙戠幆澧冨彲浠ュ埄鐢ㄥ氨杩戣闂満鍒跺畾鍚戣闂紝鍚姩鍙傛暟濡備笅锛�
+        # -Dspring.cloud.nacos.discovery.cluster-name=鑷畾涔�
+        enabled: true
+      cache:
+        # 鏆傛椂鍏抽棴缂撳瓨
+        enabled: false
+    nacos:
+      server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+      username: nacos
+      password: nacos
+#      config:
+#        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+#        namespace: dmvisit
+#        username: nacos
+#        password: nacos
+#        file-extension: yaml
+#        group: dev
+#        data-id: com.doumee.meeting.admin
+      discovery:
+        server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+        namespace: dmvisit
+        username: nacos
+        password: nacos
diff --git a/server/visits/dmvisit_screen/src/main/resources/application.yml b/server/visits/dmvisit_screen/src/main/resources/application.yml
index 6f450bc..28b05ac 100644
--- a/server/visits/dmvisit_screen/src/main/resources/application.yml
+++ b/server/visits/dmvisit_screen/src/main/resources/application.yml
@@ -23,6 +23,8 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml
diff --git a/server/visits/dmvisit_web/src/main/resources/application.yml b/server/visits/dmvisit_web/src/main/resources/application.yml
index 5a8c63a..2d276df 100644
--- a/server/visits/dmvisit_web/src/main/resources/application.yml
+++ b/server/visits/dmvisit_web/src/main/resources/application.yml
@@ -23,6 +23,8 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml
diff --git a/server/visits/openapi/src/main/resources/application.yml b/server/visits/openapi/src/main/resources/application.yml
index fca0d3f..96b89ae 100644
--- a/server/visits/openapi/src/main/resources/application.yml
+++ b/server/visits/openapi/src/main/resources/application.yml
@@ -22,6 +22,8 @@
       max-file-size: 200MB
       max-request-size: 200MB
       enabled: true
+  main:
+    allow-circular-references: true
 # MyBatis閰嶇疆
 mybatis-plus:
   mapper-locations: classpath*:/mappers/**/*.xml

--
Gitblit v1.9.3