From d7f84d489282b0f3e61933bbb2df91aef5fab151 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 15 六月 2025 02:27:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar                                                                     |    0 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java                      |   48 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                                    |   52 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                    |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java                 |   11 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java                      |  207 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java                                |    2 
 UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar                                                                                |    0 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java    |   13 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java                     |  238 -
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java                    |   97 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java                         |  214 +
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java                                              |    5 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java      |   13 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java                                              |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java                        |    4 
 UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar                                                                          |    0 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                    |   32 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                    |   98 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java |   75 
 UserQYTTravel/guns-admin/src/main/resources/application.yml                                                                      |  107 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java             |  520 ++--
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java             |   40 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java             |   27 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java        |   72 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java            |   46 
 ManagementQYTTravel/guns-admin/pom.xml                                                                                           |    6 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java       |   23 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java                                     |   52 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java                  |    5 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java     |  118 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java                                            |    2 
 DriverQYTTravel/guns-admin/src/main/resources/application.yml                                                                    |   90 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                      |   46 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java                                  |    6 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java                                |   31 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java                   |   81 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java                             |   55 
 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java                                             |    5 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java                               |   17 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java                          |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java               |   13 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java                                  |   44 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java     |   28 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java                      |    7 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java             |   31 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java                            |    2 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java               |  109 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java                      |    4 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java               |   31 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                  |   43 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java         |   17 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                       |   49 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                   |  279 +-
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java                    |   16 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                    |   20 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java                  |  115 +
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java                             |  194 +
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java                            |   30 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java                         |   91 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java               |   91 
 UserQYTTravel/guns-admin/pom.xml                                                                                                 |   57 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java                      |   70 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java         |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java       |    2 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java                                  |  203 +
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java                      |  126 +
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java                               |    1 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java                                                   |   17 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java                                |   46 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java                                         |   16 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java                          |  214 +
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java                      |   38 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java                                  |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java                           |   67 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                      |   15 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java                   |  121 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java         |   11 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java         |   23 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java                    |  252 ++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java     |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java                                  |   12 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java            |   25 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java        |   63 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java                                  |  297 ++
 DriverQYTTravel/guns-admin/pom.xml                                                                                               |   25 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java       |  487 ++--
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java             |   71 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java                         |   70 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java              |  259 ++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java                        |    7 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java                                    |    6 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java           |   26 
 UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java                            |   74 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                     |   13 
 UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar                                                                             |    0 
 /dev/null                                                                                                                        |  128 -
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java           |   27 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java                 |   44 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java                               |   12 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java                 |    9 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java    |   46 
 102 files changed, 5,044 insertions(+), 1,654 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/pom.xml b/DriverQYTTravel/guns-admin/pom.xml
index e042f9b..e5c748e 100644
--- a/DriverQYTTravel/guns-admin/pom.xml
+++ b/DriverQYTTravel/guns-admin/pom.xml
@@ -105,17 +105,17 @@
             <groupId>org.ehcache</groupId>
             <artifactId>ehcache</artifactId>
         </dependency>
-
+    
         <!--需要分布式session的话需要放开注释-->
         <!--<dependency>-->
-            <!--<groupId>org.springframework.session</groupId>-->
-            <!--<artifactId>spring-session-data-redis</artifactId>-->
+        <!--<groupId>org.springframework.session</groupId>-->
+        <!--<artifactId>spring-session-data-redis</artifactId>-->
         <!--</dependency>-->
-        <!--<dependency>-->
-            <!--<groupId>org.springframework.boot</groupId>-->
-            <!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
-        <!--</dependency>-->
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+    
         <dependency>
             <groupId>com.github.penggle</groupId>
             <artifactId>kaptcha</artifactId>
@@ -140,11 +140,6 @@
         <dependency>
             <groupId>io.jsonwebtoken</groupId>
             <artifactId>jjwt</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>redis.clients</groupId>
-            <artifactId>jedis</artifactId>
-            <version>2.9.0</version>
         </dependency>
 
         <dependency>
@@ -249,6 +244,10 @@
             <scope>system</scope>
             <systemPath>${pom.basedir}/lib/javabase64-1.3.1.jar</systemPath>
         </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+        </dependency>
     </dependencies>
     
     <build>
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
index bdd7088..fb10574 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
@@ -36,7 +36,7 @@
 
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
-                .title("嘉易行 Doc")
+                .title("黔云通 Doc")
                 .description("所有接口前需要加 /driver 前缀,例如:/driver/base/agreement/queryByType <br>所有以 /api/*** 路径的接口需要上传签名参数sign")
 //                .termsOfServiceUrl("http://git.oschina.net/naan1993/guns")
                 .contact("stylefeng")
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java
index b260140..1464f67 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java
@@ -19,27 +19,30 @@
 public class GunsProperties {
 
     public static final String PREFIX = "guns";
-
+    
     private Boolean kaptchaOpen = false;
-
+    
     private Boolean swaggerOpen = false;
-
+    
     private String fileUploadPath;
-
+    
     private Boolean haveCreatePath = false;
-
+    
     private Boolean springSessionOpen = false;
-
+    
+    // 文件服务器访问地址
+    private String pictureServerAddress;
+    
     /**
      * session 失效时间(默认为30分钟 单位:秒)
      */
     private Integer sessionInvalidateTime = 30 * 60;
-
+    
     /**
      * session 验证失效时间(默认为15分钟 单位:秒)
      */
     private Integer sessionValidationInterval = 15 * 60;
-
+    
     public String getFileUploadPath() {
         //如果没有写文件上传路径,保存到临时目录
         if (isEmpty(fileUploadPath)) {
@@ -94,12 +97,20 @@
     public void setSessionInvalidateTime(Integer sessionInvalidateTime) {
         this.sessionInvalidateTime = sessionInvalidateTime;
     }
-
+    
     public Integer getSessionValidationInterval() {
         return sessionValidationInterval;
     }
-
+    
     public void setSessionValidationInterval(Integer sessionValidationInterval) {
         this.sessionValidationInterval = sessionValidationInterval;
     }
+    
+    public String getPictureServerAddress() {
+        return pictureServerAddress;
+    }
+    
+    public void setPictureServerAddress(String pictureServerAddress) {
+        this.pictureServerAddress = pictureServerAddress;
+    }
 }
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index e0455a4..20d4b61 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,7 +1,9 @@
 package com.stylefeng.guns.modular.api;
 
+import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.config.properties.GunsProperties;
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
@@ -12,7 +14,10 @@
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.ALiSendSms;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.WeChatUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -21,6 +26,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -39,46 +45,49 @@
 @RestController
 @RequestMapping("")
 public class DriverController {
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
     @Autowired
     private IDriverService driverService;
-
+    
     @Autowired
     private IOrderPositionService orderPositionService;
-
+    
     @Autowired
     private ISmsrecordService smsrecordService;
-
+    
     @Autowired
     private IDriverOrdersService driverOrdersService;
-
+    
     @Autowired
     private ICarService carService;
-
+    
     @Autowired
     private ALiSendSms aLiSendSms;
-
+    
     @Autowired
     private IOrderTaxiService orderTaxiService;
-
+    
     @Autowired
     private IIncomeService incomeService;
-
+    
     @Autowired
     private IOrderPrivateCarService orderPrivateCarService;
-
+    
     @Autowired
     private IOrderCrossCityService orderCrossCityService;
-
+    
     @Autowired
     private IOrderLogisticsService orderLogisticsService;
-
-
-
+    
+    @Autowired
+    private GunsProperties gunsProperties;
+    
+    
     /**
      * 获取短信验证码
+     *
      * @param phone
      * @return
      */
@@ -89,21 +98,22 @@
             @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"),
             @ApiImplicitParam(value = "场景类型(1=身份验证,2=登录确认,3=用户注册,4=修改密码)", name = "type", required = true, dataType = "String")
     })
-    public ResultUtil queryCaptcha(String phone, Integer type){
-        if(ToolUtil.isNotEmpty(phone)){
+    public ResultUtil queryCaptcha(String phone, Integer type) {
+        if (ToolUtil.isNotEmpty(phone)) {
             try {
                 return driverService.queryCaptcha(phone, type);
-            }catch (Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
                 return ResultUtil.runErr();
             }
-        }else{
+        } else {
             return ResultUtil.paranErr();
         }
     }
-
+    
     /**
      * 验证短信验证码
+     *
      * @param phone
      * @param code
      * @return
@@ -216,21 +226,22 @@
             return ResultUtil.runErr();
         }
     }
-
-
+    
+    
     /**
      * 司机注册审核后的短信
+     *
      * @param uid
      * @param type
      * @return
      */
     @ResponseBody
     @PostMapping("/base/driver/sendsms")
-    public ResultUtil sendsms(Integer uid, Integer type){
+    public ResultUtil sendsms(Integer uid, Integer type) {
         try {
             Driver driver = driverService.selectById(uid);
             String templateCode = null;
-            switch (type){
+            switch (type) {
                 case 1:
                     templateCode = "SMS_229648175";//身份验证
                     break;
@@ -250,7 +261,8 @@
                     templateCode = "SMS_229613326";//司机注册失败
                     break;
             }
-            String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}");
+//            String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}");
+            SMSUtil.sendVerifyCode(driver.getPhone());
             return ResultUtil.success();
         }catch (Exception e){
             e.printStackTrace();
@@ -1402,29 +1414,35 @@
 
     @Autowired
     private WeChatUtil weChatUtil;
+    
     @ResponseBody
     @PostMapping("/api/driver/getDriverCode")
     @ApiOperation(value = "获取司机端的二维码", tags = {"司机端-个人中心"}, notes = "")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil getDriverCode(HttpServletRequest request){
+    public ResultUtil getDriverCode(HttpServletRequest request) {
         try {
             Integer driverId = driverService.getUserIdFormRedis(request);
-            if(null == driverId){
+            if (null == driverId) {
                 return ResultUtil.tokenErr();
             }
             Driver driver = driverService.selectById(driverId);
-            if(driver!=null){
+            if (driver != null) {
                 String fileName = driver.getQrCode();
-                if(fileName==null || "".equals(fileName) ){
+                if (fileName == null || "".equals(fileName)) {
                     String appletPath = "pages/home/scanPage/scanPage";
                     //HttpURLConnection httpURLConnection = weChatUtil.getwxacodeunlimit(appletPath, "d=" + driverId + "&k=" + 0, "release",driverId);
-                    InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "driverId=" + driverId , "release");
-                    if(inputStream!=null){
-                        fileName = OssUploadUtil.ossUploadByStream(driverId,inputStream);
-                        System.out.println(fileName);
-                        driver.setQrCode(fileName);
+                    InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "driverId=" + driverId, "release");
+                    if (inputStream != null) {
+                        // 上传文件目录
+                        fileName = UUID.randomUUID().toString() + ".png";
+                        String fileSavePath = gunsProperties.getFileUploadPath() + "img\\";
+                        FileUtil.writeFromStream(inputStream, fileName);
+                        String pictureName = gunsProperties.getPictureServerAddress() + "img/" + fileName;
+//			            fileName = OssUploadUtil.ossUploadByStream(driverId, inputStream);
+                        System.out.println(pictureName);
+                        driver.setQrCode(pictureName);
                         driverService.updateById(driver);
                     }
                 }
@@ -1459,13 +1477,13 @@
             driver.setAuthState(3);
             driverService.updateById(driver);
             //开始验证当前账号是否在别处登录
-            String value = redisUtil.getValue("DRIVER_" + driverId);
+            String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driverId);
             if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线
                 //开始清除redis中无效的数据
-                String key = redisUtil.getValue("DRIVER_" + driver.getPhone());
-                redisUtil.remove(key);//删除个人信息数据
-                redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
-                redisUtil.remove("DRIVER_" + driverId);//清除存储的token
+                String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
+                redisTemplate.delete(key);//删除个人信息数据
+                redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+                redisTemplate.delete("DRIVER_" + driverId);//清除存储的token
             }
             return ResultUtil.success();
         } catch (Exception e) {
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
index 3ba7b20..83c1a67 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -6,7 +6,10 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.dao.*;
-import com.stylefeng.guns.modular.crossCity.model.*;
+import com.stylefeng.guns.modular.crossCity.model.LineShift;
+import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
+import com.stylefeng.guns.modular.crossCity.model.LineSite;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.ILineSiteService;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper;
@@ -14,11 +17,11 @@
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.util.DateUtil;
 import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.util.SystemException;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -49,9 +52,9 @@
 
     @Autowired
     private GDMapElectricFenceUtil gdMapElectricFenceUtil;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private IOrderTaxiService orderTaxiService;
@@ -87,7 +90,7 @@
         List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId);
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(sdf.parse(day));
-        String vehicle = redisUtil.getValue("VEHICLE");
+        String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
         List<Integer> integers = new ArrayList<>();
         if(ToolUtil.isNotEmpty(vehicle)){
             integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index e91b015..5f51f98 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -6,7 +6,6 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.account.controller.AppOrderController;
 import com.stylefeng.guns.modular.account.unionpay.GetOpenBodySig;
 import com.stylefeng.guns.modular.account.unionpay.QrCodeConfiguration;
 import com.stylefeng.guns.modular.account.unionpay.Util;
@@ -21,7 +20,6 @@
 import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
-import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.dao.PhoneMapper;
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SysIntegralMapper;
@@ -33,25 +31,20 @@
 import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
-import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import io.swagger.models.auth.In;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
-import java.math.MathContext;
-import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -140,9 +133,9 @@
 
     @Autowired
     private IOrderAdditionalFeeService orderAdditionalFeeService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private IMerchantActivityService merchantActivityService;
@@ -368,13 +361,13 @@
                     }
                     merchantActivityService.updateBatchById(merchantActivities);
                 }
-                String value = redisUtil.getValue("merchantVoucher");
+                String value = (String) redisTemplate.opsForValue().get("merchantVoucher");
                 JSONObject jsonObject = JSON.parseObject(value);
                 if(null == jsonObject){
                     jsonObject = new JSONObject();
                 }
                 jsonObject.put(userInfo.getPhone(), listWarppers);
-                redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString());
+                redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString());
 
                 pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据
                 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId(), 1);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index 390f933..d03c013 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -20,6 +20,7 @@
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -56,9 +57,9 @@
 
     @Autowired
     private IOrderLogisticsSpreadService orderLogisticsSpreadService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private ICompanyService companyService;
@@ -321,13 +322,13 @@
                         }
                         merchantActivityService.updateBatchById(merchantActivities);
                     }
-                    String value = redisUtil.getValue("merchantVoucher");
+                    String value = (String) redisTemplate.opsForValue().get("merchantVoucher");
                     JSONObject jsonObject = JSON.parseObject(value);
                     if(null == jsonObject){
                         jsonObject = new JSONObject();
                     }
                     jsonObject.put(userInfo.getPhone(), listWarppers);
-                    redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString());
+                    redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString());
                 }
 
                 break;
@@ -483,8 +484,8 @@
         orderLogistics.setArriveTime(date);
         orderLogistics.setStartServiceTime(date);
         orderLogistics.setBoardingTime(date);
