From adc8542adeabbcbeff425d6471762c04e8f3cffe Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 25 六月 2025 15:03:38 +0800
Subject: [PATCH] 修改功能和增加上传功能

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/LoginWeChatXiao.java             |   39 +
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html                                                  |   47 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserWithdrawal.java                               |   36 -
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java                                       |   16 
 ManagementQYTTravel/guns-admin/src/main/resources/application.yml                                                                      |   32 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/MerchantActivityController.java      |    7 
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html                                    |  158 +++--
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java                                              |   11 
 ManagementQYTTravel/pom.xml                                                                                                            |   11 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPosition.java                               |  105 ---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java                  |    6 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java               |   12 
 ManagementQYTTravel/guns-admin/src/main/resources/logback.xml                                                                          |  222 +++++++
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java                    |   71 ++
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java    |   35 
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html                                                 |   46 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java                |   10 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java             |   27 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java                         |  123 +++
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java                                                   |    9 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java                  |   35 
 ManagementQYTTravel/guns-admin/src/main/webapp/static/img/logo.png                                                                     |    0 
 ManagementQYTTravel/guns-admin/lib/ncoss-java-sdk-1.0.5.jar                                                                            |    0 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java  |   59 -
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java               |    2 
 ManagementQYTTravel/guns-admin/src/main/webapp/static/favicon1.ico                                                                     |    0 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java                            |    2 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCarModel.java                                    |    9 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java                         |  240 ++++++++
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java              |    2 
 /dev/null                                                                                                                              |    0 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserBankAccount.java                              |   18 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java                |   36 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java               |   60 -
 ManagementQYTTravel/guns-admin/pom.xml                                                                                                 |   29 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java         |    2 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java                      |    6 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java                          |   64 ++
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java |   52 -
 39 files changed, 1,104 insertions(+), 535 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/lib/ncoss-java-sdk-1.0.5.jar b/ManagementQYTTravel/guns-admin/lib/ncoss-java-sdk-1.0.5.jar
new file mode 100644
index 0000000..fbb6562
--- /dev/null
+++ b/ManagementQYTTravel/guns-admin/lib/ncoss-java-sdk-1.0.5.jar
Binary files differ
diff --git a/ManagementQYTTravel/guns-admin/pom.xml b/ManagementQYTTravel/guns-admin/pom.xml
index e7722ce..85d100c 100644
--- a/ManagementQYTTravel/guns-admin/pom.xml
+++ b/ManagementQYTTravel/guns-admin/pom.xml
@@ -34,7 +34,15 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-redis</artifactId>
         </dependency>
-        
+        <dependency>
+            <groupId>io.lettuce</groupId>
+            <artifactId>lettuce-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
+    
         <!--spring boot依赖-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -128,14 +136,6 @@
         <dependency>
             <groupId>com.ibeetl</groupId>
             <artifactId>beetl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger2</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger-ui</artifactId>
         </dependency>
         
         <dependency>
@@ -240,6 +240,17 @@
             <scope>system</scope>
             <systemPath>${pom.basedir}/lib/javabase64-1.3.1.jar</systemPath>
         </dependency>
+        <dependency>
+            <groupId>com.ncoss</groupId>
+            <artifactId>ncoss-java-sdk</artifactId>
+            <version>1.0.5</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/lib/ncoss-java-sdk-1.0.5.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-mongodb</artifactId>
+        </dependency>
     </dependencies>
     
     
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
index 8bea6f9..7fec296 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
@@ -5,7 +5,6 @@
 import org.apache.http.config.SocketConfig;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.mybatis.spring.annotation.MapperScan;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
@@ -31,12 +30,8 @@
     private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class);
 
     public static void main(String[] args) {
-        try{
-            SpringApplication.run(GunsApplication.class, args);
-            logger.info("GunsApplication is success!");
-        }catch (Exception e){
-            e.printStackTrace();
-        }
+        SpringApplication.run(GunsApplication.class, args);
+        logger.info("GunsApplication is success!");
     }
 
     @Bean //通过ip地址调用
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
deleted file mode 100644
index e02e7aa..0000000
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.stylefeng.guns.config;
-
-import io.swagger.annotations.ApiOperation;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-/**
- * swagger配置类
- *
- * @author fengshuonan
- * @date 2017年6月1日19:42:59
- */
-@Configuration
-@EnableSwagger2
-@ConditionalOnProperty(prefix = "guns", name = "swagger-open", havingValue = "true")
-public class SwaggerConfig{
-
-    @Bean
-    public Docket createRestApi() {
-        return new Docket(DocumentationType.SWAGGER_2)
-                .apiInfo(apiInfo())
-                .select()
-                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))                         //这里采用包含注解的方式来确定要显示的接口
-                //.apis(RequestHandlerSelectors.basePackage("com.stylefeng.guns.controller.system.controller"))    //这里采用包扫描的方式来确定要显示的接口
-                .paths(PathSelectors.any())
-                .build();
-    }
-
-    private ApiInfo apiInfo() {
-        return new ApiInfoBuilder()
-                .title("Guns Doc")
-                .description("Guns Api文档")
-                .termsOfServiceUrl("http://git.oschina.net/naan1993/guns")
-                .contact("stylefeng")
-                .version("2.0")
-                .build();
-    }
-
-}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
index 0edb1a3..eb4c2ff 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
@@ -190,18 +190,19 @@
         urlPatterns.add("/*");
         registrationBean.setUrlPatterns(urlPatterns);
         registrationBean.setOrder(2);
-        
+    
         registrationBean.addInitParameter("oncon.com.security.urls", "/**");
-        registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index.html,/static/**");
+        registrationBean.addInitParameter("erp.si-tech.com.cn.noCheckUrl", "/index.html,/static/**,/upload/**");
         registrationBean.addInitParameter("erp.si-tech.com.cn.nologinstatus", "/*");
         registrationBean.addInitParameter("erp.si-tech.com.cn.loginstatus", "/*");
         registrationBean.addInitParameter("com.oncon.sso.urlparams.nologin", "code,code2");
-        
+    
         registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.loginUrl", "https://testsso1.teamshub.com/login");
         registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.validateUrl", "https://testsso1.teamshub.com/serviceValidate");
         registrationBean.addInitParameter("com.oncon.md.loginUrl", "https://testsso1.teamshub.com/sso-session/login");
-        registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "127.0.0.1:8010");
-        
+        registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "https://traffic.qytzt.cn:443");
+//        registrationBean.addInitParameter("edu.yale.its.tp.cas.client.filter.serverName", "http://127.0.0.1:8010");
+    
         return registrationBean;
     }
     
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
index 725029b..63a792c 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
@@ -6,7 +6,6 @@
 import com.stylefeng.guns.generator.action.model.GenQo;
 import com.stylefeng.guns.modular.code.factory.DefaultTemplateFactory;
 import com.stylefeng.guns.modular.code.service.TableService;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -46,7 +45,6 @@
     /**
      * 生成代码
      */