-
-        String value = redisUtil.getValue("DRIVER" + uid);
+    
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + uid);
         if(ToolUtil.isNotEmpty(value)){
             String[] split = value.split(",");
             Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(split[0], split[1]);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 6b9dfc3..938b103 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -17,17 +17,13 @@
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import org.gavaghan.geodesy.Ellipsoid;
-import org.gavaghan.geodesy.GeodeticCalculator;
-import org.gavaghan.geodesy.GeodeticCurve;
-import org.gavaghan.geodesy.GlobalCoordinates;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.math.BigInteger;
 import java.util.*;
 
 
@@ -84,20 +80,20 @@
 
     @Autowired
     private ICompanyService companyService;
-
+    
     @Value("${pushMinistryOfTransport}")
     private boolean pushMinistryOfTransport;
-
+    
     @Autowired
     private ICarService carService;
-
+    
     @Resource
     private CarServiceMapper carServiceMapper;
-
-
-
-
-
+    
+    @Autowired
+    private RedisTemplate redisTemplate;
+    
+    
     /**
      * 获取司机端首页订单列表
      * @param state     1=服务中,2=待服务(30分钟定义预约)
@@ -298,8 +294,6 @@
     }
 
 
-    @Autowired
-    private RedisUtil redisUtil;
 
     /**
      * 获取订单详情页(服务中的页面)
@@ -322,7 +316,7 @@
             if(order!=null){
                 orders.addAll(order);
             }
-            String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
             order = this.baseMapper.queryOrderInfo(orderId,5,value.split(",")[0],value.split(",")[1]);
             if(order!=null){
                 orders.addAll(order);
@@ -337,7 +331,7 @@
             if(order!=null){
                 orders.addAll(order);
             }
-            String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
             order = this.baseMapper.queryOrderInfo(orderPrivateCar.getPid(),5,value.split(",")[0],value.split(",")[1]);
             if(order!=null){
                 orders.addAll(order);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
index 2413a9e..a8ef413 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
@@ -344,21 +344,35 @@
      */
     @TableField("appletsOpenId")
     private String appletsOpenId;
-
     /**
      * 司机二维码
      */
     @TableField("qrCode")
     private String qrCode;
-
+    /**
+     * 中台员工ID
+     */
+    @TableField("empId")
+    private Long empId;
+    /**
+     * 中台员工所属企业ID
+     */
+    @TableField("enterId")
+    private Long enterId;
+    /**
+     * 中台员工所属企业编号
+     */
+    @TableField("entercode")
+    private String entercode;
+    
     public String getQrCode() {
         return qrCode;
     }
-
+    
     public void setQrCode(String qrCode) {
         this.qrCode = qrCode;
     }
-
+    
     @Override
     public Integer getId() {
         return id;
@@ -872,15 +886,39 @@
     public void setAppletsOpenId(String appletsOpenId) {
         this.appletsOpenId = appletsOpenId;
     }
-
+    
     public String getWithdrawPassword() {
         return withdrawPassword;
     }
-
+    
     public void setWithdrawPassword(String withdrawPassword) {
         this.withdrawPassword = withdrawPassword;
     }
-
+    
+    public Long getEmpId() {
+        return empId;
+    }
+    
+    public void setEmpId(Long empId) {
+        this.empId = empId;
+    }
+    
+    public Long getEnterId() {
+        return enterId;
+    }
+    
+    public void setEnterId(Long enterId) {
+        this.enterId = enterId;
+    }
+    
+    public String getEntercode() {
+        return entercode;
+    }
+    
+    public void setEntercode(String entercode) {
+        this.entercode = entercode;
+    }
+    
     @Override
     public String toString() {
         return "Driver{" +
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index af01a12..51414dd 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1,7 +1,5 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.common.constant.JwtConstants;
@@ -14,6 +12,11 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.EditStaffNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.GetStaffNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.StaffNodeInfo;
 import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
@@ -26,6 +29,7 @@
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -33,6 +37,7 @@
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 
 @Service
@@ -61,46 +66,46 @@
 
     @Resource
     private CompanyMapper companyMapper;
-
+    
     @Resource
     private DriverActivityRegisteredMapper driverActivityRegisteredMapper;
-
+    
     @Resource
     private DriverActivityOrderMapper driverActivityOrderMapper;
-
+    
     @Resource
     private DriverActivityOnlineMapper driverActivityOnlineMapper;
-
+    
     @Resource
     private DriverActivityHistoryMapper driverActivityHistoryMapper;
-
+    
     @Resource
     private UserCouponRecordMapper userCouponRecordMapper;
-
+    
     @Resource
     private DriverOrdersMapper driverOrdersMapper;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
-
+    private RedisTemplate redisTemplate;
+    
     @Autowired
     private ALiSendSms aLiSendSms;
-
+    
     @Autowired
     private ICompanyCityService companyCityService;
-
+    
     @Autowired
     private GDFalconUtil gdFalconUtil;
-
+    
     @Autowired
     private IOrderService orderService;
-
+    
     @Autowired
     private ISmsrecordService smsrecordService;
-
+    
     @Autowired
     private ICarService carService;
-
+    
     @Autowired
     private IReassignService reassignService;
 
@@ -143,16 +148,16 @@
     public ResultUtil queryCaptcha(String phone, Integer type) throws Exception {
         Random random = new Random();
         StringBuffer sb = new StringBuffer();
-        for(int i = 0; i < 4; i++){
+        for (int i = 0; i < 4; i++) {
             sb.append((int) (random.nextDouble() * 10));
         }
         String authCode = sb.toString();
         String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!";
-
+    
         //发送验证码短信
-        redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
+        redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期
         String templateCode = "";
-        switch (type){
+        switch (type) {
             case 1:
                 templateCode = "SMS_154775435";//身份验证
                 break;
@@ -166,13 +171,14 @@
                 templateCode = "SMS_154775431";//修改密码
                 break;
         }
-        String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}");
-        JSONObject jsonObject = JSON.parseObject(sData);
-        String message = jsonObject.getString("Message");
-        if(!"OK".equals(message)){
-            return ResultUtil.error("");
-        }
-        System.out.println(sms);
+//        String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}");
+//        JSONObject jsonObject = JSON.parseObject(sData);
+//        String message = jsonObject.getString("Message");
+//        if(!"OK".equals(message)){
+//            return ResultUtil.error("");
+//        }
+//        System.out.println(sms);
+        SMSUtil.sendVerifyCode(phone);
         return ResultUtil.success();
     }
 
@@ -186,7 +192,7 @@
      */
     @Override
     public boolean checkCaptcha(String phone, String code) throws Exception {
-        Object value = redisUtil.getValue(phone);
+        Object value = redisTemplate.opsForValue().get(phone);
         if("1234".equals(code)){
             return true;
         }
@@ -456,34 +462,44 @@
     @Override
     public ResultUtil<LoginWarpper> driverLogin(String phone, String password) throws Exception {
         Driver driver = driverMapper.queryByPhone(phone);
-        if(null == driver){
+        if (null == driver) {
             return ResultUtil.error("账号未注册");
         }
-        if(ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1){
+        //查询中台员工数据
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(driver.getEmpId());
+        request.setEntercode(driver.getEntercode());
+        request.setMobile(driver.getPhone());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        if (null == staffNode || staffNode.getIsValid().equals("0")) {
+            return ResultUtil.error("账号未注册");
+        }
+    
+        if (ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1) {
             return ResultUtil.error("账号正在审核中,请耐心等待");
         }
-        if(driver.getAuthState() == 3){
+        if (driver.getAuthState() == 3) {
             return ResultUtil.error("账号已被冻结,请联系管理员");
         }
-        if(!driver.getPassword().equals(ShiroKit.md5(password, salt))){
+        if (!driver.getPassword().equals(ShiroKit.md5(password, salt))) {
             return ResultUtil.error("密码错误");
         }
-
-        String value = redisUtil.getValue("DEVICE_" + driver.getId());
-        if(ToolUtil.isNotEmpty(value)){
+    
+        String value = (String) redisTemplate.opsForValue().get("DEVICE_" + driver.getId());
+        if (ToolUtil.isNotEmpty(value)) {
             return ResultUtil.error("当前账户正在车载端登录");
         }
-
+    
         //调用单点登录逻辑
         this.singlePointLogin(driver.getId());
-
+    
         String token = this.getToken(driver, password);
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(token);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
         loginWarpper.setState(ToolUtil.isEmpty(driver.getIdCard()) ? 1 : 0);
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(phone);
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -524,7 +540,7 @@
             }else{
                 key = requestHeader;
             }
-            String value = redisUtil.getValue(key);
+            String value = (String) redisTemplate.opsForValue().get(key);
             return null != value ? Integer.valueOf(value) : null;
         }else{
             return null;
@@ -757,18 +773,45 @@
     @Override
     public ResultUtil updatePhone(String phone, String code, Integer uid) throws Exception {
         Driver driver = driverMapper.queryByPhone(phone);
-        if(null != driver){
+        if (null != driver) {
             return ResultUtil.error("电话号码已被注册");
         }
         boolean b = this.checkCaptcha(phone, code);
-        if(!b){
+        if (!b) {
             return ResultUtil.error("验证码无效");
         }
         Driver driver1 = this.selectById(uid);
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(driver1.getEmpId());
+        request.setEntercode(driver1.getEntercode());
+        request.setMobile(driver1.getPhone());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        if ("0".equals(staffNode.getIsValid())) {
+            return ResultUtil.error("无效的司机账号");
+        }
+        EditStaffNodeRequest editStaffNodeRequest = new EditStaffNodeRequest();
+        editStaffNodeRequest.setEmpId(staffNode.getEmpId());
+        editStaffNodeRequest.setMobile(staffNode.getMphone());
+        editStaffNodeRequest.setEntercode(staffNode.getEnterNum());
+        editStaffNodeRequest.setEnterId(staffNode.getEnterId());
+        editStaffNodeRequest.setEmpName(staffNode.getEmpName());
+        editStaffNodeRequest.setEmpNickname(staffNode.getEmpNickname());
+        editStaffNodeRequest.setLoginNo(staffNode.getLoginNo());
+        editStaffNodeRequest.setMphone(phone);
+        editStaffNodeRequest.setEmail(staffNode.getEmail());
+        editStaffNodeRequest.setDeptId(staffNode.getDeptId());
+        editStaffNodeRequest.setPositionId(1);
+        editStaffNodeRequest.setSuperLevel(0);
+        editStaffNodeRequest.setHideMobile(0);
+        Boolean editStaffNode = EmployeeUtil.editStaffNode(editStaffNodeRequest);
+        if (!editStaffNode) {
+            return ResultUtil.error("修改手机号码失败");
+        }
+    
         driver1.setAccount(phone);
         driver1.setPhone(phone);
         this.updateById(driver1);
-
+    
         smsrecordService.saveData(7, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
         return ResultUtil.success();
     }
@@ -1187,7 +1230,7 @@
             driverOrdersMapper.insert(query);
         }
         DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1);
-        if(null == driverWork){
+        if (null == driverWork) {
             driverWork = new DriverWork();
             driverWork.setStartTime(new Date());
             driverWork.setDriverId(driver.getId());
@@ -1195,22 +1238,22 @@
             driverWork.setType("2");
             driverWorkMapper.insert(driverWork);
         }
-        if(driver.getState() == 1){
+        if (driver.getState() == 1) {
             driver.setState(2);
             driverMapper.updateById(driver);
         }
-
-
+    
+    
         //调用单点登录清除缓存数据
         this.singlePointLogin(driver.getId());
-
+    
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), jobNum.toCharArray());
         String credentials = ShiroKit.md5(driver.getJobNumber(), salt);
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+    
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1218,16 +1261,16 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
-
-
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+    
+    
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(s);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(driver.getPhone());
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -1285,7 +1328,7 @@
             driverOrdersMapper.insert(query);
         }
         DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1);
-        if(null == driverWork){
+        if (null == driverWork) {
             driverWork = new DriverWork();
             driverWork.setStartTime(new Date());
             driverWork.setDriverId(driver.getId());
@@ -1293,20 +1336,20 @@
             driverWork.setType("2");
             driverWorkMapper.insert(driverWork);
         }
-        if(driver.getState() == 1){
+        if (driver.getState() == 1) {
             driver.setState(2);
             driverMapper.updateById(driver);
         }
-
+    
         this.singlePointLogin(driver.getId());//清除缓存实现单点登录
-
+    
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), identification.toCharArray());
         String credentials = ShiroKit.md5(driver.getIdCard(), salt);
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+    
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1314,16 +1357,16 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
-
-
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+    
+    
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(s);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(driver.getPhone());
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -1371,7 +1414,7 @@
             driverOrdersMapper.insert(query);
         }
         DriverWork driverWork = driverWorkMapper.queryNewWork(driver.getId(), 2, 1);
-        if(null == driverWork){
+        if (null == driverWork) {
             driverWork = new DriverWork();
             driverWork.setStartTime(new Date());
             driverWork.setDriverId(driver.getId());
@@ -1379,20 +1422,20 @@
             driverWork.setType("2");
             driverWorkMapper.insert(driverWork);
         }
-        if(driver.getState() == 1){
+        if (driver.getState() == 1) {
             driver.setState(2);
             driverMapper.updateById(driver);
         }
-
+    
         this.singlePointLogin(driver.getId());//清除缓存实现单点登录
-
+    
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), taxiAptitudeCard.toCharArray());
         String credentials = ShiroKit.md5(driver.getTaxiAptitudeCard(), salt);
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+    
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1400,16 +1443,16 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue(driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
-
-
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
+    
+    
         LoginWarpper loginWarpper = new LoginWarpper();
         loginWarpper.setId(driver.getId());
         loginWarpper.setToken(s);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
-
+    
         //创建高德猎鹰的终端数据
         String tid = gdFalconUtil.createTerminal(driver.getPhone());
         loginWarpper.setServerId(gdFalconUtil.getServerId());
@@ -1426,12 +1469,12 @@
     public void taskOffWork() throws Exception {
         List<Driver> drivers = driverMapper.selectList(new EntityWrapper<Driver>().eq("authState", 2).ne("state", 3));
         Long now = Long.valueOf(System.currentTimeMillis());
-        for(Driver driver : drivers){
-            String value = redisUtil.getValue("DEVICE_" + driver.getId());
-            if(ToolUtil.isNotEmpty(value) && now.compareTo(Long.valueOf(value) + (60 * 60 * 1000)) > 0){
+        for (Driver driver : drivers) {
+            String value = (String) redisTemplate.opsForValue().get("DEVICE_" + driver.getId());
+            if (ToolUtil.isNotEmpty(value) && now.compareTo(Long.valueOf(value) + (60 * 60 * 1000)) > 0) {
                 driver.setState(1);
                 driverMapper.updateById(driver);
-                redisUtil.remove("DEVICE_" + driver.getId());
+                redisTemplate.delete("DEVICE_" + driver.getId());
             }
         }
     }
@@ -1508,40 +1551,47 @@
     public ResultUtil loginOut(Integer id) throws Exception {
         //开始清除redis中无效的数据
         Driver driver = driverMapper.selectById(id);
-        String key = redisUtil.getValue(driver.getPhone());
-        redisUtil.remove(key);//删除个人信息数据
-        redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
-        redisUtil.remove("DRIVER_" + id);//清除存储的token
-        redisUtil.remove("DEVICE_" + id);//清除车载端登录的标识
+        String key = (String) redisTemplate.opsForValue().get(driver.getPhone());
+        redisTemplate.delete(key);//删除个人信息数据
+        redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+        redisTemplate.delete("DRIVER_" + id);//清除存储的token
+        redisTemplate.delete("DEVICE_" + id);//清除车载端登录的标识
         return ResultUtil.success();
     }
-
-
+    
     /**
-     * 获取编号
-     * @return
+     * 单点登录
+     *
+     * @param id
      */
-    public String getCode(){
-        int count = driverMapper.getCount();
-        String code = String.valueOf(1000001 + count);
-        return "D" + code.substring(1);
+    private void singlePointLogin(Integer id) {
+        //开始验证当前账号是否在别处登录
+        String value = (String) redisTemplate.opsForValue().get("DRIVER_" + id);
+        if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线(如果是车载端不需要下线)
+            //开始清除redis中无效的数据
+            Driver driver = driverMapper.selectById(id);
+            String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
+            redisTemplate.delete(key);//删除个人信息数据
+            redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
+            redisTemplate.delete("DRIVER_" + id);//清除存储的token
+        }
     }
-
-
+    
     /**
      * 获取token
+     *
      * @param driver
      * @param password
      * @return
      */
-    private String getToken(Driver driver, String password){
+    private String getToken(Driver driver, String password) {
         //封装请求账号密码为shiro可验证的token
         UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(driver.getPhone(), password.toCharArray());
         String credentials = driver.getPassword();
         ByteSource credentialsSalt = new Md5Hash(salt);
         SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
                 new ShiroUser(), credentials, credentialsSalt, "");
-
+        
         //校验用户账号密码
         HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
         md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
@@ -1549,30 +1599,21 @@
         boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
                 usernamePasswordToken, simpleAuthenticationInfo);
         String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7 * 24 * 60 * 60);
-        redisUtil.setStrValue("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("DRIVER_" + driver.getId(), s);
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s);
         return s;
     }
-
-
-
-
+    
     /**
-     * 单点登录
-     * @param id
+     * 获取编号
+     *
+     * @return
      */
-    private void singlePointLogin(Integer id){
-        //开始验证当前账号是否在别处登录
-        String value = redisUtil.getValue("DRIVER_" + id);
-        if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线(如果是车载端不需要下线)
-            //开始清除redis中无效的数据
-            Driver driver = driverMapper.selectById(id);
-            String key = redisUtil.getValue("DRIVER_" + driver.getPhone());
-            redisUtil.remove(key);//删除个人信息数据
-            redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
-            redisUtil.remove("DRIVER_" + id);//清除存储的token
-        }
+    public String getCode() {
+        int count = driverMapper.getCount();
+        String code = String.valueOf(1000001 + count);
+        return "D" + code.substring(1);
     }
-
+    
 }
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
index 008c6d6..97ae294 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
@@ -1,7 +1,5 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
@@ -19,16 +17,18 @@
 import com.stylefeng.guns.modular.system.service.IOrderPositionService;
 import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
 import com.stylefeng.guns.modular.system.util.GeodesyUtil;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 
 @Service
@@ -42,9 +42,9 @@
 
     @Resource
     private PushAuxiliaryMapper pushAuxiliaryMapper;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private IOrderTaxiService orderTaxiService;
@@ -81,7 +81,7 @@
      */
     @Override
     public ResultUtil positionSocket(OrderPosition orderPosition, Integer uid) throws Exception {
-        redisUtil.setStrValue(String.valueOf(uid), orderPosition.getLon() + "," + orderPosition.getLat());
+        redisTemplate.opsForValue().set(String.valueOf(uid), orderPosition.getLon() + "," + orderPosition.getLat());
         if(ToolUtil.isNotEmpty(orderPosition.getOrderId()) && ToolUtil.isNotEmpty(orderPosition.getOrderType())){
             orderPositionService.saveData(orderPosition);
         }
@@ -108,7 +108,7 @@
         }
 
         //查看是否有可接单的数据
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(uid));
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(uid));
         if(ToolUtil.isNotEmpty(value)){
             String[] split = value.split(",");
             List<OrderStatusWarpper> list1 = this.searchOrder(split[0], split[1], uid);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 4bd3c54..c56d645 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -13,13 +13,11 @@
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.dao.PhoneMapper;
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
 import com.stylefeng.guns.modular.system.model.AdditionalFee;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.OrderPosition;
-import com.stylefeng.guns.modular.system.model.Region;
 import com.stylefeng.guns.modular.system.service.IAdditionalFeeService;
 import com.stylefeng.guns.modular.system.service.IDriverService;
 import com.stylefeng.guns.modular.system.service.IOrderService;
@@ -30,6 +28,7 @@
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -64,9 +63,9 @@
 
     @Autowired
     private ChinaMobileUtil chinaMobileUtil;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private PushUtil pushUtil;
@@ -889,7 +888,7 @@
 
             Integer muoth = Long.valueOf((orderTaxi.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue();
             //发送短信提醒
-            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderTaxi.getStartAddress() + "\",\"data1\":\"" + orderTaxi.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
+//            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderTaxi.getStartAddress() + "\",\"data1\":\"" + orderTaxi.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
         }
         //专车
         List<OrderPrivateCar> list1 = orderPrivateCarService.queryMaturity();
@@ -901,7 +900,7 @@
 
             Integer muoth = Long.valueOf((orderPrivateCar.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue();
             //发送短信提醒
-            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderPrivateCar.getStartAddress() + "\",\"data1\":\"" + orderPrivateCar.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
+//            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderPrivateCar.getStartAddress() + "\",\"data1\":\"" + orderPrivateCar.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
         }
         //跨城
         List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryMaturity();
@@ -913,7 +912,7 @@
 
             Integer muoth = Long.valueOf((orderCrossCity.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue();
             //发送短信提醒
-            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderCrossCity.getStartAddress() + "\",\"data1\":\"" + orderCrossCity.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
+//            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderCrossCity.getStartAddress() + "\",\"data1\":\"" + orderCrossCity.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
         }
         //小件物流
         List<OrderLogistics> orderLogistics = orderLogisticsService.queryMaturity();
@@ -923,7 +922,7 @@
 
             Integer muoth = Long.valueOf((orderLogistics1.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue();
             //发送短信提醒
-            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderLogistics1.getStartAddress() + "\",\"data1\":\"" + orderLogistics1.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
+//            aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderLogistics1.getStartAddress() + "\",\"data1\":\"" + orderLogistics1.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}");
         }
         if(drivers.size() > 0){
             driverService.updateBatchById(drivers);//批量修改状态为服务中
@@ -1189,7 +1188,7 @@
                 state = orderTaxi.getState();
 
                 //司机手动确认收款,删除限制司机6分钟不能接单的标识
-                String vehicle = redisUtil.getValue("VEHICLE");
+                String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
                 if(ToolUtil.isNotEmpty(vehicle)){
                     JSONArray jsonArray = JSON.parseArray(vehicle);
                     for(int i = 0; i < jsonArray.size(); i++){
@@ -1198,7 +1197,7 @@
                             break;
                         }
                     }
-                    redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+                    redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());
                 }
                 break;
         }
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
index f8b020f..90d8ee9 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
@@ -28,19 +28,19 @@
     public boolean authentication(String name, String code){
         String url = "https://safrvcert.market.alicloudapi.com/safrv_2meta_id_name/";
         Map<String, String> header = new HashMap<>();
-        header.put("Authorization", "APPCODE b7d32437d08149099457dcb50fb57df2");
+        header.put("Authorization", "APPCODE 111");
         Map<String, Object> param = new HashMap<>();
-        param.put("__userId", "1732960796168165");
-        param.put("verifyKey", "IVO4js5kValcdt");
+        param.put("__userId", "111");
+        param.put("verifyKey", "111");
         param.put("userName", name);
         param.put("identifyNum", code);
         String get = httpClientUtil.pushHttpRequset("GET", url, param, header, "form");
         JSONObject jsonObject = JSON.parseObject(get);
-        if(jsonObject.getIntValue("code") == 200){
+        if (jsonObject.getIntValue("code") == 200) {
             JSONObject value = jsonObject.getJSONObject("value");
-            if(value.getIntValue("bizCode") == 0){
+            if (value.getIntValue("bizCode") == 0) {
                 return true;
-            }else{
+            } else {
                 return false;
             }
         }else{
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
index 10ab947..fb863d4 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
@@ -21,8 +21,8 @@
     // 设置鉴权参数,初始化客户端
     private DefaultProfile profile = DefaultProfile.getProfile(
             "cn-hangzhou",// 地域ID
-            "LTAI5tCeHnZXREQBcVf3NHLB",// 您的AccessKey ID
-            "OEX6AtRb3qOCyp53xOFdDEYgBjzZzS");// 您的AccessKey Secret
+            "111",// 您的AccessKey ID
+            "111");// 您的AccessKey Secret
     private IAcsClient client = new DefaultAcsClient(profile);
 
     private static void log_print(String functionName, Object result) {
@@ -70,7 +70,7 @@
         // 接收短信的手机号码
         request.putQueryParameter("PhoneNumbers", phone);
         // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
-        request.putQueryParameter("SignName", "嘉易行");
+        request.putQueryParameter("SignName", "111");
         // 短信模板ID
         request.putQueryParameter("TemplateCode", templateCode);
         // 短信模板变量对应的实际值,JSON格式。
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
index 9a0d692..03cab5c 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
@@ -21,7 +21,7 @@
 @Component
 public class GDFalconUtil implements ApplicationRunner {
 
-    private String key = "ba2915f8d8c1428df72e964a5f94f167";
+    private String key = "ea7326a77175aba0e9435859b17bca36";
 
     @Autowired
     private RestTemplate restTemplate;
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
index 00ed36e..f97d570 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -4,8 +4,6 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.stylefeng.guns.core.util.ToolUtil;
-//import com.stylefeng.guns.modular.system.model.GDFence;
-//import com.stylefeng.guns.modular.system.service.IGDFenceService;
 import com.stylefeng.guns.modular.system.service.IGDInterfaceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -33,7 +31,7 @@
     @Autowired
     private IGDInterfaceService gdInterfaceService;
 
-    private String key = "ba2915f8d8c1428df72e964a5f94f167";
+    private String key = "ea7326a77175aba0e9435859b17bca36";
 
     private JSONArray jsonArray = new JSONArray();
 
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
index d6f8923..9775639 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -20,7 +20,7 @@
 @Component
 public class GDMapGeocodingUtil {
 
-    private String key = "ba2915f8d8c1428df72e964a5f94f167";
+    private String key = "ea7326a77175aba0e9435859b17bca36";
 
     @Autowired
     private RestTemplate restTemplate;
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
index dd93b44..9026527 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
@@ -2,8 +2,6 @@
 
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.ObjectMetadata;
-import com.aliyun.oss.model.PutObjectRequest;
-import com.aliyun.oss.model.PutObjectResult;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
@@ -14,18 +12,18 @@
 public class OssUploadUtil {
 	//OSS图片访问域名
 	public static String oss_domain = "https://jiayixing-bucket.oss-cn-beijing.aliyuncs.com/";
-	public static String accessKeyId = "LTAI5tE2Z7nA1rbtzZYMSPqR";
-	public static String accessKeySecret = "HOGUqx1t4UWh8KepXJf69dlKj4tTBs";
-	public static String bucketName="jiayixing-bucket";
+	public static String accessKeyId = "111";
+	public static String accessKeySecret = "111";
+	public static String bucketName = "111";
 	public static String endpoint = "oss-cn-beijing.aliyuncs.com";
 	/**
 	 * base64图片 contentType
 	 */
 	private static final String CONTENT_TYPE = "image/jpg";
 	
-	public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
+	public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
 	
-	public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException{
+	public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException {
 		//CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
 		String fileName = "";
 			if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
index efe89bc..1cb9de2 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
@@ -15,6 +15,7 @@
 import com.stylefeng.guns.modular.system.service.IOrderPositionService;
 import com.stylefeng.guns.modular.system.service.ITransactionDetailsService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -47,9 +48,9 @@
 
     @Autowired
     private GDMapElectricFenceUtil gdMapElectricFenceUtil;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Resource
     private ServerCarModelMapper serverCarModelMapper;
@@ -137,7 +138,7 @@
         OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
         Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
         Car car = carService.selectById(orderPrivateCar.getCarId());
-        String value = redisUtil.getValue("DRIVER" + orderPrivateCar.getDriverId());
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + orderPrivateCar.getDriverId());
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("Address", 450204);//发起地行政区划代码
         jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号
@@ -169,7 +170,7 @@
     public void operateLogin(Integer driverId){
         Driver driver = driverService.selectById(driverId);
         Car car = carService.selectById(driver.getCarId());
-        String value = redisUtil.getValue("DRIVER" + driverId);
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + driverId);
         if(ToolUtil.isNotEmpty(value)){
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号
@@ -200,7 +201,7 @@
     public void operateLogout(Integer driverId){
         Driver driver = driverService.selectById(driverId);
         Car car = carService.selectById(driver.getCarId());
-        String value = redisUtil.getValue("DRIVER" + driverId);
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + driverId);
         if(ToolUtil.isNotEmpty(value)){
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index 86ac869..b0cea43 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -12,6 +12,7 @@
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -23,7 +24,10 @@
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Timer;
+import java.util.TimerTask;
 
 /**
  * socket推单处理类
@@ -45,9 +49,9 @@
 
     @Autowired
     private IOrderCrossCityService orderCrossCityService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private IOrderLogisticsService orderLogisticsService;
@@ -159,9 +163,9 @@
         JSONObject data = new JSONObject();
         data.put("id", userId);
         data.put("type", 1);
-        String value = redisUtil.getValue(orderId + "_" + orderType);
+        String value = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType);
         if(ToolUtil.isEmpty(value)){
-            redisUtil.setStrValue(orderId + "_" + orderType, data.toJSONString());
+            redisTemplate.opsForValue().set(orderId + "_" + orderType, data.toJSONString());
             createTask(orderId, orderType);
         }
     }
@@ -276,7 +280,7 @@
             return;
         }
         //计算预计距离和剩余时间
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(driverId));
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driverId));
         if(null == value || "".equals(value)){
             return;
         }
@@ -342,7 +346,7 @@
         // 以表单的方式提交
         headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
         //将请求头部和参数合成一个请求
-        String value1 = redisUtil.getValue(orderId + "_" + orderType);
+        String value1 = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType);
         if(ToolUtil.isEmpty(value1)){
             this.removeTask(orderId, orderType);
             return;
@@ -477,7 +481,7 @@
         if (null != timer){
             timer.cancel();
             taskMap.remove(orderId + "_" + orderType);
-            redisUtil.remove(orderId + "_" + orderType);
+            redisTemplate.delete(orderId + "_" + orderType);
         }
     }
 }
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
deleted file mode 100644
index b186f83..0000000
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.stylefeng.guns.modular.system.util;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.stylefeng.guns.core.util.ToolUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Component;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.client.RestTemplate;
-
-
-/**
- * Redis工具类
- */
-@Component
-public class RedisUtil {
-
-    @Autowired
-    private RestTemplate internalRestTemplate;
-
-
-    /**
-     * 向redis中存储字符串没有过期时间
-     * @param key
-     * @param value
-     */
-    public void setStrValue(String key, String value){
-        if(ToolUtil.isNotEmpty(key)){
-            //发送验证码短信
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            params.add("value", value);
-            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue_", requestEntity, String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-        }
-
-    }
-
-
-    /**
-     * 以分钟为单位设置存储值(设置过期时间)
-     * @param key
-     * @param value
-     * @param time 秒
-     */
-    public void setStrValue(String key, String value, int time){
-        if(ToolUtil.isNotEmpty(key)){
-            //发送验证码短信
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            params.add("value", value);
-            params.add("time", String.valueOf(time));
-            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue", requestEntity, String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-        }
-    }
-
-
-    /**
-     * 从redis中获取值
-     * @param key
-     * @return
-     */
-    public String getValue(String key){
-        if(ToolUtil.isNotEmpty(key)){
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/getValue",requestEntity , String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-            return jsonObject.getString("data");
-        }
-        return null;
-    }
-
-
-
-    /**
-     * 删除key
-     * @param key
-     */
-    public String remove(String key){
-        if(ToolUtil.isNotEmpty(key)){
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/remove",requestEntity , String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-            return jsonObject.getString("data");
-        }
-        return null;
-    }
-}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
index 8cf6147..bdc9694 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 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.qianyuntong.model.*;
@@ -187,7 +188,7 @@
 		map.put(SystemParameterNames.getMessage_id(), messageId);
 		map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
 		map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
-		map.put("content", JSON.toJSONString(request));
+		map.put("content", new Gson().toJson(request));
 		log.info("【修改企业基本信息】请求地址:" + url);
 		log.info("【修改企业基本信息】请求参数:" + JSON.toJSONString(map));
 		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, map);
@@ -228,7 +229,7 @@
 		map.put(SystemParameterNames.getMessage_id(), messageId);
 		map.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
 		map.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
-		map.put("content", JSON.toJSONString(request));
+		map.put("content", new Gson().toJson(request));
 		
 		log.info("【创建企业】请求地址:" + url);
 		log.info("【创建企业】请求参数:" + JSON.toJSONString(map));
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
index 26a2353..6dfe5af 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
@@ -3,6 +3,7 @@
 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.qianyuntong.model.*;
@@ -99,7 +100,7 @@
 		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
 		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
 		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
-		contentMap.put("content", JSON.toJSONString(request));
+		contentMap.put("content", new Gson().toJson(request));
 		log.info("【根据手机号注册用户】请求地址:" + url);
 		log.info("【根据手机号注册用户】请求参数:" + JSON.toJSONString(contentMap));
 		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
@@ -145,7 +146,7 @@
 		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
 		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
 		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
-		contentMap.put("content", JSON.toJSONString(request));
+		contentMap.put("content", new Gson().toJson(request));
 		log.info("【易信用户修改密码】请求地址:" + url);
 		log.info("【易信用户修改密码】请求参数:" + JSON.toJSONString(contentMap));
 		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
@@ -191,7 +192,7 @@
 		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
 		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
 		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
-		contentMap.put("content", JSON.toJSONString(request));
+		contentMap.put("content", new Gson().toJson(request));
 		log.info("【易信重置密码】请求地址:" + url);
 		log.info("【易信重置密码】请求参数:" + JSON.toJSONString(contentMap));
 		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
index 59e683e..0115407 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
@@ -11,7 +11,7 @@
 	/**
 	 * 人员ID
 	 */
-	private Integer empId;
+	private Long empId;
 	/**
 	 * 手机号
 	 */
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
index 7297fe4..aab260b 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
@@ -11,7 +11,7 @@
 	/**
 	 * 人员ID
 	 */
-	private Integer empId;
+	private Long empId;
 	/**
 	 * 操作人手机号
 	 */
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index b06a873..520e941 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -8,19 +8,18 @@
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.dao.RegionMapper;
-import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.OrderAdditionalFee;
+import com.stylefeng.guns.modular.system.model.OrderPosition;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import io.swagger.annotations.ApiImplicitParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -41,9 +40,9 @@
 
     @Autowired
     private GDFalconUtil gdFalconUtil;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private IOrderPositionService orderPositionService;
@@ -331,16 +330,16 @@
         orderTaxi.setArriveTime(date);
         orderTaxi.setStartServiceTime(date);
         orderTaxi.setBoardingTime(date);
-
-        String value = redisUtil.getValue("DRIVER" + uid);
-        if(ToolUtil.isNotEmpty(value)){
+    
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + uid);
+        if (ToolUtil.isNotEmpty(value)) {
             String[] split = value.split(",");
             Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(split[0], split[1]);
             orderTaxi.setBoardingAddress(geocode1.get("address"));
             orderTaxi.setBoardingLon(Double.valueOf(split[0]));
             orderTaxi.setBoardingLat(Double.valueOf(split[1]));
         }
-
+    
         //调用高德创建轨迹
         String s = gdFalconUtil.selectTerminal(driver.getPhone());
         String track = gdFalconUtil.createTrack(s);
@@ -589,13 +588,13 @@
                 }
             }).start();
             //添加定时任务6分钟司机不确认收款自动完成支付(仅车载端),6分钟之内司机无法接单
-            String vehicle = redisUtil.getValue("VEHICLE");
+            String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
             JSONArray jsonArray = new JSONArray();
             if(ToolUtil.isNotEmpty(vehicle)){
                 jsonArray = JSON.parseArray(vehicle);
             }
             jsonArray.add(orderTaxi.getDriverId());
-            redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识
+            redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识
 
             TimerTask timerTask = new TimerTask() {
                 @Override
@@ -610,8 +609,8 @@
                         orderTaxi1.setPayMoney(orderTaxi1.getOrderMoney());
                         orderTaxi1.setState(8);
                         OrderTaxiServiceImpl.this.updateById(orderTaxi1);
-
-                        String vehicle = redisUtil.getValue("VEHICLE");
+    
+                        String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
                         if(ToolUtil.isNotEmpty(vehicle)){
                             JSONArray jsonArray = JSON.parseArray(vehicle);
                             for(int i = 0; i < jsonArray.size(); i++){
@@ -620,7 +619,7 @@
                                     break;
                                 }
                             }
-                            redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+                            redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());
                         }
 
                         new Thread(new Runnable() {
@@ -683,13 +682,13 @@
         }).start();
 
         //添加定时任务6分钟司机不确认收款自动完成支付(仅车载端),6分钟之内司机无法接单
-        String vehicle = redisUtil.getValue("VEHICLE");
+        String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
         JSONArray jsonArray = new JSONArray();
         if(ToolUtil.isNotEmpty(vehicle)){
             jsonArray = JSON.parseArray(vehicle);
         }
         jsonArray.add(orderTaxi.getDriverId());
-        redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识
+        redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());//添加司机不能接单标识
 
         TimerTask timerTask = new TimerTask() {
             @Override
@@ -704,8 +703,8 @@
                     orderTaxi1.setPayMoney(orderTaxi1.getOrderMoney());
                     orderTaxi1.setState(8);
                     OrderTaxiServiceImpl.this.updateById(orderTaxi1);
-
-                    String vehicle = redisUtil.getValue("VEHICLE");
+    
+                    String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
                     if(ToolUtil.isNotEmpty(vehicle)){
                         JSONArray jsonArray = JSON.parseArray(vehicle);
                         for(int i = 0; i < jsonArray.size(); i++){
@@ -714,7 +713,7 @@
                                 break;
                             }
                         }
-                        redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+                        redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());
                     }
 
                     new Thread(new Runnable() {
diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application.yml b/DriverQYTTravel/guns-admin/src/main/resources/application.yml
index dce7435..a0ec92f 100644
--- a/DriverQYTTravel/guns-admin/src/main/resources/application.yml
+++ b/DriverQYTTravel/guns-admin/src/main/resources/application.yml
@@ -4,7 +4,8 @@
 guns:
   swagger-open: true              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
-#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
   spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
   session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
   session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
@@ -60,15 +61,6 @@
 
 ---
 
-mysql_ssl:
-  useSSL: true
-  requireSSL: true
-  verifyServerCertificate: true
-  sslMode: verify_ca
-  trustCertificateKeyStoreUrl: file:D:/Program Files/mysql-5.7.38-winx64/data/truststore
-  trustCertificateKeyStorePassword: sinata
-
-
 spring:
   datasource:
     url: jdbc:mysql://127.0.0.1:3306/jyxtravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -80,11 +72,7 @@
     #测试环境
     host: 127.0.0.1
     port: 6379
-    timeout: 5000
-    database: 10
     password: 123456
-
-
 
 
 
@@ -92,39 +80,38 @@
 
 wx:
   grantType: authorization_code #填authorization_code
-  appid: wxfba0dbf7c79c8593 #应用唯一标识,在微信开放平台提交应用审核通过后获得
-  appSecret: 99ffb558cc6af57fd60703fb36e28829 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
-  appletsAppid: #小程序APPid
-  appletsAppSecret: #
-  mchId: 1523106371 #微信支付分配的商户号
-  key: s4TQO0NqPaRc0YfGptejNjlOpFlt4y2K #key为商户平台设置的密钥key:
+  appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wxcc3c9058e2b294db #小程序APPid
+  appletsAppSecret: 5610fc6126255ca5f7bd9fa4330338b6 #
+  mchId: 111 #微信支付分配的商户号
+  key: 111 #key为商户平台设置的密钥key:
 
 ---
 
 alipay:
-  appid: 2021003104609427  #应用程序唯一标识
-  appPrivateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7Kry43+tFiWnNhg9Us48Jzbjf/65hO/d0epihS4LnAO15L+V4UZfpSfIvIC5N6kEnkem+/abBnhAtSQE05s4gR3PtuP0H2SNX79+pgFliA1QvaSoA514f+APKiDUPTkmaTbp3MXCx0RGYEAEd6LOi8AUbFF2QWKDiMY76ac2l2FirVEeU8r9dIvPu1WDtTMoxAGFu6JfNsZ1ik8VyZUvULHyrXbe6Fx4KFX8kFX4PYEZ8RU3q6y9PCwMAjiPoBMs7t9s4GBrlfGoxMoC6+Lthh6rhLEq4OLoVVzrh/H+yWXg0SpFhnxN3RtIWueVWc9qsF7wtFoP4gXDWI/x6OmFRAgMBAAECggEBALhARjCpHm8B60oL4yO67+DyyECa7wuBgQUFeyOttlu6KgzW/csIZ8ecp/GEeJDzPti5Z6ZBBdwswjgSWkG9xMU6EgG/zjffpk93MHMoitVV+ZYCrPreyWYnPXQvyiwbIZHpWtrjrNEfw3YyqybKYazRI/WYgtMKrLZ/mwUhCvVq6CEwVMRDZXc2ietCtrZvbH4XuRtbXxxddzjiChhlRVwbD4Vei5eYS7F97PjHSrtjxjPyatw/mq6Gwh7tkjXuBliB2NwLcHkkm4FT4WxyLSWO8OydYPFYC5E6ENaZmZZMub3bXQ66xciCXwWMHZ7uRe5tmwtxWj8QqjLj8GtciAECgYEA8dVP6ViKSuwQ6WInDvAxoLrrcEX3D5N17L4sb0kfUtsd7S+g4MbHueXAmIqdlFXnCvjmfFUYg4kqfYU/PqaElntupuvTzwe4JUAtnmw7MB72iP6fzL1x3kBFgzn4ZaVzcRafRiiqE27+KPOkD+uNsgCMExIeTC6IgaKUbkjMjOECgYEAxiGdHN9ho44uBORW8+kdX1c92PFfpHsRcLdZkE6C+kjoS2QAMl1mM72yWHRn+rqK/Kk5BCipQ92+K/j78Zs1Zmunz+JJvQgTxQ2HFlW1tnb53K9F4xr6K1ysYdVmfeLH5wtNAJ2aLabD9Nzi/7RW4Oz83rN3bPFW4Dxgi5O0cnECgYEAgzejLJIGN7DvXDMNzmU2CGhj53+PFryEd/iYU6nxfRu3mUMGn/A73vpzDlHoPtx9iM6VAVGLA5QhognyzyO7PYur9pZvTx55JH02Q4emde3XB25hds40QsvM6+9AgKbNhMcplP/riK/o6H+KvbiqIbN6Tb6/Accd+nkk4NJPawECgYEArKbb9y39Mn4SQfcMgo2QJ+WpImPruTP5FaTgaizQW/OuYQvqU/kpt0rFn+kINufZd6Sq56HbJiWTs1PLkFV06iRD3pZNNWlVePB52A+mQjNZNmKR3v5CJAkkujgwkOBO3FnvpuqvULqypazaLoLi9ivtis8O8aM41jwm0VpL8zECgYAXoKO7mfyehcyOqHTgvUo8JOIZm4G1zxZxMImutQc13ZY0mZniGFuZJ5cXFWHpyscrt69zklpp1uhYJLsaoKfPUeZi1ZujlSA7uY4vEYUoEA+AQT541/Bn7JqOoUnLAMzsucEF0vUV/kYmePe68B3JbrxZKisgFkR5OB/8/Nh2og== #开发者应用私钥
+  appid: 111  #应用程序唯一标识
+  appPrivateKey: 111 #开发者应用私钥
   alipayPublicKey: 1 #应用公钥
-  alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuyq8uN/rRYlpzYYPVLOPCc243/+uYTv3dHqYoUuC5wDteS/leFGX6UnyLyAuTepBJ5Hpvv2mwZ4QLUkBNObOIEdz7bj9B9kjV+/fqYBZYgNUL2kqAOdeH/gDyog1D05Jmk26dzFwsdERmBABHeizovAFGxRdkFig4jGO+mnNpdhYq1RHlPK/XSLz7tVg7UzKMQBhbuiXzbGdYpPFcmVL1Cx8q123uhceChV/JBV+D2BGfEVN6usvTwsDAI4j6ATLO7fbOBga5XxqMTKAuvi7YYeq4SxKuDi6FVc64fx/sll4NEqRYZ8Td0bSFrnlVnParBe8LRaD+IFw1iP8ejphUQIDAQAB #支付宝公钥
+  alipay_public_key: 111 #支付宝公钥
 
 ---
 
 juhe: #聚合数据
-  appKey: 01ba594fee41fc7214ca77ef51c783c9 #
+  appKey: 111 #
 
 
 ---
 
 jiguang:
-  appKey-driver: c673a73acba4d06849913fd2 #极光推送应用唯一标识
-  masterSecret-driver: 8553897a9a886fb0cf467e97 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
-  appKey-dispatch: 7eecaa0ce660780f4b364684 #极光推送应用唯一标识
-  masterSecret-dispatch: fca87938cb39a72360ea3293 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
+  appKey-driver: 111 #极光推送应用唯一标识
+  masterSecret-driver: 111 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
+  appKey-dispatch: 111 #极光推送应用唯一标识
+  masterSecret-dispatch: 111 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
 
 
 ---
 
-#filePath: /usr/local/server/orderPostionFile/ #存储订单轨迹文件路径
 filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
 
 
@@ -132,53 +119,8 @@
 #支付回调地址
 #正式环境
 callbackPath: https://zhentonggongsi.com:443/driver
-#正式测试环境
-#callbackPath: http://123.56.89.63:8080/driver
-#本地测试环境
-#callbackPath: http://vwpmxwbhv59i.guyubao.com/driver
 
 ---
 #交通部推送数据功能开关
 pushMinistryOfTransport: false
 
----
-#云闪付配置
-#upyzt:
-#  root-mch-id: 1007907055778710140
-#  api-base:
-#  encrypt-public-key: 04a79c8a0f236b383ac5815d22eebbc29f947f7e10c5a145dc545107e88bf30a97eee234b734f63578dd3423e4ba05bea2741a3e5b9e7e85f6f8e91eb406fa61dd
-#  sign-private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCv6jKnPPv+RbL1Ez4TGF2rXD13Lb5hsqEHFG1lGu2j//HVDrSxjAKtWiOCSBcsi3ql1vLHcE9ptkX098sBjJQ71KlqwBB9bJKfUA3aP/R8aoP+2T247vr4vpGoVHrOGIx9fb2nCK6lX7jamuBlWls2SrXiSwgsNBBMfdzaSev5MMLW7Rwts4CCaDvTNE+fTMJeSi1Bj3gDyY/s+ZDz9usZ4thQq4XV/CMuq9KfT36U5kbBMPLZzlT7CnH82uewG3vZ8MYJ83VqveNsWcWUXvDlpeDKbk7IKqzzpcqM608VFf9YVlaH1PnPxGJVMg+fRI0zcxT/ayxQ6/lj8lBjz81PAgMBAAECggEARIL9v0xtCBa1H+Wio2U19esytRvHrd0YAd3ezSWzr8+aq9PSY+OXl1QnyDGzdNHNrpEMdMg05YLrtABdu/i4MqUcZkrvISoL4KgY/QszeNEzHyoUc9X/QKlXqStduK6u6KD0H/2tpxKkt97hzhdmtrpaJAv83tpYDrJmNU3c7Wt8EdVein8LoO+ZM5Y5Fj2z08RoWcuoba6VAtvL+/LXC+yFHhh9XaVOPFt/KKgf17GpbI2b++1oLsBH1Lvy5aVNLobuBhoG//YRWITzpvTESFnlZeZZEE1/my45ae21LEC4p9WZbkfyUhEsWgKdGNyysj2Bi9suirZw2I11emXCIQKBgQD/Z6vPYHJOclNUnpNmj8keJkfe1wOrhPiaNyaMn6D/SE3DuGd1q5ilQA3etkc42UvgVeO9VLwAYE/fauDwl/AcztRv5KugdKcrRYmaT76DqWvy5ScYh6uCxWDYF4TyT4XKDWpH3nBA7/tzEbiJM8PobgGQpQHhIidd4Xua45nE9QKBgQCwUx39zwEGF6wCp7xs4yeWZy/M2XmuyzaDrWQjqj4PdPOhd4M3TOeGa7Dk0u8SlTGtkXbtc1MztIVO/91nc7ge706Zp94lqTW34owqWKRTbW46H7v4Cm48RIRek/q7WliYD3FmhhMnbBYjv1905KTqbb20kAsR6ensMwE4SmD+swKBgQCt5pneXq4V6dQBZuO4TqjC5Y/EFCTEkYpv/qM51qrZhxKj9BhFz6vkwKNxBC2kcJgwTGr/jAViQDHCTtSQHPP5uX5+HXYaj7MPTI6vyiJPJXmB7jNbiWznYptZJ1J3ZlwTQmUeQD+wh3ZvWB6NFPkMdnKMWT3ZW9bwHkp6IQSfTQKBgGU99FSNjWrwIKYNpdVnwI1Nhla68HF64TxOTNdloujBIDqwIrmYAMBgCVv5+afT3ohoo77HnxhrKLgplfkWqruocJstlhJNzDhfblfKOeBlTws0uXs8kfss5Exh72+v+nqlM1nI1iqmlzfDZI370u2AQZLxukl45AXpa2Pk4TidAoGBALAmhrLFpTgQb7zTv471azY2Z9LRCGOcU0c73JbHvx6kkTudOQslf4ojqUJH/mR2/bIjzP0NuUpdL9r/1ZFlbhVRzYYbJdlKhByDUiHN0kBK0T4OfVNaudRAn9AkGUKzgR/ZcpkJ1XDu/Q5xTGsTs4TobNsPrVgNqVvcFxsMVa+f
-#  verify-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxRo7VeJ9goO9Udw/NGmg11ebTMZNLtqssbjID+smZjGuHrwBI/E7nYxe9aBSjswtAjdVFpspRXacOayTBTKwUix1pUpAMHZSC0vw0nLGOBesXYorPOlPQrOHHReIKFg+tVDsKNENNsHPxq1zOal8O8dXjN2ZDxMe2XjOkXP40iYa3YitX4pRN3aKRORnm/jyOjqBimdGwDQvXam97L5Ig6/h4AntZQaQMb1dCCNKe8TUJmCQqGFe4uxQlrrYRBqZApyeafNh75bu+kV7H1TRg3ryuHwPk3UHB3pcA09KcpLmlS0Z27Y8yiNtQFdlsMxbyF22Ji66OkNjTWko04JVXwIDAQAB
-
-upyzt:
-  root-mch-id: 1008242569972661286
-  api-base:
-  encrypt-public-key: 04b82af98a8cae3977176f7d667da9cf7b1dec0eb6f9bb8384e379ee45583205846ae808f1e4f50d4e3bd35d92e51a46455b58c75fe8d1092c0650a7696211f5c6
-  sign-private-key: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCmpIUQUcQ34ECQblphKdggKYDvOJRLcWOQPoREPIHO2/1yp9So5b3O65LqQVeKxShYtLHLnn9TeDRMP6aKWhVtkm0itRJ7LpZJExhCtcZN721PzC+vQWTlitiQKNFkkBycAxa5K2IRVHoiTIyfeuCSGy+iX9YRGyxr8frMCvKUCENVtqAxmqSheykqNCF3m/Nu3WarV/XxxKLTZgbY7WO5kO/MbvEok2VtklnKV92ntT8rS300ck3GOxHATKyxThZ+N+A13dgwfW8oS/U27uQhXnaSyiL23Aqnkjdue2cCYhwqj+JskOvB4FDI4osL1A3D87Vr453+7dR4srTSlX59AgMBAAECggEBAICWlSM5pSrkvY11ygIN8vsma5qs0ynADm8A/rlU42nHMbSmsx+9YBDqkQx4bV/ksTR6AnQ4EtJLADgSKaW6y6wogFR22xL4qPksZd0cPTBoX7Zivi0DTiMeV+wtwx5RYfI1I/Sw+FSdFj2fSifJ/r5fggtO3nWGvWlyaO/IRtVYp5R7nl2xa6dA0tmlj3M59zBH8JV84WKjmkYKelNeM5cn2dpC1jokhZTGlNSUx5FAvFHWXbFzSkKWTl0quEbAqaAoWaSQn2DlWutxh4pYnlq5tIhR9tbXdbfrv6QTC/dekctwxHCwLQEpG+Bo2ZG8CNmMaL9UthpLJzprsH2ZrGECgYEA28nmpSfWHKuPM8sp0/+wFMgGIAaBzKFFa9skAyQakUDy0V+8yKwDv1WF6/YFqjpObgB0pwRN84mBgYxumuT73VE8ewztRvZ6Zj/upU/t7XVnb3ZZfWxQXlUslktgg0dGNRZRBaNDTHcNaq71PiRGOpDF/mx3bEPVbPz0m/YLVnUCgYEAwhkPy5viQnQPFu0WmSJSnB48sUq8w9hkN/A9mTBDKZg+dWcO57X85bbK/fly/OmXPn9jtayunMul2fOFg69UkLJi0l89kECF7w+nqmeiGYILbqH7rxbnRpMyGoeClVDCgjRsTR/IVM42XuSDGdBduea1M+3InMqDclgLXzRG1ukCgYBtjBeKr+1XQudQYG3LvcBsyznKUpP1g1hPpt0vN5qKVX3xf69fseT4Q89JScmPDBq1V0LNUCbuQNYs1Or4BzPGHsxvZIULfqSJPEpdWRZ06bSRaMK38fmo2vkrPAyxwh+rLCFcFwDfJuOoDeYsf/YFEM2uvy9S5giFlxrwdVU3VQKBgQCQ6Scay3IcTQvrAO1rPO3SMtz7PKI70XXZMZq7oQWzqz+OZXgCVKPQWS2qei94VWmetnsZ6yeeVoindSGMVD1dnmEbURHkfdfAyL5UAfVK+AVS/sqqSP44ebLhjaRXmCjwDvWAiycE8cQ0CoU6o48mOPG2KGQrcyK6HrO2y4/L6QKBgQCetnmw1FkvRRGjSUSW/VkC3gFd8zUzVXkCpB7ikygukgXxzztU9Ef6MYljb+LJbWNVoZRJFL8qRixHvqJ5NPOiJEUetn2v5e+dsFF4ZtjnMAm7F27+RDJWYnldb0i7N9YhAPRV4jhVf9w2uVvD+pNvtrvgWyhVvfwWSX/bKRgYXQ==
-  verify-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyr6JlFZM197He+qcWImiHaVfdY9aIQTL7HaqIOvAqgCLa/oUoHlUNLb8ZZbQzFm/uDhgitPSP8tG0NPW0Vge0zlSXdYZFJFpZdBDmtkGR/fN0bJ9UMcijFEkCzyo2j2KTsJ4jMbaWW13zPQfGir6PIVX8YbQSB1prZzGWt+LzW4VTowwFl7iF/g9M/MqM67fnLmg+lIqzwaG1JsjDwDC0nUmywJfFFH/j/yKWsq+YYDh1dZI7cDWxMbrzgDzxOfBMSc4mk/e9pxaTtIjPbRsmOsAUiwdh4av/VIyI3KI9wdKiJQR6Sk3BcNWbk6cGgAbpnc5kZ87qMUjUZ6fY+VUAQIDAQAB
-
-#二维码支付
-qrcode:
-  appId: 8a81c1bf831e72e30187ad640adf49be
-  appKey: 6463dcd46c6d410eb40e68ee40e86e84
-  md5key: NxDhJztSzCDFzs3Z5Fzck7BAG2sRA4DY5aKScJDZrAzMkCh7
-  msgSrcId: 34U0
-  mid: 898150841210108
-  tid: 84UJWSE8
-  instMid: QRPAYDEFAULT
-#qrcode:
-#  appId: 8a81c1bf831e72e30187ad640adf49be
-#  appKey: 6463dcd46c6d410eb40e68ee40e86e84
-#  md5key: NxDhJztSzCDFzs3Z5Fzck7BAG2sRA4DY5aKScJDZrAzMkCh7
-#  msgSrcId: 1017
-#  mid: 898201612345678
-#  tid: 88880001
-#  instMid: QRPAYDEFAULT
-#qrcode:
-#  appId: 10037e6f6823b20801682b6a5e5a0006
-#  appKey: 1c4e3b16066244ae9b236a09e5b312e8
-#  md5key: impARTxrQcfwmRijpDNCw6hPxaWCddKEpYxjaKXDhCaTCXJ6
-#  msgSrcId: 1017
-#  mid: 898201612345678
-#  tid: 88880001
-#  instMid: QRPAYDEFAULT
\ No newline at end of file
diff --git a/DriverQYTTravel/guns-admin/src/main/resources/redis.properties b/DriverQYTTravel/guns-admin/src/main/resources/redis.properties
deleted file mode 100644
index bc6b0e9..0000000
--- a/DriverQYTTravel/guns-admin/src/main/resources/redis.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#redis���ÿ�ʼ
-# Redis���ݿ�������Ĭ��Ϊ0��
-spring.redis.database=0
-# Redis��������ַ
-spring.redis.host=127.0.0.1
-# Redis���������Ӷ˿�
-spring.redis.port=6379
-# Redis�������������루Ĭ��Ϊ�գ�
-spring.redis.password=123456
-#spring.redis.password=
-# ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ�
-spring.redis.jedis.pool.max-active=1024
-# ���ӳ���������ȴ�ʱ�䣨ʹ�ø�ֵ��ʾû�����ƣ�
-spring.redis.jedis.pool.max-wait=10000
-# ���ӳ��е�����������
-spring.redis.jedis.pool.max-idle=200
-# ���ӳ��е���С��������
-spring.redis.jedis.pool.min-idle=0
-# ���ӳ�ʱʱ�䣨���룩
-spring.redis.timeout=10000
-#redis���ý���
-spring.redis.block-when-exhausted=true
\ No newline at end of file
diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
index 7c96a5e..5a37845 100644
--- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
+++ b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,10 +1,7 @@
 package com.stylefeng.guns;
 
 import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
-import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
-import com.stylefeng.guns.modular.system.util.qianyuntong.model.EditStaffNodeRequest;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.GetStaffNodeRequest;
-import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -90,7 +87,7 @@
 
 
 		GetStaffNodeRequest request = new GetStaffNodeRequest();
-		request.setEmpId(11448036);
+		request.setEmpId(11448036L);
 		request.setMobile("15828353127");
 		request.setEntercode("981100006005878");
 		EmployeeUtil.getStaffNode(request);
diff --git a/ManagementQYTTravel/guns-admin/pom.xml b/ManagementQYTTravel/guns-admin/pom.xml
index 7c0dca1..e7722ce 100644
--- a/ManagementQYTTravel/guns-admin/pom.xml
+++ b/ManagementQYTTravel/guns-admin/pom.xml
@@ -63,12 +63,6 @@
             <optional>true</optional>
         </dependency>
         
-        <dependency>
-            <groupId>redis.clients</groupId>
-            <artifactId>jedis</artifactId>
-            <version>2.9.0</version>
-        </dependency>
-        
         <!-- 导入Excel数据依赖 start -->
         <dependency>
             <groupId>org.apache.poi</groupId>
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 f1d80eb..6945131 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
@@ -22,8 +22,7 @@
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
-import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
-import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -841,6 +840,22 @@
     public Object delete(@RequestParam Integer tDriverId) {
         TDriver driver = tDriverService.selectById(tDriverId);
         driver.setFlag("3");
+        ShiroUser user = ShiroKit.getUser();
+        User user1 = userService.selectById(user.getId());
+        TCompany tCompany = itCompanyService.selectById(user.getObjectId());
+        //中台先删除司机
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(driver.getEmpId());
+        request.setMobile(user1.getPhone());
+        request.setEntercode(tCompany.getEnterCode());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        if ("1".equals(staffNode.getIsValid())) {
+            DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest();
+            deleteStafNodeRequest.setEmpId(driver.getEmpId());
+            deleteStafNodeRequest.setEntercode(tCompany.getEnterCode());
+            deleteStafNodeRequest.setMobile(user1.getPhone());
+            EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest);
+        }
         tDriverService.updateById(driver);
         String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
         redisTemplate.delete(value);
diff --git a/UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar b/UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar
new file mode 100644
index 0000000..b5a22e1
--- /dev/null
+++ b/UserQYTTravel/guns-admin/lib/cas-client-oncon-3.0.5.jar
Binary files differ
diff --git a/UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar b/UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar
new file mode 100644
index 0000000..6db5395
--- /dev/null
+++ b/UserQYTTravel/guns-admin/lib/cas-client-oncon-core-1.2.2.jar
Binary files differ
diff --git a/UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar b/UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar
new file mode 100644
index 0000000..47d0553
--- /dev/null
+++ b/UserQYTTravel/guns-admin/lib/javabase64-1.3.1.jar
Binary files differ
diff --git a/UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar b/UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar
new file mode 100644
index 0000000..753661b
--- /dev/null
+++ b/UserQYTTravel/guns-admin/lib/openApiClient-1.0.0.jar
Binary files differ
diff --git a/UserQYTTravel/guns-admin/pom.xml b/UserQYTTravel/guns-admin/pom.xml
index 5561341..09a0097 100644
--- a/UserQYTTravel/guns-admin/pom.xml
+++ b/UserQYTTravel/guns-admin/pom.xml
@@ -116,17 +116,17 @@
             <groupId>org.ehcache</groupId>
             <artifactId>ehcache</artifactId>
         </dependency>
-
+    
         <!--需要分布式session的话需要放开注释-->
         <!--<dependency>-->
-            <!--<groupId>org.springframework.session</groupId>-->
-            <!--<artifactId>spring-session-data-redis</artifactId>-->
+        <!--<groupId>org.springframework.session</groupId>-->
+        <!--<artifactId>spring-session-data-redis</artifactId>-->
         <!--</dependency>-->
-        <!--<dependency>-->
-            <!--<groupId>org.springframework.boot</groupId>-->
-            <!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
-        <!--</dependency>-->
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+    
         <dependency>
             <groupId>com.github.penggle</groupId>
             <artifactId>kaptcha</artifactId>
@@ -151,12 +151,6 @@
         <dependency>
             <groupId>io.jsonwebtoken</groupId>
             <artifactId>jjwt</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>redis.clients</groupId>
-            <artifactId>jedis</artifactId>
-            <version>2.9.0</version>
         </dependency>
 
         <dependency>
@@ -212,6 +206,41 @@
             <version>2.4</version>
             <classifier>jdk13</classifier>
         </dependency>
+        <!--中台sdk-->
+        <dependency>
+            <groupId>com.zhongtai</groupId>
+            <artifactId>zhongtai-sdk</artifactId>
+            <version>1.0.0</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/lib/openApiClient-1.0.0.jar</systemPath>
+        </dependency>
+        <!--单点登录sdk-->
+        <dependency>
+            <groupId>com.cas</groupId>
+            <artifactId>cas-client-oncon</artifactId>
+            <version>3.0.5</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/lib/cas-client-oncon-3.0.5.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>com.cas</groupId>
+            <artifactId>cas-client-oncon-core</artifactId>
+            <version>1.2.2</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/lib/cas-client-oncon-core-1.2.2.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <version>3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>it.sauronsoftware</groupId>
+            <artifactId>base64</artifactId>
+            <version>1.3.1</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/lib/javabase64-1.3.1.jar</systemPath>
+        </dependency>
     </dependencies>
 
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
index f7fe5cf..1049ba9 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
@@ -8,8 +8,6 @@
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
 import org.springframework.context.annotation.Bean;
@@ -31,20 +29,15 @@
 @SpringBootApplication
 @EnableScheduling//开启定时任务
 @EnableTransactionManagement//启动事务功能
-public class GunsApplication /*extends SpringBootServletInitializer*/ {
-
+public class GunsApplication {
+    
     private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class);
-
+    
     public static void main(String[] args) {
-        try {
-
-            SpringApplication.run(GunsApplication.class, args);
-        }catch (Exception e){
-            e.printStackTrace();
-        }
+        SpringApplication.run(GunsApplication.class, args);
         logger.info("GunsApplication is success!");
     }
-
+    
     /**
      * 向Spring容器中定义RestTemplate对象
      * @return
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java
deleted file mode 100644
index d459612..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.stylefeng.guns.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-import redis.clients.jedis.JedisPool;
-import redis.clients.jedis.JedisPoolConfig;
-
-@Configuration
-@PropertySource("classpath:redis.properties")
-public class RedisConfig {
-    @Value("${spring.redis.host}")
-    private String host;
-
-    @Value("${spring.redis.port}")
-    private int port;
-
-    @Value("${spring.redis.timeout}")
-    private int timeout;
-
-    @Value("${spring.redis.jedis.pool.max-idle}")
-    private int maxIdle;
-
-    @Value("${spring.redis.jedis.pool.max-wait}")
-    private long maxWaitMillis;
-
-    @Value("${spring.redis.password}")
-    private String password;
-
-    @Value("${spring.redis.block-when-exhausted}")
-    private boolean  blockWhenExhausted;
-
-    @Bean
-    public JedisPool redisPoolFactory()  throws Exception{
-        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
-        jedisPoolConfig.setMaxIdle(maxIdle);
-        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
-        // 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
-        jedisPoolConfig.setBlockWhenExhausted(blockWhenExhausted);
-        // 是否启用pool的jmx管理功能, 默认true
-        jedisPoolConfig.setJmxEnabled(true);
-        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);
-        return jedisPool;
-    }
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
index fe6c02e..2276427 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
@@ -36,7 +36,7 @@
 
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
-                .title("嘉易行 Doc")
+                .title("黔云通 Doc")
                 .description("所有接口前需要加 /user 前缀,例如:/user/base/agreement/queryByType <br>" +
                         "所有以 /api/*** 路径的接口需要上传签名参数sign")
 //                .termsOfServiceUrl("http://git.oschina.net/naan1993/guns")
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
index 9520916..20e6b8e 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
@@ -56,10 +56,7 @@
      */
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**")
-        .excludePathPatterns("/api/placeOrder/notifyUrl").excludePathPatterns("/api/placeOrder/notifyUrlOne").excludePathPatterns("/base/**").excludePathPatterns("/api/electronicLedger/**");
-//        registry.addInterceptor(new RestApiInteceptor()).excludePathPatterns("/api/**")
-//        .addPathPatterns("/api/placeOrder/notifyUrl").excludePathPatterns("/api/placeOrder/notifyUrlOne");
+        registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**");
     }
 
     /**
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java
index fffd433..fc497c8 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AccountController.java
@@ -3,7 +3,6 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
 import com.stylefeng.guns.modular.account.model.TBank;
 import com.stylefeng.guns.modular.account.model.TBankNext;
 import com.stylefeng.guns.modular.account.model.TUserBankAccount;
@@ -11,25 +10,11 @@
 import com.stylefeng.guns.modular.account.server.ITBankService;
 import com.stylefeng.guns.modular.account.server.UserBankAccountService;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
-import com.stylefeng.guns.modular.cloudPayment.example.BalanceAcctExample;
-import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample;
-import com.stylefeng.guns.modular.cloudPayment.example.SettleAcctExample;
-import com.stylefeng.guns.modular.cloudPayment.example.WithdrawalExample;
-import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq;
-import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq;
-import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq;
-import com.stylefeng.guns.modular.system.model.User;
 import com.stylefeng.guns.modular.system.model.UserBankAccount;
 import com.stylefeng.guns.modular.system.model.UserInfo;
 import com.stylefeng.guns.modular.system.model.UserWithdrawal;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
-import com.stylefeng.guns.modular.system.service.IUserService;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.BalanceAcctListResp;
-import com.unionpay.upyzt.resp.CusApplicationResp;
-import com.unionpay.upyzt.resp.SettleAcctListResp;
-import com.unionpay.upyzt.resp.SettleAcctResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -38,7 +23,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -90,15 +78,15 @@
             }
             userBankAccount.setUserId(uid);
             UserBankAccount userBankAccount1 = new UserBankAccount();
-            BeanUtils.copyProperties(userBankAccount,userBankAccount1);
+            BeanUtils.copyProperties(userBankAccount, userBankAccount1);
             userBankAccount1.setCreateTime(new Date());
             userBankAccount1.setUserType(1);
             userBankAccount1.setOutRequestNo(ToolUtil.getRandomString(32));
             userBankAccount1.setBankAcctType("1");
             bankAccountService.insert(userBankAccount1);
-            UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
-            BeanUtils.copyProperties(userBankAccount1,userBankAccountReq);
-            userBankAccountReq.setCusId(userId.get(0).getCusId());
+//            UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
+//            BeanUtils.copyProperties(userBankAccount1,userBankAccountReq);
+//            userBankAccountReq.setCusId(userId.get(0).getCusId());
 //            SettleAcctResp settleAcctResp = SettleAcctExample.create(userBankAccountReq);
 //            userBankAccount1.setOutRequestNo(settleAcctResp.getOutRequestNo());
 //            userBankAccount1.setVerifyStatus(settleAcctResp.getVerifyStatus());
@@ -112,24 +100,8 @@
             return ResultUtil.runErr();
         }
     }
-
-
-    @ResponseBody
-    @RequestMapping(value = "/getCode", method = RequestMethod.POST)
-    @ApiOperation(value = "获取验证码", tags = {"用户端-获取验证码"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
-    })
-    public ResultUtil getCode(String phone){
-        try {
-            CusApplicationExample.smsCode(phone);
-            return ResultUtil.success();
-        }catch (UpyztException e){
-            e.printStackTrace();
-            return ResultUtil.error(e.getMessage());
-        }
-    }
-
+    
+    
     @Autowired
     private IUserInfoService userInfoService;
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java
index 6805c3f..a74f8ef 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/AppOrderController.java
@@ -4,25 +4,15 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.GetOpenBodySig;
 import com.stylefeng.guns.core.util.NotifyDemo;
-import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar;
 import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
 import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
 import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
-import com.stylefeng.guns.modular.account.util.Base64Util;
 import com.stylefeng.guns.modular.account.util.QrCodeConfiguration;
 import com.stylefeng.guns.modular.account.util.Util;
-import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
-import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
-import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
-import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
 import com.stylefeng.guns.modular.system.model.Company;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.UserInfo;
@@ -32,34 +22,26 @@
 import com.stylefeng.guns.modular.system.service.ITaxiCardService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
-import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.AllocationResp;
-import com.unionpay.upyzt.resp.DepositResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.shiro.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 
 /**
  * @program: openPlatform
@@ -294,7 +276,7 @@
                 TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>()
                         .eq("companyId", company.getId())); // TODO 替换为公司id
 
-                DepositReq depositReq = new DepositReq();
+//                DepositReq depositReq = new DepositReq();
 
 
                 if(integer==7){  // 充值回调
@@ -318,27 +300,27 @@
 //                    depositReq.setProductName("用户支付充值");
 //                    depositReq.setProductCount(1);
                 }
-                    depositReq.setOutOrderNo(ToolUtil.getRandomString(32));
-                    depositReq.setTotalAmount(totalAmount); // 总金额
-                    depositReq.setAmount(buyerPayAmount); // 支付金额
-                    depositReq.setDiscountAmount(couponAmount); // 优惠金额
-                    depositReq.setBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId());
-                    depositReq.setDepositType("1");
-                    depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode());
-                    depositReq.setPaymentTradeNo(targetOrderId); // 系统交易流水号
-                    depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()));
-                    depositReq.setOrderNo(targetOrderId);
-                    depositReq.setOrderAmount(Long.valueOf(totalAmount));
-                    depositReq.setProductName("用户支付充值");
-                    depositReq.setProductCount(1);
-
+//                    depositReq.setOutOrderNo(ToolUtil.getRandomString(32));
+//                    depositReq.setTotalAmount(totalAmount); // 总金额
+//                    depositReq.setAmount(buyerPayAmount); // 支付金额
+//                    depositReq.setDiscountAmount(couponAmount); // 优惠金额
+//                    depositReq.setBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId());
+//                    depositReq.setDepositType("1");
+//                    depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode());
+//                    depositReq.setPaymentTradeNo(targetOrderId); // 系统交易流水号
+//                    depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()));
+//                    depositReq.setOrderNo(targetOrderId);
+//                    depositReq.setOrderAmount(Long.valueOf(totalAmount));
+//                    depositReq.setProductName("用户支付充值");
+//                    depositReq.setProductCount(1);
+    
                 try {
 //                    DepositResp depositResp = DepositExample.create(depositReq);
 //                    System.err.println(depositResp);
 //                    log.info("支付充值成功:{}",depositResp);
                 } catch (Exception e) {
                     e.printStackTrace();
-                    log.error("支付充值失败:{}",e.getMessage());
+                    log.error("支付充值失败:{}", e.getMessage());
                     PrintWriter writer = response.getWriter();
                     response.setStatus(200);
                     writer.write("FAILED");
@@ -376,6 +358,42 @@
         }
     }
 
+    public String createAllocationReqUser(Integer companyId,Integer userId,int type,double money) {
+        List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = enterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId));
+        UserInfo tUser = userInfoService.selectById(userId);
+        List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone()));
+        if (userWithdrawals.size() == 0) {
+            return "error";
+        }
+
+//        AllocationReq allocationReq= new AllocationReq();
+//        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
+//        if(type==1){
+//            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
+//            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
+//
+//            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
+//        }else {
+//            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
+//            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
+//            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
+//        }
+//        money = money * 100;
+//        allocationReq.setAmount((int) money);
+//        allocationReq.setProductName("分账");
+//        allocationReq.setProductCount(1);
+//        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
+//        allocationReq.setOrderAmount(1l);
+//        try {
+//            AllocationResp allocationResp = AllocationExample.create(allocationReq);
+//            System.out.println(allocationResp);
+//            return "ok";
+//        } catch (UpyztException e) {
+//            e.printStackTrace();
+//            return e.getMessage();
+//        }
+        return "ok";
+    }
 
     public  ResultUtil moneyPay(Integer id,Integer userId,Double money){
 
@@ -386,115 +404,79 @@
         TEnterpriseWithdrawal enterpriseWithdrawal = enterpriseWithdrawalService.selectOne(new EntityWrapper<TEnterpriseWithdrawal>()
                 .eq("companyId", company.getId()));
         UserInfo userInfo = userInfoService.selectById(userId);
-        System.out.println("用户信息:"+userInfo);
+        System.out.println("用户信息:" + userInfo);
         UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
                 .eq("phone", userInfo.getPhone())
                 .last("LIMIT 1"));
-        System.out.println("用户进件信息:"+driverWith);
-        if(driverWith==null){
+        System.out.println("用户进件信息:" + driverWith);
+        if (driverWith == null) {
             return ResultUtil.error("领取失败,请先设置进件信息");
         }
-        AllocationReq allocationReq = new AllocationReq();
-        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setProductCount(1);
-        allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId());
-//        allocationReq.setPayBalanceAcctId("2008322294132024868");
-        allocationReq.setOrderAmount((long) (money*100));
-        allocationReq.setAmount((int) (money*100));
-        allocationReq.setProductName("余额支付");
-        allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId());
-//        allocationReq.setRecvBalanceAcctId("2007982285722883157");
-        allocationReq.setOrderNo(id.toString());
-        allocationReq.setPassword(Base64Util.decode(driverWith.getTransactionAuthorizationCode()));
+//        AllocationReq allocationReq = new AllocationReq();
+//        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
+//        allocationReq.setProductCount(1);
+//        allocationReq.setPayBalanceAcctId(driverWith.getBalanceAcctId());
+////        allocationReq.setPayBalanceAcctId("2008322294132024868");
+//        allocationReq.setOrderAmount((long) (money * 100));
+//        allocationReq.setAmount((int) (money * 100));
+//        allocationReq.setProductName("余额支付");
+//        allocationReq.setRecvBalanceAcctId(enterpriseWithdrawal.getBalanceAcctId());
+////        allocationReq.setRecvBalanceAcctId("2007982285722883157");
+//        allocationReq.setOrderNo(id.toString());
+//        allocationReq.setPassword(Base64Util.decode(driverWith.getTransactionAuthorizationCode()));
 //        allocationReq.setPassword("MTIzNDU2");
-        System.out.println("余额支付请求信息:"+allocationReq);
-        try {
-
-            AllocationResp allocationResp = AllocationExample.create(allocationReq);
-            System.out.println("余额支付操作:"+allocationResp);
-            return ResultUtil.success();
-        } catch (UpyztException e) {
-            e.printStackTrace();
-            System.out.println("余额支付操作error:"+e);
-            System.out.println(e.getIssue());
-            return ResultUtil.error(e.getMessage());
-        }
-    }
-
-
-    public String createAllocationReqUser(Integer companyId,Integer userId,int type,double money){
-        List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = enterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId));
-        UserInfo tUser = userInfoService.selectById(userId);
-        List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone()));
-        if(userWithdrawals.size()==0){
-            return "error";
-        }
-
-        AllocationReq allocationReq= new AllocationReq();
-        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        if(type==1){
-            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-
-            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }else {
-            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }
-        money=money*100;
-        allocationReq.setAmount((int)money);
-        allocationReq.setProductName("分账");
-        allocationReq.setProductCount(1);
-        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setOrderAmount(1l);
-        try {
-            AllocationResp allocationResp = AllocationExample.create(allocationReq);
-            System.out.println(allocationResp);
-            return "ok";
-        } catch (UpyztException e) {
-            e.printStackTrace();
-            return e.getMessage();
-        }
-
+//        System.out.println("余额支付请求信息:" + allocationReq);
+//        try {
+//
+//            AllocationResp allocationResp = AllocationExample.create(allocationReq);
+//            System.out.println("余额支付操作:"+allocationResp);
+//            return ResultUtil.success();
+//        } catch (UpyztException e) {
+//            e.printStackTrace();
+//            System.out.println("余额支付操作error:"+e);
+//            System.out.println(e.getIssue());
+//            return ResultUtil.error(e.getMessage());
+//        }
+        return ResultUtil.success();
     }
 
     @Autowired
     private IDriverService driverService;
-    public String createAllocationReqDriver(Integer companyId,Integer userId,int type,double money){
+
+    public String createAllocationReqDriver(Integer companyId,Integer userId,int type,double money) {
         List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = enterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId));
         Driver tUser = driverService.selectById(userId);
         List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone()));
-        if(userWithdrawals.size()==0){
+        if (userWithdrawals.size() == 0) {
             return "error";
         }
 
-        AllocationReq allocationReq= new AllocationReq();
-        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        if(type==1){
-            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-
-            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }else {
-            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
-            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
-        }
-        money=money*100;
-        allocationReq.setAmount((int)money);
-        allocationReq.setProductName("分账");
-        allocationReq.setProductCount(1);
-        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setOrderAmount(1l);
-        try {
-            AllocationResp allocationResp = AllocationExample.create(allocationReq);
-            System.out.println(allocationResp);
-            return "ok";
-        } catch (UpyztException e) {
-            e.printStackTrace();
-            return e.getMessage();
-        }
-
+//        AllocationReq allocationReq= new AllocationReq();
+//        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
+//        if(type==1){
+//            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
+//            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
+//
+//            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
+//        }else {
+//            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
+//            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
+//            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
+//        }
+//        money = money * 100;
+//        allocationReq.setAmount((int) money);
+//        allocationReq.setProductName("分账");
+//        allocationReq.setProductCount(1);
+//        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
+//        allocationReq.setOrderAmount(1l);
+//        try {
+//            AllocationResp allocationResp = AllocationExample.create(allocationReq);
+//            System.out.println(allocationResp);
+//            return "ok";
+//        } catch (UpyztException e) {
+//            e.printStackTrace();
+//            return e.getMessage();
+//        }
+        return "ok";
     }
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java
index 0af609b..f620637 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/controller/ElectronicLedgerController.java
@@ -1,51 +1,33 @@
 package com.stylefeng.guns.modular.account.controller;
 
-import cn.hutool.core.date.DateUnit;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.crypto.SecureUtil;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.shiro.ShiroKit;
-import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.account.model.ElectronicLedger;
-import com.stylefeng.guns.modular.account.model.TUserBankAccount;
 import com.stylefeng.guns.modular.account.req.UserWithdrawalReq;
 import com.stylefeng.guns.modular.account.server.ElectronicLedgerService;
 import com.stylefeng.guns.modular.account.server.UserBankAccountService;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
-import com.stylefeng.guns.modular.account.util.Base64Util;
-import com.stylefeng.guns.modular.account.util.OssUploadUtil;
-import com.stylefeng.guns.modular.cloudPayment.example.*;
-import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq;
-import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq;
-import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.model.UserWithdrawal;
 import com.stylefeng.guns.modular.system.service.IBankCardService;
-import com.stylefeng.guns.modular.system.service.ICompanyService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
 import com.stylefeng.guns.modular.system.service.IUserService;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.param.FailureMsgParam;
-import com.unionpay.upyzt.resp.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.util.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -73,131 +55,131 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    @Transactional(rollbackFor = UpyztException.class,propagation = Propagation.REQUIRES_NEW)
     public ResultUtil addElectronicLedger( UserWithdrawalReq userWithdrawalReq,HttpServletRequest request) throws UnsupportedEncodingException {
-        System.out.println("进件信息:"+userWithdrawalReq);
-        // TODO 用户有无提现密码,无则设置开户密码
-        if(StringUtils.hasLength(userWithdrawalReq.getBankName())){
-            userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","("));
-            userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")"));
-
-        }
-
-
-
-//        userWithdrawalReq.setOpenAccountName(new String(userWithdrawalReq.getOpenAccountName().getBytes("ISO-8859-1"),"UTF-8"));
-//        userWithdrawalReq.setBankName(new String(userWithdrawalReq.getBankName().getBytes("ISO-8859-1"),"UTF-8"));
-//        userWithdrawalReq.setCertificateName(new String(userWithdrawalReq.getCertificateName().getBytes("ISO-8859-1"),"UTF-8"));
-//        userWithdrawalReq.setLicenceIssuingAuthority(new String(userWithdrawalReq.getLicenceIssuingAuthority().getBytes("ISO-8859-1"),"UTF-8"));
-        System.out.println("编码后:"+userWithdrawalReq);
-
-
-
-        userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32));
-        UserWithdrawal userWithdrawal = new UserWithdrawal();
-        BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal);
-        try {
-            String password=userWithdrawal.getTransactionAuthorizationCode();
-            Integer id = userInfoService.getUserIdFormRedis(request);
-            if(null == id){
-                return ResultUtil.tokenErr();
-            }
-            System.out.println("验证码:"+userWithdrawalReq.getCode());
-            userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+"));
-            userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+"));
-            // 用户进件
-            CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
-            System.out.println("进件状态:"+cusApplicationResp);
-            if("succeeded".equals(cusApplicationResp.getApplicationStatus())) {
-                userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password));
-                userWithdrawal.setUserType(1);
-                userWithdrawal.setUserId(id);
-                userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture());
-                userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture());
-                userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1());
-                userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2());
-
-                userWithdrawalService.insert(userWithdrawal);
-                UserWithdrawal userWithdrawal1 = new UserWithdrawal();
-                userWithdrawal1.setId(userWithdrawal.getId());
-                BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1);
-                userWithdrawalService.updateById(userWithdrawal1);
-                // 开通电子账簿
-                BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
-                balanceAcctReq.setCusId(userWithdrawal1.getCusId());
-                balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32));
-                balanceAcctReq.setPassword(password);
-                ElectronicLedger electronicLedger = new ElectronicLedger();
-                electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId());
-                electronicLedger.setCreateTime(new Date());
-                electronicLedger.setCusId(cusApplicationResp.getCusId());
-                electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo());
-                electronicLedger.setUserId(userWithdrawal.getUserId());
-                electronicLedger.setPassword(SecureUtil.md5(password));
-                electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo());
-                electronicLedger.setUserType(1);
-                electronicLedgerService.insert(electronicLedger);
-                // 绑卡 存卡
-                UserBankAccount userBankAccount = new UserBankAccount();
-                userBankAccount.setBankAcctType("1");
-                userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
-                userBankAccount.setUserType(1);
-                userBankAccount.setCreateTime(new Date());
-                userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
-                // TODO 页面没有输入地方 需要查询
-                userBankAccount.setBankCode(userWithdrawal.getBankCode());
-                // TODO 行联号
-                userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
-                userBankAccount.setPhone(userWithdrawal.getPhone());
-
-                userBankAccount.setUserId(userWithdrawal.getUserId());
-                userBankAccount.setBankName(userWithdrawal.getBankName());
-                userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName());
-                int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
-                        .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1));
-                if(count<1){
-                    userBankAccountService.insert(userBankAccount);
-                }
-                BankCard bankCard = new BankCard();
-                bankCard.setDriverId(userWithdrawal.getUserId());
-                bankCard.setBankAcctType("1");
-                bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
-                bankCard.setInsertTime(new Date());
-                bankCard.setCode(userWithdrawal.getBankCardCode());
-                bankCard.setBankCode(userWithdrawal.getBankCode());
-                bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
-                bankCard.setBank(userWithdrawal.getBankName());
-                bankCard.setPhone(userWithdrawal.getPhone());
-                bankCard.setName(userWithdrawal.getOpenAccountName());
-                bankCard.setIfDefault(true);
-                bankCardService.insert(bankCard);
-
-
-                UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
-                BeanUtils.copyProperties(userBankAccount, userBankAccountReq);
-                System.err.println(userWithdrawalReq.getCode());
-                userBankAccountReq.setCusId(cusApplicationResp.getCusId());
-                userBankAccountReq.setCode(userWithdrawalReq.getCode());
-                return ResultUtil.success();
-            }
-            if("failed".equals(cusApplicationResp.getApplicationStatus())){
-                List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs();
-                if(failureMsgs != null && failureMsgs.size()>0){
-                    return ResultUtil.error(failureMsgs.get(0).getReason());
-                }
-            }
-            return ResultUtil.success();
-        }catch (UpyztException e){
-            if(e.getCode().equals("100101")){
-                return ResultUtil.error(e.getIssue());
-            }
-            e.printStackTrace();
-            String message = e.getMessage();
-            return ResultUtil.error(message);
-        }catch (Exception e){
-            String message = e.getMessage();
-            return ResultUtil.error(message);
-        }
+//        System.out.println("进件信息:"+userWithdrawalReq);
+//        // TODO 用户有无提现密码,无则设置开户密码
+//        if(StringUtils.hasLength(userWithdrawalReq.getBankName())){
+//            userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","("));
+//            userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")"));
+//
+//        }
+//
+//
+//
+////        userWithdrawalReq.setOpenAccountName(new String(userWithdrawalReq.getOpenAccountName().getBytes("ISO-8859-1"),"UTF-8"));
+////        userWithdrawalReq.setBankName(new String(userWithdrawalReq.getBankName().getBytes("ISO-8859-1"),"UTF-8"));
+////        userWithdrawalReq.setCertificateName(new String(userWithdrawalReq.getCertificateName().getBytes("ISO-8859-1"),"UTF-8"));
+////        userWithdrawalReq.setLicenceIssuingAuthority(new String(userWithdrawalReq.getLicenceIssuingAuthority().getBytes("ISO-8859-1"),"UTF-8"));
+//        System.out.println("编码后:"+userWithdrawalReq);
+//
+//
+//
+//        userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32));
+//        UserWithdrawal userWithdrawal = new UserWithdrawal();
+//        BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal);
+//        try {
+//            String password=userWithdrawal.getTransactionAuthorizationCode();
+//            Integer id = userInfoService.getUserIdFormRedis(request);
+//            if(null == id){
+//                return ResultUtil.tokenErr();
+//            }
+//            System.out.println("验证码:"+userWithdrawalReq.getCode());
+//            userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+"));
+//            userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+"));
+//            // 用户进件
+//            CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
+//            System.out.println("进件状态:"+cusApplicationResp);
+//            if("succeeded".equals(cusApplicationResp.getApplicationStatus())) {
+//                userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password));
+//                userWithdrawal.setUserType(1);
+//                userWithdrawal.setUserId(id);
+//                userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture());
+//                userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture());
+//                userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1());
+//                userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2());
+//
+//                userWithdrawalService.insert(userWithdrawal);
+//                UserWithdrawal userWithdrawal1 = new UserWithdrawal();
+//                userWithdrawal1.setId(userWithdrawal.getId());
+//                BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1);
+//                userWithdrawalService.updateById(userWithdrawal1);
+//                // 开通电子账簿
+//                BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
+//                balanceAcctReq.setCusId(userWithdrawal1.getCusId());
+//                balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32));
+//                balanceAcctReq.setPassword(password);
+//                ElectronicLedger electronicLedger = new ElectronicLedger();
+//                electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId());
+//                electronicLedger.setCreateTime(new Date());
+//                electronicLedger.setCusId(cusApplicationResp.getCusId());
+//                electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo());
+//                electronicLedger.setUserId(userWithdrawal.getUserId());
+//                electronicLedger.setPassword(SecureUtil.md5(password));
+//                electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo());
+//                electronicLedger.setUserType(1);
+//                electronicLedgerService.insert(electronicLedger);
+//                // 绑卡 存卡
+//                UserBankAccount userBankAccount = new UserBankAccount();
+//                userBankAccount.setBankAcctType("1");
+//                userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
+//                userBankAccount.setUserType(1);
+//                userBankAccount.setCreateTime(new Date());
+//                userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
+//                // TODO 页面没有输入地方 需要查询
+//                userBankAccount.setBankCode(userWithdrawal.getBankCode());
+//                // TODO 行联号
+//                userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
+//                userBankAccount.setPhone(userWithdrawal.getPhone());
+//
+//                userBankAccount.setUserId(userWithdrawal.getUserId());
+//                userBankAccount.setBankName(userWithdrawal.getBankName());
+//                userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName());
+//                int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
+//                        .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1));
+//                if(count<1){
+//                    userBankAccountService.insert(userBankAccount);
+//                }
+//                BankCard bankCard = new BankCard();
+//                bankCard.setDriverId(userWithdrawal.getUserId());
+//                bankCard.setBankAcctType("1");
+//                bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
+//                bankCard.setInsertTime(new Date());
+//                bankCard.setCode(userWithdrawal.getBankCardCode());
+//                bankCard.setBankCode(userWithdrawal.getBankCode());
+//                bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
+//                bankCard.setBank(userWithdrawal.getBankName());
+//                bankCard.setPhone(userWithdrawal.getPhone());
+//                bankCard.setName(userWithdrawal.getOpenAccountName());
+//                bankCard.setIfDefault(true);
+//                bankCardService.insert(bankCard);
+//
+//
+//                UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
+//                BeanUtils.copyProperties(userBankAccount, userBankAccountReq);
+//                System.err.println(userWithdrawalReq.getCode());
+//                userBankAccountReq.setCusId(cusApplicationResp.getCusId());
+//                userBankAccountReq.setCode(userWithdrawalReq.getCode());
+//                return ResultUtil.success();
+//            }
+//            if("failed".equals(cusApplicationResp.getApplicationStatus())){
+//                List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs();
+//                if(failureMsgs != null && failureMsgs.size()>0){
+//                    return ResultUtil.error(failureMsgs.get(0).getReason());
+//                }
+//            }
+//            return ResultUtil.success();
+//        }catch (UpyztException e){
+//            if(e.getCode().equals("100101")){
+//                return ResultUtil.error(e.getIssue());
+//            }
+//            e.printStackTrace();
+//            String message = e.getMessage();
+//            return ResultUtil.error(message);
+//        }catch (Exception e){
+//            String message = e.getMessage();
+//            return ResultUtil.error(message);
+//        }
+        return ResultUtil.success();
     }
 
 
@@ -221,99 +203,100 @@
                                                  String copy2,
                                                  String code,
                                                  String bankCode,
-                                                 HttpServletRequest request){
-        try {
-            Integer driverId = userInfoService.getUserIdFormRedis(request);
-            if(null == driverId){
-                return ResultUtil.tokenErr();
-            }
-            UserInfo userInfo = userInfoService.selectById(driverId);
-            UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
-                    .eq("phone", userInfo.getPhone())
-                    .last("LIMIT 1"));
-            if(userWithdrawal1==null|| userWithdrawal1.getCusId()==null){
-                return ResultUtil.runErr();
-            }
-            UserWithdrawal userWithdrawal = new UserWithdrawal();
-            userWithdrawal.setIdCardFrontPicture(copy1);
-            userWithdrawal.setIdCardReversePicture(copy2);
-            userWithdrawal.setCertificateCode(certificateCode);
-            userWithdrawal.setCertificateName(certificateName);
-            userWithdrawal.setCertificateExpireTime(certificateExpireTime);
-            userWithdrawal.setOpenAccountName(openAccountName);
-            userWithdrawal.setBankCardCode(bankCardCode);
-            userWithdrawal.setPhone(phone);
-            userWithdrawal.setCusId(userWithdrawal1.getCusId());
-            userWithdrawal.setBankBranchCode(bankBranchCode);
-            userWithdrawal.setBankName(bankName);
-            userWithdrawal.setCode(code);
-            userWithdrawal.setBankCode(bankCode);
-            CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
-            log.info("修改个人用户进件信息返回:{}",renew);
-            if("succeeded".equals(renew.getApplicationStatus())){
-                userWithdrawal1.setIdCardFrontPicture(copy1);
-                userWithdrawal1.setIdCardReversePicture(copy2);
-                userWithdrawal1.setCertificateCode(certificateCode);
-                userWithdrawal1.setCertificateName(certificateName);
-                userWithdrawal1.setCertificateExpireTime(certificateExpireTime);
-                userWithdrawal1.setOpenAccountName(openAccountName);
-                userWithdrawal1.setBankCardCode(bankCardCode);
-                userWithdrawal1.setPhone(phone);
-                userWithdrawal1.setBankName(bankName);
-                userWithdrawal1.setImgUrl(idCardFrontPicture);
-                userWithdrawal1.setImgUrlOne(idCardReversePicture);
-                userWithdrawalService.updateById(userWithdrawal1);
-
-                int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
-                        .eq("bankCardCode", bankCardCode).eq("userId",driverId).eq("userType",1).eq("status",1));
-                System.out.println(count);
-                if(count<1){
-                    UserBankAccount userBankAccount = new UserBankAccount();
-                    userBankAccount.setBankAcctType("1");
-                    userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
-                    userBankAccount.setUserType(1);
-                    userBankAccount.setCreateTime(new Date());
-                    userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
-                    userBankAccount.setBankCode(userWithdrawal.getBankCode());
-                    userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
-                    userBankAccount.setPhone(userWithdrawal.getPhone());
-
-                    userBankAccount.setUserId(driverId);
-                    userBankAccount.setBankName(userWithdrawal.getBankName());
-                    userBankAccountService.insert(userBankAccount);
-
-
-                    BankCard bankCard = new BankCard();
-                    bankCard.setDriverId(userWithdrawal.getUserId());
-                    bankCard.setBankAcctType("1");
-                    bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
-                    bankCard.setInsertTime(new Date());
-                    bankCard.setCode(userWithdrawal.getBankCardCode());
-                    bankCard.setBankCode(userWithdrawal.getBankCode());
-                    bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
-                    bankCard.setBank(userWithdrawal.getBankName());
-                    bankCard.setPhone(userWithdrawal.getPhone());
-                    bankCard.setName(userWithdrawal.getOpenAccountName());
-                    bankCard.setIfDefault(true);
-                    bankCardService.insert(bankCard);
-                }
-                return ResultUtil.success();
-            }
-            if("failed".equals(renew.getApplicationStatus())){
-                List<FailureMsgParam> failureMsgs = renew.getFailureMsgs();
-                if(failureMsgs != null && failureMsgs.size()>0){
-                    return ResultUtil.error(failureMsgs.get(0).getReason());
-                }
-            }
-            return ResultUtil.success();
-        }catch (UpyztException e) {
-            e.printStackTrace();
-            String message = e.getMessage();
-            return ResultUtil.error(message);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
+                                                 HttpServletRequest request) {
+//        try {
+//            Integer driverId = userInfoService.getUserIdFormRedis(request);
+//            if(null == driverId){
+//                return ResultUtil.tokenErr();
+//            }
+//            UserInfo userInfo = userInfoService.selectById(driverId);
+//            UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
+//                    .eq("phone", userInfo.getPhone())
+//                    .last("LIMIT 1"));
+//            if(userWithdrawal1==null|| userWithdrawal1.getCusId()==null){
+//                return ResultUtil.runErr();
+//            }
+//            UserWithdrawal userWithdrawal = new UserWithdrawal();
+//            userWithdrawal.setIdCardFrontPicture(copy1);
+//            userWithdrawal.setIdCardReversePicture(copy2);
+//            userWithdrawal.setCertificateCode(certificateCode);
+//            userWithdrawal.setCertificateName(certificateName);
+//            userWithdrawal.setCertificateExpireTime(certificateExpireTime);
+//            userWithdrawal.setOpenAccountName(openAccountName);
+//            userWithdrawal.setBankCardCode(bankCardCode);
+//            userWithdrawal.setPhone(phone);
+//            userWithdrawal.setCusId(userWithdrawal1.getCusId());
+//            userWithdrawal.setBankBranchCode(bankBranchCode);
+//            userWithdrawal.setBankName(bankName);
+//            userWithdrawal.setCode(code);
+//            userWithdrawal.setBankCode(bankCode);
+//            CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
+//            log.info("修改个人用户进件信息返回:{}",renew);
+//            if("succeeded".equals(renew.getApplicationStatus())){
+//                userWithdrawal1.setIdCardFrontPicture(copy1);
+//                userWithdrawal1.setIdCardReversePicture(copy2);
+//                userWithdrawal1.setCertificateCode(certificateCode);
+//                userWithdrawal1.setCertificateName(certificateName);
+//                userWithdrawal1.setCertificateExpireTime(certificateExpireTime);
+//                userWithdrawal1.setOpenAccountName(openAccountName);
+//                userWithdrawal1.setBankCardCode(bankCardCode);
+//                userWithdrawal1.setPhone(phone);
+//                userWithdrawal1.setBankName(bankName);
+//                userWithdrawal1.setImgUrl(idCardFrontPicture);
+//                userWithdrawal1.setImgUrlOne(idCardReversePicture);
+//                userWithdrawalService.updateById(userWithdrawal1);
+//
+//                int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
+//                        .eq("bankCardCode", bankCardCode).eq("userId",driverId).eq("userType",1).eq("status",1));
+//                System.out.println(count);
+//                if(count<1){
+//                    UserBankAccount userBankAccount = new UserBankAccount();
+//                    userBankAccount.setBankAcctType("1");
+//                    userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
+//                    userBankAccount.setUserType(1);
+//                    userBankAccount.setCreateTime(new Date());
+//                    userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
+//                    userBankAccount.setBankCode(userWithdrawal.getBankCode());
+//                    userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
+//                    userBankAccount.setPhone(userWithdrawal.getPhone());
+//
+//                    userBankAccount.setUserId(driverId);
+//                    userBankAccount.setBankName(userWithdrawal.getBankName());
+//                    userBankAccountService.insert(userBankAccount);
+//
+//
+//                    BankCard bankCard = new BankCard();
+//                    bankCard.setDriverId(userWithdrawal.getUserId());
+//                    bankCard.setBankAcctType("1");
+//                    bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
+//                    bankCard.setInsertTime(new Date());
+//                    bankCard.setCode(userWithdrawal.getBankCardCode());
+//                    bankCard.setBankCode(userWithdrawal.getBankCode());
+//                    bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
+//                    bankCard.setBank(userWithdrawal.getBankName());
+//                    bankCard.setPhone(userWithdrawal.getPhone());
+//                    bankCard.setName(userWithdrawal.getOpenAccountName());
+//                    bankCard.setIfDefault(true);
+//                    bankCardService.insert(bankCard);
+//                }
+//                return ResultUtil.success();
+//            }
+//            if("failed".equals(renew.getApplicationStatus())){
+//                List<FailureMsgParam> failureMsgs = renew.getFailureMsgs();
+//                if(failureMsgs != null && failureMsgs.size()>0){
+//                    return ResultUtil.error(failureMsgs.get(0).getReason());
+//                }
+//            }
+//            return ResultUtil.success();
+//        }catch (UpyztException e) {
+//            e.printStackTrace();
+//            String message = e.getMessage();
+//            return ResultUtil.error(message);
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            return ResultUtil.runErr();
+//        }
+        return ResultUtil.success();
     }
 
 
@@ -392,33 +375,33 @@
     @ApiImplicitParams({
     })
     public ResultUtil withdrawDepositGetMoney(HttpServletRequest request) throws Exception {
-
+    
         UserInfo user = userInfoService.selectById(userInfoService.getUserIdFormRedis(request));
         UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
                 .eq("phone", user.getPhone())
                 .last("LIMIT 1"));
-        if(driverWith==null){
-            return  ResultUtil.error("请先进行进件操作");
+        if (driverWith == null) {
+            return ResultUtil.error("请先进行进件操作");
         }
-        try {
-            BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
-            balanceAcctReq.setCusId(driverWith.getCusId());
-            BalanceAcctListResp balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq);
-            List<BalanceAcctItem> balanceAccts = balanceAcctListResp.getBalanceAccts();
-            for (BalanceAcctItem balanceAcct : balanceAccts) {
-                if(balanceAcct.getBalanceAcctId().equals(driverWith.getBalanceAcctId())){
-                    if(balanceAcct.getSettledAmount().doubleValue()==0){
-                        return ResultUtil.success(new BigDecimal(0));
-                    }
-                    return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100)));
-                }
-            }
-        } catch (UpyztException e) {
-            e.printStackTrace();
-            System.out.println("用户获取可提现余额:"+e);
-            return ResultUtil.error(e.getMessage());
-        }
-        return  ResultUtil.success(new BigDecimal(0));
+//        try {
+//            BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
+//            balanceAcctReq.setCusId(driverWith.getCusId());
+//            BalanceAcctListResp balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq);
+//            List<BalanceAcctItem> balanceAccts = balanceAcctListResp.getBalanceAccts();
+//            for (BalanceAcctItem balanceAcct : balanceAccts) {
+//                if(balanceAcct.getBalanceAcctId().equals(driverWith.getBalanceAcctId())){
+//                    if(balanceAcct.getSettledAmount().doubleValue()==0){
+//                        return ResultUtil.success(new BigDecimal(0));
+//                    }
+//                    return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100)));
+//                }
+//            }
+//        } catch (UpyztException e) {
+//            e.printStackTrace();
+//            System.out.println("用户获取可提现余额:"+e);
+//            return ResultUtil.error(e.getMessage());
+//        }
+        return ResultUtil.success(new BigDecimal(0));
     }
 
 
@@ -431,11 +414,12 @@
     })
     public ResultUtil uploadImg(MultipartFile multipartFile,HttpServletRequest request){
         try {
-            MediaResp mediaResp = MediaExample.uploadImage(multipartFile);
-            String pictureName = OssUploadUtil.ossUpload(request, multipartFile);
-            String mediaId = mediaResp.getMediaId();
-            userService.insertImg(mediaId,pictureName);
-            return ResultUtil.success(mediaId);
+//            MediaResp mediaResp = MediaExample.uploadImage(multipartFile);
+//            String pictureName = OssUploadUtil.ossUpload(request, multipartFile);
+//            String mediaId = mediaResp.getMediaId();
+//            userService.insertImg(mediaId,pictureName);
+//            return ResultUtil.success(mediaId);
+            return ResultUtil.success();
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java
index 0c634af..170fe7a 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/UserWithdrawalService.java
@@ -1,16 +1,9 @@
 package com.stylefeng.guns.modular.account.server;
 
 import com.baomidou.mybatisplus.service.IService;
-import com.stylefeng.guns.modular.account.model.ElectronicLedger;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq;
 import com.stylefeng.guns.modular.system.model.UserWithdrawal;
 
 public interface UserWithdrawalService extends IService<UserWithdrawal> {
-    AllocationReq createAllocationReq(String balanceAcctId, String balanceAcctId1, Integer amount,String password);
-
-    WithdrawalReq createWithdrawalReq(String balanceAcctId, Integer amount, String password, String code);
-
     /**
      * 用户提现
      * @param amount
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java
index b0eff41..cf47648 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/account/server/impl/UserWithdrawalServiceImpl.java
@@ -3,25 +3,13 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.shiro.ShiroKit;
-import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.account.dao.UserBankAccountMapper;
 import com.stylefeng.guns.modular.account.dao.UserWithdrawalMapper;
 import com.stylefeng.guns.modular.account.model.ElectronicLedger;
 import com.stylefeng.guns.modular.account.server.ElectronicLedgerService;
-import com.stylefeng.guns.modular.account.server.UserBankAccountService;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
-import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
-import com.stylefeng.guns.modular.cloudPayment.example.WithdrawalExample;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq;
 import com.stylefeng.guns.modular.system.model.Company;
-import com.stylefeng.guns.modular.system.model.UserBankAccount;
 import com.stylefeng.guns.modular.system.model.UserWithdrawal;
 import com.stylefeng.guns.modular.system.service.ICompanyService;
-import com.stylefeng.guns.modular.system.util.ResultUtil;
-import com.unionpay.upyzt.resp.AllocationResp;
-import com.unionpay.upyzt.resp.CusApplicationResp;
-import com.unionpay.upyzt.resp.WithdrawalResp;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,39 +26,13 @@
     private ElectronicLedgerService electronicLedgerService;
 
     @Override
-    public AllocationReq createAllocationReq(String balanceAcctId, String companyBalanceAcctId, Integer amount,String password) {
-        AllocationReq allocationReq = new AllocationReq();
-        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setPayBalanceAcctId(companyBalanceAcctId);
-        allocationReq.setRecvBalanceAcctId(balanceAcctId);
-        allocationReq.setAmount(amount*100);
-        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
-        allocationReq.setPassword(password);
-        allocationReq.setOrderAmount(Long.valueOf(amount));
-        allocationReq.setProductName("用户提现");
-        allocationReq.setProductCount(1);
-        return allocationReq;
-    }
-
-    @Override
-    public WithdrawalReq createWithdrawalReq(String balanceAcctId, Integer amount, String password, String code) {
-        WithdrawalReq withdrawalReq = new WithdrawalReq();
-        withdrawalReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        withdrawalReq.setBalanceAcctId(balanceAcctId);
-        withdrawalReq.setAmount(amount*100);
-        withdrawalReq.setBankAcctNo(code);
-        withdrawalReq.setPassword(password);
-        return withdrawalReq;
-    }
-
-    @Override
     public Boolean withdrawDeposit(Integer amount, String bankAcctNo, String password) {
         // 查询当前操作电子用户
         UserWithdrawal userWithdrawal = this.selectOne(new EntityWrapper<UserWithdrawal>()
                 .eq("userId", Objects.requireNonNull(ShiroKit.getUser()).getId())
                 .eq("userType", 1)
                 .last("LIMIT 1"));
-
+    
         // 先从平台进行分账到用户电子账簿
         // 查询平台账户
         Company company = companyService.selectOne(new EntityWrapper<Company>()
@@ -80,20 +42,21 @@
                 .eq("userId", company.getId())
                 .eq("userType", 3)
                 .last("LIMIT 1"));
-        try {
-            // 进行平台分账到用户电子账簿
-            log.info("平台分账到用户电子账簿=========");
-            AllocationResp allocationResp = AllocationExample.create(this.createAllocationReq(userWithdrawal.getBalanceAcctId(), electronicLedger.getBalanceAcctId(), amount,password));
-            log.info("平台分账到用户电子账簿完成=========:{}",allocationResp);
-
-            // 用户电子账簿进行提现操作
-            WithdrawalResp withdrawalResp = WithdrawalExample.create(this.createWithdrawalReq(userWithdrawal.getBalanceAcctId(), amount, password, bankAcctNo));
-            log.info("用户电子账簿提现完成=========:{}",withdrawalResp);
-            return true;
-        }catch (Exception e){
-            log.info("用户提现失败=========:{}",e.getMessage());
-            e.printStackTrace();
-            return false;
-        }
+//        try {
+//            // 进行平台分账到用户电子账簿
+//            log.info("平台分账到用户电子账簿=========");
+//            AllocationResp allocationResp = AllocationExample.create(this.createAllocationReq(userWithdrawal.getBalanceAcctId(), electronicLedger.getBalanceAcctId(), amount,password));
+//            log.info("平台分账到用户电子账簿完成=========:{}",allocationResp);
+//
+//            // 用户电子账簿进行提现操作
+//            WithdrawalResp withdrawalResp = WithdrawalExample.create(this.createWithdrawalReq(userWithdrawal.getBalanceAcctId(), amount, password, bankAcctNo));
+//            log.info("用户电子账簿提现完成=========:{}",withdrawalResp);
+//            return true;
+//        }catch (Exception e){
+//            log.info("用户提现失败=========:{}",e.getMessage());
+//            e.printStackTrace();
+//            return false;
+//        }
+        return true;
     }
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
index 98ca7bb..2af2b5c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
@@ -5,27 +5,19 @@
 import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.JwtTokenUtil;
-import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
-import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
 import com.stylefeng.guns.modular.system.dao.UserMapper;
 import com.stylefeng.guns.modular.system.model.User;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.DepositResp;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
 import org.apache.shiro.crypto.hash.Md5Hash;
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.HashMap;
 
 /**
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 56dc129..5c8cfb4 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -5,17 +5,10 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
-import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
 import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService;
-import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
 import com.stylefeng.guns.modular.call.server.IOrderCallService;
-import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
-import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
-import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
@@ -31,23 +24,22 @@
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.AllocationResp;
-import com.unionpay.upyzt.resp.DepositResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.*;
-import sun.security.krb5.internal.crypto.Des;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
-import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -125,22 +117,26 @@
 
     @Autowired
     private IAdditionalFeeService additionalFeeService;
-
+    
     @Autowired
     private ITEnterpriseWithdrawalService enterpriseWithdrawalService;
     @Autowired
-    private  ICompanyService companyService;
+    private ICompanyService companyService;
     @Autowired
     private IUserCouponRecordService userCouponRecordService;
     @Value("${pushMinistryOfTransport}")
     private boolean pushMinistryOfTransport;
-
-
-
-
-
+    
+    @Resource
+    private SystemPriceMapper systemPriceMapper;
+    
+    @Resource
+    private RedisTemplate redisTemplate;
+    
+    
     /**
      * 获取正在进行中的订单
+     *
      * @param request
      * @return
      */
@@ -421,15 +417,8 @@
             return ResultUtil.runErr();
         }
     }
-
-
-
-    @Autowired
-    private RedisUtil redisUtil;
-
-    @Resource
-    private SystemPriceMapper systemPriceMapper;
-
+    
+    
     /**
      * 获取服务中的详情数据
      * @param orderId
@@ -489,7 +478,7 @@
                 }
                 orderList= orderPrivateCarService.queryOrderInfo2(orderId,6,null,null);
                 if(orderInfoWarpper.getState()>1 && orderInfoWarpper.getDriverId()!=0){
-                    String value = redisUtil.getValue("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId()));
+                    String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId()));
                     if(value==null || value.equals("")){
                         if(orderList.isEmpty()){
                             orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0");
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
index 0227815..974ba84 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
@@ -1,22 +1,10 @@
 package com.stylefeng.guns.modular.api;
 
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.account.controller.AppOrderController;
-import com.stylefeng.guns.modular.account.model.TEnterpriseWithdrawal;
-import com.stylefeng.guns.modular.account.server.ITEnterpriseWithdrawalService;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
-import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
-import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
-import com.stylefeng.guns.modular.system.model.Company;
-import com.stylefeng.guns.modular.system.model.UserInfo;
-import com.stylefeng.guns.modular.system.model.UserWithdrawal;
-import com.stylefeng.guns.modular.system.service.ICompanyService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
 import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
-import com.unionpay.upyzt.resp.DepositResp;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,8 +15,6 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.Map;
 
 
@@ -105,37 +91,5 @@
         }
     }
 
-    public  void cloudPay(Integer uid,String total_fee,String transaction_id,int type) {
-        if(type==1){
-            BigDecimal divide = new BigDecimal(total_fee).divide(new BigDecimal(100));
-            total_fee=divide.toString();
-        }
-        System.out.println("回调参数:"+total_fee+"---"+transaction_id);
-        UserInfo userInfo = userInfoService.selectById(uid);
-        UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
-                .eq("phone", userInfo.getPhone())
-                .last("LIMIT 1"));
-        DepositReq depositReq = new DepositReq();
-        depositReq.setOutOrderNo(ToolUtil.getRandomString(32));
-        depositReq.setTotalAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 总金额
-        depositReq.setAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).intValue()); // 支付金额
-        depositReq.setDiscountAmount(0); // 优惠金额
-        depositReq.setBalanceAcctId(driverWith.getBalanceAcctId());
-        depositReq.setDepositType("1");
-        depositReq.setPaymentType(PaymentTypeEnum.CUP_APP.getCode());
-        depositReq.setPaymentTradeNo(transaction_id); // 系统交易流水号
-        depositReq.setPaymentSucceededAt(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()));
-        depositReq.setOrderNo(transaction_id);
-        depositReq.setOrderAmount(new BigDecimal(total_fee).multiply(new BigDecimal(100)).longValue());
-        depositReq.setProductName("用户支付充值");
-        depositReq.setProductCount(1);
-        try {
-            DepositResp depositResp = DepositExample.create(depositReq);
-            System.err.println(depositResp);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
 
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index af7399d..26a8cfe 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -1,59 +1,35 @@
 package com.stylefeng.guns.modular.api;
 
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.common.constant.JwtConstants;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
 import com.stylefeng.guns.modular.account.util.OssUploadUtil;
-import com.stylefeng.guns.modular.cloudPayment.example.DepositExample;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
-import com.stylefeng.guns.modular.enums.PaymentTypeEnum;
 import com.stylefeng.guns.modular.system.model.Driver;
-import com.stylefeng.guns.modular.system.model.DriverService;
 import com.stylefeng.guns.modular.system.model.UserInfo;
 import com.stylefeng.guns.modular.system.model.UserWithdrawal;
 import com.stylefeng.guns.modular.system.service.IDriverService;
 import com.stylefeng.guns.modular.system.service.ISmsrecordService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
 import com.stylefeng.guns.modular.system.service.IVerifiedService;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.util.WeChatUtil;
 import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
 import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper;
 import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.DepositResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.codec.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
 import javax.servlet.http.HttpServletRequest;
-import java.io.*;
-import java.net.URL;
-import java.net.URLConnection;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.AlgorithmParameterSpec;
-import java.text.SimpleDateFormat;
+import java.io.InputStream;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -72,9 +48,9 @@
 
     @Autowired
     private ISmsrecordService smsrecordService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private WeChatUtil weChatUtil;
@@ -659,9 +635,9 @@
     public ResultUtil freeze(Integer uid){
         try {
             UserInfo userInfo = userInfoService.selectById(uid);
-            String value = redisUtil.getValue(userInfo.getPhone());
-            redisUtil.remove(value);
-            redisUtil.remove(userInfo.getPhone());
+            String value = (String) redisTemplate.opsForValue().get(userInfo.getPhone());
+            redisTemplate.delete(value);
+            redisTemplate.delete(userInfo.getPhone());
             return ResultUtil.success();
         }catch (Exception e){
             e.printStackTrace();
@@ -689,7 +665,7 @@
             }
             String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER);
             requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
-            String value = redisUtil.getValue("USER_" + uid);
+            String value = (String) redisTemplate.opsForValue().get("USER_" + uid);
             Map<String, Object> map = new HashMap<>();
             map.put("match", requestHeader.equals(value) ? 1 : 2);
             return ResultUtil.success(map);
@@ -720,13 +696,13 @@
             userInfo.setState(2);
             userInfoService.updateById(userInfo);
             //开始验证当前账号是否在别处登录
-            String value = redisUtil.getValue("USER_" + uid);
-            if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线
+            String value = (String) redisTemplate.opsForValue().get("USER_" + uid);
+            if(ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线
                 //开始清除redis中无效的数据
-                String key = redisUtil.getValue("USER_" + userInfo.getPhone());
-                redisUtil.remove(key);//删除个人信息数据
-                redisUtil.remove("USER_" + userInfo.getPhone());//删除后台冻结相关缓存
-                redisUtil.remove("USER_" + uid);//清除存储的token
+                String key = (String) redisTemplate.opsForValue().get("USER_" + userInfo.getPhone());
+                redisTemplate.delete(key);//删除个人信息数据
+                redisTemplate.delete("USER_" + userInfo.getPhone());//删除后台冻结相关缓存
+                redisTemplate.delete("USER_" + uid);//清除存储的token
             }
             return ResultUtil.success();
         }catch (Exception e){
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
index 9a1b7fa..bbe5764 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
@@ -6,7 +6,6 @@
 import com.stylefeng.guns.modular.account.model.TBankNext;
 import com.stylefeng.guns.modular.account.server.UserBankAccountService;
 import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
-import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample;
 import com.stylefeng.guns.modular.system.model.UserBankAccount;
 import com.stylefeng.guns.modular.system.model.UserInfo;
 import com.stylefeng.guns.modular.system.model.UserWithdrawal;
@@ -14,7 +13,6 @@
 import com.stylefeng.guns.modular.system.service.IWithdrawalService;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.WithdrawalWarpper;
-import com.unionpay.upyzt.resp.CusApplicationResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -98,7 +96,7 @@
             UserWithdrawal userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
                     .eq("phone", userInfo.getPhone())
                     .last("LIMIT 1"));
-            if(Objects.isNull(userWithdrawal)){
+            if (Objects.isNull(userWithdrawal)) {
                 return ResultUtil.error("请先进行个人用户进件信息填写");
             }
             TBankNext bankName1 = tBankNextMapper.selectList(new EntityWrapper<TBankNext>().eq("bankName", bankName)).get(0);
@@ -106,26 +104,26 @@
             userWithdrawal.setBankCode(bankName1.getDrecCode());
             userWithdrawal.setBankBranchCode(bankName1.getBankCode());
             userWithdrawal.setCode(smsCode);
-            CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
-            System.err.println("修改个人用户进件信息返回"+renew);
-            if("succeeded".equals(renew.getApplicationStatus())){
-                // 修改银行卡信息
-                bankCard.setSettleAcctId(renew.getSettleAcctId());
-                bankAccountService.updateById(bankCard);
-
-                userWithdrawal.setBankCardCode(code);
-                userWithdrawal.setBankCode(bankCard.getBankCode());
-                userWithdrawal.setBankBranchCode(bankCard.getBankBranchCode());
-                userWithdrawal.setBankName(bankCard.getBankName());
-                userWithdrawal.setSettleAcctId(renew.getSettleAcctId());
-                userWithdrawal.setBalanceAcctId(renew.getBalanceAcctId());
-                userWithdrawalService.updateById(userWithdrawal);
-                return withdrawalService.withdrawal(money, bankName, code, name, uid);
-            }else {
-                return ResultUtil.error(renew.getFailureMsgs().get(0).getReason());
-            }
-
-
+//            CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
+//            System.err.println("修改个人用户进件信息返回"+renew);
+//            if("succeeded".equals(renew.getApplicationStatus())){
+//                // 修改银行卡信息
+//                bankCard.setSettleAcctId(renew.getSettleAcctId());
+//                bankAccountService.updateById(bankCard);
+//
+//                userWithdrawal.setBankCardCode(code);
+//                userWithdrawal.setBankCode(bankCard.getBankCode());
+//                userWithdrawal.setBankBranchCode(bankCard.getBankBranchCode());
+//                userWithdrawal.setBankName(bankCard.getBankName());
+//                userWithdrawal.setSettleAcctId(renew.getSettleAcctId());
+//                userWithdrawal.setBalanceAcctId(renew.getBalanceAcctId());
+//                userWithdrawalService.updateById(userWithdrawal);
+//                return withdrawalService.withdrawal(money, bankName, code, name, uid);
+//            }else {
+//                return ResultUtil.error(renew.getFailureMsgs().get(0).getReason());
+//            }
+    
+            return ResultUtil.success();
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java
deleted file mode 100644
index 19db00c..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztAutoConfiguration.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.config;
-
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.client.RestTemplateBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.client.RestTemplate;
-
-/**
- * @author xiaochen
- * @version 1.0
- * @since 2023/03/24
- */
-@Configuration
-@EnableConfigurationProperties({UpyztProperties.class})
-public class UpyztAutoConfiguration {
-
-    @Bean
-    public UpyztCustomizer upyztCustomizer(UpyztProperties upyztProperties) {
-        return new UpyztCustomizer(upyztProperties);
-    }
-
-    /*@Bean
-    public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
-        return restTemplateBuilder.build();
-    }*/
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java
deleted file mode 100644
index 0fb8bee..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztCustomizer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.config;
-
-import com.unionpay.upyzt.Upyzt;
-import org.springframework.beans.factory.InitializingBean;
-
-/**
- * @author xiaochen
- * @version 1.0
- * @since 2023/03/24
- */
-public class UpyztCustomizer implements InitializingBean {
-
-    private UpyztProperties upyztProperties;
-
-    public UpyztCustomizer(UpyztProperties upyztProperties) {
-        this.upyztProperties = upyztProperties;
-    }
-
-    @Override
-    public void afterPropertiesSet() throws Exception {
-        // (必填)设置平台商户 Id
-        Upyzt.setRootMchId(upyztProperties.getRootMchId());
-        // (必填)设置签名私钥路径,用于请求签名
-        Upyzt.setSignPrivateKey(upyztProperties.getSignPrivateKey());
-        // (必填)设置加密公钥路径,用于敏感字段加密
-        Upyzt.setEncryptPublicKey(upyztProperties.getEncryptPublicKey());
-        // (可选,推荐设置)设置响应验证公钥,用于验证响应是否真实有效;不设置或设置密钥错误将不验签
-        Upyzt.setVerifyPublicKey(upyztProperties.getVerifyPublicKey());
-        // 测试配置
-        Upyzt.setApiBase(Upyzt.LIVE_API_BASE);
-    }
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java
deleted file mode 100644
index 373cf5a..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/config/UpyztProperties.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.config;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * @author xiaochen
- * @version 1.0
- * @since 2023/03/24
- */
-@Data
-@ConfigurationProperties(prefix = "upyzt")
-public class UpyztProperties {
-
-    /**
-     * 平台商户 Id
-     */
-    @JsonProperty(value = "root-mch-id")
-    private String rootMchId;
-
-    /**
-     * 接口地址
-     */
-    @JsonProperty(value = "api-base")
-    private String apiBase;
-
-    /**
-     * 加密公钥
-     */
-    @JsonProperty(value = "encrypt-public-key")
-    private String encryptPublicKey;
-
-    /**
-     * 加签私钥
-     */
-    @JsonProperty(value = "sign-private-key")
-    private String signPrivateKey;
-
-    /**
-     * 验签公钥
-     */
-    @JsonProperty(value = "verify-public-key")
-    private String verifyPublicKey;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java
deleted file mode 100644
index a6d44c8..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/controller/OpenAccountController.java
+++ /dev/null
@@ -1,157 +0,0 @@
-//package com.stylefeng.guns.modular.cloudPayment.controller;
-//
-//import com.google.gson.Gson;
-//import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample;
-//import com.stylefeng.guns.modular.system.model.UserWithdrawal;
-//import com.stylefeng.guns.modular.system.util.ResultUtil;
-//import com.unionpay.upyzt.exception.UpyztException;
-//import com.unionpay.upyzt.resp.CusApplicationResp;
-//import com.unionpay.upyzt.resp.CusApplicationSmsCodeResp;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiImplicitParam;
-//import io.swagger.annotations.ApiImplicitParams;
-//import io.swagger.annotations.ApiOperation;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.*;
-//
-//@Api(tags = "个人用户进件")
-//@Slf4j
-//@RestController
-//@RequestMapping("/api/openAccount")
-//public class OpenAccountController {
-//
-//    @Autowired
-//    private Gson gson;
-//
-//    /**
-//     * 个人用户进件-短信验证码
-//     * @param phone 手机号
-//     * @return 返回参数
-//     * @throws Exception 异常
-//     */
-//    @ResponseBody
-//    @PostMapping("/smsCode")
-//    @ApiOperation(value = "个人用户进件-短信验证码", tags = {"用户端-云闪付相关"}, notes = "")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-//    })
-//    public ResultUtil<CusApplicationSmsCodeResp> smsCode(@RequestBody String phone){
-//        CusApplicationSmsCodeResp cusApplicationSmsCodeResp;
-//        try{
-//            // 个人用户进件-短信验证码
-//            cusApplicationSmsCodeResp = CusApplicationExample.smsCode(phone);
-//            log.info("------- 个人用户进件-短信验证码 ------- {} ", gson.toJson(cusApplicationSmsCodeResp));
-//        }catch (Exception e){
-//            log.error("个人用户进件-短信验证码失败!!!:{}",e.getMessage());
-//            e.printStackTrace();
-//            return ResultUtil.error("个人用户进件-短信验证码失败!!!");
-//        }
-//        return ResultUtil.success(cusApplicationSmsCodeResp);
-//    }
-//
-//    /**
-//     * 个人用户首次进件
-//     * @param userWithdrawal 个人账户对象
-//     * @return 返回参数
-//     * @throws Exception 异常
-//     */
-//    @ResponseBody
-//    @PostMapping("/openIndividualUser")
-//    @ApiOperation(value = "个人用户首次进件", tags = {"用户端-云闪付相关"}, notes = "")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-//    })
-//    public ResultUtil<CusApplicationResp> openIndividualUser(@RequestBody UserWithdrawal userWithdrawal){
-//        CusApplicationResp cusApplicationResp;
-//        try{
-//            // 个人用户首次进件
-//            cusApplicationResp = CusApplicationExample.create(userWithdrawal);
-//            log.info("------- 个人用户首次进件 ------- {} ", gson.toJson(cusApplicationResp));
-//        }catch (Exception e){
-//            log.error("个人用户进件失败!!!:{}",e.getMessage());
-//            e.printStackTrace();
-//            return ResultUtil.error("个人用户进件失败!!!");
-//        }
-//        return ResultUtil.success(cusApplicationResp);
-//    }
-//
-//    /**
-//     * 个人用户进件状态查询(系统订单号)
-//     * @param cusApplicationId 系统订单号
-//     * @return 返回参数
-//     * @throws UpyztException 异常
-//     */
-//    @ResponseBody
-//    @PostMapping("/queryIndividualUserStatusByCusApplicationId")
-//    @ApiOperation(value = "个人用户进件状态查询(系统订单号)", tags = {"用户端-云闪付相关"}, notes = "")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-//    })
-//    public ResultUtil<CusApplicationResp> queryIndividualUserStatusByCusApplicationId(@RequestBody String cusApplicationId){
-//        CusApplicationResp cusApplicationResp;
-//        try{
-//            // 个人用户进件状态查询(系统订单号)
-//            cusApplicationResp = CusApplicationExample.retrieveById(cusApplicationId);
-//            log.info("------- 个人用户进件状态查询 ------- {} ", gson.toJson(cusApplicationResp));
-//        }catch (UpyztException e){
-//            log.error("个人用户进件状态查询失败!!!:{}",e.getMessage());
-//            e.printStackTrace();
-//            return ResultUtil.error("个人用户进件状态查询失败!!!");
-//        }
-//        return ResultUtil.success(cusApplicationResp);
-//    }
-//
-//    /**
-//     * 修改个人用户信息
-//     * @param userWithdrawal 个人账户对象
-//     * @return 返回参数
-//     * @throws UpyztException 异常
-//     */
-//    @ResponseBody
-//    @PostMapping("/updateIndividualUserInfo")
-//    @ApiOperation(value = "修改个人用户信息(系统订单号)", tags = {"用户端-云闪付相关"}, notes = "")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-//    })
-//    public ResultUtil<CusApplicationResp> updateIndividualUserInfo(@RequestBody UserWithdrawal userWithdrawal){
-//        CusApplicationResp cusApplicationResp;
-//        try{
-//            // 修改个人用户信息
-//            cusApplicationResp = CusApplicationExample.renew(userWithdrawal);
-//            log.info("------- 修改个人用户信息 ------- {} ", gson.toJson(cusApplicationResp));
-//        }catch (Exception e){
-//            log.error("修改个人用户信息失败!!!:{}",e.getMessage());
-//            e.printStackTrace();
-//            return ResultUtil.error("修改个人用户信息失败!!!");
-//        }
-//        return ResultUtil.success(cusApplicationResp);
-//    }
-//
-//    /**
-//     * 个人用户进件状态查询(平台订单号)
-//     * @param userWithdrawal 个人账户对象
-//     * @return 返回参数
-//     * @throws UpyztException 异常
-//     */
-//    @ResponseBody
-//    @PostMapping("/queryIndividualUserStatusByOutRequestNo")
-//    @ApiOperation(value = "个人用户进件状态查询(平台订单号)", tags = {"用户端-云闪付相关"}, notes = "")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-//    })
-//    public ResultUtil<CusApplicationResp> queryIndividualUserStatusByOutRequestNo(@RequestBody UserWithdrawal userWithdrawal){
-//        CusApplicationResp cusApplicationResp;
-//        try{
-//            // 个人用户进件状态查询(平台订单号)
-//            cusApplicationResp = CusApplicationExample.renew(userWithdrawal);
-//            log.info("------- 个人用户进件状态查询(平台订单号) ------- {} ", gson.toJson(cusApplicationResp));
-//        }catch (Exception e){
-//            log.error("个人用户进件状态查询(平台订单号)失败!!!:{}",e.getMessage());
-//            e.printStackTrace();
-//            return ResultUtil.error("个人用户进件状态查询(平台订单号)失败!!!");
-//        }
-//        return ResultUtil.success(cusApplicationResp);
-//    }
-//
-//}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java
deleted file mode 100644
index b02ad6a..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AcctPasswordExample.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.req.AcctPasswordReq;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.AcctPassword;
-import com.unionpay.upyzt.resp.AcctPasswordResp;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-
-@Slf4j
-public class AcctPasswordExample implements Serializable {
-
-
-    /**
-     * 修改交易授权码
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public AcctPasswordResp update(AcctPasswordReq acctPasswordReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("balance_acct_id", acctPasswordReq.getBalanceAcctId());
-        params.put("original_password", Upyzt.encryptField(acctPasswordReq.getOriginalPassword()));
-        params.put("new_password", Upyzt.encryptField(acctPasswordReq.getNewPassword()));
-        return AcctPassword.update(params);
-    }
-
-    /**
-     * 获取用于重置交易授权码的短信验证码
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public AcctPasswordResp smsCode(String balanceAcctId) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("balance_acct_id", balanceAcctId);
-        return AcctPassword.smsCode(params);
-    }
-
-    /**
-     * 重置交易授权码
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public AcctPasswordResp reset(AcctPasswordReq acctPasswordReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("balance_acct_id", acctPasswordReq.getBalanceAcctId());
-        params.put("sms_code", acctPasswordReq.getCode());
-        params.put("new_password", Upyzt.encryptField(acctPasswordReq.getNewPassword()));
-        return AcctPassword.reset(params);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java
deleted file mode 100644
index 726461c..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/AllocationExample.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.mock.MockData;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.Allocation;
-import com.unionpay.upyzt.resp.AllocationResp;
-import com.unionpay.upyzt.util.StringUtils;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.Serializable;
-import java.time.OffsetDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Slf4j
-public class AllocationExample implements Serializable {
-
-
-    /**
-     * 分账
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static AllocationResp create(AllocationReq allocationReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_order_no", allocationReq.getOutOrderNo());
-        params.put("sent_at", OffsetDateTime.now().toString());
-        params.put("pay_balance_acct_id", allocationReq.getPayBalanceAcctId());
-
-        List<Map<String, Object>> transferParams = new ArrayList<>();
-        Map<String, Object> transferParam = new HashMap<>();
-        transferParam.put("recv_balance_acct_id", allocationReq.getRecvBalanceAcctId());
-        transferParam.put("amount", allocationReq.getAmount());
-//        transferParam.put("metadata", MockData.metadata());
-        transferParam.put("extra", MockData.allocationExtra(allocationReq));
-        transferParams.add(transferParam);
-        params.put("transfer_params", transferParams);
-        if(!StringUtils.isBlank(allocationReq.getPassword())){
-            params.put("password", Upyzt.encryptField(allocationReq.getPassword()));
-        }
-//        params.put("remark", "用于 SDK 示例测试 ");
-
-        return Allocation.create(params);
-    }
-
-    /**
-     * 分账订单查询(系统订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public AllocationResp retrieveById(String allocationId) throws UpyztException {
-        return Allocation.retrieveById(allocationId);
-    }
-
-    /**
-     * 分账订单查询(平台订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public AllocationResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException {
-        return Allocation.retrieveByOutOrderNo(outOrderNo);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java
deleted file mode 100644
index 484d2cf..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/BalanceAcctExample.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctFreezeReq;
-import com.stylefeng.guns.modular.cloudPayment.req.BalanceAcctReq;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.BalanceAcct;
-import com.unionpay.upyzt.model.BalanceAcctFreeze;
-import com.unionpay.upyzt.model.BalanceTransaction;
-import com.unionpay.upyzt.resp.*;
-import com.unionpay.upyzt.util.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.Serializable;
-import java.time.OffsetDateTime;
-import java.util.HashMap;
-import java.util.Map;
-
-@Slf4j
-public class BalanceAcctExample implements Serializable {
-
-    /**
-     * 新增电子账簿
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctStoreResp create(BalanceAcctReq balanceAcctReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_request_no", balanceAcctReq.getOutRequestNo());
-        if (!StringUtils.isBlank(balanceAcctReq.getCusId())) {
-            params.put("cus_id", balanceAcctReq.getCusId());
-        }
-        if (!StringUtils.isBlank(balanceAcctReq.getMchId())) {
-            params.put("mch_id", balanceAcctReq.getMchId());
-        }
-        params.put("password", Upyzt.encryptField(balanceAcctReq.getPassword()));
-        params.put("remark", balanceAcctReq.getRemark());
-
-        return BalanceAcct.create(params);
-    }
-
-    /**
-     * 电子账簿查询(电子账簿ID)
-     *
-     * @param balanceAcctId 绑定账户编号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctResp retrieveById(String balanceAcctId) throws UpyztException {
-        return BalanceAcct.retrieveById(balanceAcctId);
-    }
-
-
-    /**
-     * 电子账簿查询(用户ID或二级商户ID)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctListResp retrieveByUserId(BalanceAcctReq balanceAcctReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        if (!StringUtils.isBlank(balanceAcctReq.getCusId())) {
-            params.put("cus_id", balanceAcctReq.getCusId());
-        }
-        if (!StringUtils.isBlank(balanceAcctReq.getMchId())) {
-            params.put("mch_id", balanceAcctReq.getMchId());
-        }
-        return BalanceAcct.retrieveByUserId(params);
-    }
-
-
-    /**
-     * 冻结/解冻电子账簿
-     *
-     * @param balanceAcctFreezeReq 电子账簿ID
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctFreezeResp freeze(BalanceAcctFreezeReq balanceAcctFreezeReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_request_no", balanceAcctFreezeReq.getOutRequestNo());
-        params.put("balance_acct_id", balanceAcctFreezeReq.getBalanceAcctId());
-        params.put("freeze", balanceAcctFreezeReq.getFreeze());
-        if(!StringUtils.isBlank(balanceAcctFreezeReq.getRemark())){
-            params.put("remark", balanceAcctFreezeReq.getRemark());
-        }
-
-        return BalanceAcctFreeze.create(params);
-    }
-
-    /**
-     * 冻结/解冻结果查询(系统订单号)
-     *
-     * @param balanceAcctFreezeId 系统订单号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctFreezeResp retrieveFreezeById(String balanceAcctFreezeId) throws UpyztException {
-        return BalanceAcctFreeze.retrieveById(balanceAcctFreezeId);
-    }
-
-
-    /**
-     * 冻结/解冻结果查询(平台订单号)
-     *
-     * @param outRequestNo 平台订单号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctFreezeResp retrieveFreezeByOutRequestNo(String outRequestNo) throws UpyztException {
-        return BalanceAcctFreeze.retrieveByOutRequestNo(outRequestNo);
-    }
-
-
-    /**
-     * 注销电子账簿
-     *
-     * @param balanceAcctId 电子账簿ID
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceAcctDeleteResp removeById(String balanceAcctId) throws UpyztException {
-        return BalanceAcct.removeById(balanceAcctId);
-    }
-
-
-
-    /**
-     * 电子账簿流水查询
-     *
-     * @param balanceAcctId 电子账簿ID
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static BalanceTxnPaginationResp page(String balanceAcctId) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("balance_acct_id", balanceAcctId);
-        params.put("start_at", OffsetDateTime.now().toString());
-        return BalanceTransaction.page(params);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java
deleted file mode 100644
index e5b0ba3..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/CusApplicationExample.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.account.req.UserWithdrawalReq;
-import com.stylefeng.guns.modular.system.model.UserWithdrawal;
-import com.stylefeng.guns.modular.system.util.UUIDUtil;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.CusApplication;
-import com.unionpay.upyzt.model.Media;
-import com.unionpay.upyzt.resp.CusApplicationResp;
-import com.unionpay.upyzt.resp.CusApplicationSmsCodeResp;
-import com.unionpay.upyzt.resp.MediaResp;
-import com.unionpay.upyzt.util.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-
-@Slf4j
-public class CusApplicationExample implements Serializable {
-
-
-    /**
-     * 个人用户进件-短信验证码
-     *
-     * @return 返回
-     * @throws UpyztException 异常
-     */
-    public static CusApplicationSmsCodeResp smsCode(String phone) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("mobile_number", phone);
-        CusApplicationSmsCodeResp cusApplicationSmsCodeResp = CusApplication.sendSmsCode(params);
-        System.out.println(cusApplicationSmsCodeResp);
-        return cusApplicationSmsCodeResp;
-    }
-
-    /**
-     * 个人用户首次进件
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static CusApplicationResp create(UserWithdrawalReq userWithdrawalReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        Map<String, Object> idCard = new HashMap<>();
-        idCard.put("number", Upyzt.encryptField(userWithdrawalReq.getCertificateCode()));
-        idCard.put("name", Upyzt.encryptField(userWithdrawalReq.getCertificateName()));
-        idCard.put("valid_time", userWithdrawalReq.getCertificateExpireTime());
-        idCard.put("copy", userWithdrawalReq.getCopy1());
-        idCard.put("national", userWithdrawalReq.getCopy2());
-
-        Map<String, Object> settleAcct = new HashMap<>();
-        settleAcct.put("name", Upyzt.encryptField(userWithdrawalReq.getOpenAccountName()));
-        settleAcct.put("bank_acct_no", Upyzt.encryptField(userWithdrawalReq.getBankCardCode()));
-        settleAcct.put("bank_branch_code", userWithdrawalReq.getBankBranchCode());
-        settleAcct.put("bank_code", userWithdrawalReq.getBankCode());
-
-        params.put("out_request_no", userWithdrawalReq.getOutRequestNo());
-        params.put("id_card", idCard);
-        params.put("mobile_number", Upyzt.encryptField(userWithdrawalReq.getPhone()));
-        params.put("settle_acct", settleAcct);
-        params.put("sms_code", userWithdrawalReq.getCode());
-        params.put("password", Upyzt.encryptField(userWithdrawalReq.getTransactionAuthorizationCode()));
-        System.out.println("请求参数:::"+params.toString());
-        return CusApplication.create(params);
-    }
-
-    /**
-     * 个人用户进件状态查询(系统订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static CusApplicationResp retrieveById(String cusApplicationId) throws UpyztException {
-        return CusApplication.retrieveById(cusApplicationId);
-    }
-
-    /**
-     * 修改个人用户信息
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static CusApplicationResp renew(UserWithdrawal userWithdrawal) throws Exception {
-
-        Map<String, Object> params = new HashMap<>();
-        Map<String, Object> idCard = new HashMap<>();
-        idCard.put("copy", userWithdrawal.getIdCardFrontPicture());
-        idCard.put("national", userWithdrawal.getIdCardReversePicture());
-        idCard.put("number", Upyzt.encryptField(userWithdrawal.getCertificateCode()));
-        idCard.put("name", Upyzt.encryptField(userWithdrawal.getCertificateName()));
-        idCard.put("valid_time", userWithdrawal.getCertificateExpireTime());
-
-        Map<String, Object> settleAcct = new HashMap<>();
-        settleAcct.put("name", Upyzt.encryptField(userWithdrawal.getOpenAccountName()));
-        settleAcct.put("bank_acct_no", Upyzt.encryptField(userWithdrawal.getBankCardCode()));
-        settleAcct.put("bank_code", userWithdrawal.getBankCode());
-        settleAcct.put("bank_branch_code", userWithdrawal.getBankBranchCode());
-
-        params.put("cus_id", userWithdrawal.getCusId());
-        params.put("out_request_no", UUIDUtil.getRandomCode(16));
-        params.put("id_card", idCard);
-        params.put("mobile_number", Upyzt.encryptField(userWithdrawal.getPhone()));
-        params.put("settle_acct", settleAcct);
-        params.put("password", Upyzt.encryptField(userWithdrawal.getTransactionAuthorizationCode()));
-        params.put("sms_code", userWithdrawal.getCode());
-        System.out.println("修改进件参数:"+params.toString());
-        return CusApplication.renew(params);
-    }
-
-    /**
-     * 个人用户进件状态查询(平台订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static CusApplicationResp retrieveByOutRequestNo(String outRequestNo) throws UpyztException {
-        return CusApplication.retrieveByOutRequestNo(outRequestNo);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java
deleted file mode 100644
index 12241c5..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/DepositExample.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.mock.MockData;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.Deposit;
-import com.unionpay.upyzt.param.Extra;
-import com.unionpay.upyzt.resp.DepositResp;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.Serializable;
-import java.time.OffsetDateTime;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-@Slf4j
-public class DepositExample implements Serializable {
-
-
-    /**
-     * 支付充值
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static DepositResp create(DepositReq depositReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_order_no", depositReq.getOutOrderNo());
-        params.put("sent_at", OffsetDateTime.now().toString());
-        params.put("amount", depositReq.getAmount());
-        params.put("balance_acct_id", depositReq.getBalanceAcctId());
-        params.put("deposit_type", depositReq.getDepositType());
-        params.put("payment_type", depositReq.getPaymentType());
-        params.put("payment_trade_no", depositReq.getPaymentTradeNo());
-        params.put("payment_succeeded_at", OffsetDateTime.now().toString());
-//        params.put("remark", "用于 SDK 示例测试");
-//        params.put("metadata", MockData.metadata());
-        params.put("extra", MockData.depositExtra(depositReq));
-        if(Objects.nonNull(depositReq.getDiscountAmount())){
-            params.put("total_amount", depositReq.getTotalAmount());
-            params.put("discount_amount", depositReq.getDiscountAmount());
-        }
-        return Deposit.create(params);
-    }
-
-    /**
-     * 支付充值订单查询(系统订单号)
-     * @param depositId 系统订单号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public DepositResp retrieveById(String depositId) throws UpyztException {
-        return Deposit.retrieveById(depositId);
-    }
-
-    /**
-     * 支付充值订单查询(平台订单号)
-     * @param outOrderNo 平台订单号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public DepositResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException {
-        return Deposit.retrieveByOutOrderNo(outOrderNo);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java
deleted file mode 100644
index 214c710..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/MediaExample.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.Media;
-import com.unionpay.upyzt.resp.MediaResp;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Serializable;
-
-public class MediaExample implements Serializable {
-
-
-    /**
-     * 上传图片
-     *
-     * @return 返回参数
-     */
-    public static MediaResp uploadImage(MultipartFile multipartFile) throws UpyztException {
-        MediaResp mediaResp = null;
-        try {
-            String originalFilename = multipartFile.getOriginalFilename();
-            String[] filename = originalFilename.split("\\.");
-            File file=File.createTempFile(filename[0], "."+filename[1]);
-            multipartFile.transferTo(file);
-            file.deleteOnExit();
-            mediaResp = Media.uploadImage(file);
-            System.out.println(mediaResp);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return mediaResp;
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java
deleted file mode 100644
index 2b18b08..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/PaymentExample.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.mock.MockData;
-import com.stylefeng.guns.modular.cloudPayment.req.PaymentReq;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.Payment;
-import com.unionpay.upyzt.resp.PaymentResp;
-import com.unionpay.upyzt.util.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.Serializable;
-import java.time.OffsetDateTime;
-import java.util.HashMap;
-import java.util.Map;
-
-@Slf4j
-public class PaymentExample implements Serializable {
-
-
-    /**
-     * 消费(转账)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public PaymentResp create(PaymentReq paymentReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_order_no", paymentReq.getOutOrderNo());
-        params.put("sent_at", OffsetDateTime.now().toString());
-        params.put("amount", paymentReq.getAmount());
-        params.put("pay_balance_acct_id", paymentReq.getPayBalanceAcctId());
-        params.put("recv_balance_acct_id", paymentReq.getRecvBalanceAcctId());
-        if(!StringUtils.isBlank(paymentReq.getPassword())){
-            params.put("password", Upyzt.encryptField(paymentReq.getPassword()));
-        }
-//        params.put("remark", "用于 SDK 示例测试");
-//        params.put("metadata", MockData.metadata());
-        params.put("extra", MockData.paymentExtra(paymentReq));
-        return Payment.create(params);
-    }
-
-    /**
-     * 消费(转账)订单查询(系统订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public PaymentResp retrieveById(String paymentId) throws UpyztException {
-        return Payment.retrieveById(paymentId);
-    }
-
-    /**
-     * 消费(转账)订单查询(平台订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public PaymentResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException {
-        return Payment.retrieveByOutOrderNo(outOrderNo);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/RefundExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/RefundExample.java
deleted file mode 100644
index c42c0e2..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/RefundExample.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.Refund;
-import com.unionpay.upyzt.resp.RefundResp;
-
-import java.time.OffsetDateTime;
-import java.util.HashMap;
-import java.util.Map;
-
-public class RefundExample {
-
-    public RefundExample(String tradeId) {
-        this.tradeId = tradeId;
-    }
-
-    protected String tradeId;
-
-
-    public static void main(String[] args) throws UpyztException {
-        RefundExample refundExample = new RefundExample("1auoc0c0pp7obv4cptjpm6ej5dzohcgl");
-        // 退款
-        RefundResp refundResp = refundExample.create();
-    }
-
-    /**
-     * 运行 Demos
-     *
-     * @param tradeId 交易ID
-     */
-    public static String runDemos(String tradeId) throws UpyztException {
-        RefundExample refundExample = new RefundExample(tradeId);
-
-        // 退款
-        RefundResp refundResp = refundExample.create();
-
-        // 退款订单查询(系统订单号)
-        refundResp = refundExample.retrieveById(refundResp.getRefundId());
-
-        // 退款订单查询(平台订单号)
-        refundResp = refundExample.retrieveByOutOrderNo(refundResp.getOutOrderNo());
-
-        return refundResp.getRefundId();
-    }
-
-    /**
-     * 退款
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public RefundResp create() throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-//        params.put("out_order_no", "1auoc0c0pp7obv4cptjpm6ej5dzohcgl");
-        params.put("out_order_no", "3209588457394236519");
-        params.put("sent_at", OffsetDateTime.now().toString());
-        params.put("amount", 100);
-        params.put("orig_trade_id", this.tradeId);
-        params.put("remark", "用于 SDK 示例测试");
-        // params.put("total_amount", 101);
-        // params.put("discount_amount", 1);
-
-        System.out.println("------- 退款 -------");
-        RefundResp resp = Refund.create(params);
-        System.out.println(resp);
-        return resp;
-    }
-
-    /**
-     * 退款订单查询(系统订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public RefundResp retrieveById(String id) throws UpyztException {
-        System.out.println("------- 退款订单查询(系统订单号) -------");
-        RefundResp resp = Refund.retrieveById(id);
-        System.out.println(resp);
-        return resp;
-    }
-
-    /**
-     * 退款订单查询(平台订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public RefundResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException {
-        System.out.println("------- 退款订单查询(平台订单号) -------");
-        RefundResp resp = Refund.retrieveByOutOrderNo(outOrderNo);
-        System.out.println(resp);
-        return resp;
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java
deleted file mode 100644
index 372b36b..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/SettleAcctExample.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.req.UserBankAccountReq;
-import com.stylefeng.guns.modular.system.model.UserBankAccount;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.SettleAcct;
-import com.unionpay.upyzt.resp.SettleAcctDeleteResp;
-import com.unionpay.upyzt.resp.SettleAcctListResp;
-import com.unionpay.upyzt.resp.SettleAcctResp;
-import com.unionpay.upyzt.util.StringUtils;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class SettleAcctExample {
-
-
-    /**
-     * 新增绑定账户
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctResp create(UserBankAccountReq userBankAccountReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_request_no", userBankAccountReq.getOutRequestNo());
-        if (!StringUtils.isBlank(userBankAccountReq.getCusId())) {
-            params.put("cus_id", userBankAccountReq.getCusId());
-        }else {
-            params.put("mch_id", userBankAccountReq.getMchId());
-        }
-        params.put("bank_acct_type", String.valueOf(userBankAccountReq.getBankAcctType()));
-        params.put("bank_code", userBankAccountReq.getBankCode());
-//        params.put("bank_address_code", "");
-        params.put("bank_branch_code", userBankAccountReq.getBankBranchCode());
-        params.put("bank_acct_no", Upyzt.encryptField(userBankAccountReq.getBankCardCode()));
-        params.put("mobile_number", Upyzt.encryptField(userBankAccountReq.getPhone()));
-        // 是否必传取决于平台业务参数配置
-        params.put("sms_code", userBankAccountReq.getCode());
-        // 拓展字段配合业务参数, 无业务要求无需传
-        // params.put("extra", new HashMap<String, String>());
-        return SettleAcct.create(params);
-    }
-
-    /**
-     * 二级商户进件状态查询(绑定账户编号)
-     *
-     * @param settleAcctId 绑定账户编号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctResp retrieveById(String settleAcctId) throws UpyztException {
-        return SettleAcct.retrieveById(settleAcctId);
-    }
-
-    /**
-     * 绑定账户查询(平台订单号)
-     *
-     * @param outRequestNo 平台订单号
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctResp retrieveByOutRequestNo(String outRequestNo) throws UpyztException {
-        return SettleAcct.retrieveByOutRequestNo(outRequestNo);
-    }
-
-
-    /**
-     * 绑定账户查询(用户ID)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctListResp retrieveByUserId(UserBankAccountReq userBankAccountReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        if (!StringUtils.isBlank(userBankAccountReq.getCusId())) {
-            params.put("cus_id", userBankAccountReq.getCusId());
-        }else  {
-            params.put("mch_id", userBankAccountReq.getMchId());
-        }
-        // 用于筛选指定状态的绑定账户列表,不传表示无筛选。
-        // 枚举值:processing: 验证中|succeeded: 验证成功|failed: 验证失败|blocked: 验证锁定中,需联系银行业务人员触发重新打款|needless: 无需验证
-        params.put("verify_status", userBankAccountReq.getVerifyStatus());
-        return SettleAcct.retrieveByUserId(params);
-    }
-
-    /**
-     * 验证绑定账户(打款金额验证) (用validateBySettleAcctId替代)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     * @deprecated 1.3.2后续迭代将删除,可使用validateBySettleAcctId替代
-     */
-    @Deprecated
-    public static SettleAcctResp validate(String settleAcctId,Integer payAmount) throws UpyztException {
-        return validateBySettleAcctId(settleAcctId,payAmount);
-    }
-
-    /**
-     * 打款金额验证(绑定账户编号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctResp validateBySettleAcctId(String settleAcctId,Integer payAmount) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("pay_amount", payAmount);
-        return SettleAcct.validateBySettleAcctId(settleAcctId, params);
-    }
-
-    /**
-     * 打款金额验证(用户银行账号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctResp validateByBankAcctNo(String mchId, SettleAcctResp settleAcctResp,Integer payAmount) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("mch_id", mchId);
-        params.put("bank_acct_no", Upyzt.encryptField(settleAcctResp.getBankAcctNo()));
-        params.put("pay_amount", payAmount);
-        return SettleAcct.validateByBankAcctNo(params);
-    }
-
-    /**
-     * 删除绑定账户
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static SettleAcctDeleteResp removeById(String settleAcctId) throws UpyztException {
-        return SettleAcct.removeById(settleAcctId);
-    }
-
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java
deleted file mode 100644
index 2f352c5..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/example/WithdrawalExample.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.example;
-
-import com.stylefeng.guns.modular.cloudPayment.mock.MockData;
-import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq;
-import com.unionpay.upyzt.Upyzt;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.model.Withdrawal;
-import com.unionpay.upyzt.resp.WithdrawalResp;
-import com.unionpay.upyzt.util.StringUtils;
-
-import java.io.Serializable;
-import java.time.OffsetDateTime;
-import java.util.HashMap;
-import java.util.Map;
-
-public class WithdrawalExample implements Serializable {
-
-
-    /**
-     * 提现
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public static WithdrawalResp create(WithdrawalReq withdrawalReq) throws UpyztException {
-        Map<String, Object> params = new HashMap<>();
-        params.put("out_order_no", withdrawalReq.getOutOrderNo());
-        params.put("sent_at", OffsetDateTime.now().toString());
-        params.put("amount", withdrawalReq.getAmount());
-        params.put("balance_acct_id", withdrawalReq.getBalanceAcctId());
-        params.put("bank_acct_no", Upyzt.encryptField(withdrawalReq.getBankAcctNo()));
-        params.put("password", Upyzt.encryptField(withdrawalReq.getPassword()));
-//        params.put("remark", "用于 SDK 示例测试");
-//        params.put("bank_memo", "银行附言");
-
-        // 以下参数绑定账户无需填写,提现到非绑定账户时必填
-        if(!StringUtils.isBlank(withdrawalReq.getBankBranchCode())){
-            params.put("bank_acct_type", withdrawalReq.getBankAcctType());
-            params.put("bank_branch_code", withdrawalReq.getBankBranchCode());
-            params.put("bank_code", withdrawalReq.getBankBranchCode());
-            params.put("name", Upyzt.encryptField(withdrawalReq.getName()));
-            // 仅提现到个人非绑定账户时必填
-            params.put("mobile_number", Upyzt.encryptField(withdrawalReq.getMobileNumber()));
-            params.put("service_fee", withdrawalReq.getServiceFee());
-//        params.put("metadata", MockData.metadata());
-        }
-
-        params.put("extra", MockData.withdrawalExtra(withdrawalReq));
-
-        return Withdrawal.create(params);
-    }
-
-    /**
-     * 提现订单查询(系统订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public WithdrawalResp retrieveById(String withdrawalId) throws UpyztException {
-        return Withdrawal.retrieveById(withdrawalId);
-    }
-
-    /**
-     * 提现订单查询(平台订单号)
-     *
-     * @return 返回参数
-     * @throws UpyztException 异常
-     */
-    public WithdrawalResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException {
-        return Withdrawal.retrieveByOutOrderNo(outOrderNo);
-    }
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java
deleted file mode 100644
index 1a3b703..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/extra/ExpandExtra.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.extra;
-
-import com.unionpay.upyzt.param.Extra;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@Data
-@ApiModel(value = "拓展字段")
-public class ExpandExtra extends Extra {
-
-    @ApiModelProperty(value = "结果回调地址")
-    private String notify_url;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java
deleted file mode 100644
index b803281..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/mock/MockData.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.mock;
-
-import com.stylefeng.guns.modular.cloudPayment.extra.ExpandExtra;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.cloudPayment.req.DepositReq;
-import com.stylefeng.guns.modular.cloudPayment.req.PaymentReq;
-import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq;
-import com.unionpay.upyzt.param.Extra;
-import com.unionpay.upyzt.param.ProductInfo;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author yf.zhao
- * @version 1.0
- * @since 2020/10/29
- */
-public class MockData {
-
-    /**
-     * 支付充值拓展字段封装
-     *
-     * @return
-     */
-    public static Extra depositExtra(DepositReq depositReq) {
-        ExpandExtra extra = new ExpandExtra();
-        List<ProductInfo> productInfos = new ArrayList<>();
-        ProductInfo productInfo = new ProductInfo();
-        productInfo.setOrderAmount(depositReq.getOrderAmount());
-        productInfo.setOrderNo(depositReq.getOrderNo());
-        productInfo.setProductCount(depositReq.getProductCount());
-        productInfo.setProductName(depositReq.getProductName());
-        productInfos.add(productInfo);
-        extra.setProductInfos(productInfos);
-        extra.setNotify_url(depositReq.getNotifyUrl());
-        return extra;
-    }
-
-    /**
-     * 支付充值拓展字段封装
-     *
-     * @return
-     */
-    public static Extra withdrawalExtra(WithdrawalReq withdrawalReq) {
-        ExpandExtra extra = new ExpandExtra();
-        extra.setNotify_url(withdrawalReq.getNotifyUrl());
-        return extra;
-    }
-
-    /**
-     * 消费转账拓展字段封装
-     *
-     * @return
-     */
-    public static Extra paymentExtra(PaymentReq paymentReq) {
-        ExpandExtra extra = new ExpandExtra();
-        List<ProductInfo> productInfos = new ArrayList<>();
-        ProductInfo productInfo = new ProductInfo();
-        productInfo.setOrderAmount(paymentReq.getOrderAmount());
-        productInfo.setOrderNo(paymentReq.getOrderNo());
-        productInfo.setProductCount(paymentReq.getProductCount());
-        productInfo.setProductName(paymentReq.getProductName());
-        productInfos.add(productInfo);
-        extra.setProductInfos(productInfos);
-        extra.setNotify_url(paymentReq.getNotifyUrl());
-        return extra;
-    }
-
-    /**
-     * 分账拓展字段封装
-     *
-     * @return
-     */
-    public static Extra allocationExtra(AllocationReq allocationReq) {
-        ExpandExtra extra = new ExpandExtra();
-        List<ProductInfo> productInfos = new ArrayList<>();
-        ProductInfo productInfo = new ProductInfo();
-        productInfo.setOrderAmount(allocationReq.getOrderAmount());
-        productInfo.setOrderNo(allocationReq.getOrderNo());
-        productInfo.setProductCount(allocationReq.getProductCount());
-        productInfo.setProductName(allocationReq.getProductName());
-        productInfos.add(productInfo);
-        extra.setProductInfos(productInfos);
-        extra.setNotify_url(allocationReq.getNotifyUrl());
-        return extra;
-    }
-
-    public static Map<String, Object> metadata() {
-        Map<String, Object> metadata = new HashMap<>();
-        metadata.put("custom_key", "这里平台可以自定义参数");
-        return metadata;
-    }
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java
deleted file mode 100644
index 9cecc03..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AcctPasswordReq.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "修改交易授权码Req")
-public class AcctPasswordReq implements Serializable {
-
-    @ApiModelProperty(value = "二级商户或个人用户的电子账簿 ID",required = true)
-    private String balanceAcctId;
-
-    @ApiModelProperty(value = "原交易授权码",required = true)
-    private String originalPassword;
-
-    @ApiModelProperty(value = "新交易授权码",required = true)
-    private String newPassword;
-
-    @ApiModelProperty(value = "验证码",required = true)
-    private String code;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java
deleted file mode 100644
index 35a5c5c..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/AllocationReq.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "分账创建Req")
-public class AllocationReq implements Serializable {
-
-    @ApiModelProperty(value = "平台订单号",required = true)
-    private String outOrderNo;
-
-    @ApiModelProperty(value = "付款电子账簿ID",required = true)
-    private String payBalanceAcctId;
-
-    @ApiModelProperty(value = "收款电子账簿ID",required = true)
-    private String recvBalanceAcctId;
-
-    @ApiModelProperty(value = "金额",required = true)
-    private Integer amount;
-
-    @ApiModelProperty(value = "交易授权码",required = true)
-    private String password;
-
-    @ApiModelProperty(value = "订单编号")
-    private String orderNo;
-
-    @ApiModelProperty(value = "订单金额")
-    private Long orderAmount;
-
-    @ApiModelProperty(value = "商品名称")
-    private String productName;
-
-    @ApiModelProperty(value = "商品数量")
-    private Integer productCount;
-
-    @ApiModelProperty(value = "交易结果通知")
-    private String notifyUrl;
-
-
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java
deleted file mode 100644
index f025261..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctFreezeReq.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "冻结/解冻电子帐簿Req")
-public class BalanceAcctFreezeReq implements Serializable {
-
-    @ApiModelProperty(value = "平台订单号",required = true)
-    private String outRequestNo;
-
-    @ApiModelProperty(value = "电子账簿 ID",required = true)
-    private String balanceAcctId;
-
-    @ApiModelProperty(value = "个人用户ID true: 冻结 false: 解冻",required = true)
-    private Boolean freeze;
-
-    @ApiModelProperty(value = "备注信息")
-    private String remark;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java
deleted file mode 100644
index 0ad0a17..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/BalanceAcctReq.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "电子帐簿Req")
-public class BalanceAcctReq implements Serializable {
-
-    @ApiModelProperty(value = "平台订单号",required = true)
-    private String outRequestNo;
-
-    @ApiModelProperty(value = "二级商户ID 和个人用户ID 二选一填写")
-    private String mchId;
-
-    @ApiModelProperty(value = "个人用户ID 和二级商户ID 二选一填写")
-    private String cusId;
-
-    @ApiModelProperty(value = "交易授权码",required = true)
-    private String password;
-
-    @ApiModelProperty(value = "备注信息")
-    private String remark;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java
deleted file mode 100644
index ad5405b..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/DepositReq.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "支付充值Req")
-public class DepositReq implements Serializable {
-
-    @ApiModelProperty(value = "平台订单号",required = true)
-    private String outOrderNo;
-
-    @ApiModelProperty(value = "总金额;单位分;discount_amount存在时该字段必传")
-    private Integer totalAmount;
-
-    @ApiModelProperty(value = "支付金额 单位为分,充值订单用户实际支付金额,不含平台优惠金额",required = true)
-    private Integer amount;
-
-    @ApiModelProperty(value = "平台优惠金额")
-    private Integer discountAmount;
-
-    @ApiModelProperty(value = "电子账簿ID",required = true)
-    private String balanceAcctId;
-
-    @ApiModelProperty(value = "记账类型 枚举值:1. 充值 2. 消费",required = true)
-    private String depositType;
-
-    @ApiModelProperty(value = "支付类型",required = true)
-    private String paymentType;
-
-    @ApiModelProperty(value = "支付通道订单号",required = true)
-    private String paymentTradeNo;
-
-    @ApiModelProperty(value = "支付成功时间",required = true)
-    private String paymentSucceededAt;
-
-    @ApiModelProperty(value = "订单编号")
-    private String orderNo;
-
-    @ApiModelProperty(value = "订单金额")
-    private Long orderAmount;
-
-    @ApiModelProperty(value = "商品名称")
-    private String productName;
-
-    @ApiModelProperty(value = "商品数量")
-    private Integer productCount;
-
-    @ApiModelProperty(value = "交易结果通知地址")
-    private String notifyUrl;
-
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java
deleted file mode 100644
index 752a7b2..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/PaymentReq.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "消费转账Req")
-public class PaymentReq implements Serializable {
-
-    @ApiModelProperty(value = "平台订单号",required = true)
-    private String outOrderNo;
-
-    @ApiModelProperty(value = "金额 单位为分,要求不能带小数点",required = true)
-    private String amount;
-
-    @ApiModelProperty(value = "付款电子账簿 ID",required = true)
-    private String payBalanceAcctId;
-
-    @ApiModelProperty(value = "金额 单位为分,要求不能带小数点",required = true)
-    private String recvBalanceAcctId;
-
-    @ApiModelProperty(value = "交易授权码",required = true)
-    private String password;
-
-    @ApiModelProperty(value = "订单编号")
-    private String orderNo;
-
-    @ApiModelProperty(value = "订单金额")
-    private Long orderAmount;
-
-    @ApiModelProperty(value = "商品名称")
-    private String productName;
-
-    @ApiModelProperty(value = "商品数量")
-    private Integer productCount;
-
-    @ApiModelProperty(value = "交易结果通知")
-    private String notifyUrl;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java
deleted file mode 100644
index 9a1b9d1..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/UserBankAccountReq.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import com.stylefeng.guns.modular.system.model.UserBankAccount;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-
-@Data
-@ToString
-@ApiModel(value = "绑定账户Req")
-public class UserBankAccountReq extends UserBankAccount {
-
-    @ApiModelProperty(value = "个人用户ID 和 二级商户 ID 选一填写")
-    private String cusId;
-
-    @ApiModelProperty(value = "二级商户ID 和 个人用户 ID  选一填写")
-    private String mchId;
-
-    @ApiModelProperty(value = "验证码",required = true)
-    private String code;
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java
deleted file mode 100644
index 7ed22e2..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/cloudPayment/req/WithdrawalReq.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.stylefeng.guns.modular.cloudPayment.req;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.io.Serializable;
-@Data
-@ToString
-@ApiModel(value = "提现创建Req")
-public class WithdrawalReq implements Serializable {
-
-    @ApiModelProperty(value = "平台订单号",required = true)
-    private String outOrderNo;
-
-    @ApiModelProperty(value = "金额 单位分",required = true)
-    private Integer amount;
-
-    @ApiModelProperty(value = "平台手续费 单位分 仅提现到个人非绑定账户时必填")
-    private Integer serviceFee;
-
-    @ApiModelProperty(value = "电子账簿 ID",required = true)
-    private String balanceAcctId;
-
-    @ApiModelProperty(value = "提现目标银行账号",required = true)
-    private String bankAcctNo;
-
-    @ApiModelProperty(value = "目标银行账号类型 提现至非绑定账户时必填枚举值:1 - 对私银行卡2 - 对公银行账户")
-    private String bankAcctType;
-
-    @ApiModelProperty(value = "开户银行联行号 提现至非绑定账户时必填")
-    private String bankBranchCode;
-
-    @ApiModelProperty(value = "开户银行编号 提现至非绑定账户时必填")
-    private String bankCode;
-
-    @ApiModelProperty(value = "开户名称 提现至非绑定账户时必填")
-    private String name;
-
-    @ApiModelProperty(value = "手机号 仅提现到个人非绑定账户时必填")
-    private String mobileNumber;
-
-    @ApiModelProperty(value = "交易授权码 提现至非绑定账户时必填")
-    private String password;
-
-    @ApiModelProperty(value = "交易结果通知")
-    private String notifyUrl;
-
-
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
index ba65f0d..dc5dee9 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -16,12 +16,11 @@
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
-import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.util.SystemException;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -49,9 +48,9 @@
 
     @Autowired
     private IOrderCrossCityService orderCrossCityService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
 
 
@@ -77,7 +76,7 @@
         List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId);
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(sdf.parse(day));
-        String vehicle = redisUtil.getValue("VEHICLE");
+        String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
         List<Integer> integers = new ArrayList<>();
         if(ToolUtil.isNotEmpty(vehicle)){
             integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index d2390d8..157d3b2 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -3,7 +3,6 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
@@ -11,20 +10,20 @@
 import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper;
 import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
 import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper;
-import com.stylefeng.guns.modular.crossCity.model.Line;
 import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.ILineService;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
-import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper;
-import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.specialTrain.server.impl.OrderPrivateCarServiceImpl;
-import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.dao.RegionMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.dao.SysIntegralMapper;
+import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
@@ -35,7 +34,6 @@
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
-import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
@@ -43,6 +41,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -61,8 +60,6 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
-
-import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
 
 
 @Service
@@ -143,9 +140,9 @@
 
     @Autowired
     private GDFalconUtil gdFalconUtil;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private ICancleOrderService cancleOrderService;
@@ -1424,8 +1421,8 @@
         map.put("startCity", geocode.get("city"));
         geocode = gdMapGeocodingUtil.geocode(map.get("endLon").toString(), map.get("endLat").toString());
         map.put("endCity", geocode.get("city"));
-
-        String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
+    
+        String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId"));
         map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
         map.put("orderType", 3);
         return map;
@@ -1490,7 +1487,7 @@
         CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
         if(null != query){
             if(payType == 1){//微信支付
-                String value = redisUtil.getValue("appletOpenId");
+                String value = (String) redisTemplate.opsForValue().get("appletOpenId");
                 String appletsOpenId = null;
                 if(ToolUtil.isNotEmpty(value)){
                     JSONObject jsonObject = JSON.parseObject(value);
@@ -2074,7 +2071,7 @@
     public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
         OrderCrossCity orderCrossCity = this.selectById(orderId);
         //计算预计距离和剩余时间
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
         if(null == value || "".equals(value)){
             System.err.println("司机没有上传位置信息");
 
@@ -2374,7 +2371,7 @@
                 @Override
                 public void run() {
                     List<Map<String, Integer>> datas = list;
-                    String vehicle = redisUtil.getValue("VEHICLE");
+                    String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
                     List<Integer> integers = new ArrayList<>();
                     if(ToolUtil.isNotEmpty(vehicle)){
                         integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index ed0fbc8..1400a46 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -9,7 +9,6 @@
 import com.stylefeng.guns.modular.account.controller.AppOrderController;
 import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
-import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread;
@@ -17,7 +16,6 @@
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsSpreadService;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
-import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.dao.*;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
@@ -28,13 +26,11 @@
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
-import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import com.unionpay.upyzt.exception.UpyztException;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -104,9 +100,9 @@
 
     @Autowired
     private IOrderLogisticsSpreadService orderLogisticsSpreadService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Resource
     private RegionMapper regionMapper;
@@ -566,7 +562,7 @@
                 try {
                     Integer id = orderLogistics.getId();
                     orderIds.add(orderLogistics.getId());//添加记录,防止调用接口重复提醒无人接单
-                    String vehicle = redisUtil.getValue("VEHICLE");
+                    String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
                     List<Integer> integers = new ArrayList<>();
                     if(ToolUtil.isNotEmpty(vehicle)){
                         integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
@@ -695,7 +691,6 @@
     }
 
     @Override
-    @Transactional(rollbackFor = UpyztException.class,propagation = Propagation.REQUIRES_NEW)
     public ResultUtil payLogisticsOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception {
         OrderLogistics orderLogistics = this.selectById(orderId);
         if(orderLogistics.getState() != 7){
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index e4cff59..193db93 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -3,7 +3,6 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
@@ -12,7 +11,6 @@
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl;
-import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
@@ -28,9 +26,9 @@
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import javafx.concurrent.Task;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -135,9 +133,9 @@
 
     @Autowired
     private IUserActivityRedenvelopeService userActivityRedenvelopeService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private GDFalconUtil gdFalconUtil;
@@ -431,7 +429,7 @@
                                 JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
                                 //判断时间
                                 if(travelTime.getTime()>=order.getTravelTime().getTime()-jsonObject.getInteger("num5")*60000L && travelTime.getTime()<=order.getTravelTime().getTime()+jsonObject.getInteger("num6")*60000L){
-                                    String value = redisUtil.getValue("DRIVER" + String.valueOf(order.getDriverId()));
+                                    String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId()));
     //                            Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString());
     //                            Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
 
@@ -683,7 +681,7 @@
                                 JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
                                 //判断时间
                                 if(travelTime.getTime()>=order.getTravelTime().getTime()-jsonObject.getInteger("num5")*60000L && travelTime.getTime()<=order.getTravelTime().getTime()+jsonObject.getInteger("num6")*60000L){
-                                    String value = redisUtil.getValue("DRIVER" + String.valueOf(order.getDriverId()));
+                                    String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId()));
     //                            Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString());
     //                            Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
 
@@ -842,7 +840,7 @@
                             JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent());
                             //判断时间
                             if(orderPrivateCar.getTravelTime().getTime()>=order.getTravelTime().getTime()-jsonObject.getInteger("num5")*60000L && orderPrivateCar.getTravelTime().getTime()<=order.getTravelTime().getTime()+jsonObject.getInteger("num6")*60000L){
-                                String value = redisUtil.getValue("DRIVER" + String.valueOf(order.getDriverId()));
+                                String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId()));
 //                                Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString());
 //                                Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString());
                                 // TODO: 2023/11/4 已改成计算直线距离
@@ -1072,7 +1070,7 @@
         CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
         if(null != query){
             if(payType == 1){//微信支付
-                String value = redisUtil.getValue("appletOpenId");
+                String value = (String) redisTemplate.opsForValue().get("appletOpenId");
                 String appletsOpenId = null;
                 if(ToolUtil.isNotEmpty(value)){
                     JSONObject jsonObject = JSON.parseObject(value);
@@ -1138,151 +1136,107 @@
         return resultUtil;
     }
 
-
-    /**
-     * 推送抢单数据
-     * @param orderPrivateCar
-     * @throws Exception
-     */
-    public void pushOrder(OrderPrivateCar orderPrivateCar) throws Exception{
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    Integer id = orderPrivateCar.getId();
-                    Integer orderType = orderPrivateCar.getRideType()==1?1:orderPrivateCar.getRideType()==2?9:8;
-                    orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
-                    String vehicle = redisUtil.getValue("VEHICLE");
-                    List<Integer> integers = new ArrayList<>();
-                    if(ToolUtil.isNotEmpty(vehicle)){
-                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
-                    }
-                    Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
-                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
-                    for(int i = 1; i <= querys.size(); i++){
-                        OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
-                        if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
-                            break;
-                        }
-                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
-                        System.out.println("pushOrder:"+pushOrder);
-                        int i2 = pushOrder.getPushTime() / 10;
-                        if(i2==0){
-                            i2=1;
-                        }
-                        for (int i1 = 0; i1 < i2 ; i1++) {
-                            if (orderPrivateCar.getState() > 1) {
-                                break;
-                            }
-                            //获取空闲司机
-                            List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
-                            if (list.size() > 0) {
-                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
-                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
-                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
-                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
-                                for (Driver driver : list) {//开始进行推送
-                                    boolean bo = false;
-                                    for (Integer integer : integers) {
-                                        if (integer.compareTo(driver.getId()) == 0) {
-                                            bo = true;
-                                            break;
-                                        }
-                                    }
-                                    if (bo) {
-                                        continue;
-                                    }
-                                    pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
-                                }
-                            }
-                            Thread.sleep(10000);//设置等待时间
-                            Integer state = orderPrivateCar.getState();
-                            if (state > 1) {
-                                orderIds.remove(orderPrivateCar.getId());
-                                return;
-                            }
-                            if (i == querys.size() && state == 1) {
-                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
-                                orderIds.remove(orderPrivateCar.getId());
-                            }
-                        }
-                    }
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }).start();
+    @Override
+    public Map<String, Object> queryOrderInfo(Integer uid, Integer orderId) throws Exception {
+        Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId);
+        if(null == map){
+            OrderTaxi orderTaxi = orderTaxiService.selectOne(new EntityWrapper<OrderTaxi>()
+                    .eq("userId", uid)
+                    .eq("isDelete", 1)
+                    .in("state", Arrays.asList(2, 3, 4, 5, 6, 7))
+            );
+            return orderTaxiService.queryOrderInfo(orderTaxi.getId());
+        }
+        if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
+            OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+            orderPrivateCar.setReassignNotice(0);
+            this.updateById(orderPrivateCar);
+        }
+        if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+            map.put("state", map.get("oldState"));
+        }
+        if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){
+            map.put("redPacketMoney", null);
+            map.put("couponMoney", null);
+        }
+    
+        String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId"));
+        map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
+        map.put("orderType", 1);
+        return map;
     }
 
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        if(null == orderPrivateCar){
+            return orderTaxiService.queryOrderServer(orderId, uid);
+        }
+        //计算预计距离和剩余时间
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+        if(null == value || "".equals(value)){
+            System.err.println("司机没有上传位置信息");
 
-
-    public void pushOrder(Integer id, Integer rideType, Integer serverCarModelId, Double startLon, Double startLat) throws Exception{
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    Integer orderType = rideType==1?1:rideType==2?9:8;
-                    orderIds.add(id);//添加记录,防止调用接口重复提醒无人接单
-                    String vehicle = redisUtil.getValue("VEHICLE");
-                    List<Integer> integers = new ArrayList<>();
-                    if(ToolUtil.isNotEmpty(vehicle)){
-                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
-                    }
-                    Company query = companyCityService.query(startLon.toString(), startLat.toString());//获取起点所属分公司
-                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
-                    for(int i = 1; i <= querys.size(); i++){
-                        OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
-                        if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
-                            break;
-                        }
-                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
-                        System.out.println("pushOrder:"+pushOrder);
-                        int i2 = pushOrder.getPushTime() / 10;
-                        if(i2==0){
-                            i2=1;
-                        }
-                        for (int i1 = 0; i1 < i2 ; i1++) {
-                            if (orderPrivateCar.getState() > 1) {
-                                break;
-                            }
-                            //获取空闲司机
-                            List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
-                            if (list.size() > 0) {
-                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
-                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
-                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
-                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
-                                for (Driver driver : list) {//开始进行推送
-                                    boolean bo = false;
-                                    for (Integer integer : integers) {
-                                        if (integer.compareTo(driver.getId()) == 0) {
-                                            bo = true;
-                                            break;
-                                        }
-                                    }
-                                    if (bo) {
-                                        continue;
-                                    }
-                                    pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
-                                }
-                            }
-                            Thread.sleep(10000);//设置等待时间
-                            Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
-                            if (state > 1) {
-                                orderIds.remove(orderPrivateCar.getId());
-                                break;
-                            }
-                            if (i == querys.size()) {
-                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
-                                orderIds.remove(orderPrivateCar.getId());
-                            }
-                        }
-                    }
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
+            //调用获取轨迹中的数据
+            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2);
+            if(list.size() > 0){
+                Map<String, Object> map = list.get(list.size() - 1);
+                value = map.get("lon") + "," + map.get("lat");
             }
-        }).start();
+
+        }
+
+        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
+        orderServerWarpper.setOrderId(orderPrivateCar.getId());
+        orderServerWarpper.setOrderType(1);
+        orderServerWarpper.setState(orderPrivateCar.getState());
+        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
+        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+        orderServerWarpper.setReassignNotice(orderPrivateCar.getReassignNotice());
+        if(orderPrivateCar.getState() == 2 || orderPrivateCar.getState() == 3){//前往预约地
+            // TODO: 2023/11/4 无法修改
+            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), 1);
+            String d = "0";
+            String t = "0";
+            if(null == distance){
+                System.err.println("查询距离出错了");
+            }else{
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
+            }
+            orderServerWarpper.setReservationMileage(d);
+            orderServerWarpper.setReservationTime(t);
+            orderServerWarpper.setServedMileage("0");
+            orderServerWarpper.setServedTime("0");
+            orderServerWarpper.setLaveMileage("0");
+            orderServerWarpper.setLaveTime("0");
+        }
+        if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中
+            // TODO: 2023/11/4 无法修改
+            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), 1);
+            String d = "0";
+            String t = "0";
+            if(null == distance){
+                System.err.println("查询距离出错了");
+            }else{
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
+            }
+            orderServerWarpper.setReservationMileage("0");
+            orderServerWarpper.setReservationTime("0");
+            orderServerWarpper.setServedMileage(String.valueOf((null == orderPrivateCar.getMileage() ? 0 : orderPrivateCar.getMileage()) / 1000));
+            orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000).intValue() + "");
+            orderServerWarpper.setLaveMileage(d);
+            orderServerWarpper.setLaveTime(t);
+        }
+
+        return orderServerWarpper;
     }
 
 
@@ -2448,34 +2402,73 @@
         return orderPrivateCarMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
     }
 
-    @Override
-    public Map<String, Object> queryOrderInfo(Integer uid, Integer orderId) throws Exception {
-        Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId);
-        if(null == map){
-            OrderTaxi orderTaxi = orderTaxiService.selectOne(new EntityWrapper<OrderTaxi>()
-                    .eq("userId", uid)
-                    .eq("isDelete", 1)
-                    .in("state", Arrays.asList(2, 3, 4, 5, 6, 7))
-            );
-            return orderTaxiService.queryOrderInfo(orderTaxi.getId());
-        }
-        if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
-            OrderPrivateCar orderPrivateCar = this.selectById(orderId);
-            orderPrivateCar.setReassignNotice(0);
-            this.updateById(orderPrivateCar);
-        }
-        if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
-            map.put("state", map.get("oldState"));
-        }
-        if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){
-            map.put("redPacketMoney", null);
-            map.put("couponMoney", null);
-        }
-
-        String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
-        map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
-        map.put("orderType", 1);
-        return map;
+    public void pushOrder(Integer id, Integer rideType, Integer serverCarModelId, Double startLon, Double startLat) throws Exception{
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    Integer orderType = rideType==1?1:rideType==2?9:8;
+                    orderIds.add(id);//添加记录,防止调用接口重复提醒无人接单
+                    String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
+                    List<Integer> integers = new ArrayList<>();
+                    if(ToolUtil.isNotEmpty(vehicle)){
+                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+                    }
+                    Company query = companyCityService.query(startLon.toString(), startLat.toString());//获取起点所属分公司
+                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
+                    for(int i = 1; i <= querys.size(); i++){
+                        OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
+                        if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
+                            break;
+                        }
+                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
+                        System.out.println("pushOrder:"+pushOrder);
+                        int i2 = pushOrder.getPushTime() / 10;
+                        if(i2==0){
+                            i2=1;
+                        }
+                        for (int i1 = 0; i1 < i2 ; i1++) {
+                            if (orderPrivateCar.getState() > 1) {
+                                break;
+                            }
+                            //获取空闲司机
+                            List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
+                            if (list.size() > 0) {
+                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
+                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                                for (Driver driver : list) {//开始进行推送
+                                    boolean bo = false;
+                                    for (Integer integer : integers) {
+                                        if (integer.compareTo(driver.getId()) == 0) {
+                                            bo = true;
+                                            break;
+                                        }
+                                    }
+                                    if (bo) {
+                                        continue;
+                                    }
+                                    pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
+                                }
+                            }
+                            Thread.sleep(10000);//设置等待时间
+                            Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
+                            if (state > 1) {
+                                orderIds.remove(orderPrivateCar.getId());
+                                break;
+                            }
+                            if (i == querys.size()) {
+                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+                                orderIds.remove(orderPrivateCar.getId());
+                            }
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).start();
     }
 
     @Override
@@ -2483,79 +2476,79 @@
         return orderPrivateCarMapper.queryMyTravelRecord(uid);
     }
 
-
-
     /**
-     * 获取服务中的订单数据
-     * @param uid
-     * @return
+     * 推送抢单数据
+     * @param orderPrivateCar
      * @throws Exception
      */
-    @Override
-    public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
-        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
-        if(null == orderPrivateCar){
-            return orderTaxiService.queryOrderServer(orderId, uid);
-        }
-        //计算预计距离和剩余时间
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
-        if(null == value || "".equals(value)){
-            System.err.println("司机没有上传位置信息");
-
-            //调用获取轨迹中的数据
-            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2);
-            if(list.size() > 0){
-                Map<String, Object> map = list.get(list.size() - 1);
-                value = map.get("lon") + "," + map.get("lat");
+    public void pushOrder(OrderPrivateCar orderPrivateCar) throws Exception{
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    Integer id = orderPrivateCar.getId();
+                    Integer orderType = orderPrivateCar.getRideType()==1?1:orderPrivateCar.getRideType()==2?9:8;
+                    orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
+                    String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
+                    List<Integer> integers = new ArrayList<>();
+                    if(ToolUtil.isNotEmpty(vehicle)){
+                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+                    }
+                    Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
+                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
+                    for(int i = 1; i <= querys.size(); i++){
+                        OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
+                        if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
+                            break;
+                        }
+                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
+                        System.out.println("pushOrder:"+pushOrder);
+                        int i2 = pushOrder.getPushTime() / 10;
+                        if(i2==0){
+                            i2=1;
+                        }
+                        for (int i1 = 0; i1 < i2 ; i1++) {
+                            if (orderPrivateCar.getState() > 1) {
+                                break;
+                            }
+                            //获取空闲司机
+                            List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                            if (list.size() > 0) {
+                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
+                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                                for (Driver driver : list) {//开始进行推送
+                                    boolean bo = false;
+                                    for (Integer integer : integers) {
+                                        if (integer.compareTo(driver.getId()) == 0) {
+                                            bo = true;
+                                            break;
+                                        }
+                                    }
+                                    if (bo) {
+                                        continue;
+                                    }
+                                    pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
+                                }
+                            }
+                            Thread.sleep(10000);//设置等待时间
+                            Integer state = orderPrivateCar.getState();
+                            if (state > 1) {
+                                orderIds.remove(orderPrivateCar.getId());
+                                return;
+                            }
+                            if (i == querys.size() && state == 1) {
+                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+                                orderIds.remove(orderPrivateCar.getId());
+                            }
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
-
-        }
-
-        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
-        orderServerWarpper.setOrderId(orderPrivateCar.getId());
-        orderServerWarpper.setOrderType(1);
-        orderServerWarpper.setState(orderPrivateCar.getState());
-        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
-        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
-        orderServerWarpper.setReassignNotice(orderPrivateCar.getReassignNotice());
-        if(orderPrivateCar.getState() == 2 || orderPrivateCar.getState() == 3){//前往预约地
-            // TODO: 2023/11/4 无法修改
-            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), 1);
-            String d = "0";
-            String t = "0";
-            if(null == distance){
-                System.err.println("查询距离出错了");
-            }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
-                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
-            }
-            orderServerWarpper.setReservationMileage(d);
-            orderServerWarpper.setReservationTime(t);
-            orderServerWarpper.setServedMileage("0");
-            orderServerWarpper.setServedTime("0");
-            orderServerWarpper.setLaveMileage("0");
-            orderServerWarpper.setLaveTime("0");
-        }
-        if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中
-            // TODO: 2023/11/4 无法修改
-            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), 1);
-            String d = "0";
-            String t = "0";
-            if(null == distance){
-                System.err.println("查询距离出错了");
-            }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
-                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
-            }
-            orderServerWarpper.setReservationMileage("0");
-            orderServerWarpper.setReservationTime("0");
-            orderServerWarpper.setServedMileage(String.valueOf((null == orderPrivateCar.getMileage() ? 0 : orderPrivateCar.getMileage()) / 1000));
-            orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000).intValue() + "");
-            orderServerWarpper.setLaveMileage(d);
-            orderServerWarpper.setLaveTime(t);
-        }
-
-        return orderServerWarpper;
+        }).start();
     }
 
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java
index 6284548..1c98b81 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java
@@ -3,7 +3,6 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.stylefeng.guns.core.datascope.DataScope;
 import com.stylefeng.guns.modular.system.model.User;
-import com.unionpay.upyzt.resp.MediaResp;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index ed6484a..904d6e7 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -3,16 +3,15 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.modular.system.dao.DriverMapper;
 import com.stylefeng.guns.modular.system.dao.DriverServiceMapper;
-import com.stylefeng.guns.modular.system.model.Company;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.DriverService;
 import com.stylefeng.guns.modular.system.service.ICompanyCityService;
 import com.stylefeng.guns.modular.system.service.IDriverService;
 import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
 import com.stylefeng.guns.modular.system.util.GeodesyUtil;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -28,9 +27,9 @@
 
     @Resource
     private DriverServiceMapper driverServiceMapper;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private GDMapElectricFenceUtil gdMapElectricFenceUtil;
@@ -56,7 +55,7 @@
         List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId);
         List<Driver> list = new ArrayList<>();
         for(Driver driver : drivers){
-            String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
+            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
             if(null != value){
                 Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
                 double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
@@ -85,7 +84,7 @@
         List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
         List<Driver> list = new ArrayList<>();
         for(Driver driver : drivers){
-            String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
+            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
             if(null != value){
                 Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
                 double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
@@ -102,7 +101,7 @@
         List<Driver> drivers = driverMapper.queryIdleDriver1(type, companyId);
         List<Driver> list = new ArrayList<>();
         for(Driver driver : drivers){
-            String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
+            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId()));
             if(null != value){
                 Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
                 double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
index b2fe1fa..f6f2dea 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
@@ -3,20 +3,17 @@
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.service.INettyService;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
 import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
-import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.List;
 
 
 @Service
@@ -51,11 +48,10 @@
         }
         return ResultUtil.success(endPushWarpper);
     }
-
-
-
-    @Resource
-    private RedisUtil redisUtil;
+	
+	
+	@Resource
+	private RedisTemplate redisTemplate;
 
     /**
      * 获取服务中的订单数据
@@ -82,19 +78,19 @@
 
 
             //从redis中拿取最后的距离参数
-            String value = redisUtil.getValue("DISTANCE:"+orderServerWarpper.getState()+":"+ orderId);
+	        String value = (String) redisTemplate.opsForValue().get("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId);
             if (value==null){
-                redisUtil.setStrValue("DISTANCE:" + orderId,reservationMileage);
+	            redisTemplate.opsForValue().set("DISTANCE:" + orderId, reservationMileage);
                 String s = new BigDecimal(reservationMileage).setScale(2, RoundingMode.HALF_UP).toString();
                 orderServerWarpper.setReservationMileage(s);
             }else {
                 //最近的一次距离
-                String recent = redisUtil.getValue("DISTANCE:"+orderServerWarpper.getState()+":"+orderId);
-                BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP);
+	            String recent = (String) redisTemplate.opsForValue().get("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId);
+	            BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP);
                 BigDecimal bigDecimal = new BigDecimal(reservationMileage).setScale(2, RoundingMode.HALF_UP);
                 if (bigDecimal.compareTo(recentDecimal)<0){
-                    orderServerWarpper.setReservationMileage(bigDecimal.toString());
-                    redisUtil.setStrValue("DISTANCE:" +orderServerWarpper.getState()+":"+ orderId,reservationMileage);
+	                orderServerWarpper.setReservationMileage(bigDecimal.toString());
+	                redisTemplate.opsForValue().set("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId, reservationMileage);
                 }else {
                     orderServerWarpper.setReservationMileage(recentDecimal.toString());
                 }
@@ -103,19 +99,19 @@
         }
         String reservationTime = orderServerWarpper.getReservationTime();
         if (reservationTime!=null){
-            String value = redisUtil.getValue("TIME:"+orderServerWarpper.getState()+":"+ orderId);
+	        String value = (String) redisTemplate.opsForValue().get("TIME:" + orderServerWarpper.getState() + ":" + orderId);
             if (value==null){
-                redisUtil.setStrValue("TIME:" + orderId,reservationTime);
+	            redisTemplate.opsForValue().set("TIME:" + orderId, reservationTime);
                 String s = new BigDecimal(reservationTime).setScale(2, RoundingMode.HALF_UP).toString();
                 orderServerWarpper.setReservationTime(s);
             }else {
                 //最近的一次距离
-                String recent = redisUtil.getValue("TIME:"+orderServerWarpper.getState()+":"+orderId);
-                BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP);
+	            String recent = (String) redisTemplate.opsForValue().get("TIME:" + orderServerWarpper.getState() + ":" + orderId);
+	            BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP);
                 BigDecimal bigDecimal = new BigDecimal(reservationTime).setScale(2, RoundingMode.HALF_UP);
                 if (bigDecimal.compareTo(recentDecimal)<0){
-                    orderServerWarpper.setReservationTime(bigDecimal.toString());
-                    redisUtil.setStrValue("TIME:" +orderServerWarpper.getState()+":"+ orderId,reservationTime);
+	                orderServerWarpper.setReservationTime(bigDecimal.toString());
+	                redisTemplate.opsForValue().set("TIME:" + orderServerWarpper.getState() + ":" + orderId, reservationTime);
                 }else {
                     orderServerWarpper.setReservationTime(recentDecimal.toString());
                 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 09d779c..403529c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -16,6 +16,7 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil;
 import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
 import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
@@ -28,8 +29,8 @@
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
 import javax.crypto.Cipher;
@@ -44,6 +45,7 @@
 import java.security.spec.AlgorithmParameterSpec;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
@@ -56,9 +58,9 @@
 
     @Resource
     private UserActivityInviteMapper userActivityInviteMapper;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private ALiSendSms aLiSendSms;
@@ -154,16 +156,17 @@
                 templateCode = "SMS_154775431";//修改密码
                 break;
         }
-        String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}");
-        JSONObject jsonObject = JSON.parseObject(sData);
-        String message = jsonObject.getString("Message");
-        if(!"OK".equals(message)){
-            System.err.println(message);
-            return ResultUtil.error(message);
-        }
+//        String sData = aLiSendSms.sendSms(phone, "SMS_229715276", "{\"code\":\"" + authCode + "\"}");
+//        JSONObject jsonObject = JSON.parseObject(sData);
+//        String message = jsonObject.getString("Message");
+//        if(!"OK".equals(message)){
+//            System.err.println(message);
+//            return ResultUtil.error(message);
+//        }
+        SMSUtil.sendVerifyCode(phone);
         String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!";
         //发送验证码短信
-        redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
+        redisTemplate.opsForValue().set(phone, authCode, 5, TimeUnit.MINUTES);//设置五分钟过期
         System.out.println("【" + phone + "】" + sms);
         return ResultUtil.success();
     }
@@ -178,7 +181,7 @@
      */
     @Override
     public boolean checkCaptcha(String phone, String code) throws Exception {
-        Object value = redisUtil.getValue(phone);
+        Object value = redisTemplate.opsForValue().get(phone);
         if("1234".equals(code)){
             return true;
         }
@@ -513,7 +516,7 @@
         }
 
         if(type == 2){//小程序登录
-            String value = redisUtil.getValue("appletOpenId");
+            String value = (String) redisTemplate.opsForValue().get("appletOpenId");
             JSONObject jsonObject = null;
             if(ToolUtil.isNotEmpty(value)){
                 jsonObject = JSON.parseObject(value);
@@ -521,7 +524,7 @@
                 jsonObject = new JSONObject();
             }
             jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId());
-            redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+            redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString());
         }
 
         //调用单点登录的逻辑