-    @ApiOperation("生成代码")
     @RequestMapping(value = "/generate", method = RequestMethod.POST)
     @ResponseBody
     public Object generate(GenQo genQo) {
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
index b6cd352..71c0f6e 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
@@ -1,7 +1,5 @@
 package com.stylefeng.guns.modular.system.controller.general;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
@@ -20,6 +18,7 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
@@ -36,28 +35,28 @@
 
     @Autowired
     private ITDriverService tDriverService;
-
+    
     @Autowired
     private ITOrderTaxiService tOrderTaxiService;
-
+    
     @Autowired
     private ITCarService tCarService;
-
+    
     @Autowired
     private ITTaxiCardService taxiCardService;
-
-    @Autowired
-    private RedisTemplate redisTemplate;
-
+    
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
+    
     @Autowired
     private IUserService userService;
-
+    
     @Autowired
     private ITCompanyService tCompanyService;
-
+    
     @Autowired
     private ITCarBrandService carBrandService;
-
+    
     @Autowired
     private ITCarModelService carModelService;
 
@@ -387,20 +386,22 @@
     public Object getDriverPosition(Integer companyId){
         Integer id = ShiroExtUtil.getUser().getId();
         User user = userService.selectById(id);
-        if(companyId == null && user.getRoleType() != 1){
+        if (companyId == null && user.getRoleType() != 1) {
             companyId = user.getObjectId();
         }
         Wrapper<TDriver> ne = new EntityWrapper<TDriver>().eq("authState", 2).eq("state", 2).ne("flag", 3);
-        if(companyId != null){
+        if (companyId != null) {
             ne.eq("companyId", companyId).or().eq("franchiseeId", companyId);
         }
         List<TDriver> tDrivers = tDriverService.selectList(ne);
         Map<String, Object> map = new HashMap<>();
         List<Object> list = new ArrayList<>();
-        for(TDriver tDriver : tDrivers){
+        System.out.println(tDrivers.toString());
+        for (TDriver tDriver : tDrivers) {
             Map<String, Object> d = new HashMap<>();
-            String value = (String)redisTemplate.opsForValue().get("DRIVER" + tDriver.getId());
-            if(ToolUtil.isEmpty(value)){
+            String value = (String) redisTemplate.opsForValue().get("DRIVER" + tDriver.getId());
+            System.out.println(value);
+            if (ToolUtil.isEmpty(value)) {
                 continue;
             }
             d.put("driver", tDriver);
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/MerchantActivityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/MerchantActivityController.java
index 45d4d0f..285de65 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/MerchantActivityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/MerchantActivityController.java
@@ -7,13 +7,14 @@
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.log.LogObjectHolder;
-import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.model.MerchantActivity;
+import com.stylefeng.guns.modular.system.model.MerchantActivitySlave;
+import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.model.UserMerchantCoupon;
 import com.stylefeng.guns.modular.system.response.MerchantActivityVo;
 import com.stylefeng.guns.modular.system.service.*;
-import io.swagger.models.auth.In;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
index 1aa32fe..1b474fe 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -487,7 +487,7 @@
 	    //调用中台接口创建企业
 	    CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(tCompany.getName());
 	    if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
-		
+		    EnterpriseUtil.delEnterprise(checkEnterExist.getEnterCode(), tCompany.getPrincipalPhone());
 	    }
 	
 	    tCompany.setFlag("3");
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index 4450170..f226d03 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -78,8 +78,8 @@
     @Resource
     private DriverPunishMapper driverPunishMapper;
     
-    @Autowired
-    private RedisTemplate redisTemplate;
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
     
     @Value("${pushMinistryOfTransport}")
     private boolean pushMinistryOfTransport;
@@ -680,7 +680,7 @@
                 request.setLoginNo(tDriver.getPhone());
                 request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                 request.setMphone(tDriver.getPhone());
-                request.setEmail("qyt@qyt.com");
+                request.setEmail(tDriver.getPhone() + "@qyt.com");
                 request.setDeptId(0);
                 request.setPositionId(1);
                 request.setSuperLevel(0);
@@ -780,7 +780,7 @@
             request.setLoginNo(tDriver.getPhone());
             request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
             request.setMphone(tDriver.getPhone());
-            request.setEmail("qyt@qyt.com");
+            request.setEmail(tDriver.getPhone() + "@qyt.com");
             request.setDeptId(0);
             request.setPositionId(1);
             request.setSuperLevel(0);
@@ -914,7 +914,7 @@
                 request.setLoginNo(tDriver.getPhone());
                 request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                 request.setMphone(tDriver.getPhone());
-                request.setEmail("qyt@qyt.com");
+                request.setEmail(tDriver.getPhone() + "@qyt.com");
                 request.setDeptId(0);
                 request.setPositionId(1);
                 request.setSuperLevel(0);
@@ -1406,7 +1406,7 @@
                             saveStaffNodeRequest.setLoginNo(driver.getPhone());
                             saveStaffNodeRequest.setEmpSex(driver.getSex() == 1 ? "男" : "女");
                             saveStaffNodeRequest.setMphone(driver.getPhone());
-                            saveStaffNodeRequest.setEmail("qyt@qyt.com");
+                            saveStaffNodeRequest.setEmail(driver.getPhone() + "@qyt.com");
                             saveStaffNodeRequest.setDeptId(0);
                             saveStaffNodeRequest.setPositionId(1);
                             saveStaffNodeRequest.setSuperLevel(0);
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
index eabfa7b..b713127 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
@@ -210,7 +210,7 @@
 
         //拼车设置
         SpellOrderRule spellOrderRule = spellOrderRuleService.selectOne(new EntityWrapper<SpellOrderRule>().eq("companyId", ShiroExtUtil.getUser().getObjectId()));
-        model.addAttribute("spellOrderRule", JSONObject.parseObject(spellOrderRule.getContent()));
+        model.addAttribute("spellOrderRule", null == spellOrderRule ? "" : JSONObject.parseObject(spellOrderRule.getContent()));
 
         //报警电话
         TPhone phone1 = tPhoneService.selectOne(new EntityWrapper<TPhone>().eq("companyId", ShiroExtUtil.getUser().getObjectId()).eq("type", 1));
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java
index 322019b..b905dc2 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TVersionManagementController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.heredata.hos.model.bucket.Bucket;
 import com.stylefeng.guns.config.properties.GunsProperties;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
@@ -12,6 +13,8 @@
 import com.stylefeng.guns.modular.system.model.TVersionManagement;
 import com.stylefeng.guns.modular.system.service.ITVersionManagementService;
 import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
@@ -20,7 +23,6 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.File;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -124,14 +126,29 @@
     public Map<String, Object> saveApk(@RequestPart("myfile") MultipartFile myfile, HttpServletRequest request) {
         Map<String, Object> m = new HashMap<>();
         try {
-            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(myfile.getOriginalFilename());
-            try {
-                String fileSavePath = gunsProperties.getFileUploadPath() + "apk\\";
-                myfile.transferTo(new File(fileSavePath + pictureName));
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-            m.put("imgUrl", gunsProperties.getPictureServerAddress() + "apk/" + pictureName);
+	        String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(myfile.getOriginalFilename());
+	        String bucketName = QianYunTongProperties.bucketName;
+	        Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+	        if (null == grjyTest) {
+		        //创建桶
+		        Boolean bucket = NCOSSUtil.createBucket(bucketName);
+		        if (!bucket) {
+			        throw new RuntimeException("创建存储桶失败");
+		        }
+		        //设置桶策略
+		        String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+		        Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+		        if (!bucketPolicy) {
+			        throw new RuntimeException("设置桶策略失败");
+		        }
+	        }
+	        //上传对象
+	        String key = "apk/" + pictureName;
+	        String object = NCOSSUtil.putObject(bucketName, key, myfile.getInputStream());
+	        if (null == object) {
+		        throw new RuntimeException("上传图片失败");
+	        }
+	        m.put("imgUrl", "https://traffic.qytzt.cn/v1/AUTH_" + QianYunTongProperties.account + "/" + bucketName + "/" + key);
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
index b2ddd2f..791e5c2 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
@@ -1,13 +1,11 @@
 package com.stylefeng.guns.modular.system.controller.specialTrain;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
-import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
@@ -24,18 +22,20 @@
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 跨城出行订单控制器
@@ -54,21 +54,22 @@
 
     @Autowired
     private ITServerCarmodelService tServerCarmodelService;
-
+    
     @Autowired
     private ITLineService itLineService;
-
+    
     @Autowired
     private ITOrderPositionService tOrderPositionService;
-
+    
     private ResultUtil resultUtil;
-
+    
     @Autowired
     private ITUserService userService;
-
-    @Value("${filePath}")
-    private String filePath;
-
+    
+    @Resource
+    private MongoTemplate mongoTemplate;
+    
+    
     /**
      * 跳转到跨城出行订单首页
      */
@@ -76,7 +77,7 @@
     public String index(Model model) {
         //服务快车车型
         List<TServerCarmodel> carmodelList = tServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1));
-        model.addAttribute("carmodelList",carmodelList);
+        model.addAttribute("carmodelList", carmodelList);
         //线路
         List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().last(" where not FIND_IN_SET(state,'3')"));
         model.addAttribute("lineList",lineList);
@@ -112,25 +113,11 @@
     public ResultUtil getOrderTrack(String orderDetailId){
         if(ToolUtil.isNotEmpty(orderDetailId)){
             try {
-                //将数据存储到文件中
-                File file = new File(filePath + orderDetailId + "_3.txt");
-                if(!file.exists()){
-                    return ResultUtil.success(new ArrayList<>());
-                }
-                //读取文件(字符流)
-                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
-                //循环取出数据
-                String str = null;
-                StringBuffer sb = new StringBuffer();
-                while ((str = in.readLine()) != null) {
-                    sb.append(str);
-                }
-                List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
-//                List<TOrderPosition> list = tOrderPositionService.selectList(new EntityWrapper<TOrderPosition>().eq("orderType", 3).eq("orderId", orderDetailId).orderBy("insertTime"));
-                /*if(list.size() == 0){
-                    return ResultUtil.error("该订单没有运行轨迹");
-                }*/
-                resultUtil = ResultUtil.success(list);
+                Query query = new Query()
+                        .addCriteria(Criteria.where("orderId").is(orderDetailId).and("orderType").is(3))
+                        .with(new Sort(Sort.Direction.ASC, "insertTime"));
+                List<TOrderPosition> positions = mongoTemplate.find(query, TOrderPosition.class);
+                resultUtil = ResultUtil.success(positions);
             }catch (Exception e){
                 e.printStackTrace();
                 resultUtil = ResultUtil.runErr();
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
index ee9dfd7..3b5918f 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
@@ -1,13 +1,11 @@
 package com.stylefeng.guns.modular.system.controller.specialTrain;
 
-import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
-import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
@@ -20,15 +18,15 @@
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
 import java.util.*;
 
 /**
@@ -57,23 +55,21 @@
 
     @Autowired
     private ITDriverService tDriverService;
-
+    
     @Autowired
     private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
     @Autowired
     private ITUserService userService;
     @Resource
     private OrderCancelMapper orderCancelMapper;
-
+    
     @Value("${pushMinistryOfTransport}")
     private boolean pushMinistryOfTransport;
-
-    @Value("${filePath}")
-    private String filePath;
-
-
-
-
+    
+    @Resource
+    private MongoTemplate mongoTemplate;
+    
+    
     /**
      * 跳转到快车订单首页
      */
@@ -81,7 +77,7 @@
     public String index(Model model) {
         //服务快车车型
         List<TServerCarmodel> carmodelList = tServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 1).eq("state", 1));
-        model.addAttribute("carmodelList",carmodelList);
+        model.addAttribute("carmodelList", carmodelList);
         return PREFIX + "tOrderPrivateCar.html";
     }
 
@@ -154,25 +150,11 @@
     public ResultUtil getOrderTrack(String orderDetailId){
         if(ToolUtil.isNotEmpty(orderDetailId)){
             try {
-//                List<TOrderPosition> list = tOrderPositionService.selectList(new EntityWrapper<TOrderPosition>().eq("orderType", 1).eq("orderId", orderDetailId).orderBy("insertTime"));
-                /*if(list.size() == 0){
-                    return ResultUtil.error("该订单没有运行轨迹");
-                }*/
-                //将数据存储到文件中
-                File file = new File(filePath + orderDetailId + "_1.txt");
-                if(!file.exists()){
-                    return ResultUtil.success(new ArrayList<>());
-                }
-                //读取文件(字符流)
-                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
-                //循环取出数据
-                String str = null;
-                StringBuffer sb = new StringBuffer();
-                while ((str = in.readLine()) != null) {
-                    sb.append(str);
-                }
-                List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
-                resultUtil = ResultUtil.success(list);
+                Query query = new Query()
+                        .addCriteria(Criteria.where("orderId").is(orderDetailId).and("orderType").is(1))
+                        .with(new Sort(Sort.Direction.ASC, "insertTime"));
+                List<TOrderPosition> positions = mongoTemplate.find(query, TOrderPosition.class);
+                resultUtil = ResultUtil.success(positions);
             }catch (Exception e){
                 e.printStackTrace();
                 resultUtil = ResultUtil.runErr();
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
index 0b10940..c11c3fe 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
@@ -45,7 +45,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import static com.stylefeng.guns.core.support.HttpKit.getIp;
@@ -66,8 +65,8 @@
 	@Autowired
 	private IUserService userService;
 	
-	@Autowired
-	private RedisTemplate redisTemplate;
+	@Resource
+	private RedisTemplate<String, Object> redisTemplate;
 	
 	@Autowired
 	private IShiro shiro;
@@ -130,6 +129,7 @@
 	 */
 	@RequestMapping(value = "/logout", method = RequestMethod.GET)
 	public String logOut() {
+//		redisTemplate.delete("");
 		HttpUtil.get("https://testsso1.teamshub.com/logout?logouturl=https%3A%2F%2Fsso.teamshub.com%2Flogout%3F%0Alogoutat%3Dhttp%253A%252F%252F127.0.0.1%253A8010%252F");
 		return REDIRECT + "/";
 	}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java
index 147e1d5..1b5d6dd 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UediterController.java
@@ -1,8 +1,11 @@
 package com.stylefeng.guns.modular.system.controller.system;
 
 import com.alibaba.fastjson.JSON;
+import com.heredata.hos.model.bucket.Bucket;
 import com.stylefeng.guns.config.properties.GunsProperties;
 import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -12,7 +15,6 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
 import java.util.UUID;
 
 @Controller
@@ -107,17 +109,31 @@
             MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
             MultipartFile picture = multipartRequest.getFile("upfile");
             String callback = request.getParameter("callback");
-            String pictureName = "";
             try {
-    
-                String fileName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
-                try {
-                    String fileSavePath = gunsProperties.getFileUploadPath() + "img\\";
-                    picture.transferTo(new File(fileSavePath + fileName));
-                } catch (Exception e) {
-                    e.printStackTrace();
+                String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
+                String bucketName = QianYunTongProperties.bucketName;
+                Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+                if (null == grjyTest) {
+                    //创建桶
+                    Boolean bucket = NCOSSUtil.createBucket(bucketName);
+                    if (!bucket) {
+                        throw new RuntimeException("创建存储桶失败");
+                    }
+                    //设置桶策略
+                    String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+                    Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+                    if (!bucketPolicy) {
+                        throw new RuntimeException("设置桶策略失败");
+                    }
                 }
-                pictureName = gunsProperties.getPictureServerAddress() + "img/" + fileName;
+                //上传对象
+                String key = "imgs/management/" + pictureName;
+                String object = NCOSSUtil.putObject(bucketName, key, picture.getInputStream());
+                if (null == object) {
+                    throw new RuntimeException("上传图片失败");
+                }
+    
+                pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + QianYunTongProperties.account + "/" + bucketName + "/" + key;
     
     
                 //文件上传,具体根据实际替换
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
index 9c7bff6..727847e 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
@@ -213,7 +213,7 @@
         request1.setLoginNo(user.getAccount());
         request1.setEmpSex(user.getSex() == 1 ? "男" : "女");
         request1.setMphone(user.getPhone());
-        request1.setEmail("qyt@qyt.com");
+        request1.setEmail(user.getPhone() + "@qyt.com");
         request1.setDeptId(0);
         request1.setPositionId(1);
         request1.setSuperLevel(0);
@@ -255,7 +255,7 @@
         TCompany tCompany = companyService.selectById(user2.getObjectId());
         //调用中台接口
         GetStaffNodeRequest request = new GetStaffNodeRequest();
-        request.setEmpId(oldUser.getEnterId());
+        request.setEmpId(oldUser.getEmpId());
         request.setMobile(user2.getPhone());
         request.setEntercode(tCompany.getEnterCode());
         StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
@@ -269,7 +269,7 @@
             request1.setLoginNo(user.getAccount());
             request1.setEmpSex(user.getSex() == 1 ? "男" : "女");
             request1.setMphone(user.getPhone());
-            request1.setEmail("qyt@qyt.com");
+            request1.setEmail(user.getPhone() + "@qyt.com");
             request1.setDeptId(0);
             request1.setPositionId(1);
             request1.setSuperLevel(0);
@@ -287,7 +287,7 @@
             request1.setLoginNo(user.getAccount());
             request1.setEmpSex(user.getSex() == 1 ? "男" : "女");
             request1.setMphone(user.getPhone());
-            request1.setEmail("qyt@qyt.com");
+            request1.setEmail(user.getPhone() + "@qyt.com");
             request1.setDeptId(0);
             request1.setPositionId(1);
             request1.setSuperLevel(0);
@@ -336,7 +336,7 @@
         TCompany tCompany = companyService.selectById(user2.getObjectId());
         //调用中台接口
         GetStaffNodeRequest request = new GetStaffNodeRequest();
-        request.setEmpId(user.getEnterId());
+        request.setEmpId(user.getEmpId());
         request.setMobile(user2.getPhone());
         request.setEntercode(tCompany.getEnterCode());
         StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
index 83a0465..8bb5fa4 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
@@ -1,6 +1,5 @@
 package com.stylefeng.guns.modular.system.controller.taxi;
 
-import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
@@ -20,15 +19,15 @@
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
+import javax.annotation.Resource;
 import java.util.*;
 
 /**
@@ -40,27 +39,28 @@
 @Controller
 @RequestMapping("/tOrderTaxi")
 public class TOrderTaxiController extends BaseController {
-
+    
     private String PREFIX = "/system/tOrderTaxi/";
-
+    
     @Autowired
     private ITOrderTaxiService tOrderTaxiService;
-
+    
     @Autowired
     private ITOrderPrivateCarService tOrderPrivateCarService;
-
+    
     @Autowired
     private ITOrderPositionService tOrderPositionService;
-
+    
     @Autowired
     private ITDriverService tDriverService;
-
+    
     @Autowired
     private ITUserService userService;
-
-    @Value("${filePath}")
-    private String filePath;
-
+    
+    @Resource
+    private MongoTemplate mongoTemplate;
+    
+    
     /**
      * 跳转到出租车订单首页
      */
@@ -68,7 +68,7 @@
     public String index() {
         return PREFIX + "tOrderTaxi.html";
     }
-
+    
     /**
      * 跳转到添加出租车订单
      */
@@ -76,7 +76,7 @@
     public String tOrderTaxiAdd() {
         return PREFIX + "tOrderTaxi_add.html";
     }
-
+    
     /**
      * 跳转到修改出租车订单
      */
@@ -179,25 +179,11 @@
     public ResultUtil getOrderTrack(String orderDetailId) {
         if (ToolUtil.isNotEmpty(orderDetailId)) {
             try {
-//                List<TOrderPosition> list = tOrderPositionService.selectList(new EntityWrapper<TOrderPosition>().eq("orderType", 2).eq("orderId", orderDetailId).orderBy("insertTime"));
-                /*if(list.size() == 0){
-                    return ResultUtil.error("该订单没有运行轨迹");
-                }*/
-                //将数据存储到文件中
-                File file = new File(filePath + orderDetailId + "_2.txt");
-                if (!file.exists()) {
-                    return ResultUtil.success(new ArrayList<>());
-                }
-                //读取文件(字符流)
-                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
-                //循环取出数据
-                String str = null;
-                StringBuffer sb = new StringBuffer();
-                while ((str = in.readLine()) != null) {
-                    sb.append(str);
-                }
-                List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
-                resultUtil = ResultUtil.success(list);
+                Query query = new Query()
+                        .addCriteria(Criteria.where("orderId").is(orderDetailId).and("orderType").is(2))
+                        .with(new Sort(Sort.Direction.ASC, "insertTime"));
+                List<TOrderPosition> positions = mongoTemplate.find(query, TOrderPosition.class);
+                resultUtil = ResultUtil.success(positions);
             } catch (Exception e) {
                 e.printStackTrace();
                 resultUtil = ResultUtil.runErr();
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
index b0a0d29..34e402f 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
@@ -1,11 +1,14 @@
 package com.stylefeng.guns.modular.system.controller.util;
 
+import com.heredata.hos.model.bucket.Bucket;
 import com.stylefeng.guns.config.properties.GunsProperties;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
 import com.stylefeng.guns.core.exception.GunsException;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.service.ITImgMidService;
+import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +21,6 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -66,14 +68,30 @@
             MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
             MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile");
             if (file.getSize() != 0) {
-                String fileName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
-                try {
-                    String fileSavePath = gunsProperties.getFileUploadPath() + "img\\";
-                    file.transferTo(new File(fileSavePath + fileName));
-                } catch (Exception e) {
-                    e.printStackTrace();
+                String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
+                String bucketName = QianYunTongProperties.bucketName;
+                Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+                if (null == grjyTest) {
+                    //创建桶
+                    Boolean bucket = NCOSSUtil.createBucket(bucketName);
+                    if (!bucket) {
+                        throw new RuntimeException("创建存储桶失败");
+                    }
+                    //设置桶策略
+                    String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+                    Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+                    if (!bucketPolicy) {
+                        throw new RuntimeException("设置桶策略失败");
+                    }
                 }
-                ossUpload = gunsProperties.getPictureServerAddress() + "img/" + fileName;
+                //上传对象
+                String key = "imgs/management/" + pictureName;
+                String object = NCOSSUtil.putObject(bucketName, key, file.getInputStream());
+                if (null == object) {
+                    throw new RuntimeException("上传图片失败");
+                }
+    
+                ossUpload = "https://traffic.qytzt.cn/v1/AUTH_" + QianYunTongProperties.account + "/" + bucketName + "/" + key;
 
 
 //                ossUpload = OssUploadUtil.ossUpload(request, file);
@@ -89,21 +107,37 @@
     private ITImgMidService itImgMidService;
     
     
-    @RequestMapping("/image1")
+    @RequestMapping("/image")
     @ResponseBody
     public String image1(@RequestPart("file") MultipartFile picture, HttpServletRequest request) {
         try {
             MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
             MultipartFile file = (MultipartFile) picture;
     
-            String fileName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
-            try {
-                String fileSavePath = gunsProperties.getFileUploadPath() + "img\\";
-                file.transferTo(new File(fileSavePath + fileName));
-            } catch (Exception e) {
-                e.printStackTrace();
+            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename());
+            String bucketName = QianYunTongProperties.bucketName;
+            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+            if (null == grjyTest) {
+                //创建桶
+                Boolean bucket = NCOSSUtil.createBucket(bucketName);
+                if (!bucket) {
+                    throw new RuntimeException("创建存储桶失败");
+                }
+                //设置桶策略
+                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+                if (!bucketPolicy) {
+                    throw new RuntimeException("设置桶策略失败");
+                }
             }
-            String pictureName = gunsProperties.getPictureServerAddress() + "img/" + fileName;
+            //上传对象
+            String key = "imgs/management/" + pictureName;
+            String object = NCOSSUtil.putObject(bucketName, key, file.getInputStream());
+            if (null == object) {
+                throw new RuntimeException("上传图片失败");
+            }
+    
+            pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + QianYunTongProperties.account + "/" + bucketName + "/" + key;
 
 //            String pictureName = OssUploadUtil.ossUpload(request, file);
             System.out.println("mediaResp");
@@ -126,10 +160,29 @@
         String suffix = picture.getOriginalFilename().substring(picture.getOriginalFilename().lastIndexOf("."));
         String pictureName = UUID.randomUUID().toString() + suffix;
         try {
-            // 文件目录路径
-            String fileSavePath = gunsProperties.getFileUploadPath();
-            File file = new File(fileSavePath + pictureName);
-            picture.transferTo(file);
+            String bucketName = QianYunTongProperties.bucketName;
+            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+            if (null == grjyTest) {
+                //创建桶
+                Boolean bucket = NCOSSUtil.createBucket(bucketName);
+                if (!bucket) {
+                    throw new RuntimeException("创建存储桶失败");
+                }
+                //设置桶策略
+                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+                if (!bucketPolicy) {
+                    throw new RuntimeException("设置桶策略失败");
+                }
+            }
+            //上传对象
+            String key = "file/management/" + pictureName;
+            String object = NCOSSUtil.putObject(bucketName, key, picture.getInputStream());
+            if (null == object) {
+                throw new RuntimeException("上传图片失败");
+            }
+    
+            pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + QianYunTongProperties.account + "/" + bucketName + "/" + key;
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new GunsException(BizExceptionEnum.UPLOAD_ERROR);
@@ -145,14 +198,30 @@
         String callback = request.getParameter("callback");
         try {
             // 上传文件目录
-            String fileName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
-            try {
-                String fileSavePath = gunsProperties.getFileUploadPath() + "img\\";
-                picture.transferTo(new File(fileSavePath + fileName));
-            } catch (Exception e) {
-                e.printStackTrace();
+            String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
+            String bucketName = QianYunTongProperties.bucketName;
+            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+            if (null == grjyTest) {
+                //创建桶
+                Boolean bucket = NCOSSUtil.createBucket(bucketName);
+                if (!bucket) {
+                    throw new RuntimeException("创建存储桶失败");
+                }
+                //设置桶策略
+                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+                if (!bucketPolicy) {
+                    throw new RuntimeException("设置桶策略失败");
+                }
             }
-            String pictureName = gunsProperties.getPictureServerAddress() + "img/" + fileName;
+            //上传对象
+            String key = "imgs/management/" + pictureName;
+            String object = NCOSSUtil.putObject(bucketName, key, picture.getInputStream());
+            if (null == object) {
+                throw new RuntimeException("上传图片失败");
+            }
+    
+            pictureName = "https://traffic.qytzt.cn/v1/AUTH_" + QianYunTongProperties.account + "/" + bucketName + "/" + key;
 //            pictureName = OssUploadUtil.ossUpload(super.getHttpServletRequest(), picture);
     
             String result = "{'original': '" + picture.getOriginalFilename() + "', 'state': 'SUCCESS', 'url': '" + pictureName + "'}";
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCarModel.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCarModel.java
index 32f27a6..3ad7e8b 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCarModel.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCarModel.java
@@ -1,15 +1,14 @@
 package com.stylefeng.guns.modular.system.model;
 
-import com.baomidou.mybatisplus.annotations.TableField;
-import com.baomidou.mybatisplus.enums.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
-import io.swagger.models.auth.In;
+import com.baomidou.mybatisplus.enums.IdType;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPosition.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPosition.java
index 43cdeec..4a644b6 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPosition.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPosition.java
@@ -1,11 +1,10 @@
 package com.stylefeng.guns.modular.system.model;
 
-import com.baomidou.mybatisplus.enums.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
 import java.util.Date;
-import com.baomidou.mybatisplus.annotations.TableId;
-import com.baomidou.mybatisplus.activerecord.Model;
-import com.baomidou.mybatisplus.annotations.TableName;
-import java.io.Serializable;
 
 /**
  * <p>
@@ -15,15 +14,11 @@
  * @author 吕雪
  * @since 2020-06-08
  */
-@TableName("t_order_position")
-public class TOrderPosition extends Model<TOrderPosition> {
-
-    private static final long serialVersionUID = 1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
+@Data
+@Document(collection = "order_position")
+public class TOrderPosition {
     /**
-     * 订单类型(1=快车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     * 订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
      */
     private Integer orderType;
     /**
@@ -43,82 +38,16 @@
      */
     private String lat;
     /**
+     * 方向角
+     */
+    private String directionAngle;
+    /**
+     * 海拔
+     */
+    private String altitude;
+    /**
      * 添加时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
-
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getOrderType() {
-        return orderType;
-    }
-
-    public void setOrderType(Integer orderType) {
-        this.orderType = orderType;
-    }
-
-    public Integer getOrderId() {
-        return orderId;
-    }
-
-    public void setOrderId(Integer orderId) {
-        this.orderId = orderId;
-    }
-
-    public Integer getDriverId() {
-        return driverId;
-    }
-
-    public void setDriverId(Integer driverId) {
-        this.driverId = driverId;
-    }
-
-    public String getLon() {
-        return lon;
-    }
-
-    public void setLon(String lon) {
-        this.lon = lon;
-    }
-
-    public String getLat() {
-        return lat;
-    }
-
-    public void setLat(String lat) {
-        this.lat = lat;
-    }
-
-    public Date getInsertTime() {
-        return insertTime;
-    }
-
-    public void setInsertTime(Date insertTime) {
-        this.insertTime = insertTime;
-    }
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-    @Override
-    public String toString() {
-        return "TOrderPosition{" +
-        "id=" + id +
-        ", orderType=" + orderType +
-        ", orderId=" + orderId +
-        ", driverId=" + driverId +
-        ", lon=" + lon +
-        ", lat=" + lat +
-        ", insertTime=" + insertTime +
-        "}";
-    }
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserBankAccount.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserBankAccount.java
index 667e2ff..84efeb8 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserBankAccount.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserBankAccount.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.ToString;
 
@@ -20,71 +19,54 @@
 
     @TableId(value = "id", type = IdType.AUTO)
     @TableField("id")
-    @ApiModelProperty(value = "用户ID")
     private Integer id;
 
     @TableField("userId")
-    @ApiModelProperty(value = "用户ID")
     private Integer userId;
 
     @TableField("userType")
-    @ApiModelProperty(value = "用户类型 1用户 2司机")
     private Integer userType;
 
     @TableField("bankName")
-    @ApiModelProperty(value = "银行名称(选择银行)")
     private String bankName;
 
     @TableField("bankCardCode")
-    @ApiModelProperty(value = "银行卡号")
     private String bankCardCode;
 
     @TableField("bankCode")
-    @ApiModelProperty(value = "开户银行编码")
     private String bankCode;
 
     @TableField("bankBranchCode")
-    @ApiModelProperty(value = "开户银行联行号")
     private String bankBranchCode;
 
     @TableField("openAccountName")
-    @ApiModelProperty(value = "开户名称")
     private String openAccountName;
 
     @TableField("phone")
-    @ApiModelProperty(value = "手机号")
     private String phone;
 
     @TableField("status")
-    @ApiModelProperty(value = "状态 1未删除 0已删除")
     private Boolean status;
 
     @TableField("createTime")
-    @ApiModelProperty(value = "创建时间")
     private String createTime;
 
     @TableField("verifyStatus")
-    @ApiModelProperty(value = "账户验证状态 processing: 验证中 succeeded: 验证成功 failed: 验证失败 needless: 无需验证 blocked: 验证锁定中")
     private String verifyStatus;
 
     @TableField("bankAcctType")
-    @ApiModelProperty(value = "1 - 对私银行卡 2 - 对公银行账户")
     private String bankAcctType;
 
     @TableField("settleAcctId")
-    @ApiModelProperty(value = "绑定账户编号")
     private String settleAcctId;
 
     @TableField("outRequestNo")
-    @ApiModelProperty(value = "平台订单号")
     private String outRequestNo;
 
     @TableField("acctValidationFinishedAt")
-    @ApiModelProperty(value = "账户验证的成功或失败时间")
     private String acctValidationFinishedAt;
 
     @TableField("acctValidationFailureMsg")
-    @ApiModelProperty(value = "账户验证失败原因")
     private String acctValidationFailureMsg;
 
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserWithdrawal.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserWithdrawal.java
index 6d1d1e3..851c266 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserWithdrawal.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserWithdrawal.java
@@ -5,8 +5,6 @@
 import com.baomidou.mybatisplus.annotations.TableLogic;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
-import com.stylefeng.guns.core.support.DateTime;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.ToString;
 
@@ -25,141 +23,107 @@
     private Integer id;
 
     @TableField("userId")
-    @ApiModelProperty(value = "用户ID")
     private Integer userId;
 
     @TableField("userType")
-    @ApiModelProperty(value = "用户类型 1用户 2司机")
     private Integer userType;
 
     @TableField("certificateName")
-    @ApiModelProperty(value = "证件姓名")
     private String certificateName;
 
     @TableField("certificateType")
-    @ApiModelProperty(value = "证件类型 1中国大陆居民-身份证、2其他国家或地区居民-护照、3-中国香港居民–来往内地通行证、4中国澳门居民– 来往内地通行证、5中国台湾居民– 来往大陆通行证")
     private Integer certificateType;
 
     @TableField("certificateCode")
-    @ApiModelProperty(value = "证件号码")
     private String certificateCode;
 
     @TableField("certificateExpireTime")
-    @ApiModelProperty(value = "证件有效期")
     private String certificateExpireTime;
 
     @TableField("licenceIssuingAuthority")
-    @ApiModelProperty(value = "发证机关")
     private String licenceIssuingAuthority;
 
     @TableField("bankName")
-    @ApiModelProperty(value = "银行名称(选择银行)")
     private String bankName;
 
     @TableField("bankCardCode")
-    @ApiModelProperty(value = "银行卡号")
     private String bankCardCode;
 
     @TableField("openAccountName")
-    @ApiModelProperty(value = "开户名称")
     private String openAccountName;
 
     @TableField("transactionAuthorizationCode")
-    @ApiModelProperty(value = "交易授权码")
     private String transactionAuthorizationCode;
 
     @TableField("phone")
-    @ApiModelProperty(value = "手机号")
     private String phone;
 
     @TableField("idCardFrontPicture")
-    @ApiModelProperty(value = "法人身份证照片正面")
     private String idCardFrontPicture;
 
     @TableField("idCardReversePicture")
-    @ApiModelProperty(value = "法人身份证照片反面")
     private String idCardReversePicture;
 
     /*@TableField("isAudit")
-    @ApiModelProperty(value = "是否审核通过 1待审核 2审核通过 3审核失败 暂时不使用")
     private Integer isAudit;*/
 
     @TableField("applicationStatus")
-    @ApiModelProperty(value = "进件状态")
     private String applicationStatus;
 
     @TableField("cusId")
-    @ApiModelProperty(value = "个人用户id")
     private String cusId;
 
     @TableField("succeededAt")
-    @ApiModelProperty(value = "申请通过时间")
     private Date succeededAt;
 
     @TableField("failureMsgsReason")
-    @ApiModelProperty(value = "申请失败原因")
     private String failureMsgsReason;
 
     @TableField("relAcctNo")
-    @ApiModelProperty(value = "电子账簿账簿号")
     private String relAcctNo;
 
     @TableField("bindAcctName")
-    @ApiModelProperty(value = "银行生成的户名")
     private String bindAcctName;
 
     @TableField("balanceAcctId")
-    @ApiModelProperty(value = "电子账簿 ID")
     private String balanceAcctId;
 
     @TableField("settleAcctId")
-    @ApiModelProperty(value = "绑定账户 ID")
     private String settleAcctId;
 
     @TableField("outRequestNo")
-    @ApiModelProperty(value = "平台订单号")
     private String outRequestNo;
 
     @TableField("cusApplicationId")
-    @ApiModelProperty(value = "系统订单号")
     private String cusApplicationId;
 
     @TableField("status")
     @TableLogic
-    @ApiModelProperty(value = "法人身份证照片反面")
     private Boolean status;
 
     @TableField("createTime")
-    @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
     /*
     @TableField("companyId")
-    @ApiModelProperty(value = "分公司ID")
     private Integer companyId;
 
     @TableField("enterpriseType")
-    @ApiModelProperty(value = "企业类型 1企业 2个体工商户")
     private Integer enterpriseType;
 
     @TableField("merchantAbbreviation")
-    @ApiModelProperty(value = "商户简称")
     private String merchantAbbreviation;
 
     @TableField("businessLicense")
-    @ApiModelProperty(value = "营业执照")
     private String businessLicense;
 
     @TableField("businessLicenseCode")
-    @ApiModelProperty(value = "营业执照注册号")
     private String businessLicenseCode;
 
     @TableField("businessLicenseCompanyName")
-    @ApiModelProperty(value = "营业执照公司名称")
     private String businessLicenseCompanyName;
 
     @TableField("businessLicenseAddress")
-    @ApiModelProperty(value = "营业执照注册地址")
     private String businessLicenseAddress;
 
     @TableField("businessExpireTime")
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java
index 049d3c9..1fb1a7a 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java
@@ -1,14 +1,14 @@
 package com.stylefeng.guns.modular.system.util;
 
 public class PushURL {
-    public static String zull_user_url = "https://zhentonggongsi.com:443";
-    public static String order_push_url =  zull_user_url + "/driver/base/order/pushOrderState";
-    public static String driver_auth_url =  zull_user_url + "/driver/base/driver/sendsms";
-    public static String withdraw_auth_url =  zull_user_url + "/driver/base/withdrawal/withdrawalAudit";
-    public static String cancel_order_url =  zull_user_url + "/user/base/order/sendOrderState";
-    public static String freeze_user_url =  zull_user_url + "/user/base/user/freeze";
-    public static String send_sms_code =  zull_user_url + "/user/base/queryCaptcha";
-    public static String push_order =  zull_user_url + "/user/base/taxi/pushOrder";
+    public static String zull_user_url = "https://traffic.qytzt.cn";
+    public static String order_push_url = zull_user_url + "/driver/base/order/pushOrderState";
+    public static String driver_auth_url = zull_user_url + "/driver/base/driver/sendsms";
+    public static String withdraw_auth_url = zull_user_url + "/driver/base/withdrawal/withdrawalAudit";
+    public static String cancel_order_url = zull_user_url + "/user/base/order/sendOrderState";
+    public static String freeze_user_url = zull_user_url + "/user/base/user/freeze";
+    public static String send_sms_code = zull_user_url + "/user/base/queryCaptcha";
+    public static String push_order = zull_user_url + "/user/base/taxi/pushOrder";
     public static String ministry_of_transport_data = "http://120.77.11.218:8868/ministryOfTransport";
     public static String ministry_of_transport_ftp = "http://120.77.11.218:8868/ftp";
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
index 2366416..60c54be 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -64,7 +64,7 @@
 			log.error("【企业增加员工】失败:" + object.toJSONString());
 			throw new RuntimeException("【企业增加员工】失败:" + object.toJSONString());
 		}
-		SaveStaffNode saveStaffNode = jsonObject.getObject("object", SaveStaffNode.class);
+		SaveStaffNode saveStaffNode = jsonObject.getObject("data", SaveStaffNode.class);
 		return saveStaffNode;
 	}
 	
@@ -193,13 +193,13 @@
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
 			log.error("【根据员工ID获取人员信息】请求失败:" + result);
-			throw new RuntimeException("【根据员工ID获取人员信息】请求失败:" + result);
+			return null;
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
 			log.error("【根据员工ID获取人员信息】失败:" + object.toJSONString());
-			throw new RuntimeException("【根据员工ID获取人员信息】失败:" + object.toJSONString());
+			return null;
 		}
 		StaffNodeInfo staffNodeInfo = object.getObject("data", StaffNodeInfo.class);
 		return staffNodeInfo;
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
index bdc9694..f8e6bb4 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
@@ -58,13 +58,13 @@
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
 			log.error("【根据社会信用代码判断企业是否已存在】请求失败:" + result);
-			throw new RuntimeException("【根据社会信用代码判断企业是否已存在】请求失败:" + result);
+			return null;
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
 			log.error("【根据社会信用代码判断企业是否已存在】失败:" + object.toJSONString());
-			throw new RuntimeException("【根据社会信用代码判断企业是否已存在】失败:" + object.toJSONString());
+			return null;
 		}
 		return jsonObject.getObject("object", CheckEnterExist.class);
 	}
@@ -104,13 +104,13 @@
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
 			log.error("【根据企业名称判断企业是否已存在】请求失败:" + result);
-			throw new RuntimeException("【根据企业名称判断企业是否已存在】请求失败:" + result);
+			return null;
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
 			log.error("【根据企业名称判断企业是否已存在】失败:" + object.toJSONString());
-			throw new RuntimeException("【根据企业名称判断企业是否已存在】失败:" + object.toJSONString());
+			return null;
 		}
 		return jsonObject.getObject("object", CheckEnterExist.class);
 	}
@@ -150,13 +150,13 @@
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
 			log.error("【查询企业详情】请求失败:" + result);
-			throw new RuntimeException("【查询企业详情】请求失败:" + result);
+			return null;
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
 			log.error("【查询企业详情】失败:" + object.toJSONString());
-			throw new RuntimeException("【查询企业详情】失败:" + object.toJSONString());
+			return null;
 		}
 		EnterpriseInfo enterpriseInfo = jsonObject.getObject("object", EnterpriseInfo.class);
 		return enterpriseInfo;
@@ -194,10 +194,10 @@
 		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, map);
 		log.info("【修改企业基本信息】请求结果:" + result);
 		JSONObject jsonObject = JSON.parseObject(result);
-		String status = jsonObject.getString("status");
+		String status = jsonObject.getString("retCode");
 		if (!"0".equals(status)) {
 			log.error("【修改企业基本信息】请求失败:" + result);
-			return false;
+			throw new RuntimeException("【修改企业基本信息】请求失败:" + result);
 		}
 		return true;
 	}
@@ -216,7 +216,6 @@
 		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
 		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
 		String appKey = QianYunTongProperties.appkey;//appkey
-		String content = "";//业务参数
 		Map<String, String> headers = new HashMap<>();
 		headers.put("Content-Type", "application/json");
 		Map<String, Object> map = new HashMap<String, Object>();
@@ -239,14 +238,62 @@
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
 			log.error("【创建企业】请求失败:" + result);
-			return null;
+			throw new RuntimeException("【创建企业】请求失败:" + result);
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
-			log.error("【创建企业】请求失败:" + result);
-			return null;
+			log.error("【创建企业】请求失败:" + object.toJSONString());
+			throw new RuntimeException("【创建企业】请求失败:" + object.toJSONString());
 		}
 		return object.getObject("data", CreateEnterprise.class);
 	}
+	
+	
+	/**
+	 * 删除企业信息
+	 *
+	 * @param enterNum 企业编号
+	 * @param operator 管理员手机号码
+	 * @return
+	 */
+	public static boolean delEnterprise(String enterNum, String operator) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/delCompany";
+		//私钥文件
+		String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = QianYunTongProperties.appkey;//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> map = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		map.put(SystemParameterNames.getAppKey(), appKey);
+		map.put(SystemParameterNames.getMessage_id(), messageId);
+		map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		map.put("content", "{\"enterNum\":\"" + enterNum + "\",\"operator\":\"" + operator + "\"}");
+		
+		log.info("【删除企业信息】请求地址:" + url);
+		log.info("【删除企业信息】请求参数:" + JSON.toJSONString(map));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map);
+		log.info("【删除企业信息】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String retCode = jsonObject.getString("retCode");
+		if (!"0".equals(retCode)) {
+			log.error("【删除企业信息】请求失败:" + result);
+			throw new RuntimeException("【删除企业信息】请求失败:" + result);
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【删除企业信息】请求失败:" + object.toJSONString());
+			throw new RuntimeException("【删除企业信息】请求失败:" + object.toJSONString());
+		}
+		return true;
+	}
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java
new file mode 100644
index 0000000..8f25e90
--- /dev/null
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/NCOSSUtil.java
@@ -0,0 +1,240 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+import com.heredata.hos.HOS;
+import com.heredata.hos.HOSClientBuilder;
+import com.heredata.hos.model.CreateBucketRequest;
+import com.heredata.hos.model.HOSObject;
+import com.heredata.hos.model.PutObjectRequest;
+import com.heredata.hos.model.PutObjectResult;
+import com.heredata.hos.model.bucket.Bucket;
+import com.heredata.model.VoidResult;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.InputStream;
+
+/**
+ * OSS 工具类
+ * @author zhibing.pu
+ * @Date 2025/6/23 17:50
+ */
+@Slf4j
+public class NCOSSUtil {
+
+	/**
+	 * 创建桶
+	 * @param bucketName
+	 * @return
+	 */
+	public static Boolean createBucket(String bucketName) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		try {
+			// 创建请求对象,并且设置创建桶名为"example"的桶
+			CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
+			VoidResult result = hos.createBucket(createBucketRequest);
+			if (result.getResponse().isSuccessful()) {
+				log.info("创建桶成功:" + bucketName);
+				return true;
+			}
+		} catch (Exception e){
+			log.info("创建桶失败:" + bucketName);
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+
+	/**
+	 * 查询桶详情
+	 * @param bucketName
+	 * @return
+	 */
+	public static Bucket getBucketInfo(String bucketName) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		try {
+			// 查询桶名为"example"的详情
+			Bucket bucket = hos.getBucketInfo(bucketName);
+			return bucket;
+		} catch (Exception e){
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+	/**
+	 * 删除桶
+	 * @param bucketName
+	 * @return
+	 */
+	public static Boolean deleteBucket(String bucketName) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		try {
+			VoidResult result = hos.deleteBucket(bucketName);
+			if (result.getResponse().isSuccessful()) {
+				log.info("删除桶成功:" + bucketName);
+				return true;
+			}
+		} catch (Exception e){
+			log.info("删除桶成功:" + bucketName);
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+
+	/**
+	 * 设置桶策略
+	 * @param bucketName    桶名
+	 * @param policyText    策略规则字符串
+	 * {
+	 *   // 策略配置的版本号,由用户定义
+	 *   "Version": "2012-10-17",
+	 *   //  策略规则配置,可指定多条策略规则
+	 *   "Statement": [{
+	 *     // 策略规则ID,可用户指定,如不指定则服务自动生成一条
+	 *     "Sid": "sid",
+	 *     // 策略规则指定的HOS API接口标识,可参照下表填写
+	 *     "Action": [
+	 *       "action"
+	 *     ],
+	 *     // 策略规则效果,具体表现为允许或拒绝,有效值为Allow(允许),Deny(拒绝);
+	 *     "Effect": "Allow",
+	 *     // 策略规则指定的资源参照下面resource配置
+	 *     "Resource": "resource",
+	 *     // 策略规则指定的授权人 参照下面Principal配置
+	 *     "Principal": {
+	 *       "HWS": [
+	 *         "account_id:root"
+	 *       ]
+	 *     }
+	 *   }
+	 *   ]
+	 * }
+	 * @return
+	 */
+	public static Boolean setBucketPolicy(String bucketName, String policyText) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		// 桶策略字符串
+		try {
+			VoidResult result = hos.setBucketPolicy(bucketName, policyText);
+			if (result.getResponse().isSuccessful()) {
+				log.info("设置桶策略成功:" + bucketName);
+				return true;
+			}
+		} catch (Exception e) {
+			log.info("设置桶策略失败:" + bucketName);
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+
+	/**
+	 * 上传对象
+	 * @param bucketName    桶名称
+	 * @param key           存储文件名
+	 * @param inputStream      上传文件流
+	 * @return  对象唯一标识
+	 */
+	public static String putObject(String bucketName, String key, InputStream inputStream) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		try {
+			PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key , inputStream);
+			PutObjectResult example = hos.putObject(putObjectRequest);
+			if (example.getResponse().isSuccessful()) {
+				log.info("上传对象成功:" + bucketName + "--->" + key);
+				return example.getETag();
+			}
+		} catch (Exception e) {
+			log.info("上传对象成功:" + bucketName);
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+	/**
+	 * 查询对象
+	 * @param bucketName    桶名称
+	 * @param key           存储文件名
+	 * @return
+	 */
+	public static HOSObject getObject(String bucketName, String key) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		try {
+			HOSObject example = hos.getObject(bucketName, key);
+			if (example.getResponse().isSuccessful()) {
+				log.info("查询对象成功:" + bucketName + "--->" + key);
+				return example;
+			}
+		} catch (Exception e) {
+			log.info("查询对象失败:" + bucketName);
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+	/**
+	 * 删除对象
+	 * @param bucketName     桶名称
+	 * @param key          存储文件名
+	 * @return
+	 */
+	public static Boolean deleteObject(String bucketName, String key) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(QianYunTongProperties.endPoint, QianYunTongProperties.account, QianYunTongProperties.accessKey, QianYunTongProperties.secretKey);
+		try {
+			VoidResult example = hos.deleteObject(bucketName, key);
+			if (example.getResponse().isSuccessful()) {
+				log.info("删除对象成功:" + bucketName + "--->" + key);
+				return true;
+			}
+		} catch (Exception e) {
+			log.info("删除对象失败:" + bucketName + "--->" + key);
+			e.printStackTrace();
+		}
+		return false;
+	}
+}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
index bff8650..b23f447 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -2,10 +2,15 @@
 
 /**
  * 黔云通配置
+ *
  * @author zhibing.pu
  * @Date 2025/6/6 15:03
  */
 public interface QianYunTongProperties {
+	/**
+	 * 小程序appId
+	 */
+	String appId = "wxcc3c9058e2b294db";
 	/**
 	 * appkey
 	 */
@@ -13,7 +18,7 @@
 	/**
 	 * 私钥地址
 	 */
-	String privateKeyPath = "E:\\IDEA Workspaces\\QianYunTong\\private_key_test.pem";
+	String privateKeyPath = "/root/server/app/key/private_key_test.pem";
 	/**
 	 * 消费者账号
 	 */
@@ -28,4 +33,24 @@
 	 * API地址
 	 */
 	String apiUrl = "https://test-zhongtai.stqcloud.com:10070";
+	/**
+	 * 桶名
+	 */
+	String bucketName = "bucuTest0625";
+	/**
+	 * HOS的基础路径(公共前缀)
+	 */
+	String endPoint = "http://119.4.112.68:27741/v1";
+	/**
+	 * 账户的ID
+	 */
+	String account = "d8bef0a04db511f0b79d01a3e2b7587e";
+	/**
+	 * 向UAAS服务请求到的access_key
+	 */
+	String accessKey = "TYMFTFD5SIIT15DCCUD7";
+	/**
+	 * 向UAAS服务请求到的secret_key
+	 */
+	String secretKey = "AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z";
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
index 6dfe5af..245fb0c 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
@@ -1,11 +1,15 @@
 package com.stylefeng.guns.modular.system.util.qianyuntong;
 
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
 import com.open.common.util.OpenApiClient;
 import com.open.common.util.SystemParameterNames;
+import com.stylefeng.guns.modular.system.util.UUIDUtil;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import lombok.extern.slf4j.Slf4j;
 
@@ -47,22 +51,27 @@
 		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
 		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
 		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
-		contentMap.put("content", "{\"mobile\":\"" + mobile + "\",\"enterNum\":\"" + enterNum + "\"}");
-		log.info("【根据手机号和企业编号查询用户信息】请求地址:" + url);
-		log.info("【根据手机号和企业编号查询用户信息】请求参数:" + JSON.toJSONString(contentMap));
+		Map<String, String> map = new HashMap<>();
+		map.put("mobile", mobile);
+		if (null != enterNum) {
+			map.put("enterNum", enterNum);
+		}
+		contentMap.put("content", JSON.toJSONString(map));
+		log.info("【根据手机号码获取人员信息】请求地址:" + url);
+		log.info("【根据手机号码获取人员信息】请求参数:" + JSON.toJSONString(contentMap));
 		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap);
-		log.info("【根据手机号和企业编号查询用户信息】请求结果:" + result);
+		log.info("【根据手机号码获取人员信息】请求结果:" + result);
 		JSONObject jsonObject = JSON.parseObject(result);
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
-			log.error("【根据手机号和企业编号查询用户信息】请求失败:" + result);
-			throw new RuntimeException("【根据手机号和企业编号查询用户信息】请求失败:" + result);
+			log.error("【根据手机号码获取人员信息】请求失败:" + result);
+			return null;
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
-			log.error("【根据手机号和企业编号查询用户信息】失败:" + object.toJSONString());
-			throw new RuntimeException("【根据手机号和企业编号查询用户信息】失败:" + object.toJSONString());
+			log.error("【根据手机号码获取人员信息】失败:" + object.toJSONString());
+			return null;
 		}
 		JSONArray data = object.getJSONArray("data");
 		List<QYTUserInfo> list = new ArrayList<>();
@@ -211,4 +220,43 @@
 		}
 		return true;
 	}
+	
+	
+	/**
+	 * 微信小程序登录
+	 *
+	 * @param code
+	 * @return
+	 */
+	public static LoginWeChatXiao loginWeChatXiao(String code) {
+		HttpRequest post = HttpUtil.createPost("https://casme.teamshub.com/webapp-backstage/ajax/loginWeChatXiao/v1.0");
+		post.header("Content-Type", "text/plain;charset=UTF-8");
+		post.header("Accept-encodeing", "UTF-8");
+		JSONObject body = new JSONObject();
+		body.put("version", "1.0");
+		try {
+			body.put("id", UUIDUtil.getRandomCode(6));
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+		body.put("type", "loginWeChatXiao");
+		body.put("action", "request");
+		body.put("code", code);
+		body.put("appId", QianYunTongProperties.appId);
+		post.body(body.toJSONString());
+		HttpResponse execute = post.execute();
+		if (200 != execute.getStatus()) {
+			log.error("微信登录失败");
+			return null;
+		}
+		JSONObject jsonObject = JSON.parseObject(execute.body());
+		Integer status = jsonObject.getInteger("status");
+		if (0 != status) {
+			log.error("微信登录失败:" + jsonObject.getString("desc"));
+			return null;
+		}
+		LoginWeChatXiao loginWeChatXiao = jsonObject.getObject("data", LoginWeChatXiao.class);
+		return loginWeChatXiao;
+	}
+	
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/LoginWeChatXiao.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/LoginWeChatXiao.java
new file mode 100644
index 0000000..9670f97
--- /dev/null
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/LoginWeChatXiao.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/16 23:50
+ */
+@Data
+public class LoginWeChatXiao {
+	/**
+	 * token
+	 */
+	private String token;
+	/**
+	 * 用户UUID
+	 */
+	private String userUUID;
+	/**
+	 * 用户手机号
+	 */
+	private String mobile;
+	/**
+	 * 企业名称,无企业时为空
+	 */
+	private String enterName;
+	/**
+	 * 企业编码
+	 */
+	private String enterCode;
+	/**
+	 * 企业认证状态
+	 */
+	private String enterAuth;
+	/**
+	 * 是否是管理员,是:1;否:0
+	 */
+	private String isAdmin;
+}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java
index e0fcb39..84383c5 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java
@@ -11,7 +11,7 @@
 	/**
 	 * 人员ID
 	 */
-	private Long empId;
+	private Integer empId;
 	/**
 	 * 主要号码
 	 */
diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/application.yml b/ManagementQYTTravel/guns-admin/src/main/resources/application.yml
index e8a9944..800be0b 100644
--- a/ManagementQYTTravel/guns-admin/src/main/resources/application.yml
+++ b/ManagementQYTTravel/guns-admin/src/main/resources/application.yml
@@ -15,7 +15,7 @@
 spring:
   profiles:
     active: dev
-#    active: produce
+#    active: prod
   mvc:
     static-path-pattern: /static/**
     view:
@@ -30,9 +30,13 @@
       max-request-size: 500MB
       max-file-size: 500MB
   redis:
-    password: 123456
-    host: 127.0.0.1
-    port: 6379
+    host: 172.21.35.151
+    port: 6512
+    password: SC_cache@20#25
+    database: 0
+    timeout: 1000
+    cluster:
+      nodes: 172.21.35.151:6512,172.21.35.152:6512,172.21.35.153:6512,172.21.35.151:6513,172.21.35.152:6513,172.21.35.153:6513
 
 mybatis-plus:
   type-aliases-package: com.stylefeng.guns.modular.system.model
@@ -46,15 +50,21 @@
 ---
 spring:
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/qyttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
-    username: root
-    password: 123456
-    db-name: guns #用来搜集数据库的所有表
+    url: jdbc:mysql://172.21.35.140:8066/traffic_scdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    username: traffic_scusr
+    password: QYT_sc@20#25
+    db-name: traffic_scdb #用来搜集数据库的所有表
     filters: wall,mergeStat
 
 
 ---
+spring:
+  data:
+    mongodb:
+      uri: mongodb://qyt_jtcx:qyt_jtcx2025@172.21.35.195:27017,172.21.35.196:27017/traveling_track
 
+
+---
 wx:
   grantType: authorization_code #填authorization_code
   appid: 1111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
@@ -78,11 +88,7 @@
 
 #支付回调地址
 #正式环境
-callbackPath: https://0ifzoxq2516g.guyubao.com
-
-
-filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
-
+callbackPath: https://traffic.qytzt.cn
 
 #交通部推送数据功能开关
 pushMinistryOfTransport: false
diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/logback-spring.xml b/ManagementQYTTravel/guns-admin/src/main/resources/logback-spring.xml
deleted file mode 100644
index 7be1696..0000000
--- a/ManagementQYTTravel/guns-admin/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
-scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒当scan为true时,此属性生效。默认的时间间隔为1分钟。
-debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
--->
-<!--文件名称需要采取官方规定的方式  带后缀-->
-<configuration scan="false" scanPeriod="60 seconds" debug="false">
-
-    <!-- 定义日志的根目录 -->
-    <!--<property name="LOG_HOME" value="/usr/local/server/logs/" />-->
-    <property name="LOG_HOME" value="d:/logs/" />
-    <!-- 定义日志文件名称 -->
-    <property name="LOG_FILE_NAME" value="driver_log"></property>
-
-    <!--按照官方规定  采用带后缀的命名方式,可以使用其高级Profile功能-->
-    <springProfile name="dev">
-        <!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
-        <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-            <!--
-            日志输出格式:
-                %d表示日期时间,
-                %thread表示线程名,
-                %-5level:级别从左显示5个字符宽度
-                %logger{50} 表示logger名字最长50个字符,否则按照句点分割。
-                %msg:日志消息,
-                %n是换行符
-            -->
-            <layout class="ch.qos.logback.classic.PatternLayout">
-                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern>
-            </layout>
-        </appender>
-        <!--
-            logger主要用于存放日志对象,也可以定义日志类型、级别
-            name:表示匹配的logger类型前缀,也就是包的前半部分
-            level:要记录的日志级别,包括 TRACE < DEBUG < INFO < WARN < ERROR
-            additivity:作用在于children-logger是否使用 rootLogger配置的appender进行输出,
-            false:表示只用当前logger的appender-ref,true:
-            表示当前logger的appender-ref和rootLogger的appender-ref都有效
-        -->
-        <!-- hibernate logger -->
-        <!-- <logger name="xxxx" level="debug" /> -->
-        <!-- Spring framework logger -->
-        <logger name="org.springframework" level="debug" additivity="false"></logger>
-        <!-- mybatis日志打印-->
-        <logger name="org.apache.ibatis" level="DEBUG" />
-        <logger name="java.sql" level="DEBUG" />
-        <logger name="com.stylefeng.guns.modular.system.dao" level="DEBUG"></logger>
-
-        <!--
-        root与logger是父子关系,没有特别定义则默认为root,任何一个类只会和一个logger对应,
-        要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的appender和level。
-        -->
-        <root level="info">
-            <appender-ref ref="stdout" />
-        </root>
-    </springProfile>
-
-    <springProfile name="produce">
-        <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
-        <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
-            <!-- 指定日志文件的名称 -->
-            <file>${LOG_HOME}/${LOG_FILE_NAME}.log</file>
-            <!--
-            当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名
-            TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责触发滚动。
-            -->
-            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                <!--
-                滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动
-                %i:当文件大小超过maxFileSize时,按照i进行文件滚动
-                -->
-                <fileNamePattern>${LOG_HOME}/${LOG_FILE_NAME}/%d{yyyy-MM-dd}/${LOG_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
-                <!--
-                可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每天滚动,
-                且maxHistory是365,则只保存最近365天的文件,删除之前的旧文件。注意,删除旧文件是,
-                那些为了归档而创建的目录也会被删除。
-                -->
-                <MaxHistory>10</MaxHistory>
-                <!--
-                当日志文件超过maxFileSize指定的大小是,根据上面提到的%i进行日志文件滚动
-                注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的,必须配置timeBasedFileNamingAndTriggeringPolicy
-                -->
-                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                    <maxFileSize>100MB</maxFileSize>
-                </timeBasedFileNamingAndTriggeringPolicy>
-            </rollingPolicy>
-            <!-- 日志输出格式: -->
-            <layout class="ch.qos.logback.classic.PatternLayout">
-                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
-            </layout>
-        </appender>
-
-        <!--
-            logger主要用于存放日志对象,也可以定义日志类型、级别
-            name:表示匹配的logger类型前缀,也就是包的前半部分
-            level:要记录的日志级别,包括 TRACE < DEBUG < INFO < WARN < ERROR
-            additivity:作用在于children-logger是否使用 rootLogger配置的appender进行输出,
-            false:表示只用当前logger的appender-ref,true:
-            表示当前logger的appender-ref和rootLogger的appender-ref都有效
-        -->
-        <!-- hibernate logger -->
-        <!-- <logger name="xxxx" level="debug" /> -->
-        <!-- Spring framework logger -->
-        <logger name="org.springframework" level="debug" additivity="false"></logger>
-        <!-- mybatis日志打印-->
-        <logger name="org.apache.ibatis" level="DEBUG" />
-        <logger name="java.sql" level="DEBUG" />
-        <logger name="com.stylefeng.guns.modular.system.dao" level="DEBUG"></logger>
-
-        <!--
-        root与logger是父子关系,没有特别定义则默认为root,任何一个类只会和一个logger对应,
-        要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的appender和level。
-        -->
-        <root level="info">
-            <appender-ref ref="appLogAppender" />
-        </root>
-    </springProfile>
-</configuration>
\ No newline at end of file
diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/logback.xml b/ManagementQYTTravel/guns-admin/src/main/resources/logback.xml
new file mode 100644
index 0000000..a5a7771
--- /dev/null
+++ b/ManagementQYTTravel/guns-admin/src/main/resources/logback.xml
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+	<contextName>logback</contextName>
+	
+	<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+	<property name="log.path" value="/data/app/logs/management"/>
+	
+	<!--0. 日志格式和颜色渲染 -->
+	<!-- 彩色日志依赖的渲染类 -->
+	<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+	<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+	<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+	<!-- 彩色日志格式 -->
+	<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+	
+	<!--1. 输出到控制台-->
+	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+		<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+			<level>debug</level>
+		</filter>
+		<encoder>
+			<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+			<!-- 设置字符集 -->
+			<charset>UTF-8</charset>
+		</encoder>
+	</appender>
+	
+	<!--2. 输出到文档-->
+	<!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+	<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 正在记录的日志文档的路径及文档名 -->
+		<file>${log.path}/debug.log</file>
+		<!--日志文档输出格式-->
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>UTF-8</charset> <!-- 设置字符集 -->
+		</encoder>
+		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<!-- 日志归档 -->
+			<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<maxFileSize>100MB</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+			<!--日志文档保留天数-->
+			<maxHistory>15</maxHistory>
+		</rollingPolicy>
+		<!-- 此日志文档只记录debug级别的 -->
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>debug</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+	</appender>
+	
+	<!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+	<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 正在记录的日志文档的路径及文档名 -->
+		<file>${log.path}/info.log</file>
+		<!--日志文档输出格式-->
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>UTF-8</charset>
+		</encoder>
+		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<!-- 每天日志归档路径以及格式 -->
+			<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<maxFileSize>100MB</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+			<!--日志文档保留天数-->
+			<maxHistory>15</maxHistory>
+		</rollingPolicy>
+		<!-- 此日志文档只记录info级别的 -->
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>info</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+	</appender>
+	
+	<!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+	<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 正在记录的日志文档的路径及文档名 -->
+		<file>${log.path}/warn.log</file>
+		<!--日志文档输出格式-->
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
+		</encoder>
+		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<maxFileSize>100MB</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+			<!--日志文档保留天数-->
+			<maxHistory>15</maxHistory>
+		</rollingPolicy>
+		<!-- 此日志文档只记录warn级别的 -->
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>warn</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+	</appender>
+	
+	<!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+	<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 正在记录的日志文档的路径及文档名 -->
+		<file>${log.path}/error.log</file>
+		<!--日志文档输出格式-->
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
+		</encoder>
+		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<maxFileSize>100MB</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+			<!--日志文档保留天数-->
+			<maxHistory>15</maxHistory>
+		</rollingPolicy>
+		<!-- 此日志文档只记录ERROR级别的 -->
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>ERROR</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+	</appender>
+	
+	<!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
+	<appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 正在记录的日志文档的路径及文档名 -->
+		<file>${log.path}/all.log</file>
+		<!--日志文档输出格式-->
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
+		</encoder>
+		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<maxFileSize>100MB</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+			<!--日志文档保留天数-->
+			<maxHistory>15</maxHistory>
+		</rollingPolicy>
+		<!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>DEBUG</level>
+			<onMatch>DENY</onMatch>
+			<onMismatch>ACCEPT</onMismatch>
+		</filter>
+	</appender>
+	
+	<!--
+		<logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+		以及指定<appender>。<logger>仅有一个name属性,
+		一个可选的level和一个可选的addtivity属性。
+		name:用来指定受此logger约束的某一个包或者具体的某一个类。
+		level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+			  还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
+			  如果未设置此属性,那么当前logger将会继承上级的级别。
+		addtivity:是否向上级logger传递打印信息。默认是true。
+		<logger name="org.springframework.web" level="info"/>
+		<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+	-->
+	
+	<!--
+		root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+		level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+		不能设置为INHERITED或者同义词NULL。默认是DEBUG
+		可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+	-->
+	
+	<!-- 4  最终的策略:
+				 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
+	<springProfile name="dev">
+		<root level="info">
+			<appender-ref ref="CONSOLE" />
+			<appender-ref ref="DEBUG_FILE" />
+			<appender-ref ref="INFO_FILE" />
+			<appender-ref ref="WARN_FILE" />
+			<appender-ref ref="ERROR_FILE" />
+			<appender-ref ref="ALL_FILE" />
+		</root>
+		<logger name="com.stylefeng.guns.modular.system.dao" level="debug"/>
+	</springProfile>
+	
+	<springProfile name="test">
+		<root level="info">
+			<appender-ref ref="CONSOLE" />
+			<appender-ref ref="DEBUG_FILE" />
+			<appender-ref ref="INFO_FILE" />
+			<appender-ref ref="WARN_FILE" />
+			<appender-ref ref="ERROR_FILE" />
+			<appender-ref ref="ALL_FILE" />
+		</root>
+	</springProfile>
+	
+	<springProfile name="prod">
+		<root level="info">
+			<!-- 生产环境最好不配置console写文件 -->
+			<appender-ref ref="DEBUG_FILE" />
+			<appender-ref ref="INFO_FILE" />
+			<appender-ref ref="WARN_FILE" />
+			<appender-ref ref="ERROR_FILE" />
+			<appender-ref ref="ALL_FILE" />
+		</root>
+	</springProfile>
+
+</configuration>
\ No newline at end of file
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
index bf849e6..821e50f 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
@@ -72,29 +72,30 @@
                             </div>
                         </fieldset>
                     </div>
-<!--                    <div class="form-group" style="display: none;" id="zcModelDiv">-->
-<!--                        <label class="col-sm-3 control-label">快车车型:</label>-->
-<!--                        <div class="col-sm-9">-->
-<!--                            <select class="form-control" id="zcModel" name="zcModel">-->
-<!--                                <option value="">选择车型</option>-->
-<!--                                @for(obj in zcModelList){-->
-<!--                                <option value="${obj.id}">${obj.name}</option>-->
-<!--                                @}-->
-<!--                            </select>-->
-<!--                        </div>-->
-<!--                    </div>-->
-<!--                    <div class="form-group" style="display: none;" id="kcModelDiv">-->
-<!--                        <label class="col-sm-3 control-label">跨城出行车型:</label>-->
-<!--                        <div class="col-sm-9">-->
-<!--                            <select class="form-control" id="kcModel" name="kcModel">-->
-<!--                                <option value="">选择车型</option>-->
-<!--                                @for(obj in kcModelList){-->
-<!--                                <option value="${obj.id}">${obj.name}</option>-->
-<!--                                @}-->
-<!--                            </select>-->
-<!--                        </div>-->
-<!--                    </div>-->
-
+	                <!--
+                    <div class="form-group" style="display: none;" id="zcModelDiv">
+                        <label class="col-sm-3 control-label">快车车型:</label>
+                        <div class="col-sm-9">
+                            <select class="form-control" id="zcModel" name="zcModel">
+                                <option value="">选择车型</option>
+                                @for(obj in zcModelList){
+                                <option value="${obj.id}">${obj.name}</option>
+                                @}
+                            </select>
+                        </div>
+                    </div>
+                    <div class="form-group" style="display: none;" id="kcModelDiv">
+                        <label class="col-sm-3 control-label">跨城出行车型:</label>
+                        <div class="col-sm-9">
+                            <select class="form-control" id="kcModel" name="kcModel">
+                                <option value="">选择车型</option>
+                                @for(obj in kcModelList){
+                                <option value="${obj.id}">${obj.name}</option>
+                                @}
+                            </select>
+                        </div>
+                    </div>
+					-->
                     <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)">
                         <option value="">选择车辆品牌</option>
                         @for(obj in brandList){
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
index e808201..12fd679 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
@@ -74,28 +74,30 @@
                             </div>
                         </fieldset>
                     </div>
-<!--                    <div class="form-group" id="zcModelDiv">-->
-<!--                        <label class="col-sm-3 control-label">快车车型:</label>-->
-<!--                        <div class="col-sm-9">-->
-<!--                            <select class="form-control" id="zcModel" name="zcModel">-->
-<!--                                <option value="">选择车型</option>-->
-<!--                                @for(obj in zcModelList){-->
-<!--                                <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>-->
-<!--                                @}-->
-<!--                            </select>-->
-<!--                        </div>-->
-<!--                    </div>-->
-<!--                    <div class="form-group" id="kcModelDiv">-->
-<!--                        <label class="col-sm-3 control-label">跨城出行车型:</label>-->
-<!--                        <div class="col-sm-9">-->
-<!--                            <select class="form-control" id="kcModel" name="kcModel">-->
-<!--                                <option value="">选择车型</option>-->
-<!--                                @for(obj in kcModelList){-->
-<!--                                <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option>-->
-<!--                                @}-->
-<!--                            </select>-->
-<!--                        </div>-->
-<!--                    </div>-->
+	                <!--
+                    <div class="form-group" id="zcModelDiv">
+                        <label class="col-sm-3 control-label">快车车型:</label>
+                        <div class="col-sm-9">
+                            <select class="form-control" id="zcModel" name="zcModel">
+                                <option value="">选择车型</option>
+                                @for(obj in zcModelList){
+                                <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                                @}
+                            </select>
+                        </div>
+                    </div>
+                    <div class="form-group" id="kcModelDiv">
+                        <label class="col-sm-3 control-label">跨城出行车型:</label>
+                        <div class="col-sm-9">
+                            <select class="form-control" id="kcModel" name="kcModel">
+                                <option value="">选择车型</option>
+                                @for(obj in kcModelList){
+                                <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                                @}
+                            </select>
+                        </div>
+                    </div>
+                    -->
                     <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)">
                         <option value="">选择车辆品牌</option>
                         @for(obj in brandList){
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
index ec5605f..89eb5d1 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
@@ -59,79 +59,81 @@
                         </div>
                         <div style="float: left;width: 1200px;margin-left: 50px;">
                             <div class="pushOrderSettings">
-                                <!--<div class="form-group">-->
-                                    <!--<label class="col-sm-2 control-label">快车推单:</label>-->
-                                    <!--<div class="col-sm-10">-->
-                                        <!--第一轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"-->
-                                                                <!--@if(isNotEmpty(zcOne)){-->
-                                                                <!--value="${zcOne.pushDistance}"-->
-                                                                <!--@}else{-->
-                                                                <!--value=""-->
-                                                                <!--@}-->
-                                                                <!--name="zc1" id="zc1" class="form-control newWidth" />&nbsp;公里,-->
-                                        <!--推单时间为&nbsp;<input type="text" oninput="checkIsInt(this)"-->
-                                                          <!--@if(isNotEmpty(zcOne)){-->
-                                                          <!--value="${zcOne.pushTime}"-->
-                                                          <!--@}else{-->
-                                                          <!--value=""-->
-                                                          <!--@}-->
-                                                          <!--name="zc2" id="zc2" class="form-control newWidth" />&nbsp;秒钟;-->
-                                        <!--每次推所有司机的&nbsp;<input type="text" oninput="checkIsDouble(this)"-->
-                                                             <!--@if(isNotEmpty(zcOne)){-->
-                                                             <!--value="${zcOne.driverProportion}"-->
-                                                             <!--@}else{-->
-                                                             <!--value=""-->
-                                                             <!--@}-->
-                                                             <!--name="zc3" id="zc3" class="form-control newWidth" />&nbsp;%-->
-                                        <!--<br/>-->
-                                        <!--<br/>-->
-                                        <!--第二轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"-->
-                                                                <!--@if(isNotEmpty(zcTwo)){-->
-                                                                <!--value="${zcTwo.pushDistance}"-->
-                                                                <!--@}else{-->
-                                                                <!--value=""-->
-                                                                <!--@}-->
-                                                                <!--name="zc4" id="zc4" class="form-control newWidth" />&nbsp;公里,-->
-                                        <!--推单时间为&nbsp;<input type="text" oninput="checkIsInt(this)"-->
-                                                          <!--@if(isNotEmpty(zcTwo)){-->
-                                                          <!--value="${zcTwo.pushTime}"-->
-                                                          <!--@}else{-->
-                                                          <!--value=""-->
-                                                          <!--@}-->
-                                                          <!--name="zc5" id="zc5" class="form-control newWidth" />&nbsp;秒钟;-->
-                                        <!--每次推所有司机的&nbsp;<input type="text" oninput="checkIsDouble(this)"-->
-                                                             <!--@if(isNotEmpty(zcTwo)){-->
-                                                             <!--value="${zcTwo.driverProportion}"-->
-                                                             <!--@}else{-->
-                                                             <!--value=""-->
-                                                             <!--@}-->
-                                                             <!--name="zc6" id="zc6" class="form-control newWidth" />&nbsp;%-->
-                                        <!--<br/>-->
-                                        <!--<br/>-->
-                                        <!--第三轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"-->
-                                                                <!--@if(isNotEmpty(zcThree)){-->
-                                                                <!--value="${zcThree.pushDistance}"-->
-                                                                <!--@}else{-->
-                                                                <!--value=""-->
-                                                                <!--@}-->
-                                                                <!--name="zc7" id="zc7" class="form-control newWidth" />&nbsp;公里,-->
-                                        <!--推单时间为&nbsp;<input type="text" oninput="checkIsInt(this)"-->
-                                                          <!--@if(isNotEmpty(zcThree)){-->
-                                                          <!--value="${zcThree.pushTime}"-->
-                                                          <!--@}else{-->
-                                                          <!--value=""-->
-                                                          <!--@}-->
-                                                          <!--name="zc8" id="zc8" class="form-control newWidth" />&nbsp;秒钟;-->
-                                        <!--每次推所有司机的&nbsp;<input type="text" oninput="checkIsDouble(this)"-->
-                                                             <!--@if(isNotEmpty(zcThree)){-->
-                                                             <!--value="${zcThree.driverProportion}"-->
-                                                             <!--@}else{-->
-                                                             <!--value=""-->
-                                                             <!--@}-->
-                                                             <!--name="zc9" id="zc9" class="form-control newWidth" />&nbsp;%-->
-                                        <!--<br/>-->
-                                    <!--</div>-->
-                                <!--</div>-->
+	                            <!--
+                                <div class="form-group">
+                                    <label class="col-sm-2 control-label">快车推单:</label>
+                                    <div class="col-sm-10">
+                                        第一轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                                @if(isNotEmpty(zcOne)){
+                                                                value="${zcOne.pushDistance}"
+                                                                @}else{
+                                                                value=""
+                                                                @}
+                                                                name="zc1" id="zc1" class="form-control newWidth" />&nbsp;公里,
+                                        推单时间为&nbsp;<input type="text" oninput="checkIsInt(this)"
+                                                          @if(isNotEmpty(zcOne)){
+                                                          value="${zcOne.pushTime}"
+                                                          @}else{
+                                                          value=""
+                                                          @}
+                                                          name="zc2" id="zc2" class="form-control newWidth" />&nbsp;秒钟;
+                                        每次推所有司机的&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                             @if(isNotEmpty(zcOne)){
+                                                             value="${zcOne.driverProportion}"
+                                                             @}else{
+                                                             value=""
+                                                             @}
+                                                             name="zc3" id="zc3" class="form-control newWidth" />&nbsp;%
+                                        <br/>
+                                        <br/>
+                                        第二轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                                @if(isNotEmpty(zcTwo)){
+                                                                value="${zcTwo.pushDistance}"
+                                                                @}else{
+                                                                value=""
+                                                                @}
+                                                                name="zc4" id="zc4" class="form-control newWidth" />&nbsp;公里,
+                                        推单时间为&nbsp;<input type="text" oninput="checkIsInt(this)"
+                                                          @if(isNotEmpty(zcTwo)){
+                                                          value="${zcTwo.pushTime}"
+                                                          @}else{
+                                                          value=""
+                                                          @}
+                                                          name="zc5" id="zc5" class="form-control newWidth" />&nbsp;秒钟;
+                                        每次推所有司机的&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                             @if(isNotEmpty(zcTwo)){
+                                                             value="${zcTwo.driverProportion}"
+                                                             @}else{
+                                                             value=""
+                                                             @}
+                                                             name="zc6" id="zc6" class="form-control newWidth" />&nbsp;%
+                                        <br/>
+                                        <br/>
+                                        第三轮推单:推单距离为&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                                @if(isNotEmpty(zcThree)){
+                                                                value="${zcThree.pushDistance}"
+                                                                @}else{
+                                                                value=""
+                                                                @}
+                                                                name="zc7" id="zc7" class="form-control newWidth" />&nbsp;公里,
+                                        推单时间为&nbsp;<input type="text" oninput="checkIsInt(this)"
+                                                          @if(isNotEmpty(zcThree)){
+                                                          value="${zcThree.pushTime}"
+                                                          @}else{
+                                                          value=""
+                                                          @}
+                                                          name="zc8" id="zc8" class="form-control newWidth" />&nbsp;秒钟;
+                                        每次推所有司机的&nbsp;<input type="text" oninput="checkIsDouble(this)"
+                                                             @if(isNotEmpty(zcThree)){
+                                                             value="${zcThree.driverProportion}"
+                                                             @}else{
+                                                             value=""
+                                                             @}
+                                                             name="zc9" id="zc9" class="form-control newWidth" />&nbsp;%
+                                        <br/>
+                                    </div>
+                                </div>
+	                            -->
                                 <div class="form-group">
                                     <label class="col-sm-2 control-label">出租车推单:</label>
                                     <div class="col-sm-10">
@@ -236,6 +238,7 @@
                                 <div class="form-group">
                                     <label class="col-sm-2 control-label">取消设置:</label>
                                     <div class="col-sm-10">
+	                                    <!--
                                         快车订单取消规则:快车订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                                        @if(isNotEmpty(ptCancel1)){
                                                                        value="${ptCancel1.minuteNum}"
@@ -251,6 +254,7 @@
                                                            @}
                                                            name="ptCancel2" id="ptCancel2" class="form-control newWidth" />&nbsp;元取消费用;
                                         <br/>
+                                        -->
                                         <br/>
                                         出租车订单取消规则:出租车订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                                          @if(isNotEmpty(ptCancel2)){
@@ -267,6 +271,7 @@
                                                            @}
                                                            name="ptCancel4" id="ptCancel4" class="form-control newWidth" />&nbsp;元取消费用;
                                         <br/>
+	                                    <!--
                                         <br/>
                                         跨城出行取消规则:跨城订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                                        @if(isNotEmpty(ptCancel3)){
@@ -283,6 +288,7 @@
                                                            @}
                                                            name="ptCancel6" id="ptCancel6" class="form-control newWidth" />&nbsp;元取消费用;
                                         <br/>
+                                        -->
                                     </div>
                                 </div>
 
@@ -296,6 +302,7 @@
                                 <div class="form-group">
                                     <label class="col-sm-2 control-label">预约单取消设置:</label>
                                     <div class="col-sm-10">
+	                                    <!--
                                         快车订单取消规则:快车订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                                        @if(isNotEmpty(yyCancel1)){
                                                                        value="${yyCancel1.minuteNum}"
@@ -311,6 +318,7 @@
                                                            @}
                                                            name="yyCancel2" id="yyCancel2" class="form-control newWidth" />&nbsp;元取消费用;
                                         <br/>
+                                        -->
                                         <br/>
                                         出租车订单取消规则:出租车订单在司机接单&nbsp;<input type="text" oninput="checkIsInt(this)"
                                                                          @if(isNotEmpty(yyCancel2)){
@@ -433,6 +441,7 @@
                                                       @}
                                                       name="one" id="one" class="form-control newWidth" />&nbsp;元;<br/>
                                 </div>
+	                            <!--
                                 <div class="col-sm-3">
                                     <label class="col-sm-5 control-label">快车改派:</label>
                                     <div class="col-sm-7">
@@ -447,6 +456,7 @@
                                         </div>
                                     </div>
                                 </div>
+                                -->
                                 <div class="col-sm-3">
                                     <label class="col-sm-5 control-label">出租车改派:</label>
                                     <div class="col-sm-7">
@@ -560,6 +570,7 @@
                                                           @}
                                                           name="phone2" id="phone2" class="form-control newWidth" />&nbsp;
                                         <br/>
+	                                    <!--
                                         <br/>
                                         包车调度电话:&nbsp;<input type="text"
                                                             @if(isNotEmpty(phone3)){
@@ -569,6 +580,7 @@
                                                             @}
                                                             name="phone3" id="phone3" class="form-control newWidth" />&nbsp;
                                         <br/>
+                                        -->
                                         <br/>
                                         招聘电话:&nbsp;<input type="text"
                                                             @if(isNotEmpty(phone5)){
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/favicon1.ico b/ManagementQYTTravel/guns-admin/src/main/webapp/static/favicon1.ico
index 4f22b84..3c64289 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/favicon1.ico
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/static/favicon1.ico
Binary files differ
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/index4.png b/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/index4.png
deleted file mode 100644
index ece22c7..0000000
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/index4.png
+++ /dev/null
Binary files differ
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/logo.png b/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/logo.png
index 0bcac2d..7cc7da2 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/logo.png
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/static/img/logo.png
Binary files differ
diff --git a/ManagementQYTTravel/pom.xml b/ManagementQYTTravel/pom.xml
index 121e0c3..b8cac44 100644
--- a/ManagementQYTTravel/pom.xml
+++ b/ManagementQYTTravel/pom.xml
@@ -36,7 +36,6 @@
         <zxing.version>3.2.1</zxing.version>
         <druid.version>1.1.10</druid.version>
         <beetl.version>2.8.5</beetl.version>
-        <swagger.version>2.9.2</swagger.version>
         <commons-lang3.version>3.7</commons-lang3.version>
         <ehcache.core.version>2.6.11</ehcache.core.version>
         <mysql-connector-java.version>8.0.11</mysql-connector-java.version>
@@ -141,16 +140,6 @@
                 <groupId>com.ibeetl</groupId>
                 <artifactId>beetl</artifactId>
                 <version>${beetl.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>io.springfox</groupId>
-                <artifactId>springfox-swagger2</artifactId>
-                <version>${swagger.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>io.springfox</groupId>
-                <artifactId>springfox-swagger-ui</artifactId>
-                <version>${swagger.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.commons</groupId>

--
Gitblit v1.7.1