@@ -650,7 +653,7 @@
         }
 
         if(type == 2){//小程序登录
-            String value = redisUtil.getValue("appletOpenId");
+            String value = (String) redisTemplate.opsForValue().get("appletOpenId");
             JSONObject jsonObject = null;
             if(ToolUtil.isNotEmpty(value)){
                 jsonObject = JSON.parseObject(value);
@@ -658,7 +661,7 @@
                 jsonObject = new JSONObject();
             }
             jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId());
-            redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+            redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString());
         }
 
         //调用单点登录的逻辑
@@ -796,7 +799,7 @@
             this.updateById(userInfo1);
 
             if(ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")){//小程序登录后绑定手机号码
-                String value = redisUtil.getValue("appletOpenId");
+                String value = (String) redisTemplate.opsForValue().get("appletOpenId");
                 JSONObject jsonObject = null;
                 if(ToolUtil.isNotEmpty(value)){
                     jsonObject = JSON.parseObject(value);
@@ -805,7 +808,7 @@
                     jsonObject = new JSONObject();
                 }
                 jsonObject.put(userInfo1.getId().toString(), userInfo.getAppletsOpenId());
-                redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+                redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString());
             }
 
 
@@ -871,7 +874,7 @@
             }else{
                 key = requestHeader;
             }
-            String value = redisUtil.getValue(key);
+            String value = (String) redisTemplate.opsForValue().get(key);
             return null != value ? Integer.valueOf(value) : null;
         }else{
             return null;
@@ -931,7 +934,7 @@
             return ResultUtil.error("支付金额必须大于0元");
         }
         if(payType == 1){//微信支付
-            String value = redisUtil.getValue("appletOpenId");
+            String value = (String) redisTemplate.opsForValue().get("appletOpenId");
             String appletsOpenId = null;
             if(ToolUtil.isNotEmpty(value)){
                 JSONObject jsonObject = JSON.parseObject(value);
@@ -1150,7 +1153,7 @@
         String openid = map.get("openid");
         String unionid = map.get("unionid");
         //将当前小程序openid存储到缓存中用后面的支付时使用
-        String value = redisUtil.getValue("appletOpenId");
+        String value = (String) redisTemplate.opsForValue().get("appletOpenId");
         JSONObject jsonObject = null;
         if(ToolUtil.isNotEmpty(value)){
             jsonObject = JSON.parseObject(value);
@@ -1158,7 +1161,7 @@
             jsonObject = new JSONObject();
         }
         jsonObject.put(userId.toString(), openid);
-        redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+        redisTemplate.opsForValue().set("appletOpenId", jsonObject.toJSONString());
         return ResultUtil.success();
     }
 
@@ -1348,33 +1351,22 @@
         return "JYX" + String.valueOf(num).substring(1);
     }
 
-
     /**
-     * 获取token
-     * @param userInfo
-     * @param password
-     * @return
+     * 单点登录
+     * @param id
      */
-    private String getToken(UserInfo userInfo, String password,String type) throws Exception{
+    private void singlePointLogin(Integer id,String type) throws Exception{
         if(ToolUtil.isEmpty(type))type="APP";
-        //封装请求账号密码为shiro可验证的token
-        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray());
-        String credentials = userInfo.getPassWord();
-        ByteSource credentialsSalt = new Md5Hash(salt);
-        SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
-                new ShiroUser(), credentials, credentialsSalt, "");
-
-        //校验用户账号密码
-        HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
-        md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
-        md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
-        boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
-                usernamePasswordToken, simpleAuthenticationInfo);
-        String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId()));
-        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180 * 24 * 60 * 60);
-        redisUtil.setStrValue("USER_"+type+"_" + userInfo.getPhone(), s.substring(s.length() - 32));
-        redisUtil.setStrValue("USER_"+type +"_"+ userInfo.getId(), s);
-        return s;
+        //开始验证当前账号是否在别处登录
+        String value = (String) redisTemplate.opsForValue().get("USER_" + type + "_" + id);
+        if(ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线
+            //开始清除redis中无效的数据
+            UserInfo userInfo = userInfoMapper.selectById(id);
+            String key = (String) redisTemplate.opsForValue().get("USER_" + type + "_" + userInfo.getPhone());
+            redisTemplate.delete(key);//删除个人信息数据
+            redisTemplate.delete("USER_" + type + "_" + userInfo.getPhone());//删除后台冻结相关缓存
+            redisTemplate.delete("USER_" + type + "_" + id);//清除存储的token
+        }
     }
 
 
@@ -1438,23 +1430,32 @@
         }
     }
 
-
     /**
-     * 单点登录
-     * @param id
+     * 获取token
+     * @param userInfo
+     * @param password
+     * @return
      */
-    private void singlePointLogin(Integer id,String type) throws Exception{
+    private String getToken(UserInfo userInfo, String password,String type) throws Exception{
         if(ToolUtil.isEmpty(type))type="APP";
-        //开始验证当前账号是否在别处登录
-        String value = redisUtil.getValue("USER_"+type+"_" + id);
-        if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线
-            //开始清除redis中无效的数据
-            UserInfo userInfo = userInfoMapper.selectById(id);
-            String key = redisUtil.getValue("USER_"+type+"_" + userInfo.getPhone());
-            redisUtil.remove(key);//删除个人信息数据
-            redisUtil.remove("USER_"+type+"_" + userInfo.getPhone());//删除后台冻结相关缓存
-            redisUtil.remove("USER_"+type+"_" + id);//清除存储的token
-        }
+        //封装请求账号密码为shiro可验证的token
+        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray());
+        String credentials = userInfo.getPassWord();
+        ByteSource credentialsSalt = new Md5Hash(salt);
+        SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
+                new ShiroUser(), credentials, credentialsSalt, "");
+    
+        //校验用户账号密码
+        HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
+        md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
+        md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
+        boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
+                usernamePasswordToken, simpleAuthenticationInfo);
+        String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId()));
+        redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getPhone(), s.substring(s.length() - 32));
+        redisTemplate.opsForValue().set("USER_" + type + "_" + userInfo.getId(), s);
+        return s;
     }
 
     @Override
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java
index 9ce6cff..94d1a6b 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserMerchantCouponServiceImpl.java
@@ -4,7 +4,6 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
@@ -16,7 +15,6 @@
 import com.stylefeng.guns.modular.system.dao.UserMerchantCouponMapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.RedisUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.util.UUIDUtil;
 import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper;
@@ -25,6 +23,7 @@
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -62,9 +61,9 @@
 
     @Autowired
     private IUserInfoService userInfoService;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
 
 
@@ -238,7 +237,7 @@
     @Override
     public synchronized List<MerchantCouponListWarpper> getMerchantCoupon(Integer uid) throws Exception {
         UserInfo userInfo = userInfoService.selectById(uid);
-        String value = redisUtil.getValue("merchantVoucher");
+        String value = (String) redisTemplate.opsForValue().get("merchantVoucher");
         List<MerchantCouponListWarpper> listWarppers = new ArrayList<>();
         if(ToolUtil.isNotEmpty(value)){
             JSONObject jsonObject = JSON.parseObject(value);
@@ -247,7 +246,7 @@
                 listWarppers = jsonArray.toJavaList(MerchantCouponListWarpper.class);
             }
             jsonObject.put(userInfo.getPhone(), new JSONArray());
-            redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString());
+            redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString());
         }
 
         return listWarppers;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
index 81dd3e4..76702c5 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
@@ -21,8 +21,8 @@
     // 设置鉴权参数,初始化客户端
     private DefaultProfile profile = DefaultProfile.getProfile(
             "cn-hangzhou",// 地域ID
-            "LTAI5tCeHnZXREQBcVf3NHLB",// 您的AccessKey ID
-            "OEX6AtRb3qOCyp53xOFdDEYgBjzZzS");// 您的AccessKey Secret
+            "111",// 您的AccessKey ID
+            "111");// 您的AccessKey Secret
     private IAcsClient client = new DefaultAcsClient(profile);
 
     private static void log_print(String functionName, Object result) {
@@ -70,7 +70,7 @@
         // 接收短信的手机号码
         request.putQueryParameter("PhoneNumbers", phone);
         // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
-        request.putQueryParameter("SignName", "嘉易行");
+        request.putQueryParameter("SignName", "黔云通");
         // 短信模板ID
         request.putQueryParameter("TemplateCode", templateCode);
         // 短信模板变量对应的实际值,JSON格式。
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java
index e917145..2873a48 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java
@@ -1,8 +1,11 @@
 package com.stylefeng.guns.modular.system.util;
 
 import com.alibaba.fastjson.JSON;
-import com.aliyun.dyplsapi20170525.models.*;
-import com.aliyun.teaopenapi.models.*;
+import com.aliyun.dyplsapi20170525.models.BindAxbRequest;
+import com.aliyun.dyplsapi20170525.models.BindAxbResponse;
+import com.aliyun.dyplsapi20170525.models.UnbindSubscriptionRequest;
+import com.aliyun.dyplsapi20170525.models.UnbindSubscriptionResponse;
+import com.aliyun.teaopenapi.models.Config;
 import org.springframework.stereotype.Component;
 
 import java.text.SimpleDateFormat;
@@ -16,11 +19,11 @@
 @Component
 public class ChinaMobileUtil {
 
-    private String accessKeyId = "LTAI5tCeHnZXREQBcVf3NHLB";
-
-    private String accessKeySecret = "OEX6AtRb3qOCyp53xOFdDEYgBjzZzS";
-
-    private String poolKey = "FC100000145494178";//号码池KEY
+    private String accessKeyId = "111";
+    
+    private String accessKeySecret = "111";
+    
+    private String poolKey = "111";//号码池KEY
 
 
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
index 26e63e3..1085e06 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
@@ -21,7 +21,7 @@
 @Component
 public class GDFalconUtil implements ApplicationRunner {
 
-    private String key = "ba2915f8d8c1428df72e964a5f94f167";
+    private String key = "ea7326a77175aba0e9435859b17bca36";
 
     @Autowired
     private RestTemplate restTemplate;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
index a9977ff..55f52f0 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -4,8 +4,6 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.stylefeng.guns.core.util.ToolUtil;
-//import com.stylefeng.guns.modular.system.model.GDFence;
-//import com.stylefeng.guns.modular.system.service.IGDFenceService;
 import com.stylefeng.guns.modular.system.service.IGDInterfaceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -33,7 +31,7 @@
     @Autowired
     private IGDInterfaceService gdInterfaceService;
 
-    private String key = "ba2915f8d8c1428df72e964a5f94f167";
+    private String key = "ea7326a77175aba0e9435859b17bca36";
 
     private JSONArray jsonArray = new JSONArray();
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
index 81d4642..27ba2ba 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -20,7 +20,7 @@
 @Component
 public class GDMapGeocodingUtil {
 
-    private String key = "ba2915f8d8c1428df72e964a5f94f167";
+    private String key = "ea7326a77175aba0e9435859b17bca36";
 
     @Autowired
     private RestTemplate restTemplate;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index dca1aa4..d12b3f9 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -10,6 +10,7 @@
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -31,9 +32,9 @@
 
     @Autowired
     private RestTemplate internalRestTemplate;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private IOrderTaxiService orderTaxiService;
@@ -154,9 +155,9 @@
         JSONObject data = new JSONObject();
         data.put("id", userId);
         data.put("type", 1);
-        String str = redisUtil.getValue(orderId + "_" + orderType);
+        String str = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType);
         if(ToolUtil.isEmpty(str)){
-            redisUtil.setStrValue(orderId + "_" + orderType, data.toJSONString());
+            redisTemplate.opsForValue().set(orderId + "_" + orderType, data.toJSONString());
             createTask(orderId, orderType);
         }
     }
@@ -244,7 +245,7 @@
         }
 
         //计算预计距离和剩余时间
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(driverId));
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driverId));
         if(null == value || "".equals(value)){
             return;
         }
@@ -303,7 +304,7 @@
         // 以表单的方式提交
         headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
         //将请求头部和参数合成一个请求
-        String value1 = redisUtil.getValue(orderId + "_" + orderType);
+        String value1 = (String) redisTemplate.opsForValue().get(orderId + "_" + orderType);
         if(ToolUtil.isEmpty(value1)){
             this.removeTask(orderId, orderType);
             return;
@@ -399,7 +400,7 @@
         if (null != timer){
             timer.cancel();
             taskMap.remove(orderId + "_" + orderType);
-            redisUtil.remove(orderId + "_" + orderType);
+            redisTemplate.delete(orderId + "_" + orderType);
         }
     }
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
deleted file mode 100644
index 22f75e6..0000000
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package com.stylefeng.guns.modular.system.util;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.stylefeng.guns.core.util.ToolUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Component;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.client.RestTemplate;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisPool;
-
-
-/**
- * Redis工具类
- */
-@Component
-public class RedisUtil {
-
-    @Autowired
-    private RestTemplate internalRestTemplate;
-
-
-    /**
-     * 向redis中存储字符串没有过期时间
-     * @param key
-     * @param value
-     */
-    public void setStrValue(String key, String value){
-        if(ToolUtil.isNotEmpty(key)){
-            //发送验证码短信
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            params.add("value", value);
-            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue_", requestEntity, String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-        }
-
-    }
-
-
-    /**
-     * 以分钟为单位设置存储值(设置过期时间)
-     * @param key
-     * @param value
-     * @param time 秒
-     */
-    public void setStrValue(String key, String value, int time){
-        if(ToolUtil.isNotEmpty(key)){
-            //发送验证码短信
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            params.add("value", value);
-            params.add("time", String.valueOf(time));
-            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue", requestEntity, String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-        }
-    }
-
-
-    /**
-     * 从redis中获取值
-     * @param key
-     * @return
-     */
-    public String getValue(String key){
-        if(ToolUtil.isNotEmpty(key)){
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/getValue",requestEntity , String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-            return jsonObject.getString("data");
-        }
-        return null;
-    }
-
-
-    /**
-     * 删除key
-     * @param key
-     */
-    public String remove(String key){
-        if(ToolUtil.isNotEmpty(key)){
-            HttpHeaders headers = new HttpHeaders();
-            // 以表单的方式提交
-            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-            //将请求头部和参数合成一个请求
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.add("key", key);
-            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/remove",requestEntity , String.class);
-            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
-            if(jsonObject.getIntValue("code") != 200){
-                System.err.println("调用redis出错了");
-            }
-            return jsonObject.getString("data");
-        }
-        return null;
-    }
-}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index cb8be36..bcec77b 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,32 +1,16 @@
 package com.stylefeng.guns.modular.system.util;
 
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.account.controller.AppOrderController;
-import com.stylefeng.guns.modular.account.util.Base64Util;
-import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
-import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
-import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
-import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
-import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
 import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService;
-import com.stylefeng.guns.modular.system.service.IUserTaxiCardService;
-import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import com.unionpay.upyzt.exception.UpyztException;
-import com.unionpay.upyzt.resp.AllocationResp;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 
 /**
@@ -84,36 +68,6 @@
      */
     @Scheduled(fixedRate = 1000 * 60)
     public void taskDay(){
-        try {
-            List<Integer> integers = Arrays.asList(8, 9, 10, 12);
-            // 获取快车的已完成订单
-            List<OrderPrivateCar> status = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().in("state", integers));
-            for (OrderPrivateCar orderPrivateCar : status) {
-                chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX(),10000l);
-            }
-
-            // 获取出租车订单
-            List<OrderTaxi> status1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().in("state", integers));
-            for (OrderTaxi orderTaxi : status1) {
-                chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX(),10000l);
-            }
-
-            // 获取跨城出行订单
-            List<OrderCrossCity> status2 = orderCrossCityService.selectList(new EntityWrapper<OrderCrossCity>().eq("state", integers));
-            for (OrderCrossCity orderCrossCity : status2) {
-                chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX(),10000l);
-            }
-
-            // 获取小件物流订单
-            List<OrderLogistics> status3 = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("state", Arrays.asList(6,10)));
-            for (OrderLogistics orderLogistics : status3) {
-                chinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindId(),orderLogistics.getTelX(),10000l);
-                chinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindIdOne(),orderLogistics.getTelXOne(),10000l);
-            }
-
-        }catch (Exception e){
-            e.printStackTrace();
-        }
     }
 
 
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
new file mode 100644
index 0000000..2366416
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -0,0 +1,207 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+import com.alibaba.fastjson.JSON;
+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.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 企业员工工具类
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:17
+ */
+@Slf4j
+public class EmployeeUtil {
+	
+	
+	/**
+	 * 企业增加员工
+	 * @param request
+	 * @return
+	 */
+	public static SaveStaffNode saveStaffNode(SaveStaffNodeRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/saveStaffNode";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【企业增加员工】请求地址:" + url);
+		log.info("【企业增加员工】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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());
+		}
+		SaveStaffNode saveStaffNode = jsonObject.getObject("object", SaveStaffNode.class);
+		return saveStaffNode;
+	}
+	
+	
+	/**
+	 * 企业修改员工信息
+	 * @param request
+	 * @return
+	 */
+	public static Boolean editStaffNode(EditStaffNodeRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/editStaffNode";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【企业修改员工信息】请求地址:" + url);
+		log.info("【企业修改员工信息】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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;
+	}
+	
+	
+	/**
+	 * 企业删除人员
+	 * @param request
+	 * @return
+	 */
+	public static Boolean ecrmDeleteStafNode(DeleteStafNodeRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/ecrmDeleteStafNode";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【企业删除人员】请求地址:" + url);
+		log.info("【企业删除人员】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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;
+	}
+	
+	
+	/**
+	 * 根据员工ID获取人员信息
+	 * @param request
+	 * @return
+	 */
+	public static StaffNodeInfo getStaffNode(GetStaffNodeRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getStaffNode";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【根据员工ID获取人员信息】请求地址:" + url);
+		log.info("【根据员工ID获取人员信息】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【根据员工ID获取人员信息】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String retCode = jsonObject.getString("retCode");
+		if (!"0".equals(retCode)) {
+			log.error("【根据员工ID获取人员信息】请求失败:" + result);
+			throw new RuntimeException("【根据员工ID获取人员信息】请求失败:" + result);
+		}
+		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());
+		}
+		StaffNodeInfo staffNodeInfo = object.getObject("data", StaffNodeInfo.class);
+		return staffNodeInfo;
+	}
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
new file mode 100644
index 0000000..bdc9694
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EnterpriseUtil.java
@@ -0,0 +1,252 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+import com.alibaba.fastjson.JSON;
+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.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 企业工具类
+ *
+ * @author zhibing.pu
+ * @Date 2025/6/6 17:06
+ */
+@Slf4j
+public class EnterpriseUtil {
+	
+	
+	/**
+	 * 根据社会信用代码判断企业是否已存在
+	 *
+	 * @param uscc
+	 * @return
+	 */
+	public static CheckEnterExist checkEnterExistByEnterIdCardNo(String uscc) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/check_enter_exist_by_enterIdCardNo";
+		//私钥文件
+		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<>();
+		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", "{\"uscc\":\"" + uscc + "\"}");
+		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 jsonObject.getObject("object", CheckEnterExist.class);
+	}
+	
+	
+	/**
+	 * 根据企业名称判断企业是否已存在
+	 *
+	 * @param enterName
+	 * @return
+	 */
+	public static CheckEnterExist checkEnterNameExist(String enterName) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/checkEnterNameExist";
+		//私钥文件
+		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<>();
+		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", "{\"enterName\":\"" + enterName + "\"}");
+		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 jsonObject.getObject("object", CheckEnterExist.class);
+	}
+	
+	
+	/**
+	 * 查询企业详情
+	 *
+	 * @param enter_code 企业编号
+	 * @return
+	 */
+	public static EnterpriseInfo getEnterpriseDetail(String enter_code) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getEnterpriseDetail";
+		//私钥文件
+		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<>();
+		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", "{\"enter_code\":\"" + enter_code + "\"}");
+		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());
+		}
+		EnterpriseInfo enterpriseInfo = jsonObject.getObject("object", EnterpriseInfo.class);
+		return enterpriseInfo;
+	}
+	
+	
+	/**
+	 * 修改企业基本信息
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static Boolean modifyEnterpriseInfo(ModifyEnterpriseInfoRequest request) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyEnterpriseInfo";
+		//私钥文件
+		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<>();
+		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", new Gson().toJson(request));
+		log.info("【修改企业基本信息】请求地址:" + url);
+		log.info("【修改企业基本信息】请求参数:" + JSON.toJSONString(map));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, map);
+		log.info("【修改企业基本信息】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String status = jsonObject.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【修改企业基本信息】请求失败:" + result);
+			return false;
+		}
+		return true;
+	}
+	
+	
+	/**
+	 * 创建企业
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static CreateEnterprise createEnterprise(CreateEnterpriseRequest request) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createEnterprise";
+		//私钥文件
+		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>();
+		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", new Gson().toJson(request));
+		
+		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);
+			return null;
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【创建企业】请求失败:" + result);
+			return null;
+		}
+		return object.getObject("data", CreateEnterprise.class);
+	}
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
new file mode 100644
index 0000000..bff8650
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+/**
+ * 黔云通配置
+ * @author zhibing.pu
+ * @Date 2025/6/6 15:03
+ */
+public interface QianYunTongProperties {
+	/**
+	 * appkey
+	 */
+	String appkey = "10001104";
+	/**
+	 * 私钥地址
+	 */
+	String privateKeyPath = "E:\\IDEA Workspaces\\QianYunTong\\private_key_test.pem";
+	/**
+	 * 消费者账号
+	 */
+	String userName = "xiaofei";
+	/**
+	 * 状态
+	 * 1:生产环境
+	 * 2:测试环境
+	 */
+	String status = "1";
+	/**
+	 * API地址
+	 */
+	String apiUrl = "https://test-zhongtai.stqcloud.com:10070";
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
new file mode 100644
index 0000000..131392f
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
@@ -0,0 +1,67 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.open.common.util.OpenApiClient;
+import com.open.common.util.SystemParameterNames;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 短信工具类
+ * @author zhibing.pu
+ * @Date 2025/6/10 10:48
+ */
+@Slf4j
+public class SMSUtil {
+	
+	
+	/**
+	 * 获取易信验证码
+	 * @param mobile
+	 * @return
+	 */
+	public static String sendVerifyCode(String mobile) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/sendVerifyCode";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", "{\"mobile\":\"" + mobile + "\"}");
+		log.info("【获取易信验证码】请求地址:" + url);
+		log.info("【获取易信验证码】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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 object.getString("code");
+	}
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
new file mode 100644
index 0000000..6dfe5af
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
@@ -0,0 +1,214 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+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.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 用户工具类
+ *
+ * @author zhibing.pu
+ * @Date 2025/6/6 14:47
+ */
+@Slf4j
+public class UserUtil {
+	
+	
+	/**
+	 * 根据手机号码获取人员信息
+	 *
+	 * @param mobile   手机号码
+	 * @param enterNum 企业编号
+	 */
+	public static List<QYTUserInfo> getUserInfoByPhone(String mobile, String enterNum) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getUserInfoByPhone";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		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));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap);
+		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());
+		}
+		JSONArray data = object.getJSONArray("data");
+		List<QYTUserInfo> list = new ArrayList<>();
+		for (int i = 0; i < data.size(); i++) {
+			data.getJSONObject(i).getString("enter_code");
+			QYTUserInfo userInfo = data.getObject(i, QYTUserInfo.class);
+			list.add(userInfo);
+		}
+		return list;
+	}
+	
+	
+	/**
+	 * 根据手机号注册用户
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static RegisterViaMobile registerViaMobile(RegisterViaMobileRequest request) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/m1_register_via_mobile";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【根据手机号注册用户】请求地址:" + url);
+		log.info("【根据手机号注册用户】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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 jsonObject.getObject("object", RegisterViaMobile.class);
+	}
+	
+	
+	/**
+	 * 易信用户修改密码
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static Boolean modifyPwd(ModifyPwdRequest request) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyPwd";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【易信用户修改密码】请求地址:" + url);
+		log.info("【易信用户修改密码】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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;
+	}
+	
+	
+	/**
+	 * 易信重置密码
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static Boolean resetPwd(ResetPwdRequest request) {
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/resetPwd";
+		//私钥文件
+		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> contentMap = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
+		contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
+		contentMap.put("content", new Gson().toJson(request));
+		log.info("【易信重置密码】请求地址:" + url);
+		log.info("【易信重置密码】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+		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/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java
new file mode 100644
index 0000000..837dd93
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CheckEnterExist.java
@@ -0,0 +1,40 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 18:12
+ */
+@Data
+public class CheckEnterExist {
+	/**
+	 * 企业ID
+	 */
+	private String id;
+	/**
+	 * 是否在公有云注册,1:已注册;0:未注册
+	 */
+	private String isReg;
+	/**
+	 * 创建者手机号
+	 */
+	private String mobile;
+	/**
+	 * 创建时间
+	 */
+	private String createTime;
+	/**
+	 * 法人姓名
+	 */
+	private String larName;
+	/**
+	 * 企业编码
+	 */
+	private String enterCode;
+	/**
+	 * 认证状态
+	 * 0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中
+	 */
+	private Integer auth;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java
new file mode 100644
index 0000000..579c4db
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterprise.java
@@ -0,0 +1,46 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/9 19:43
+ */
+@Data
+public class CreateEnterprise {
+	/**
+	 * 企业ID
+	 */
+	private String id;
+	/**
+	 * 开通易信状态
+	 * 0:成功 1:失败
+	 */
+	private String callYixinApi;
+	/**
+	 * 开通办公门户状态
+	 * 0:成功 1:失败
+	 */
+	private String callItdSaveCompany;
+	/**
+	 * 开通企业官网状态
+	 * 0:成功 1:失败
+	 */
+	private String callItdDredgeWebsite;
+	/**
+	 * 电话号码
+	 */
+	private String phone;
+	/**
+	 * 企业idcode
+	 */
+	private String idCode;
+	/**
+	 * 企业节点ID
+	 */
+	private String noteId;
+	/**
+	 * 是否新注册企业
+	 */
+	private String isNew;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java
new file mode 100644
index 0000000..ab18fe9
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java
@@ -0,0 +1,118 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/9 18:20
+ */
+@Data
+public class CreateEnterpriseRequest {
+	/**
+	 * 企业名称
+	 */
+	private String name;
+	/**
+	 * 企业简称/昵称
+	 */
+	private String nickName;
+	/**
+	 * 行业编码
+	 */
+	private String industry_code;
+	/**
+	 * 手机号码
+	 */
+	private String mobile;
+	/**
+	 * 区域编码
+	 */
+	private String area;
+	/**
+	 * 企业地址
+	 */
+	private String address;
+	/**
+	 * 二级域名
+	 */
+	private String secondRealmName;
+	/**
+	 * 企业密码
+	 */
+	private String password;
+	/**
+	 * 一级行业分类描述
+	 */
+	private String industry_level1;
+	/**
+	 * 二级行业分类描述
+	 */
+	private String industry_level2;
+	/**
+	 * 企业来源编码
+	 */
+	private String sourceCode;
+	/**
+	 * 企业分类编码
+	 */
+	private String typeCode;
+	/**
+	 * 代理商id
+	 */
+	private String elecsId;
+	/**
+	 * 是否发送短信
+	 * 0:不发送,1:发送
+	 */
+	private String smsFlag;
+	/**
+	 * 是否激活
+	 * 1:激活;0:未激活
+	 */
+	private String mobileFlag;
+	/**
+	 * 邮箱
+	 */
+	private String email;
+	/**
+	 * 邮箱是否激活
+	 * 1:激活;0:未激活
+	 */
+	private String emailFlag;
+	/**
+	 * 是否同步通讯录
+	 */
+	private String contact_source;
+	/**
+	 * 所属行业通用编码
+	 */
+	private String trade_code;
+	/**
+	 * 营业执照扫描件url
+	 */
+	private String operScanPic;
+	/**
+	 * 运营人员姓名
+	 */
+	private String idcardName;
+	/**
+	 * 运营者身份证号码
+	 */
+	private String idcardNum;
+	/**
+	 * 运营者身份证照片url
+	 */
+	private String idcardPic;
+	/**
+	 * 企业工号
+	 */
+	private String enterID;
+	/**
+	 * 推荐人
+	 */
+	private String recommender;
+	/**
+	 * 创建者姓名
+	 */
+	private String creatorName;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
new file mode 100644
index 0000000..0115407
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:39
+ */
+@Data
+public class DeleteStafNodeRequest {
+	/**
+	 * 人员ID
+	 */
+	private Long empId;
+	/**
+	 * 手机号
+	 */
+	private String mobile;
+	/**
+	 * 企业编号
+	 */
+	private String entercode;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java
new file mode 100644
index 0000000..9d3e3eb
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java
@@ -0,0 +1,72 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:32
+ */
+@Data
+public class EditStaffNodeRequest {
+	/**
+	 * 人员ID
+	 */
+	private Integer empId;
+	/**
+	 * 操作人手机号
+	 */
+	private String mobile;
+	/**
+	 * 操作人企业ID
+	 */
+	private String entercode;
+	/**
+	 * 企业ID
+	 */
+	private Long enterId;
+	/**
+	 * 人员显示名
+	 */
+	private String empName;
+	/**
+	 * 人员显示名
+	 */
+	private String empNickname;
+	/**
+	 * 手机号
+	 */
+	private String mphone;
+	/**
+	 * 登录账号
+	 */
+	private String loginNo;
+	/**
+	 * 人员性别(男\女)
+	 */
+	private String empSex;
+	/**
+	 * 人员邮箱
+	 */
+	private String email;
+	/**
+	 * 员工所属部门ID多个部门英文; 分割
+	 */
+	private Integer deptId;
+	/**
+	 * 员工职务ID
+	 */
+	private Integer positionId;
+	/**
+	 * 员工职务名称,如不知道ID可以直接传入名称
+	 */
+	private String positionName;
+	/**
+	 * 高管模式 1 是 0 不是
+	 */
+	private Integer superLevel;
+	/**
+	 * 隐藏号码 1 是 0 不是
+	 */
+	private Integer hideMobile;
+	
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java
new file mode 100644
index 0000000..476dc50
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/EnterpriseInfo.java
@@ -0,0 +1,259 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 17:14
+ */
+@Data
+public class EnterpriseInfo {
+	/**
+	 * 企业ID
+	 */
+	private String id;
+	/**
+	 * 企业编号
+	 */
+	private String enter_code;
+	/**
+	 * 企业名称
+	 */
+	private String enter_name;
+	/**
+	 * 是否是全员号码可见,0:是,1:否
+	 */
+	private String visible;
+	/**
+	 * 认证状态,0:已认证;1:未认证,初始状态;2:认证不通过;3:认证中
+	 */
+	private String auth;
+	/**
+	 * 认证时间
+	 */
+	private String auth_time;
+	/**
+	 * 认证注释
+	 */
+	private String authRemark;
+	/**
+	 * 运营者姓名(委托人)
+	 */
+	private String idcard_name;
+	/**
+	 * 运营者证件号
+	 */
+	private String idcard_num;
+	/**
+	 * 运营者证件扫描件URL
+	 */
+	private String idcard_pic;
+	/**
+	 * 统一社会信用代码
+	 */
+	private String uscc;
+	/**
+	 * 法人姓名
+	 */
+	private String larName;
+	/**
+	 * 法人电话
+	 */
+	private String larPhone;
+	/**
+	 * 法人身份证
+	 */
+	private String larIdCard;
+	/**
+	 * 法人身份证扫描件URL
+	 */
+	private String larIdCardPic;
+	/**
+	 * 发票名称
+	 */
+	private String invoiceName;
+	/**
+	 * 纳税人识别号(发票)
+	 */
+	private String invoiceTIN;
+	/**
+	 * 开户行名称(发票)
+	 */
+	private String invoiceBankersName;
+	/**
+	 * 开户行账号(发票)
+	 */
+	private String invoiceBankersAccount;
+	/**
+	 * 资质机构名称
+	 */
+	private String qualificationOrgName;
+	/**
+	 * 资质注册号/登记号
+	 */
+	private String qualificationRegNum;
+	/**
+	 * 资质有效开始时间
+	 */
+	private String qualificationStartTime;
+	/**
+	 * 资质有效结束时间
+	 */
+	private String qualificationEndTime;
+	/**
+	 * 资格证书扫描件URL
+	 */
+	private String qualificationCertUrl;
+	/**
+	 * 省份编码
+	 */
+	private String provinceCode;
+	/**
+	 * 地市编码
+	 */
+	private String cityCode;
+	/**
+	 * 区县编码
+	 */
+	private String areaCode;
+	/**
+	 * 乡镇编码
+	 */
+	private String townshipCode;
+	/**
+	 * 企业创建时间
+	 */
+	private String enter_createdate;
+	/**
+	 * 地址
+	 */
+	private String address;
+	/**
+	 * 营业期开始时间,格式:yyyy-MM-dd HH:mm:ss
+	 */
+	private String businessTermStartTime;
+	/**
+	 * 营业期结束时间,格式:yyyy-MM-dd HH:mm:ss
+	 */
+	private String businessTermEndTime;
+	/**
+	 * 企业规模
+	 */
+	private String enterScale;
+	/**
+	 * 创建者职位
+	 */
+	private String creatorPosition;
+	/**
+	 * 企业备注/介绍
+	 */
+	private String enterRemark;
+	/**
+	 * 企业logo
+	 */
+	private String enterLogo;
+	/**
+	 * 企业邮箱
+	 */
+	private String enterEmail;
+	/**
+	 * 企业联系电话rg_company_info.enter_tel
+	 */
+	private String enterTel;
+	/**
+	 * 一级行业分类编码
+	 */
+	private String industryStr;
+	/**
+	 * 二级行业分类编码
+	 */
+	private String industryStr2;
+	/**
+	 * 企业联系人姓名
+	 */
+	private String enterLinkman;
+	/**
+	 * 营业执照扫描件ur
+	 */
+	private String operScanPic;
+	/**
+	 * 身份证有效期
+	 */
+	private String larIdCardValidity;
+	/**
+	 * 经营地址
+	 */
+	private String operationAddress;
+	/**
+	 * 法人身份证背面照片
+	 */
+	private String larIdCardPicBack;
+	/**
+	 * 法人身份证手持
+	 */
+	private String larIdCardPicHold;
+	/**
+	 * 开户许可证
+	 */
+	private String accountOpeningPermit;
+	/**
+	 * 自定义的,例如:企业类型
+	 */
+	private String tag1;
+	/**
+	 * 自定义的,例如:行业类型
+	 */
+	private String tag2;
+	/**
+	 * 企业扩展信息
+	 */
+	private String iformContentId;
+	/**
+	 * 国家统计局网站提供的行政地区编码
+	 */
+	private String area;
+	/**
+	 * 行业编码
+	 */
+	private String industryCode;
+	/**
+	 * 企业创建人姓名
+	 */
+	private String creatorName;
+	/**
+	 * 企业创建人手机号
+	 */
+	private String creatorMobile;
+	/**
+	 * 管理员邮箱
+	 */
+	private String email;
+	/**
+	 * 企业简称
+	 */
+	private String enterAbbreviation;
+	/**
+	 * 营业期限
+	 */
+	private String businessTermLong;
+	/**
+	 * 一级行业名称
+	 */
+	private String industryL1Name;
+	/**
+	 * 二级行业名称
+	 */
+	private String industryL2Name;
+	/**
+	 * 企业介绍(全文本)
+	 */
+	private String enterIntro;
+	/**
+	 * 法人身份证正面照片
+	 */
+	private String larIdCardPicFront;
+	/**
+	 * 企业主税机关
+	 */
+	private String enterTaxAuthority;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
new file mode 100644
index 0000000..aab260b
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:42
+ */
+@Data
+public class GetStaffNodeRequest {
+	/**
+	 * 人员ID
+	 */
+	private Long empId;
+	/**
+	 * 操作人手机号
+	 */
+	private String mobile;
+	/**
+	 * 操作人企业ID
+	 */
+	private String entercode;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java
new file mode 100644
index 0000000..8f73990
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java
@@ -0,0 +1,75 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/9 18:13
+ */
+@Data
+public class ModifyEnterpriseInfoRequest {
+	/**
+	 * 企业编码
+	 */
+	private String enter_code;
+	/**
+	 * 操作人员手机号
+	 */
+	private String operator;
+	/**
+	 * 企业名称
+	 */
+	private String enter_name;
+	/**
+	 * 企业简称
+	 */
+	private String enter_nickname;
+	/**
+	 * 企业地址
+	 */
+	private String enter_address;
+	/**
+	 * 企业邮箱
+	 */
+	private String enter_email;
+	/**
+	 * 联系人姓名
+	 */
+	private String contact_name;
+	/**
+	 * 联系人手机号
+	 */
+	private String contact_mobile;
+	/**
+	 * 营业执照扫描件URL
+	 */
+	private String operscanpic;
+	/**
+	 * 营业期开始时间
+	 */
+	private String businessTermStartTime;
+	/**
+	 * 营业期结束时间
+	 */
+	private String businessTermEndTime;
+	/**
+	 * 区域编码
+	 */
+	private String area;
+	/**
+	 * 二级域名
+	 */
+	private String second_realms;
+	/**
+	 * 企业来源编码
+	 */
+	private String source_code;
+	/**
+	 * 店铺所属行业编码
+	 */
+	private String trade_code;
+	/**
+	 * 企业分类编码
+	 */
+	private String type_code;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java
new file mode 100644
index 0000000..7a04de5
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyPwdRequest.java
@@ -0,0 +1,25 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data; /**
+ * @author zhibing.pu
+ * @Date 2025/6/10 10:42
+ */
+@Data
+public class ModifyPwdRequest {
+	/**
+	 * 手机号码
+	 */
+	private String mobile;
+	/**
+	 * 旧密码
+	 */
+	private String oldPwd;
+	/**
+	 * 新密码
+	 */
+	private String newPwd;
+	/**
+	 * 验证码
+	 */
+	private String code;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java
new file mode 100644
index 0000000..6dd1b2a
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTUserInfo.java
@@ -0,0 +1,44 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * 用户信息
+ * @author zhibing.pu
+ * @Date 2025/6/6 15:11
+ */
+@Data
+public class QYTUserInfo {
+	/**
+	 * 员工名称
+	 */
+	private String empName;
+	/**
+	 * 企业编号
+	 */
+	private String enterNum;
+	/**
+	 * 节点路径
+	 */
+	private String nodePath;
+	/**
+	 * 员工昵称
+	 */
+	private String nickName;
+	/**
+	 * 员工编号
+	 */
+	private String empId;
+	/**
+	 * 手机号码
+	 */
+	private String mphone;
+	/**
+	 * 员工在企业内部的编号
+	 */
+	private String loginNo;
+	/**
+	 * 部门ID
+	 */
+	private String deptId;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java
new file mode 100644
index 0000000..4702ff9
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobile.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data; /**
+ * @author zhibing.pu
+ * @Date 2025/6/10 11:34
+ */
+@Data
+public class RegisterViaMobile {
+	/**
+	 * 响应码
+	 * 0:成功;1:失败;2:手机号非法;3:验证码已过期;4:验证码错误;5、用户已存在;9:弱密码
+	 */
+	private String status;
+	/**
+	 * 响应描述
+	 */
+	private String desc;
+	/**
+	 * web登录密码
+	 */
+	private String password;
+	/**
+	 * 用户UUID
+	 */
+	private String onconUUID;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java
new file mode 100644
index 0000000..57d6638
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java
@@ -0,0 +1,46 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:59
+ */
+@Data
+public class RegisterViaMobileRequest {
+	/**
+	 * 手机号码
+	 */
+	private String mobile;
+	/**
+	 * 客户端appid
+	 */
+	private String appId;
+	/**
+	 * 用户密码
+	 */
+	private String password;
+	/**
+	 * 短信验证码
+	 */
+	private String verify_code;
+	/**
+	 * 验证码类型
+	 * 0:短信发送的验证码;1:一键获取手机号返回注册验证码;2、验证码验证成功后生成的Ticket
+	 */
+	private String verify_code_type;
+	/**
+	 * 加密类型
+	 * 第三方系统可以填写空
+	 */
+	private String encryptType;
+	/**
+	 * 用户类型
+	 * 0:普通用户
+	 */
+	private String user_type;
+	/**
+	 * 昵称
+	 */
+	private String nickname;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java
new file mode 100644
index 0000000..7af096c
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ResetPwdRequest.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/10 10:42
+ */
+@Data
+public class ResetPwdRequest {
+	/**
+	 * 手机号码
+	 */
+	private String mobile;
+	/**
+	 * 密码
+	 */
+	private String password;
+	/**
+	 * 验证码
+	 */
+	private String code;
+	/**
+	 * 客户端appid
+	 */
+	private String appid;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java
new file mode 100644
index 0000000..13dfef3
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNode.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2025/6/14 14:10
+ */
+@Data
+public class SaveStaffNode {
+    /**
+     * 人员ID
+     */
+    private Long empId;
+    /**
+     * 员工名称
+     */
+    private String empName;
+    /**
+     * 员工昵称
+     */
+    private String empNickname;
+    /**
+     * 手机号
+     */
+    private String mphone;
+    /**
+     * 登录账号
+     */
+    private String loginNo;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java
new file mode 100644
index 0000000..2f7cc63
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java
@@ -0,0 +1,63 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:22
+ */
+@Data
+public class SaveStaffNodeRequest {
+	/**
+	 * 操作人手机号
+	 */
+	private String mobile;
+	/**
+	 * 操作人企业ID
+	 */
+	private String entercode;
+	/**
+	 * 人员名称
+	 */
+	private String empName;
+	/**
+	 * 人员显示名
+	 */
+	private String empNickname;
+	/**
+	 * 人员账号
+	 */
+	private String loginNo;
+	/**
+	 * 人员性别
+	 */
+	private String empSex;
+	/**
+	 * 人员手机号
+	 */
+	private String mphone;
+	/**
+	 * 人员邮箱
+	 */
+	private String email;
+	/**
+	 * 员工所属部分ID
+	 */
+	private Integer deptId;
+	/**
+	 * 员工职务ID
+	 */
+	private Integer positionId;
+	/**
+	 * 员工职务名称
+	 */
+	private String positionName;
+	/**
+	 * 高管模式 1 是 0 不是
+	 */
+	private Integer superLevel;
+	/**
+	 * 隐藏号码 1 是 0 不是
+	 */
+	private Integer hideMobile;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java
new file mode 100644
index 0000000..84383c5
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/StaffNodeInfo.java
@@ -0,0 +1,91 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/6 16:44
+ */
+@Data
+public class StaffNodeInfo {
+	/**
+	 * 人员ID
+	 */
+	private Integer empId;
+	/**
+	 * 主要号码
+	 */
+	private String mainMphone;
+	/**
+	 * 备注
+	 */
+	private String remark;
+	/**
+	 * 企业ID
+	 */
+	private String enterNum;
+	/**
+	 * 加密企业名称
+	 */
+	private String empNameEncode;
+	/**
+	 * 人员名称
+	 */
+	private String empName;
+	/**
+	 * 人员显示名
+	 */
+	private String empNickname;
+	/**
+	 * 人员账号
+	 */
+	private String loginNo;
+	/**
+	 * 人员性别(男\女)
+	 */
+	private String empSex;
+	/**
+	 * 人员手机号
+	 */
+	private String mphone;
+	/**
+	 * 人员邮箱加密
+	 */
+	private String mainEmailEncode;
+	/**
+	 * 所属企业id
+	 */
+	private Long enterId;
+	/**
+	 * 唯一编号
+	 */
+	private String onconuuid;
+	/**
+	 * 邮箱
+	 */
+	private String email;
+	/**
+	 * 员工所属部门ID多个部门英文; 分割
+	 */
+	private Integer deptId;
+	/**
+	 * 员工职位ID
+	 */
+	private Long positionId;
+	/**
+	 * 员工职位名称
+	 */
+	private String positionName;
+	/**
+	 * 高管模式 1 是 0 不是
+	 */
+	private Integer superLevel;
+	/**
+	 * 隐藏手机号 1 是 0 否
+	 */
+	private Integer hideMobile;
+	/**
+	 * 有效状态(0=否,1=是)
+	 */
+	private String isValid;
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index ef5f732..b5c6c41 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -11,12 +11,14 @@
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl;
-import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.dao.RegionMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.dao.SysIntegralMapper;
+import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
@@ -27,9 +29,9 @@
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import org.bouncycastle.crypto.tls.MACAlgorithm;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -115,9 +117,9 @@
 
     @Autowired
     private PushUtil pushUtil;
-
+    
     @Autowired
-    private RedisUtil redisUtil;
+    private RedisTemplate redisTemplate;
 
     @Autowired
     private RestTemplate internalRestTemplate;
@@ -571,7 +573,7 @@
         System.out.println("取消订单:"+query);
         if(null != query){
             if(payType == 1){//微信支付
-                String value = redisUtil.getValue("appletOpenId");
+                String value = (String) redisTemplate.opsForValue().get("appletOpenId");
                 String appletsOpenId = null;
                 if(ToolUtil.isNotEmpty(value)){
                     JSONObject jsonObject = JSON.parseObject(value);
@@ -1306,7 +1308,7 @@
             }).start();
 
             //用户付款后,删除限制司机6分钟不能接单的标识
-            String vehicle = redisUtil.getValue("VEHICLE");
+            String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
             if(ToolUtil.isNotEmpty(vehicle)){
                 JSONArray jsonArray = JSON.parseArray(vehicle);
                 for(int i = 0; i < jsonArray.size(); i++){
@@ -1315,7 +1317,7 @@
                         break;
                     }
                 }
-                redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+                redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());
             }
             systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1);
         }
@@ -1564,7 +1566,7 @@
             }).start();
 
             //用户付款后,删除限制司机6分钟不能接单的标识
-            String vehicle = redisUtil.getValue("VEHICLE");
+            String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
             if(ToolUtil.isNotEmpty(vehicle)){
                 JSONArray jsonArray = JSON.parseArray(vehicle);
                 for(int i = 0; i < jsonArray.size(); i++){
@@ -1573,7 +1575,7 @@
                         break;
                     }
                 }
-                redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+                redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());
             }
             systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1);
 
@@ -1710,7 +1712,7 @@
         if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
             map.put("state", map.get("oldState"));
         }
-        String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
+        String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId"));
         map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
         map.put("orderType", 2);
         return map;
@@ -1765,7 +1767,7 @@
             return orderServerWarpper;
         }
         //计算预计距离和剩余时间
-        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderTaxi.getDriverId()));
+        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderTaxi.getDriverId()));
         if(null == value || "".equals(value)){
             System.err.println("司机没有上传位置信息");
 
@@ -1995,7 +1997,7 @@
             }).start();
 
             //用户付款后,删除限制司机6分钟不能接单的标识
-            String vehicle = redisUtil.getValue("VEHICLE");
+            String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
             if(ToolUtil.isNotEmpty(vehicle)){
                 JSONArray jsonArray = JSON.parseArray(vehicle);
                 for(int i = 0; i < jsonArray.size(); i++){
@@ -2004,7 +2006,7 @@
                         break;
                     }
                 }
-                redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+                redisTemplate.opsForValue().set("VEHICLE", jsonArray.toJSONString());
             }
 
 
@@ -2081,7 +2083,7 @@
             public void run() {
                 try {
                     orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
-                    String vehicle = redisUtil.getValue("VEHICLE");
+                    String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
                     List<Integer> integers = new ArrayList<>();
                     if(ToolUtil.isNotEmpty(vehicle)){
                         integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
diff --git a/UserQYTTravel/guns-admin/src/main/resources/application.yml b/UserQYTTravel/guns-admin/src/main/resources/application.yml
new file mode 100644
index 0000000..e18fe65
--- /dev/null
+++ b/UserQYTTravel/guns-admin/src/main/resources/application.yml
@@ -0,0 +1,107 @@
+server:
+  port: 8006
+
+guns:
+  swagger-open: true              #是否开启swagger (true/false)
+  kaptcha-open: false             #是否开启登录时验证码 (true/false)
+  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
+  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
+  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
+  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+
+spring:
+  application:
+    name: user-server
+  profiles:
+#    active: dev
+    active: local
+  mvc:
+    static-path-pattern: /static/**
+    view:
+      prefix: /WEB-INF/view
+  devtools:
+    restart:
+      enabled: false
+      additional-paths: src/main/java
+      exclude: static/**,WEB-INF/view/**
+  servlet:
+    multipart:
+      max-request-size: 100MB
+      max-file-size: 100MB
+  redis:
+    url: 127.0.0.1
+    port: 6379
+    password: 123456
+
+mybatis-plus:
+  typeAliasesPackage: com.stylefeng.guns.modular
+  configuration:
+    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
+
+
+
+eureka:
+  client:
+    service-url: #注册中心地址
+      defaultZone: http://sinata:sinata@127.0.0.1:8000/eureka #启用身份验证的方式连接
+    register-with-eureka: true #在注册中心进行注册
+    fetch-registry: true #从Eureka中获取注册信息。
+
+---
+
+
+#配置Swagger接口扫描范围
+swagger:
+  base-package: com.stylefeng.guns.modular
+
+
+spring:
+  profiles: local
+  datasource:
+    url: jdbc:mysql://127.0.0.1:3306/qyttravel?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    username: root
+    password: 123456
+    db-name: jyxtravel #用来搜集数据库的所有表
+    filters: wall,mergeStat
+
+---
+
+
+
+wx:
+  grantType: authorization_code #填authorization_code
+  appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wxcc3c9058e2b294db #小程序APPid
+  appletsAppSecret: 5610fc6126255ca5f7bd9fa4330338b6 #
+  mchId: 111 #微信支付分配的商户号
+  key: 111 #key为商户平台设置的密钥key:
+
+---
+
+alipay:
+  appid: 111  #应用程序唯一标识
+  appPrivateKey: 111 #开发者应用私钥
+  alipayPublicKey: ; #应用公钥
+  alipay_public_key: 111 #支付宝公钥
+
+---
+
+juhe: #聚合数据
+  appKey: 111 #
+
+
+---
+
+filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
+
+#支付回调地址
+#正式环境
+callbackPath: https://zhentonggongsi.com:443/user
+
+
+---
+
+#交通部推送数据功能开关
+pushMinistryOfTransport: false
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java
new file mode 100644
index 0000000..bcd169b
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.generator.action;
+
+
+import com.stylefeng.guns.generator.action.config.GunsGeneratorConfig;
+
+/**
+ * 代码生成器,可以生成实体,dao,service,controller,html,js
+ *
+ * @author stylefeng
+ * @Date 2017/5/21 12:38
+ */
+public class GunsCodeGenerator {
+
+    public static void main(String[] args) {
+
+        /**
+         * Mybatis-Plus的代码生成器:
+         *      mp的代码生成器可以生成实体,mapper,mapper对应的xml,service
+         */
+        GunsGeneratorConfig gunsGeneratorConfig = new GunsGeneratorConfig();
+        gunsGeneratorConfig.doMpGeneration();
+
+        /**
+         * guns的生成器:
+         *      guns的代码生成器可以生成controller,html页面,页面对应的js
+         */
+        gunsGeneratorConfig.doGunsGeneration();
+    }
+
+}
\ No newline at end of file
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java
new file mode 100644
index 0000000..e50b78a
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java
@@ -0,0 +1,109 @@
+package com.stylefeng.guns.generator.action.config;
+
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.stylefeng.guns.core.util.FileUtil;
+import com.stylefeng.guns.generator.engine.SimpleTemplateEngine;
+import com.stylefeng.guns.generator.engine.base.GunsTemplateEngine;
+import com.stylefeng.guns.generator.engine.config.ContextConfig;
+import com.stylefeng.guns.generator.engine.config.SqlConfig;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * 代码生成的抽象配置
+ *
+ * @author fengshuonan
+ * @date 2017-10-28-下午8:22
+ */
+public abstract class AbstractGeneratorConfig {
+
+    /**
+     * mybatis-plus代码生成器配置
+     */
+    GlobalConfig globalConfig = new GlobalConfig();
+
+    DataSourceConfig dataSourceConfig = new DataSourceConfig();
+
+    StrategyConfig strategyConfig = new StrategyConfig();
+
+    PackageConfig packageConfig = new PackageConfig();
+
+    TableInfo tableInfo = null;
+
+    /**
+     * Guns代码生成器配置
+     */
+    ContextConfig contextConfig = new ContextConfig();
+
+    SqlConfig sqlConfig = new SqlConfig();
+
+    protected abstract void config();
+
+    public void init() {
+        config();
+
+        packageConfig.setService(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service");
+        packageConfig.setServiceImpl(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service.impl");
+
+        //controller没用掉,生成之后会自动删掉
+        packageConfig.setController("TTT");
+
+        if (!contextConfig.getEntitySwitch()) {
+            packageConfig.setEntity("TTT");
+        }
+
+        if (!contextConfig.getDaoSwitch()) {
+            packageConfig.setMapper("TTT");
+            packageConfig.setXml("TTT");
+        }
+
+        if (!contextConfig.getServiceSwitch()) {
+            packageConfig.setService("TTT");
+            packageConfig.setServiceImpl("TTT");
+        }
+
+    }
+
+    /**
+     * 删除不必要的代码
+     */
+    public void destory() {
+        String outputDir = globalConfig.getOutputDir() + "/TTT";
+        FileUtil.deleteDir(new File(outputDir));
+    }
+
+    public AbstractGeneratorConfig() {
+    }
+
+    public void doMpGeneration() {
+        init();
+        AutoGenerator autoGenerator = new AutoGenerator();
+        autoGenerator.setGlobalConfig(globalConfig);
+        autoGenerator.setDataSource(dataSourceConfig);
+        autoGenerator.setStrategy(strategyConfig);
+        autoGenerator.setPackageInfo(packageConfig);
+        autoGenerator.execute();
+        destory();
+
+        //获取table信息,用于guns代码生成
+        List<TableInfo> tableInfoList = autoGenerator.getConfig().getTableInfoList();
+        if (tableInfoList != null && tableInfoList.size() > 0) {
+            this.tableInfo = tableInfoList.get(0);
+        }
+    }
+
+    public void doGunsGeneration() {
+        GunsTemplateEngine GunsTemplateEngine = new SimpleTemplateEngine();
+        GunsTemplateEngine.setContextConfig(contextConfig);
+        sqlConfig.setConnection(dataSourceConfig.getConn());
+        GunsTemplateEngine.setSqlConfig(sqlConfig);
+        GunsTemplateEngine.setTableInfo(tableInfo);
+        GunsTemplateEngine.start();
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java
new file mode 100644
index 0000000..43012ab
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java
@@ -0,0 +1,81 @@
+package com.stylefeng.guns.generator.action.config;
+
+import com.baomidou.mybatisplus.generator.config.rules.DbType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+
+/**
+ * 默认的代码生成的配置
+ *
+ * @author fengshuonan
+ * @date 2017-10-28-下午8:27
+ */
+public class GunsGeneratorConfig extends AbstractGeneratorConfig {
+
+    protected void globalConfig() {
+        globalConfig.setOutputDir("D:\\ttt");//写自己项目的绝对路径,注意具体到java目录
+        globalConfig.setFileOverride(true);
+        globalConfig.setEnableCache(false);
+        globalConfig.setBaseResultMap(true);
+        globalConfig.setBaseColumnList(true);
+        globalConfig.setOpen(false);
+        globalConfig.setAuthor("stylefeng");
+    }
+
+    protected void dataSourceConfig() {
+        dataSourceConfig.setDbType(DbType.MYSQL);
+        dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
+        dataSourceConfig.setUsername("root");
+        dataSourceConfig.setPassword("root");
+        dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/guns?characterEncoding=utf8");
+    }
+
+    protected void strategyConfig() {
+        strategyConfig.setTablePrefix(new String[]{"sys_"});// 此处可以修改为您的表前缀
+        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
+    }
+
+    protected void packageConfig() {
+        packageConfig.setParent(null);
+        packageConfig.setEntity("com.stylefeng.guns.admin.common.persistence.model");
+        packageConfig.setMapper("com.stylefeng.guns.admin.common.persistence.dao");
+        packageConfig.setXml("com.stylefeng.guns.admin.common.persistence.dao.mapping");
+    }
+
+    protected void contextConfig() {
+        contextConfig.setProPackage("com.stylefeng.guns.admin");
+        contextConfig.setCoreBasePackage("com.stylefeng.guns.core");
+        contextConfig.setBizChName("字典管理");
+        contextConfig.setBizEnName("sysDict");
+        contextConfig.setModuleName("system");
+        contextConfig.setProjectPath("D:\\ideaSpace\\guns\\guns-admin");//写自己项目的绝对路径
+        contextConfig.setEntityName("SysDict");
+        sqlConfig.setParentMenuName(null);//这里写已有菜单的名称,当做父节点
+
+        /**
+         * mybatis-plus 生成器开关
+         */
+        contextConfig.setEntitySwitch(true);
+        contextConfig.setDaoSwitch(true);
+        contextConfig.setServiceSwitch(true);
+
+        /**
+         * guns 生成器开关
+         */
+        contextConfig.setControllerSwitch(true);
+        contextConfig.setIndexPageSwitch(true);
+        contextConfig.setAddPageSwitch(true);
+        contextConfig.setEditPageSwitch(true);
+        contextConfig.setJsSwitch(true);
+        contextConfig.setInfoJsSwitch(true);
+        contextConfig.setSqlSwitch(true);
+    }
+
+    @Override
+    protected void config() {
+        globalConfig();
+        dataSourceConfig();
+        strategyConfig();
+        packageConfig();
+        contextConfig();
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java
new file mode 100644
index 0000000..6b821f5
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java
@@ -0,0 +1,97 @@
+package com.stylefeng.guns.generator.action.config;
+
+import com.baomidou.mybatisplus.generator.config.rules.DbType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.stylefeng.guns.core.support.StrKit;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.generator.action.model.GenQo;
+
+import java.io.File;
+
+/**
+ * 默认的代码生成的配置
+ *
+ * @author fengshuonan
+ * @date 2017-10-28-下午8:27
+ */
+public class WebGeneratorConfig extends AbstractGeneratorConfig {
+
+    private GenQo genQo;
+
+    public WebGeneratorConfig(GenQo genQo) {
+        this.genQo = genQo;
+    }
+
+    @Override
+    protected void config() {
+        /**
+         * 数据库配置
+         */
+        dataSourceConfig.setDbType(DbType.MYSQL);
+        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
+        dataSourceConfig.setUsername(genQo.getUserName());
+        dataSourceConfig.setPassword(genQo.getPassword());
+        dataSourceConfig.setUrl(genQo.getUrl());
+
+        /**
+         * 全局配置
+         */
+        globalConfig.setOutputDir(genQo.getProjectPath() + File.separator + "src" + File.separator + "main" + File.separator + "java");
+        globalConfig.setFileOverride(true);
+        globalConfig.setEnableCache(false);
+        globalConfig.setBaseResultMap(true);
+        globalConfig.setBaseColumnList(true);
+        globalConfig.setOpen(false);
+        globalConfig.setAuthor(genQo.getAuthor());
+        contextConfig.setProPackage(genQo.getProjectPackage());
+        contextConfig.setCoreBasePackage(genQo.getCorePackage());
+
+        /**
+         * 生成策略
+         */
+        if (genQo.getIgnoreTabelPrefix() != null) {
+            strategyConfig.setTablePrefix(new String[]{genQo.getIgnoreTabelPrefix()});
+        }
+        strategyConfig.setInclude(new String[]{genQo.getTableName()});
+        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
+        packageConfig.setParent(null);
+        packageConfig.setEntity(genQo.getProjectPackage() + ".modular.system.model");
+        packageConfig.setMapper(genQo.getProjectPackage() + ".modular.system.dao");
+        packageConfig.setXml(genQo.getProjectPackage() + ".modular.system.dao.mapping");
+
+        /**
+         * 业务代码配置
+         */
+        contextConfig.setBizChName(genQo.getBizName());
+        contextConfig.setModuleName(genQo.getModuleName());
+        contextConfig.setProjectPath(genQo.getProjectPath());//写自己项目的绝对路径
+        if(ToolUtil.isEmpty(genQo.getIgnoreTabelPrefix())){
+            String entityName = StrKit.toCamelCase(genQo.getTableName());
+            contextConfig.setEntityName(StrKit.firstCharToUpperCase(entityName));
+            contextConfig.setBizEnName(StrKit.firstCharToLowerCase(entityName));
+        }else{
+            String entiyName = StrKit.toCamelCase(StrKit.removePrefix(genQo.getTableName(), genQo.getIgnoreTabelPrefix()));
+            contextConfig.setEntityName(StrKit.firstCharToUpperCase(entiyName));
+            contextConfig.setBizEnName(StrKit.firstCharToLowerCase(entiyName));
+        }
+        sqlConfig.setParentMenuName(genQo.getParentMenuName());//这里写已有菜单的名称,当做父节点
+
+        /**
+         * mybatis-plus 生成器开关
+         */
+        contextConfig.setEntitySwitch(genQo.getEntitySwitch());
+        contextConfig.setDaoSwitch(genQo.getDaoSwitch());
+        contextConfig.setServiceSwitch(genQo.getServiceSwitch());
+
+        /**
+         * guns 生成器开关
+         */
+        contextConfig.setControllerSwitch(genQo.getControllerSwitch());
+        contextConfig.setIndexPageSwitch(genQo.getIndexPageSwitch());
+        contextConfig.setAddPageSwitch(genQo.getAddPageSwitch());
+        contextConfig.setEditPageSwitch(genQo.getEditPageSwitch());
+        contextConfig.setJsSwitch(genQo.getJsSwitch());
+        contextConfig.setInfoJsSwitch(genQo.getInfoJsSwitch());
+        contextConfig.setSqlSwitch(genQo.getSqlSwitch());
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java
new file mode 100644
index 0000000..b09d948
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java
@@ -0,0 +1,297 @@
+package com.stylefeng.guns.generator.action.model;
+
+/**
+ * 代码生成的查询参数
+ *
+ * @author fengshuonan
+ * @date 2017-11-30-下午2:05
+ */
+public class GenQo {
+
+    /**
+     * 数据库账号
+     */
+    private String userName;
+
+    /**
+     * 数据库密码
+     */
+    private String password;
+
+    /**
+     * 数据库url
+     */
+    private String url;
+
+    /**
+     * 项目地址
+     */
+    private String projectPath;
+
+    /**
+     * 作者
+     */
+    private String author;
+
+    /**
+     * 项目的包
+     */
+    private String projectPackage;
+
+    /**
+     * 核心模块的包
+     */
+    private String corePackage;
+
+    /**
+     * 表名称
+     */
+    private String tableName;
+
+    /**
+     * 忽略的表前缀
+     */
+    private String ignoreTabelPrefix;
+
+    /**
+     * 业务名称
+     */
+    private String bizName;
+
+    /**
+     * 模块名
+     */
+    private String moduleName;
+    
+    /**
+     * 父级菜单名称
+     */
+    private String parentMenuName;
+
+    /**
+     * 是否生成控制器代码开关
+     */
+    private Boolean controllerSwitch = false;
+
+    /**
+     * 主页
+     */
+    private Boolean indexPageSwitch = false;
+
+    /**
+     * 添加页面
+     */
+    private Boolean addPageSwitch = false;
+
+    /**
+     * 编辑页面
+     */
+    private Boolean editPageSwitch = false;
+
+    /**
+     * 主页的js
+     */
+    private Boolean jsSwitch = false;
+
+    /**
+     * 详情页面js
+     */
+    private Boolean infoJsSwitch = false;
+
+    /**
+     * dao的开关
+     */
+    private Boolean daoSwitch = false;
+
+    /**
+     * service
+     */
+    private Boolean serviceSwitch = false;
+
+    /**
+     * 生成实体的开关
+     */
+    private Boolean entitySwitch = false;
+
+    /**
+     * 生成sql的开关
+     */
+    private Boolean sqlSwitch = false;
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getProjectPath() {
+        return projectPath;
+    }
+
+    public void setProjectPath(String projectPath) {
+        this.projectPath = projectPath;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public String getCorePackage() {
+        return corePackage;
+    }
+
+    public void setCorePackage(String corePackage) {
+        this.corePackage = corePackage;
+    }
+
+    public String getProjectPackage() {
+
+        return projectPackage;
+    }
+
+    public void setProjectPackage(String projectPackage) {
+        this.projectPackage = projectPackage;
+    }
+
+    public String getTableName() {
+        return tableName;
+    }
+
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    public String getIgnoreTabelPrefix() {
+        return ignoreTabelPrefix;
+    }
+
+    public void setIgnoreTabelPrefix(String ignoreTabelPrefix) {
+        this.ignoreTabelPrefix = ignoreTabelPrefix;
+    }
+
+    public String getBizName() {
+        return bizName;
+    }
+
+    public void setBizName(String bizName) {
+        this.bizName = bizName;
+    }
+
+    public String getModuleName() {
+        return moduleName;
+    }
+
+    public void setModuleName(String moduleName) {
+        this.moduleName = moduleName;
+    }
+
+    public Boolean getControllerSwitch() {
+        return controllerSwitch;
+    }
+
+    public void setControllerSwitch(Boolean controllerSwitch) {
+        this.controllerSwitch = controllerSwitch;
+    }
+
+    public Boolean getIndexPageSwitch() {
+        return indexPageSwitch;
+    }
+
+    public void setIndexPageSwitch(Boolean indexPageSwitch) {
+        this.indexPageSwitch = indexPageSwitch;
+    }
+
+    public Boolean getAddPageSwitch() {
+        return addPageSwitch;
+    }
+
+    public void setAddPageSwitch(Boolean addPageSwitch) {
+        this.addPageSwitch = addPageSwitch;
+    }
+
+    public Boolean getEditPageSwitch() {
+        return editPageSwitch;
+    }
+
+    public void setEditPageSwitch(Boolean editPageSwitch) {
+        this.editPageSwitch = editPageSwitch;
+    }
+
+    public Boolean getJsSwitch() {
+        return jsSwitch;
+    }
+
+    public void setJsSwitch(Boolean jsSwitch) {
+        this.jsSwitch = jsSwitch;
+    }
+
+    public Boolean getInfoJsSwitch() {
+        return infoJsSwitch;
+    }
+
+    public void setInfoJsSwitch(Boolean infoJsSwitch) {
+        this.infoJsSwitch = infoJsSwitch;
+    }
+
+    public Boolean getDaoSwitch() {
+        return daoSwitch;
+    }
+
+    public void setDaoSwitch(Boolean daoSwitch) {
+        this.daoSwitch = daoSwitch;
+    }
+
+    public Boolean getServiceSwitch() {
+        return serviceSwitch;
+    }
+
+    public void setServiceSwitch(Boolean serviceSwitch) {
+        this.serviceSwitch = serviceSwitch;
+    }
+
+    public Boolean getEntitySwitch() {
+        return entitySwitch;
+    }
+
+    public void setEntitySwitch(Boolean entitySwitch) {
+        this.entitySwitch = entitySwitch;
+    }
+
+    public Boolean getSqlSwitch() {
+        return sqlSwitch;
+    }
+
+    public void setSqlSwitch(Boolean sqlSwitch) {
+        this.sqlSwitch = sqlSwitch;
+    }
+
+    public String getParentMenuName() {
+        return parentMenuName;
+    }
+
+    public void setParentMenuName(String parentMenuName) {
+        this.parentMenuName = parentMenuName;
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java
new file mode 100644
index 0000000..9e057c7
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java
@@ -0,0 +1,70 @@
+package com.stylefeng.guns.generator.engine;
+
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.generator.engine.base.GunsTemplateEngine;
+
+/**
+ * 通用的模板生成引擎
+ *
+ * @author fengshuonan
+ * @date 2017-05-09 20:32
+ */
+public class SimpleTemplateEngine extends GunsTemplateEngine {
+
+    @Override
+    protected void generatePageEditHtml() {
+        String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageEditPathTemplate(),
+                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_edit.html.btl", path);
+        System.out.println("生成编辑页面成功!");
+    }
+
+    @Override
+    protected void generatePageAddHtml() {
+        String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageAddPathTemplate(),
+                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_add.html.btl", path);
+        System.out.println("生成添加页面成功!");
+    }
+
+    @Override
+    protected void generatePageInfoJs() {
+        String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageInfoJsPathTemplate(),
+                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_info.js.btl", path);
+        System.out.println("生成页面详情js成功!");
+    }
+
+    @Override
+    protected void generatePageJs() {
+        String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageJsPathTemplate(),
+                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page.js.btl", path);
+        System.out.println("生成页面js成功!");
+    }
+
+    @Override
+    protected void generatePageHtml() {
+        String path = ToolUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPagePathTemplate(),
+                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page.html.btl", path);
+        System.out.println("生成页面成功!");
+    }
+
+    @Override
+    protected void generateController() {
+        String controllerPath = ToolUtil.format(super.getContextConfig().getProjectPath() + super.getControllerConfig().getControllerPathTemplate(),
+                ToolUtil.firstLetterToUpper(super.getContextConfig().getBizEnName()));
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/Controller.java.btl", controllerPath);
+        System.out.println("生成控制器成功!");
+    }
+
+    @Override
+    protected void generateSqls() {
+        String path = ToolUtil.format(super.getContextConfig().getProjectPath() + super.sqlConfig.getSqlPathTemplate(),
+                ToolUtil.firstLetterToUpper(super.getContextConfig().getBizEnName()));
+        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/menu_sql.sql.btl", path);
+        System.out.println("生成sql成功!");
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java
new file mode 100644
index 0000000..ef2512e
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java
@@ -0,0 +1,115 @@
+package com.stylefeng.guns.generator.engine.base;
+
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.stylefeng.guns.generator.engine.config.*;
+
+/**
+ * 模板生成父类
+ *
+ * @author fengshuonan
+ * @date 2017-05-08 20:17
+ */
+public class AbstractTemplateEngine {
+
+    protected ContextConfig contextConfig;                //全局配置
+    protected ControllerConfig controllerConfig;          //控制器的配置
+    protected PageConfig pageConfig;                      //页面的控制器
+    protected DaoConfig daoConfig;                        //Dao配置
+    protected ServiceConfig serviceConfig;                //Service配置
+    protected SqlConfig sqlConfig;                        //sql配置
+    protected TableInfo tableInfo;                        //表的信息
+
+    public void initConfig() {
+        if (this.contextConfig == null) {
+            this.contextConfig = new ContextConfig();
+        }
+        if (this.controllerConfig == null) {
+            this.controllerConfig = new ControllerConfig();
+        }
+        if (this.pageConfig == null) {
+            this.pageConfig = new PageConfig();
+        }
+        if (this.daoConfig == null) {
+            this.daoConfig = new DaoConfig();
+        }
+        if (this.serviceConfig == null) {
+            this.serviceConfig = new ServiceConfig();
+        }
+        if (this.sqlConfig == null) {
+            this.sqlConfig = new SqlConfig();
+        }
+        this.contextConfig.init();
+
+        this.controllerConfig.setContextConfig(this.contextConfig);
+        this.controllerConfig.init();
+
+        this.serviceConfig.setContextConfig(this.contextConfig);
+        this.serviceConfig.init();
+
+        this.daoConfig.setContextConfig(this.contextConfig);
+        this.daoConfig.init();
+
+        this.pageConfig.setContextConfig(this.contextConfig);
+        this.pageConfig.init();
+
+        this.sqlConfig.setContextConfig(this.contextConfig);
+        this.sqlConfig.init();
+    }
+
+    public PageConfig getPageConfig() {
+        return pageConfig;
+    }
+
+    public void setPageConfig(PageConfig pageConfig) {
+        this.pageConfig = pageConfig;
+    }
+
+    public ContextConfig getContextConfig() {
+        return contextConfig;
+    }
+
+    public void setContextConfig(ContextConfig contextConfig) {
+        this.contextConfig = contextConfig;
+    }
+
+    public ControllerConfig getControllerConfig() {
+        return controllerConfig;
+    }
+
+    public void setControllerConfig(ControllerConfig controllerConfig) {
+        this.controllerConfig = controllerConfig;
+    }
+
+    public DaoConfig getDaoConfig() {
+        return daoConfig;
+    }
+
+    public void setDaoConfig(DaoConfig daoConfig) {
+        this.daoConfig = daoConfig;
+    }
+
+    public ServiceConfig getServiceConfig() {
+        return serviceConfig;
+    }
+
+    public void setServiceConfig(ServiceConfig serviceConfig) {
+        this.serviceConfig = serviceConfig;
+    }
+
+    public SqlConfig getSqlConfig() {
+        return sqlConfig;
+    }
+
+    public void setSqlConfig(SqlConfig sqlConfig) {
+        this.sqlConfig = sqlConfig;
+    }
+
+    public TableInfo getTableInfo() {
+        return tableInfo;
+    }
+
+    public void setTableInfo(TableInfo tableInfo) {
+        this.tableInfo = tableInfo;
+    }
+}
+
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java
new file mode 100644
index 0000000..4d3ab84
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java
@@ -0,0 +1,126 @@
+package com.stylefeng.guns.generator.engine.base;
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.sun.javafx.PlatformUtil;
+import org.beetl.core.Configuration;
+import org.beetl.core.GroupTemplate;
+import org.beetl.core.Template;
+import org.beetl.core.resource.ClasspathResourceLoader;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * ADI项目模板生成 引擎
+ *
+ * @author fengshuonan
+ * @date 2017-05-07 22:15
+ */
+public abstract class GunsTemplateEngine extends AbstractTemplateEngine {
+
+    private GroupTemplate groupTemplate;
+
+    public GunsTemplateEngine() {
+        initBeetlEngine();
+    }
+
+    protected void initBeetlEngine() {
+        Properties properties = new Properties();
+        properties.put("RESOURCE.root", "");
+        properties.put("DELIMITER_STATEMENT_START", "<%");
+        properties.put("DELIMITER_STATEMENT_END", "%>");
+        properties.put("HTML_TAG_FLAG", "##");
+        Configuration cfg = null;
+        try {
+            cfg = new Configuration(properties);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        ClasspathResourceLoader resourceLoader = new ClasspathResourceLoader();
+        groupTemplate = new GroupTemplate(resourceLoader, cfg);
+        groupTemplate.registerFunctionPackage("tool", new ToolUtil());
+    }
+
+    protected void configTemplate(Template template) {
+        template.binding("controller", super.controllerConfig);
+        template.binding("context", super.contextConfig);
+        template.binding("dao", super.daoConfig);
+        template.binding("service", super.serviceConfig);
+        template.binding("sqls", super.sqlConfig);
+        template.binding("table", super.tableInfo);
+    }
+
+    protected void generateFile(String template, String filePath) {
+        Template pageTemplate = groupTemplate.getTemplate(template);
+        configTemplate(pageTemplate);
+        if (PlatformUtil.isWindows()) {
+            filePath = filePath.replaceAll("/+|\\\\+", "\\\\");
+        } else {
+            filePath = filePath.replaceAll("/+|\\\\+", "/");
+        }
+        File file = new File(filePath);
+        File parentFile = file.getParentFile();
+        if (!parentFile.exists()) {
+            parentFile.mkdirs();
+        }
+        FileOutputStream fileOutputStream = null;
+        try {
+            fileOutputStream = new FileOutputStream(file);
+            pageTemplate.renderTo(fileOutputStream);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                fileOutputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public void start() {
+        //配置之间的相互依赖
+        super.initConfig();
+
+        //生成模板
+        if (super.contextConfig.getControllerSwitch()) {
+            generateController();
+        }
+        if (super.contextConfig.getIndexPageSwitch()) {
+            generatePageHtml();
+        }
+        if (super.contextConfig.getAddPageSwitch()) {
+            generatePageAddHtml();
+        }
+        if (super.contextConfig.getEditPageSwitch()) {
+            generatePageEditHtml();
+        }
+        if (super.contextConfig.getJsSwitch()) {
+            generatePageJs();
+        }
+        if (super.contextConfig.getInfoJsSwitch()) {
+            generatePageInfoJs();
+        }
+        if (super.contextConfig.getSqlSwitch()) {
+            generateSqls();
+        }
+    }
+
+    protected abstract void generatePageEditHtml();
+
+    protected abstract void generatePageAddHtml();
+
+    protected abstract void generatePageInfoJs();
+
+    protected abstract void generatePageJs();
+
+    protected abstract void generatePageHtml();
+
+    protected abstract void generateController();
+
+    protected abstract void generateSqls();
+
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java
new file mode 100644
index 0000000..d8403d8
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java
@@ -0,0 +1,214 @@
+package com.stylefeng.guns.generator.engine.config;
+
+
+import com.stylefeng.guns.core.util.ToolUtil;
+
+/**
+ * 全局配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-08 20:21
+ */
+public class ContextConfig {
+
+    private String templatePrefixPath = "gunsTemplate/advanced";
+    private String projectPath = "D:\\ideaSpace\\guns";//模板输出的项目目录
+    private String bizChName;   //业务名称
+    private String bizEnName;   //业务英文名称
+    private String bizEnBigName;//业务英文名称(大写)
+    private String moduleName = "system";  //模块名称
+
+    private String proPackage = "com.stylefeng.guns.admin";
+    private String coreBasePackage = "com.stylefeng.guns.core";
+    private String modelPackageName = "com.stylefeng.guns.modular.system.model";        //model的包名
+    private String modelMapperPackageName = "com.stylefeng.guns.modular.system.dao";    //model的dao
+    private String entityName;              //实体的名称
+
+    private Boolean controllerSwitch = true;    //是否生成控制器代码开关
+    private Boolean indexPageSwitch = true;     //主页
+    private Boolean addPageSwitch = true;       //添加页面
+    private Boolean editPageSwitch = true;      //编辑页面
+    private Boolean jsSwitch = true;            //js
+    private Boolean infoJsSwitch = true;        //详情页面js
+    private Boolean daoSwitch = true;           //dao
+    private Boolean serviceSwitch = true;       //service
+    private Boolean entitySwitch = true;        //生成实体的开关
+    private Boolean sqlSwitch = true;           //生成sql的开关
+
+    public void init() {
+        if (entityName == null) {
+            entityName = bizEnBigName;
+        }
+        modelPackageName = proPackage + "." + "modular.system.model";
+        modelMapperPackageName = proPackage + "." + "modular.system.dao";
+    }
+
+    public String getBizEnBigName() {
+        return bizEnBigName;
+    }
+
+    public void setBizEnBigName(String bizEnBigName) {
+        this.bizEnBigName = bizEnBigName;
+    }
+
+    public String getBizChName() {
+        return bizChName;
+    }
+
+    public void setBizChName(String bizChName) {
+        this.bizChName = bizChName;
+    }
+
+    public String getBizEnName() {
+        return bizEnName;
+    }
+
+    public void setBizEnName(String bizEnName) {
+        this.bizEnName = bizEnName;
+        this.bizEnBigName = ToolUtil.firstLetterToUpper(this.bizEnName);
+    }
+
+    public String getProjectPath() {
+        return projectPath;
+    }
+
+    public void setProjectPath(String projectPath) {
+        this.projectPath = projectPath;
+    }
+
+    public String getModuleName() {
+        return moduleName;
+    }
+
+    public void setModuleName(String moduleName) {
+        this.moduleName = moduleName;
+    }
+
+    public Boolean getControllerSwitch() {
+        return controllerSwitch;
+    }
+
+    public void setControllerSwitch(Boolean controllerSwitch) {
+        this.controllerSwitch = controllerSwitch;
+    }
+
+    public Boolean getIndexPageSwitch() {
+        return indexPageSwitch;
+    }
+
+    public void setIndexPageSwitch(Boolean indexPageSwitch) {
+        this.indexPageSwitch = indexPageSwitch;
+    }
+
+    public Boolean getAddPageSwitch() {
+        return addPageSwitch;
+    }
+
+    public void setAddPageSwitch(Boolean addPageSwitch) {
+        this.addPageSwitch = addPageSwitch;
+    }
+
+    public Boolean getEditPageSwitch() {
+        return editPageSwitch;
+    }
+
+    public void setEditPageSwitch(Boolean editPageSwitch) {
+        this.editPageSwitch = editPageSwitch;
+    }
+
+    public Boolean getJsSwitch() {
+        return jsSwitch;
+    }
+
+    public void setJsSwitch(Boolean jsSwitch) {
+        this.jsSwitch = jsSwitch;
+    }
+
+    public Boolean getInfoJsSwitch() {
+        return infoJsSwitch;
+    }
+
+    public void setInfoJsSwitch(Boolean infoJsSwitch) {
+        this.infoJsSwitch = infoJsSwitch;
+    }
+
+    public Boolean getDaoSwitch() {
+        return daoSwitch;
+    }
+
+    public void setDaoSwitch(Boolean daoSwitch) {
+        this.daoSwitch = daoSwitch;
+    }
+
+    public Boolean getServiceSwitch() {
+        return serviceSwitch;
+    }
+
+    public void setServiceSwitch(Boolean serviceSwitch) {
+        this.serviceSwitch = serviceSwitch;
+    }
+
+    public String getTemplatePrefixPath() {
+        return templatePrefixPath;
+    }
+
+    public void setTemplatePrefixPath(String templatePrefixPath) {
+        this.templatePrefixPath = templatePrefixPath;
+    }
+
+    public String getModelPackageName() {
+        return modelPackageName;
+    }
+
+    public void setModelPackageName(String modelPackageName) {
+        this.modelPackageName = modelPackageName;
+    }
+
+    public String getEntityName() {
+        return entityName;
+    }
+
+    public void setEntityName(String entityName) {
+        this.entityName = entityName;
+    }
+
+    public String getModelMapperPackageName() {
+        return modelMapperPackageName;
+    }
+
+    public void setModelMapperPackageName(String modelMapperPackageName) {
+        this.modelMapperPackageName = modelMapperPackageName;
+    }
+
+    public Boolean getEntitySwitch() {
+        return entitySwitch;
+    }
+
+    public void setEntitySwitch(Boolean entitySwitch) {
+        this.entitySwitch = entitySwitch;
+    }
+
+    public Boolean getSqlSwitch() {
+        return sqlSwitch;
+    }
+
+    public void setSqlSwitch(Boolean sqlSwitch) {
+        this.sqlSwitch = sqlSwitch;
+    }
+
+    public String getProPackage() {
+        return proPackage;
+    }
+
+    public void setProPackage(String proPackage) {
+        this.proPackage = proPackage;
+    }
+
+    public String getCoreBasePackage() {
+        return coreBasePackage;
+    }
+
+    public void setCoreBasePackage(String coreBasePackage) {
+        this.coreBasePackage = coreBasePackage;
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java
new file mode 100644
index 0000000..8775b3c
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java
@@ -0,0 +1,70 @@
+package com.stylefeng.guns.generator.engine.config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 控制器模板生成的配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-07 22:12
+ */
+public class ControllerConfig {
+
+    private ContextConfig contextConfig;
+
+    private String controllerPathTemplate;
+    private String packageName;//包名称
+    private List<String> imports;//所引入的包
+
+    public void init() {
+        ArrayList<String> imports = new ArrayList<>();
+        imports.add(contextConfig.getCoreBasePackage() + ".base.controller.BaseController");
+        imports.add("org.springframework.stereotype.Controller");
+        imports.add("org.springframework.web.bind.annotation.RequestMapping");
+        imports.add("org.springframework.web.bind.annotation.ResponseBody");
+        imports.add("org.springframework.ui.Model");
+        imports.add("org.springframework.web.bind.annotation.PathVariable");
+        imports.add("org.springframework.beans.factory.annotation.Autowired");
+        imports.add(contextConfig.getProPackage() + ".core.log.LogObjectHolder");
+        imports.add("org.springframework.web.bind.annotation.RequestParam");
+        imports.add(contextConfig.getModelPackageName() + "." + contextConfig.getEntityName());
+        imports.add(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service" + ".I" + contextConfig.getEntityName() + "Service");
+        this.imports = imports;
+        this.packageName = contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".controller";
+        this.controllerPathTemplate = "\\src\\main\\java\\"+contextConfig.getProPackage().replaceAll("\\.","\\\\")+"\\modular\\" + contextConfig.getModuleName() + "\\controller\\{}Controller.java";
+    }
+
+    public String getPackageName() {
+        return packageName;
+    }
+
+    public void setPackageName(String packageName) {
+        this.packageName = packageName;
+    }
+
+    public List<String> getImports() {
+        return imports;
+    }
+
+    public void setImports(List<String> imports) {
+        this.imports = imports;
+    }
+
+    public String getControllerPathTemplate() {
+        return controllerPathTemplate;
+    }
+
+    public void setControllerPathTemplate(String controllerPathTemplate) {
+        this.controllerPathTemplate = controllerPathTemplate;
+    }
+
+    public ContextConfig getContextConfig() {
+        return contextConfig;
+    }
+
+    public void setContextConfig(ContextConfig contextConfig) {
+        this.contextConfig = contextConfig;
+    }
+
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java
new file mode 100644
index 0000000..00e3092
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java
@@ -0,0 +1,55 @@
+package com.stylefeng.guns.generator.engine.config;
+
+/**
+ * Dao模板生成的配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-07 22:12
+ */
+public class DaoConfig {
+
+    private ContextConfig contextConfig;
+
+    private String daoPathTemplate;
+    private String xmlPathTemplate;
+
+    private String packageName;
+
+    public void init() {
+        this.daoPathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\dao\\{}Dao.java";
+        this.xmlPathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\dao\\mapping\\{}Dao.xml";
+        this.packageName = contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".dao";
+    }
+
+    public String getPackageName() {
+        return packageName;
+    }
+
+    public void setPackageName(String packageName) {
+        this.packageName = packageName;
+    }
+
+    public String getDaoPathTemplate() {
+        return daoPathTemplate;
+    }
+
+    public void setDaoPathTemplate(String daoPathTemplate) {
+        this.daoPathTemplate = daoPathTemplate;
+    }
+
+    public String getXmlPathTemplate() {
+        return xmlPathTemplate;
+    }
+
+    public void setXmlPathTemplate(String xmlPathTemplate) {
+        this.xmlPathTemplate = xmlPathTemplate;
+    }
+
+    public ContextConfig getContextConfig() {
+        return contextConfig;
+    }
+
+    public void setContextConfig(ContextConfig contextConfig) {
+        this.contextConfig = contextConfig;
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java
new file mode 100644
index 0000000..2770128
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java
@@ -0,0 +1,203 @@
+package com.stylefeng.guns.generator.engine.config;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 菜单表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public class Menu extends Model<Menu> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 菜单编号
+     */
+    private String code;
+    /**
+     * 菜单父编号
+     */
+    private String pcode;
+    /**
+     * 当前菜单的所有父菜单编号
+     */
+    private String pcodes;
+    /**
+     * 菜单名称
+     */
+    private String name;
+    /**
+     * 菜单图标
+     */
+    private String icon;
+    /**
+     * url地址
+     */
+    private String url;
+    /**
+     * 菜单排序号
+     */
+    private Integer num;
+    /**
+     * 菜单层级
+     */
+    private Integer levels;
+    /**
+     * 是否是菜单(1:是  0:不是)
+     */
+    private Integer ismenu;
+    /**
+     * 备注
+     */
+    private String tips;
+    /**
+     * 菜单状态 :  1:启用   0:不启用
+     */
+    private Integer status;
+    /**
+     * 是否打开:    1:打开   0:不打开
+     */
+    private Integer isopen;
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getPcode() {
+        return pcode;
+    }
+
+    public void setPcode(String pcode) {
+        this.pcode = pcode;
+    }
+
+    public String getPcodes() {
+        return pcodes;
+    }
+
+    public void setPcodes(String pcodes) {
+        this.pcodes = pcodes;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public Integer getLevels() {
+        return levels;
+    }
+
+    public void setLevels(Integer levels) {
+        this.levels = levels;
+    }
+
+    public Integer getIsmenu() {
+        return ismenu;
+    }
+
+    public void setIsmenu(Integer ismenu) {
+        this.ismenu = ismenu;
+    }
+
+    public String getTips() {
+        return tips;
+    }
+
+    public void setTips(String tips) {
+        this.tips = tips;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getIsopen() {
+        return isopen;
+    }
+
+    public void setIsopen(Integer isopen) {
+        this.isopen = isopen;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "Menu{" +
+                "id=" + id +
+                ", code=" + code +
+                ", pcode=" + pcode +
+                ", pcodes=" + pcodes +
+                ", name=" + name +
+                ", icon=" + icon +
+                ", url=" + url +
+                ", num=" + num +
+                ", levels=" + levels +
+                ", ismenu=" + ismenu +
+                ", tips=" + tips +
+                ", status=" + status +
+                ", isopen=" + isopen +
+                "}";
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java
new file mode 100644
index 0000000..a3324ea
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java
@@ -0,0 +1,74 @@
+package com.stylefeng.guns.generator.engine.config;
+
+/**
+ * 页面 模板生成的配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-07 22:12
+ */
+public class PageConfig {
+
+    private ContextConfig contextConfig;
+
+    private String pagePathTemplate;
+    private String pageAddPathTemplate;
+    private String pageEditPathTemplate;
+    private String pageJsPathTemplate;
+    private String pageInfoJsPathTemplate;
+
+    public void init() {
+        pagePathTemplate = "\\src\\main\\webapp\\WEB-INF\\view\\" + contextConfig.getModuleName() + "\\{}\\{}.html";
+        pageAddPathTemplate = "\\src\\main\\webapp\\WEB-INF\\view\\" + contextConfig.getModuleName() + "\\{}\\{}_add.html";
+        pageEditPathTemplate = "\\src\\main\\webapp\\WEB-INF\\view\\" + contextConfig.getModuleName() + "\\{}\\{}_edit.html";
+        pageJsPathTemplate = "\\src\\main\\webapp\\static\\modular\\" + contextConfig.getModuleName() + "\\{}\\{}.js";
+        pageInfoJsPathTemplate = "\\src\\main\\webapp\\static\\modular\\" + contextConfig.getModuleName() + "\\{}\\{}_info.js";
+    }
+
+    public String getPagePathTemplate() {
+        return pagePathTemplate;
+    }
+
+    public void setPagePathTemplate(String pagePathTemplate) {
+        this.pagePathTemplate = pagePathTemplate;
+    }
+
+    public String getPageJsPathTemplate() {
+        return pageJsPathTemplate;
+    }
+
+    public void setPageJsPathTemplate(String pageJsPathTemplate) {
+        this.pageJsPathTemplate = pageJsPathTemplate;
+    }
+
+    public String getPageAddPathTemplate() {
+        return pageAddPathTemplate;
+    }
+
+    public void setPageAddPathTemplate(String pageAddPathTemplate) {
+        this.pageAddPathTemplate = pageAddPathTemplate;
+    }
+
+    public String getPageEditPathTemplate() {
+        return pageEditPathTemplate;
+    }
+
+    public void setPageEditPathTemplate(String pageEditPathTemplate) {
+        this.pageEditPathTemplate = pageEditPathTemplate;
+    }
+
+    public String getPageInfoJsPathTemplate() {
+        return pageInfoJsPathTemplate;
+    }
+
+    public void setPageInfoJsPathTemplate(String pageInfoJsPathTemplate) {
+        this.pageInfoJsPathTemplate = pageInfoJsPathTemplate;
+    }
+
+    public ContextConfig getContextConfig() {
+        return contextConfig;
+    }
+
+    public void setContextConfig(ContextConfig contextConfig) {
+        this.contextConfig = contextConfig;
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java
new file mode 100644
index 0000000..e6cc865
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java
@@ -0,0 +1,91 @@
+package com.stylefeng.guns.generator.engine.config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Service模板生成的配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-07 22:12
+ */
+public class ServiceConfig {
+
+    private ContextConfig contextConfig;
+
+    private String servicePathTemplate;
+    private String serviceImplPathTemplate;
+
+    private String packageName;
+
+    private List<String> serviceInterfaceImports;
+    private List<String> serviceImplImports;
+
+    public void init() {
+        ArrayList<String> imports = new ArrayList<>();
+        imports.add("org.springframework.stereotype.Service");
+        imports.add("com.baomidou.mybatisplus.service.impl.ServiceImpl");
+        imports.add(contextConfig.getModelPackageName() + "." + contextConfig.getEntityName());
+        imports.add(contextConfig.getModelMapperPackageName() + "." + contextConfig.getEntityName() + "Mapper");
+        imports.add(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service.I" + contextConfig.getBizEnBigName() + "Service");
+        this.serviceImplImports = imports;
+
+        ArrayList<String> interfaceImports = new ArrayList<>();
+        interfaceImports.add("com.baomidou.mybatisplus.service.IService");
+        interfaceImports.add(contextConfig.getModelPackageName() + "." + contextConfig.getEntityName());
+        this.serviceInterfaceImports = interfaceImports;
+
+        this.servicePathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\service\\I{}Service.java";
+        this.serviceImplPathTemplate = "\\src\\main\\java\\" + contextConfig.getProPackage().replaceAll("\\.", "\\\\") + "\\modular\\" + contextConfig.getModuleName() + "\\service\\impl\\{}ServiceImpl.java";
+        this.packageName = contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service";
+    }
+
+
+    public String getServicePathTemplate() {
+        return servicePathTemplate;
+    }
+
+    public void setServicePathTemplate(String servicePathTemplate) {
+        this.servicePathTemplate = servicePathTemplate;
+    }
+
+    public String getPackageName() {
+        return packageName;
+    }
+
+    public void setPackageName(String packageName) {
+        this.packageName = packageName;
+    }
+
+    public String getServiceImplPathTemplate() {
+        return serviceImplPathTemplate;
+    }
+
+    public void setServiceImplPathTemplate(String serviceImplPathTemplate) {
+        this.serviceImplPathTemplate = serviceImplPathTemplate;
+    }
+
+    public List<String> getServiceImplImports() {
+        return serviceImplImports;
+    }
+
+    public void setServiceImplImports(List<String> serviceImplImports) {
+        this.serviceImplImports = serviceImplImports;
+    }
+
+    public ContextConfig getContextConfig() {
+        return contextConfig;
+    }
+
+    public void setContextConfig(ContextConfig contextConfig) {
+        this.contextConfig = contextConfig;
+    }
+
+    public List<String> getServiceInterfaceImports() {
+        return serviceInterfaceImports;
+    }
+
+    public void setServiceInterfaceImports(List<String> serviceInterfaceImports) {
+        this.serviceInterfaceImports = serviceInterfaceImports;
+    }
+}
diff --git a/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java
new file mode 100644
index 0000000..ec64b55
--- /dev/null
+++ b/UserQYTTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java
@@ -0,0 +1,194 @@
+package com.stylefeng.guns.generator.engine.config;
+
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.stylefeng.guns.core.constant.IsMenu;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 全局配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-08 20:21
+ */
+public class SqlConfig {
+
+    private String sqlPathTemplate;
+
+    private ContextConfig contextConfig;
+
+    private Connection connection;
+
+    private String parentMenuName;
+
+    private List<Menu> menus = new ArrayList<>(6);
+
+    public void init() {
+
+        this.sqlPathTemplate = "\\src\\main\\java\\{}.sql";
+
+        if (parentMenuName == null) {
+            return;
+        }
+
+        //根据父菜单查询数据库中的pcode和pcodes
+        String[] pcodeAndPcodes = getPcodeAndPcodes();
+        if (pcodeAndPcodes == null) {
+            System.err.println("父级菜单名称输入有误!!!!");
+            return;
+        }
+
+        //业务菜单
+        Menu menu = new Menu();
+        menu.setId(IdWorker.getId());
+        menu.setCode(contextConfig.getBizEnName());
+        menu.setPcode(pcodeAndPcodes[0]);
+        menu.setPcodes(pcodeAndPcodes[1] + "[" + pcodeAndPcodes[0] + "],");
+        menu.setName(contextConfig.getBizChName());
+        menu.setIcon("");
+        menu.setUrl("/" + contextConfig.getBizEnName());
+        menu.setNum(99);
+
+        if (parentMenuName.equals("顶级")) {
+            menu.setLevels(1);
+        } else {
+            menu.setLevels(2);
+        }
+        menu.setIsmenu(IsMenu.YES.getCode());
+        menu.setStatus(1);
+        menu.setIsopen(0);
+        menus.add(menu);
+
+        //列表
+        Menu list = createSubMenu(menu);
+        list.setCode(contextConfig.getBizEnName() + "_list");
+        list.setName(contextConfig.getBizChName() + "列表");
+        list.setUrl("/" + contextConfig.getBizEnName() + "/list");
+        menus.add(list);
+
+        //添加
+        Menu add = createSubMenu(menu);
+        add.setCode(contextConfig.getBizEnName() + "_add");
+        add.setName(contextConfig.getBizChName() + "添加");
+        add.setUrl("/" + contextConfig.getBizEnName() + "/add");
+        menus.add(add);
+
+        //更新
+        Menu update = createSubMenu(menu);
+        update.setCode(contextConfig.getBizEnName() + "_update");
+        update.setName(contextConfig.getBizChName() + "更新");
+        update.setUrl("/" + contextConfig.getBizEnName() + "/update");
+        menus.add(update);
+
+        //删除
+        Menu delete = createSubMenu(menu);
+        delete.setCode(contextConfig.getBizEnName() + "_delete");
+        delete.setName(contextConfig.getBizChName() + "删除");
+        delete.setUrl("/" + contextConfig.getBizEnName() + "/delete");
+        menus.add(delete);
+
+        //详情
+        Menu detail = createSubMenu(menu);
+        detail.setCode(contextConfig.getBizEnName() + "_detail");
+        detail.setName(contextConfig.getBizChName() + "详情");
+        detail.setUrl("/" + contextConfig.getBizEnName() + "/detail");
+        menus.add(detail);
+    }
+
+    private Menu createSubMenu(Menu parentMenu) {
+        Menu menu = new Menu();
+        menu.setId(IdWorker.getId());
+        menu.setPcode(parentMenu.getCode());
+        menu.setPcodes(parentMenu.getPcodes() + "[" + parentMenu.getCode() + "],");
+        menu.setIcon("");
+        menu.setNum(99);
+        menu.setLevels(parentMenu.getLevels() + 1);
+        menu.setIsmenu(IsMenu.NO.getCode());
+        menu.setStatus(1);
+        menu.setIsopen(0);
+        return menu;
+    }
+
+    public String[] getPcodeAndPcodes() {
+        if (parentMenuName.equals("顶级")) {
+            return new String[]{"0", ""};
+        }
+        PreparedStatement preparedStatement = null;
+        try {
+            preparedStatement = connection.prepareStatement("select * from sys_menu where name like ?");
+            preparedStatement.setString(1, "%" + parentMenuName + "%");
+            ResultSet results = preparedStatement.executeQuery();
+            while (results.next()) {
+                String pcode = results.getString("code");
+                String pcodes = results.getString("pcodes");
+                if (ToolUtil.isNotEmpty(pcode) && ToolUtil.isNotEmpty(pcodes)) {
+                    String[] strings = {pcode, pcodes};
+                    return strings;
+                } else {
+                    return null;
+                }
+            }
+        } catch (SQLException e) {
+            e.printStackTrace();
+        } finally {
+            // 释放资源
+            try {
+                if (preparedStatement != null) {
+                    preparedStatement.close();
+                }
+                if (connection != null) {
+                    connection.close();
+                }
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    public ContextConfig getContextConfig() {
+        return contextConfig;
+    }
+
+    public void setContextConfig(ContextConfig contextConfig) {
+        this.contextConfig = contextConfig;
+    }
+
+    public String getParentMenuName() {
+        return parentMenuName;
+    }
+
+    public void setParentMenuName(String parentMenuName) {
+        this.parentMenuName = parentMenuName;
+    }
+
+    public Connection getConnection() {
+        return connection;
+    }
+
+    public void setConnection(Connection connection) {
+        this.connection = connection;
+    }
+
+    public String getSqlPathTemplate() {
+        return sqlPathTemplate;
+    }
+
+    public void setSqlPathTemplate(String sqlPathTemplate) {
+        this.sqlPathTemplate = sqlPathTemplate;
+    }
+
+    public List<Menu> getMenus() {
+        return menus;
+    }
+
+    public void setMenus(List<Menu> menus) {
+        this.menus = menus;
+    }
+}

--
Gitblit v1.7.1