From 16d56aef9911890050ec15dde2e403870a31e217 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 11 八月 2025 21:27:54 +0800
Subject: [PATCH] 修改代驾三方

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ALiApiUtil.java                                      |    6 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/OCRUtil.java                                    |    2 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfo.java                |   53 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java      |   46 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java         |   23 
 driver/guns-admin/src/main/resources/application.yml                                                                                 |  154 -
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TravelItinerary.java               |   64 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/HWSMSUtil.java                                |   10 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/WeatherUtil.java                                |    2 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java           |   23 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/QianYunTongConfig.java                   |  203 ++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SendSmsRequest.java                |   33 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/SMSUtil.java                             |  129 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EnterpriseInfo.java                |  259 ++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfo.java                     |   35 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateOrderRequest.java            |   53 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java                                 |   51 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/StaffNodeInfo.java                 |   91 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfoRequest.java            |   27 
 driver/guns-admin/src/main/resources/application-dev.yml                                                                             |  131 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java                                        |  349 ++-
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ChinaMobileUtil.java                                 |    4 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/AESUtils.java                            |  155 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java                       |   61 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java          |   72 
 driver/guns-admin/pom.xml                                                                                                            |   50 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SpringContextsUtil.java                              |   37 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfo.java                       |   31 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ResetPwdRequest.java               |   27 
 driver/guns-admin/src/main/resources/application-produce.yml                                                                         |  131 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java        |   35 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyPwdRequest.java              |   25 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOffData.java               |   66 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CheckEnterExist.java               |   40 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ListPage.java                      |   27 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java  |   39 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallback.java            |   27 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java     |   19 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeRequest.java                  |   31 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml                               |    2 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java          |   63 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentOrderRequest.java           |   57 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterprise.java              |   46 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/OrderInfo.java                     |   19 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java                                  |    6 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfo.java                   |   31 
 driver/pom.xml                                                                                                                       |   12 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java        |   45 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java       |  118 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java   |   75 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNode.java                 |   31 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfoRequest.java              |   39 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java |   47 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java                                       |  134 -
 driver/guns-admin/src/main/java/com/supersavedriving/driver/config/SwaggerConfig.java                                                |    2 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfoData.java                   |   42 
 driver/guns-admin/src/main/resources/application-test.yml                                                                            |  131 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EmployeeUtil.java                        |  234 ++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EnterpriseUtil.java                      |  316 +++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java                           |  682 +++++++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOff1Data.java              |   62 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/NCOSSUtil.java                           |  243 ++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobile.java             |   26 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/GaoDe/MapConfig.java                                 |    2 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTUserInfo.java                   |   33 
 /dev/null                                                                                                                            |   30 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java         |   23 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/UserUtil.java                            |  324 +++
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreate.java              |   19 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/OssUploadUtil.java                                   |    6 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreateData.java          |   99 +
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java  |   43 
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/LoginWeChatXiao.java               |   39 
 73 files changed, 5,189 insertions(+), 513 deletions(-)

diff --git a/driver/guns-admin/pom.xml b/driver/guns-admin/pom.xml
index aaeb2fd..29932fc 100644
--- a/driver/guns-admin/pom.xml
+++ b/driver/guns-admin/pom.xml
@@ -66,24 +66,16 @@
             <artifactId>spring-boot-devtools</artifactId>
             <optional>true</optional>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-core</artifactId>
             <version>2.11.3</version>
         </dependency>
-
-        <!--<dependency>-->
-            <!--<groupId>org.springframework.boot</groupId>-->
-            <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
-            <!--<scope>provided</scope>-->
-        <!--</dependency>-->
-        <!--<dependency>-->
-            <!--<groupId>javax.servlet</groupId>-->
-            <!--<artifactId>javax.servlet-api</artifactId>-->
-            <!--<version>3.1.0</version>-->
-            <!--<scope>provided</scope>-->
-        <!--</dependency>-->
 
 
         <!--shiro依赖-->
@@ -146,12 +138,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>
@@ -232,6 +218,34 @@
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </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>
+        <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>
+        <dependency>
+            <groupId>com.ncoss</groupId>
+            <artifactId>ncoss-java-sdk</artifactId>
+            <version>1.0.5</version>
+            <scope>system</scope>
+            <systemPath>${pom.basedir}/lib/ncoss-java-sdk-1.0.5.jar</systemPath>
+        </dependency>
     </dependencies>
 
 
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/RedisConfig.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/RedisConfig.java
deleted file mode 100644
index 1e66c14..0000000
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/RedisConfig.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/SwaggerConfig.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/SwaggerConfig.java
index 8436c9c..e8b7204 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/SwaggerConfig.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/config/SwaggerConfig.java
@@ -36,7 +36,7 @@
 
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
-                .title("超省新代驾")
+                .title("黔云通代驾")
                 .description("所有接口前需要加 /driver 前缀,例如:/driver/base/agreement/queryByType <br>" +
                         "所有以 /api/*** 路径的接口需要上传签名参数sign")
 //                .termsOfServiceUrl("http://git.oschina.net/naan1993/guns")
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
index a12e7c0..f019773 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -5,16 +5,18 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.heredata.hos.model.bucket.Bucket;
 import com.supersavedriving.driver.modular.system.dao.MonthOrderMapper;
 import com.supersavedriving.driver.modular.system.model.*;
 import com.supersavedriving.driver.modular.system.service.*;
 import com.supersavedriving.driver.modular.system.util.ALiSendSms;
 import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
-import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature;
 import com.supersavedriving.driver.modular.system.util.MiniPay.MiniAppPay;
-import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil;
-import com.supersavedriving.driver.modular.system.util.huawei.SMSUtil;
 import com.supersavedriving.driver.modular.system.util.juhe.OCRUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.NCOSSUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.QianYunTongConfig;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.SMSUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.SendSmsRequest;
 import com.supersavedriving.driver.modular.system.util.separateAccounts.StrUtil;
 import com.supersavedriving.driver.modular.system.util.separateAccounts.TransferUtil;
 import com.supersavedriving.driver.modular.system.warpper.*;
@@ -34,6 +36,7 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
@@ -96,6 +99,9 @@
 
     @Autowired
     private TCheckFacilitatorService checkFacilitatorService;
+    
+    @Resource
+    private QianYunTongConfig qianYunTongConfig;
 
 
 
@@ -210,10 +216,16 @@
                     return ResponseWarpper.success(ResultUtil.error("账号已冻结"));
                 }
             }
-            String numberRandom = UUIDUtil.getNumberRandom(5);
-//            SMSUtil.send(phone, "1d0f0cbe5b214b0d8efa891730eb532a", "[\"" + numberRandom + "\"]");
-            String sData = aLiSendSms.sendSms(phone,"SMS_154775435", "{\"code\":\"" + numberRandom + "\"}");
-
+            String numberRandom = UUIDUtil.getNumberRandom(4);
+            SendSmsRequest request = new SendSmsRequest();
+            request.setDestAddress(phone);
+            request.setTemplateId("TPL202410290001");
+            Map<String, String> templateParams = new HashMap<>();
+            templateParams.put("code", numberRandom);
+            request.setTemplateParams(templateParams);
+            request.setCode("code");
+            request.setSpId("T8d5hdfg");
+            SMSUtil.sendSms(request);
             redisUtil.setStrValue(receiver + phone, numberRandom, 300);//5分钟有效期
             return ResponseWarpper.success(ResultUtil.success());
         }catch (Exception e){
@@ -1167,8 +1179,29 @@
             InputStream inputStream = file.getInputStream();
             String name = file.getOriginalFilename();
             name = UUIDUtil.getRandomCode() + name.substring(name.lastIndexOf("."));
-            String s = OBSUtil.putObjectToBucket(inputStream, name);
-            return ResponseWarpper.success(s);
+            QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
+            String bucketName = qianYunTongConfig1.getBucketName();
+            Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+            if (null == grjyTest) {
+                //创建桶
+                Boolean bucket = NCOSSUtil.createBucket(bucketName);
+                if (!bucket) {
+                    throw new RuntimeException("创建存储桶失败");
+                }
+                //设置桶策略
+                String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+                Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+                if (!bucketPolicy) {
+                    throw new RuntimeException("设置桶策略失败");
+                }
+            }
+            //上传对象
+            String key = "imgs/daijia/user/" + name;
+            String object = NCOSSUtil.putObject(bucketName, key, inputStream);
+            if (null == object) {
+                throw new RuntimeException("上传图片失败");
+            }
+            return ResponseWarpper.success("https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key);
         }catch (Exception e){
             e.printStackTrace();
             return new ResponseWarpper(500, e.getMessage());
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
index d45a6c5..d7cc3b0 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/OrderMapper.xml
@@ -124,7 +124,7 @@
     <select id="queryDriverOrderList" resultType="com.supersavedriving.driver.modular.system.warpper.DriverOrderListWarpper">
         select
         id,
-        '超省新代驾订单' as title,
+        '黔云通代驾订单' as title,
         UNIX_TIMESTAMP(createTime) * 1000 as createTime,
         startAddress,
         endAddress,
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
index dec6d88..2ba2ea2 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -5,6 +5,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.heredata.hos.model.bucket.Bucket;
 import com.supersavedriving.driver.core.common.constant.JwtConstants;
 import com.supersavedriving.driver.core.shiro.ShiroKit;
 import com.supersavedriving.driver.core.shiro.ShiroUser;
@@ -20,6 +21,8 @@
 import com.supersavedriving.driver.modular.system.util.MiniPay.MiniAppPay;
 import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil;
 import com.supersavedriving.driver.modular.system.util.mongodb.model.Location;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.NCOSSUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.QianYunTongConfig;
 import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil;
 import com.supersavedriving.driver.modular.system.util.weChat.WeChatUtil;
 import com.supersavedriving.driver.modular.system.util.weChat.model.Code2Session;
@@ -45,6 +48,7 @@
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.InputStream;
 import java.math.BigDecimal;
@@ -119,6 +123,9 @@
 
     @Autowired
     private WeChatUtil weChatUtil;
+    
+    @Resource
+    private QianYunTongConfig qianYunTongConfig;
 
     @Autowired
     private IDriverOnlineTimeService driverOnlineTimeService;
@@ -209,14 +216,60 @@
     //生成小程序二维码
     public String wechatMiniProgramORCode(Integer driverId) throws Exception{
         InputStream release = weChatUtil.getwxacodeunlimit("pages/index/index", "driverId=" + driverId, "release");
-        String s = OssUploadUtil.ossUpload(release, "driver_" + driverId + "_" + UUIDUtil.getNumberRandom(5) + ".jpg");
-        return s;
+        String pictureName = "driver_" + driverId + ".png";
+        QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
+        String bucketName = qianYunTongConfig1.getBucketName();
+        Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+        if (null == grjyTest) {
+            //创建桶
+            Boolean bucket = NCOSSUtil.createBucket(bucketName);
+            if (!bucket) {
+                throw new RuntimeException("创建存储桶失败");
+            }
+            //设置桶策略
+            String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+            Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+            if (!bucketPolicy) {
+                throw new RuntimeException("设置桶策略失败");
+            }
+        }
+        //上传对象
+        String key = "imgs/daijia/driver/" + pictureName;
+        String object = NCOSSUtil.putObject(bucketName, key, release);
+        if (null == object) {
+            throw new RuntimeException("上传图片失败");
+        }
+    
+        return "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
     }
     //司机下单二维码
     public String wechatMiniOrderQRCode(Integer driverId) throws Exception{
         InputStream release = weChatUtil.getwxacodeunlimitOrder("pages/index/index", "driverIds=" + driverId, "release");
-        String s = OssUploadUtil.ossUpload(release, "driverOrder_" + driverId + "_" + UUIDUtil.getNumberRandom(5) + ".jpg");
-        return s;
+        String pictureName = "driver_" + driverId + ".png";
+        QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig();
+        String bucketName = qianYunTongConfig1.getBucketName();
+        Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName);
+        if (null == grjyTest) {
+            //创建桶
+            Boolean bucket = NCOSSUtil.createBucket(bucketName);
+            if (!bucket) {
+                throw new RuntimeException("创建存储桶失败");
+            }
+            //设置桶策略
+            String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}";
+            Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText);
+            if (!bucketPolicy) {
+                throw new RuntimeException("设置桶策略失败");
+            }
+        }
+        //上传对象
+        String key = "imgs/daijia/driver/" + pictureName;
+        String object = NCOSSUtil.putObject(bucketName, key, release);
+        if (null == object) {
+            throw new RuntimeException("上传图片失败");
+        }
+    
+        return "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key;
     }
 
 
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ALiApiUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ALiApiUtil.java
index d267155..9a6b19b 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ALiApiUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ALiApiUtil.java
@@ -25,10 +25,10 @@
     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 = null;
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ChinaMobileUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ChinaMobileUtil.java
index 8ec2ab7..bec4f37 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ChinaMobileUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/ChinaMobileUtil.java
@@ -16,9 +16,9 @@
 @Component
 public class ChinaMobileUtil {
 
-    private String APIKey = "zj42494b1bdd416b9762229af6b5cbbd";
+    private String APIKey = "111";
 
-    private String SecretKey = "30323561316534653735613230316339";
+    private String SecretKey = "111";
 
 
     /**
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/GaoDe/MapConfig.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/GaoDe/MapConfig.java
index 4d61f20..84def40 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/GaoDe/MapConfig.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/GaoDe/MapConfig.java
@@ -10,5 +10,5 @@
     /**
      * 高德key
      */
-    String key = "5053ca611c0106e01a665ce7ab84ff26";
+    String key = "ea7326a77175aba0e9435859b17bca36";
 }
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/OssUploadUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/OssUploadUtil.java
index 1a76c0b..389b463 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/OssUploadUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/OssUploadUtil.java
@@ -13,9 +13,9 @@
 public class OssUploadUtil {
 	//OSS图片访问域名
 	public static String oss_domain = "https://newok.oss-cn-shenzhen.aliyuncs.com/";
-	public static String accessKeyId = "LTAI5tLPQCnW4CWk9hd1uxSM";
-	public static String accessKeySecret = "Efm7ZgHQ0136Dyf8a7KxnmfQtchEt7";
-	public static String bucketName="newok";
+	public static String accessKeyId = "111";
+	public static String accessKeySecret = "111";
+	public static String bucketName="11";
 	public static String endpoint = "oss-cn-shenzhen.aliyuncs.com";
 	
 	public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java
index c0d7ff4..d87c595 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java
@@ -1,5 +1,8 @@
 package com.supersavedriving.driver.modular.system.util;
 
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.supersavedriving.driver.modular.system.warpper.PushCheckOrderInfoWarpper;
@@ -24,9 +27,8 @@
 public class PushUtil {
 
     Logger logger = LoggerFactory.getLogger("ServiceLog");
-
-    @Autowired
-    private RestTemplate internalRestTemplate;
+    
+    private final String socket_uri = "http://192.168.110.85:6000";
 
 
 
@@ -41,20 +43,27 @@
         msg.put("msg", "SUCCESS");
         msg.put("method", "OFFLINE");
         msg.put("data", new Object());
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        return jsonObject1.getIntValue("code");
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
+        }
+        return 200;
     }
 
 
@@ -69,22 +78,25 @@
         msg.put("msg", "SUCCESS");
         msg.put("method", "OFF_WORK");
         msg.put("data", new Object());
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -107,22 +119,25 @@
         map.put("status", status);
 
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -141,22 +156,25 @@
         map.put("orderType", 1);
 
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -179,22 +197,25 @@
         map.put("countdown", countdown);
 
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -213,22 +234,25 @@
 
         Map<String, Object> map = new HashMap<>();
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -248,22 +272,25 @@
         msg.put("msg", "SUCCESS");
         msg.put("method", "ORDER_INFO");
         msg.put("data", pushOrderInfoWarpper);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -279,22 +306,25 @@
         msg.put("msg", "SUCCESS");
         msg.put("method", "ORDER_INFO_CHECK");
         msg.put("data", pushCheckOrderInfoWarpper);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -313,22 +343,25 @@
 
         map.put("orderId", orderId);
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -345,22 +378,25 @@
         msg.put("msg", "SUCCESS");
         msg.put("method", "START_SERVER");
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 
@@ -373,22 +409,25 @@
         msg.put("msg", "SUCCESS");
         msg.put("method", "CHANGE_SERVER");
         msg.put("data", map);
-
+    
         //调用推送
-        HttpHeaders headers = new HttpHeaders();
-        // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        HttpRequest post = HttpUtil.createPost(socket_uri + "/netty/sendMsgToClient");
+        post.header("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
         //将请求头部和参数合成一个请求
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("msg", msg.toJSONString());
-        params.add("id", id.toString());
-        params.add("type", type.toString());
-        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
-        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
-        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-        if(jsonObject1.getIntValue("code") != 200){
-            logger.debug(jsonObject1.getString("msg"));
-            System.err.println(jsonObject1.getString("msg"));
+        Map<String, Object> params = new HashMap<>();
+        params.put("msg", msg.toJSONString());
+        params.put("id", id.toString());
+        params.put("type", type.toString());
+        post.form(params);
+        HttpResponse execute = post.execute();
+        if (200 != execute.getStatus()) {
+            System.err.println("推送异常");
+        }else{
+            JSONObject jsonObject1 = JSON.parseObject(execute.body(), JSONObject.class);
+            if(jsonObject1.getIntValue("code") != 200){
+                logger.debug(jsonObject1.getString("msg"));
+                System.err.println(jsonObject1.getString("msg"));
+            }
         }
     }
 }
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java
index fd3d1f1..a658c38 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java
@@ -1,15 +1,14 @@
 package com.supersavedriving.driver.modular.system.util;
 
 import com.supersavedriving.driver.core.util.ToolUtil;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
-import org.springframework.util.StringUtils;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisPool;
-import redis.clients.jedis.Pipeline;
 
-import java.io.IOException;
-import java.util.*;
+import javax.annotation.Resource;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -18,10 +17,8 @@
 @Component
 public class RedisUtil {
 
-    @Autowired
-    private JedisPool jedisPool;
-
-    private Timer timer;
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
 
 
     /**
@@ -30,11 +27,7 @@
      * @param value
      */
     public void setStrValue(String key, String value){
-        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(value)){
-            Jedis resource = jedisPool.getResource();
-            String set = resource.set(key, value);
-            closeJedis(resource);
-        }
+        redisTemplate.opsForValue().set(key, value);
     }
 
 
@@ -45,11 +38,7 @@
      * @param time 秒
      */
     public void setStrValue(String key, String value, int time){
-        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(value)){
-            Jedis resource = jedisPool.getResource();
-            String setex = resource.setex(key, time, value);
-            closeJedis(resource);
-        }
+        redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
     }
 
 
@@ -59,47 +48,11 @@
      * @return
      */
     public String getValue(String key){
-        if(ToolUtil.isNotEmpty(key)){
-            Jedis resource = jedisPool.getResource();
-            String data = resource.get(key);
-            closeJedis(resource);
-            return data;
-        }
-        return null;
+        return (String) redisTemplate.opsForValue().get(key);
     }
 
 
-    /**
-     * 批量获取
-     * @param kes
-     * @return
-     */
-    public List<Object> getValues(List<String> kes){
-        if(null != kes){
-            Jedis resource = jedisPool.getResource();
-            Pipeline pipelined = resource.pipelined();
-            for(String key : kes){
-                pipelined.get(key);
-            }
-            List<Object> list = pipelined.syncAndReturnAll();
 
-            closeJedis(resource);
-            pipelined.clear();
-            try {
-                pipelined.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            List<Object> data = new ArrayList<>();
-            for(Object o : list){
-                if(null != o){
-                    data.add(o);
-                }
-            }
-            return data;
-        }
-        return null;
-    }
 
 
     /**
@@ -107,11 +60,7 @@
      * @param key
      */
     public void remove(String key){
-        if(ToolUtil.isNotEmpty(key)){
-            Jedis resource = jedisPool.getResource();
-            Long del = resource.del(key);
-            closeJedis(resource);
-        }
+        redisTemplate.delete(key);
     }
 
 
@@ -121,11 +70,7 @@
      * @param members
      */
     public void addSetValue(String key, String...members){
-        if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(members)){
-            Jedis resource = jedisPool.getResource();
-            Long sadd = resource.sadd(key, members);
-            resource.close();
-        }
+        redisTemplate.opsForSet().add(key, members);
     }
 
 
@@ -136,11 +81,9 @@
      */
     public Set<String> getSetAllValue(String key){
         Set<String> smembers = new HashSet<>();
-        if(ToolUtil.isNotEmpty(key)){
-            Jedis resource = jedisPool.getResource();
-            smembers = resource.smembers(key);
-            resource.close();
-        }
+        redisTemplate.opsForSet().members(key).forEach(member -> {
+            smembers.add(member.toString());
+        });
         return smembers;
     }
 
@@ -152,22 +95,11 @@
      */
     public void delSetValue(String key, String...members){
         if(ToolUtil.isNotEmpty(key) && ToolUtil.isNotEmpty(members)){
-            Jedis resource = jedisPool.getResource();
-            Long sadd = resource.srem(key, members);
-            resource.close();
+            redisTemplate.opsForSet().remove(key, members);
         }
     }
 
 
-    /**
-     * 删除资源
-     * @param jedis
-     */
-    public void closeJedis(Jedis jedis){
-        if(null != jedis){
-            jedis.close();
-        }
-    }
 
 
     /**
@@ -178,26 +110,8 @@
      * @return
      */
     public boolean lock(String key, String value, int time){
-        if(!StringUtils.isEmpty(key)){
-            key += "_lock";
-            Jedis resource = jedisPool.getResource();
-            String set = resource.set(key, value, "nx", "ex", time);
-            if("OK".equals(set)){
-                String finalKey = key;
-                timer = new Timer();
-                timer.schedule(new TimerTask() {
-                    @Override
-                    public void run() {
-                        Jedis resource = jedisPool.getResource();
-                        resource.setex(finalKey, time, value);
-                        resource.close();
-                    }
-                }, 1000, 500);
-            }
-            resource.close();
-            return "OK".equals(set) ? true : false;
-        }
-        return false;
+        key += "_lock";
+        return redisTemplate.opsForValue().setIfAbsent(key, value);
     }
 
     /**
@@ -256,15 +170,7 @@
      * @return
      */
     public boolean unlock(String key){
-        if(!StringUtils.isEmpty(key)){
-            key += "_lock";
-            Jedis resource = jedisPool.getResource();
-            timer.cancel();//取消定时任务
-            Long del = resource.del(key);
-            resource.close();
-            return del != 0 ? true : false;
-        }
-        return false;
+        return redisTemplate.delete(key);
     }
 
     /**
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SpringContextsUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SpringContextsUtil.java
new file mode 100644
index 0000000..bb37c97
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/SpringContextsUtil.java
@@ -0,0 +1,37 @@
+package com.supersavedriving.driver.modular.system.util;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SpringContextsUtil implements ApplicationContextAware{
+
+	private static ApplicationContext applicationContext;
+	 
+	@Override	
+	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {		
+		if (SpringContextsUtil.applicationContext == null) {			
+			SpringContextsUtil.applicationContext = applicationContext;		
+		}	
+	} 	
+	// 获取applicationContext	
+	public static ApplicationContext getApplicationContext() {		
+		return applicationContext;	
+	} 	
+	// 通过name获取 Bean.	
+	public static Object getBean(String name) {		
+		return getApplicationContext().getBean(name);	
+	} 	
+	// 通过class获取Bean.	
+	public static <T> T getBean(Class<T> clazz) {		
+		return getApplicationContext().getBean(clazz);	
+	} 	
+	// 通过name,以及Clazz返回指定的Bean	
+	public static <T> T getBean(String name, Class<T> clazz) {	
+		System.out.println(getApplicationContext().getBean(name, clazz));
+		return getApplicationContext().getBean(name, clazz);	
+	}
+    
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/HWSMSUtil.java
similarity index 96%
rename from driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java
rename to driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/HWSMSUtil.java
index b903d38..d96bd3b 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/SMSUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/HWSMSUtil.java
@@ -16,7 +16,7 @@
  * @author zhibing.pu
  * @date 2023/3/15 11:23
  */
-public class SMSUtil {
+public class HWSMSUtil {
     //无需修改,用于格式化鉴权头域,给"X-WSSE"参数赋值
     private static final String WSSE_HEADER_FORMAT = "UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\"";
     //无需修改,用于格式化鉴权头域,给"Authorization"参数赋值
@@ -32,14 +32,14 @@
     public static void send(String phones, String templateId, String templateParas) throws Exception {
         //必填,请参考"开发准备"获取如下数据,替换为实际值
         String url = "https://smsapi.cn-south-1.myhuaweicloud.com:443/sms/batchSendSms/v1"; //APP接入地址(在控制台"应用管理"页面获取)+接口访问URI
-        String appKey = "9I0xrhdGXthf1fv9nn8G3glZ6Zng"; //APP_Key
-        String appSecret = "U7WxwX2LVk2YD6KAHxjc9tdnXoM9"; //APP_Secret
-        String sender = "8823031523874"; //国内短信签名通道号或国际/港澳台短信通道号
+        String appKey = "111"; //APP_Key
+        String appSecret = "111"; //APP_Secret
+        String sender = "111"; //国内短信签名通道号或国际/港澳台短信通道号
 //        String templateId = "8ff55eac1d0b478ab3c06c3c6a492300"; //模板ID
 
         //条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称
         //国际/港澳台短信不用关注该参数
-        String signature = "超省新代驾"; //签名名称
+        String signature = "111"; //签名名称
 
         //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔
 //        String receiver = "+86151****6789,+86152****7890"; //短信接收人号码
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java
index 1ee85aa..43800d4 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/huawei/OBSUtil.java
@@ -14,9 +14,9 @@
 public class OBSUtil {
 
     public static String endPoint = "https://obs.cn-south-1.myhuaweicloud.com";
-    public static String ak = "N52IGR6DHOC3JAZFHZIW";
-    public static String sk = "jq7Q7jnFS4Gxamwh3naN2sbNKwQQ7cZISPVumGBS";
-    public static String bucketname = "csxdj";
+    public static String ak = "111";
+    public static String sk = "111";
+    public static String bucketname = "11";
 
     /**
      * 上传文件
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/OCRUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/OCRUtil.java
index db5a556..27505d8 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/OCRUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/OCRUtil.java
@@ -19,7 +19,7 @@
 
     static Logger logger = LoggerFactory.getLogger("ServiceLog");
 
-    private final static String key = "105ce593e7a01deaa457c3c69b26fe08";
+    private final static String key = "111";
 
     private static HttpClientUtil httpClientUtil = new HttpClientUtil();
 
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/WeatherUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/WeatherUtil.java
index 33c664c..65aaa99 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/WeatherUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/juhe/WeatherUtil.java
@@ -25,7 +25,7 @@
 
     private final static String bad_weather = "[{\"wid\":\"03\",\"weather\":\"阵雨\"},{\"wid\":\"04\",\"weather\":\"雷阵雨\"},{\"wid\":\"05\",\"weather\":\"雷阵雨伴有冰雹\"},{\"wid\":\"06\",\"weather\":\"雨夹雪\"},{\"wid\":\"07\",\"weather\":\"小雨\"},{\"wid\":\"08\",\"weather\":\"中雨\"},{\"wid\":\"09\",\"weather\":\"大雨\"},{\"wid\":\"10\",\"weather\":\"暴雨\"},{\"wid\":\"11\",\"weather\":\"大暴雨\"},{\"wid\":\"12\",\"weather\":\"特大暴雨\"},{\"wid\":\"13\",\"weather\":\"阵雪\"},{\"wid\":\"14\",\"weather\":\"小雪\"},{\"wid\":\"15\",\"weather\":\"中雪\"},{\"wid\":\"16\",\"weather\":\"大雪\"},{\"wid\":\"17\",\"weather\":\"暴雪\"},{\"wid\":\"19\",\"weather\":\"冻雨\"},{\"wid\":\"20\",\"weather\":\"沙尘暴\"},{\"wid\":\"21\",\"weather\":\"小到中雨\"},{\"wid\":\"22\",\"weather\":\"中到大雨\"},{\"wid\":\"23\",\"weather\":\"大到暴雨\"},{\"wid\":\"24\",\"weather\":\"暴雨到大暴雨\"},{\"wid\":\"25\",\"weather\":\"大暴雨到特大暴雨\"},{\"wid\":\"26\",\"weather\":\"小到中雪\"},{\"wid\":\"27\",\"weather\":\"中到大雪\"},{\"wid\":\"28\",\"weather\":\"大到暴雪\"},{\"wid\":\"30\",\"weather\":\"扬沙\"},{\"wid\":\"31\",\"weather\":\"强沙尘暴\"},{\"wid\":\"53\",\"weather\":\"霾\"}]";
 
-    private final static String key = "aaebb3e5c18fd371257a2ab6b5670efe";
+    private final static String key = "111";
 
     private static HttpClientUtil httpClientUtil = new HttpClientUtil();
 
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/AESUtils.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/AESUtils.java
new file mode 100644
index 0000000..2a6e732
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/AESUtils.java
@@ -0,0 +1,155 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong;
+
+import org.apache.commons.codec.binary.Base64;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+public class AESUtils {
+
+	private static Logger logger = LoggerFactory.getLogger(AESUtils.class);
+	private static String ALG = "AES";
+	private static String CHARSET = "UTF-8";
+	private static String KEY1 = "lur8apa4zu484pvj";
+
+	public AESUtils() {
+	}
+
+	private static byte[] encrypt(byte[] content, String password, String iv) {
+		try {
+			SecretKeySpec key = new SecretKeySpec(password.getBytes(CHARSET), ALG);
+			Cipher cipher = Cipher.getInstance(ALG);
+			cipher.init(1, key);
+			return cipher.doFinal(content);
+		} catch (NoSuchAlgorithmException var5) {
+			var5.printStackTrace();
+		} catch (NoSuchPaddingException var6) {
+			var6.printStackTrace();
+		} catch (InvalidKeyException var7) {
+			var7.printStackTrace();
+		} catch (UnsupportedEncodingException var8) {
+			var8.printStackTrace();
+		} catch (IllegalBlockSizeException var9) {
+			var9.printStackTrace();
+		} catch (BadPaddingException var10) {
+			var10.printStackTrace();
+		}
+
+		return null;
+	}
+
+	private static byte[] decrypt(byte[] content, String password, String iv) {
+		try {
+			SecretKeySpec key = new SecretKeySpec(password.getBytes(CHARSET), ALG);
+			Cipher cipher = Cipher.getInstance(ALG);
+			cipher.init(2, key);
+			return cipher.doFinal(content);
+		} catch (NoSuchAlgorithmException var5) {
+			var5.printStackTrace();
+		} catch (NoSuchPaddingException var6) {
+			var6.printStackTrace();
+		} catch (InvalidKeyException var7) {
+			var7.printStackTrace();
+		} catch (IllegalBlockSizeException var8) {
+			var8.printStackTrace();
+		} catch (BadPaddingException var9) {
+			var9.printStackTrace();
+		} catch (UnsupportedEncodingException var10) {
+			var10.printStackTrace();
+		}
+
+		return null;
+	}
+
+	private static String parseByte2HexStr(byte[] buf) {
+		StringBuffer sb = new StringBuffer();
+
+		for(int i = 0; i < buf.length; ++i) {
+			String hex = Integer.toHexString(buf[i] & 255);
+			if (hex.length() == 1) {
+				hex = '0' + hex;
+			}
+
+			sb.append(hex.toUpperCase());
+		}
+
+		return sb.toString();
+	}
+
+	private static byte[] parseHexStr2Byte(String hexStr) {
+		if (hexStr.length() < 1) {
+			return null;
+		} else {
+			byte[] result = new byte[hexStr.length() / 2];
+
+			for(int i = 0; i < hexStr.length() / 2; ++i) {
+				int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
+				int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
+				result[i] = (byte)(high * 16 + low);
+			}
+
+			return result;
+		}
+	}
+
+	public static String decryptHex(String content) {
+		return decryptHex(content, KEY1);
+	}
+
+	public static String decryptHex(String content, String password) {
+		try {
+			return new String(decrypt(parseHexStr2Byte(content), password, ""), CHARSET);
+		} catch (Exception var3) {
+			return "";
+		}
+	}
+
+	public static String decryptBase64(String content) {
+		try {
+			return decryptBase64(content, KEY1);
+		} catch (Exception var2) {
+			return "";
+		}
+	}
+
+	public static String decryptBase64(String content, String password) {
+		try {
+			return new String(decrypt(Base64.decodeBase64(content), password, ""), CHARSET);
+		} catch (Exception var3) {
+			return "";
+		}
+	}
+
+	public static String encryptHex(String content) {
+		return encryptHex(content, KEY1);
+	}
+
+	public static String encryptHex(String content, String password) {
+		try {
+			return parseByte2HexStr(encrypt(content.getBytes(CHARSET), password, ""));
+		} catch (Exception var3) {
+			return "";
+		}
+	}
+
+	public static String encryptBase64(String content) {
+		return encryptBase64(content, KEY1);
+	}
+
+	public static String encryptBase64(String content, String password) {
+		try {
+			return Base64.encodeBase64String(encrypt(content.getBytes(CHARSET), password, ""));
+		} catch (Exception var3) {
+			logger.error("", var3);
+			return "";
+		}
+	}
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EmployeeUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EmployeeUtil.java
new file mode 100644
index 0000000..e501b4c
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -0,0 +1,234 @@
+package com.supersavedriving.driver.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.supersavedriving.user.modular.system.util.ResultUtil;
+import com.supersavedriving.user.modular.system.util.SpringContextsUtil;
+import com.supersavedriving.user.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 {
+	
+	private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
+	
+	public static void main(String[] args) {
+		SaveStaffNodeRequest request = new SaveStaffNodeRequest();
+		request.setMobile("15828353127");
+		request.setEntercode("981100006005951");
+		request.setEmpName("蒲");
+		request.setEmpNickname("蒲");
+		request.setLoginNo("15828353125");
+		request.setEmpSex("男");
+		request.setMphone("15828353125");
+		request.setEmail("15828353125@qyt.com");
+		request.setDeptId(0);
+		request.setPositionId(1);
+		request.setSuperLevel(0);
+		request.setHideMobile(0);
+		ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
+		System.out.println(resultUtil.getData());
+	}
+	
+	
+	/**
+	 * 企业增加员工
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static ResultUtil<SaveStaffNode> saveStaffNode(SaveStaffNodeRequest request) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/saveStaffNode";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			String retMsg = jsonObject.getString("retMsg");
+			retMsg = retMsg.substring(retMsg.indexOf("{"));
+			jsonObject = JSON.parseObject(retMsg);
+			return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【企业增加员工】失败:" + object.toJSONString());
+			return ResultUtil.error("【企业增加员工】失败:" + object.getString("desc"));
+		}
+		SaveStaffNode saveStaffNode = object.getObject("data", SaveStaffNode.class);
+		return ResultUtil.success(saveStaffNode);
+	}
+	
+	
+	/**
+	 * 企业修改员工信息
+	 * @param request
+	 * @return
+	 */
+	public static Boolean editStaffNode(EditStaffNodeRequest request){
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/editStaffNode";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/ecrmDeleteStafNode";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/getStaffNode";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			return null;
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【根据员工ID获取人员信息】失败:" + object.toJSONString());
+			return null;
+		}
+		StaffNodeInfo staffNodeInfo = object.getObject("data", StaffNodeInfo.class);
+		return staffNodeInfo;
+	}
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EnterpriseUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EnterpriseUtil.java
new file mode 100644
index 0000000..21cf980
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/EnterpriseUtil.java
@@ -0,0 +1,316 @@
+package com.supersavedriving.driver.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.supersavedriving.user.modular.system.util.SpringContextsUtil;
+import com.supersavedriving.user.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 {
+	
+	private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
+	
+	
+	public static void main(String[] args) {
+//		CheckEnterExist checkEnterNameExist = checkEnterNameExist("黔南云码通数字产业运营有限公司");
+//		System.err.println(checkEnterNameExist);
+		
+		CreateEnterpriseRequest request = new CreateEnterpriseRequest();
+		request.setName("成都喜望科技有限公司");
+		request.setNickName("成都喜望");
+		request.setIndustry_code("123456");
+		request.setMobile("15828353127");
+		CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
+		System.out.println(enterprise);
+		
+	}
+	
+	/**
+	 * 根据社会信用代码判断企业是否已存在
+	 *
+	 * @param uscc
+	 * @return
+	 */
+	public static CheckEnterExist checkEnterExistByEnterIdCardNo(String uscc) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/check_enter_exist_by_enterIdCardNo";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		map.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			return null;
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【根据社会信用代码判断企业是否已存在】失败:" + object.toJSONString());
+			return null;
+		}
+		return jsonObject.getObject("object", CheckEnterExist.class);
+	}
+	
+	
+	/**
+	 * 根据企业名称判断企业是否已存在
+	 *
+	 * @param enterName
+	 * @return
+	 */
+	public static CheckEnterExist checkEnterNameExist(String enterName) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/checkEnterNameExist";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		map.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			return null;
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【根据企业名称判断企业是否已存在】失败:" + object.toJSONString());
+			return null;
+		}
+		return jsonObject.getObject("object", CheckEnterExist.class);
+	}
+	
+	
+	/**
+	 * 查询企业详情
+	 *
+	 * @param enter_code 企业编号
+	 * @return
+	 */
+	public static EnterpriseInfo getEnterpriseDetail(String enter_code) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/getEnterpriseDetail";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		map.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			return null;
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【查询企业详情】失败:" + object.toJSONString());
+			return null;
+		}
+		EnterpriseInfo enterpriseInfo = jsonObject.getObject("object", EnterpriseInfo.class);
+		return enterpriseInfo;
+	}
+	
+	
+	/**
+	 * 修改企业基本信息
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static Boolean modifyEnterpriseInfo(ModifyEnterpriseInfoRequest request) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/modifyEnterpriseInfo";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		map.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			throw new RuntimeException("【修改企业基本信息】请求失败:" + result);
+		}
+		return true;
+	}
+	
+	
+	/**
+	 * 创建企业
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static CreateEnterprise createEnterprise(CreateEnterpriseRequest request) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/createEnterprise";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> map = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		map.put(SystemParameterNames.getAppKey(), appKey);
+		map.put(SystemParameterNames.getMessage_id(), messageId);
+		map.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		map.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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);
+			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.getObject("data", CreateEnterprise.class);
+	}
+	
+	
+	/**
+	 * 删除企业信息
+	 *
+	 * @param enterNum 企业编号
+	 * @param operator 管理员手机号码
+	 * @return
+	 */
+	public static boolean delEnterprise(String enterNum, String operator) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/delCompany";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//appkey
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Content-Type", "application/json");
+		Map<String, Object> map = new HashMap<String, Object>();
+		Date nowdate = new Date();
+		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+		
+		String timeStamp = date.format(nowdate);
+		String messageId = UUID.randomUUID().toString().replaceAll("-", "");
+		map.put(SystemParameterNames.getAppKey(), appKey);
+		map.put(SystemParameterNames.getMessage_id(), messageId);
+		map.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		map.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		map.put("content", "{\"enterNum\":\"" + enterNum + "\",\"operator\":\"" + operator + "\"}");
+		
+		log.info("【删除企业信息】请求地址:" + url);
+		log.info("【删除企业信息】请求参数:" + JSON.toJSONString(map));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, map);
+		log.info("【删除企业信息】请求结果:" + result);
+		JSONObject jsonObject = JSON.parseObject(result);
+		String retCode = jsonObject.getString("retCode");
+		if (!"0".equals(retCode)) {
+			log.error("【删除企业信息】请求失败:" + result);
+			throw new RuntimeException("【删除企业信息】请求失败:" + result);
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【删除企业信息】请求失败:" + object.toJSONString());
+			throw new RuntimeException("【删除企业信息】请求失败:" + object.toJSONString());
+		}
+		return true;
+	}
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/NCOSSUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/NCOSSUtil.java
new file mode 100644
index 0000000..daf917d
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/NCOSSUtil.java
@@ -0,0 +1,243 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong;
+
+import com.heredata.hos.HOS;
+import com.heredata.hos.HOSClientBuilder;
+import com.heredata.hos.model.CreateBucketRequest;
+import com.heredata.hos.model.HOSObject;
+import com.heredata.hos.model.PutObjectRequest;
+import com.heredata.hos.model.PutObjectResult;
+import com.heredata.hos.model.bucket.Bucket;
+import com.heredata.model.VoidResult;
+import com.supersavedriving.user.modular.system.util.SpringContextsUtil;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.InputStream;
+
+/**
+ * OSS 工具类
+ * @author zhibing.pu
+ * @Date 2025/6/23 17:50
+ */
+@Slf4j
+public class NCOSSUtil {
+	
+	private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
+	
+	/**
+	 * 创建桶
+	 * @param bucketName
+	 * @return
+	 */
+	public static Boolean createBucket(String bucketName) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		try {
+			// 创建请求对象,并且设置创建桶名为"example"的桶
+			CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
+			VoidResult result = hos.createBucket(createBucketRequest);
+			if (result.getResponse().isSuccessful()) {
+				log.info("创建桶成功:" + bucketName);
+				return true;
+			}
+		} catch (Exception e){
+			log.info("创建桶失败:" + bucketName);
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+
+	/**
+	 * 查询桶详情
+	 * @param bucketName
+	 * @return
+	 */
+	public static Bucket getBucketInfo(String bucketName) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		try {
+			// 查询桶名为"example"的详情
+			Bucket bucket = hos.getBucketInfo(bucketName);
+			return bucket;
+		} catch (Exception e){
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+	/**
+	 * 删除桶
+	 * @param bucketName
+	 * @return
+	 */
+	public static Boolean deleteBucket(String bucketName) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		try {
+			VoidResult result = hos.deleteBucket(bucketName);
+			if (result.getResponse().isSuccessful()) {
+				log.info("删除桶成功:" + bucketName);
+				return true;
+			}
+		} catch (Exception e){
+			log.info("删除桶成功:" + bucketName);
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+
+	/**
+	 * 设置桶策略
+	 * @param bucketName    桶名
+	 * @param policyText    策略规则字符串
+	 * {
+	 *   // 策略配置的版本号,由用户定义
+	 *   "Version": "2012-10-17",
+	 *   //  策略规则配置,可指定多条策略规则
+	 *   "Statement": [{
+	 *     // 策略规则ID,可用户指定,如不指定则服务自动生成一条
+	 *     "Sid": "sid",
+	 *     // 策略规则指定的HOS API接口标识,可参照下表填写
+	 *     "Action": [
+	 *       "action"
+	 *     ],
+	 *     // 策略规则效果,具体表现为允许或拒绝,有效值为Allow(允许),Deny(拒绝);
+	 *     "Effect": "Allow",
+	 *     // 策略规则指定的资源参照下面resource配置
+	 *     "Resource": "resource",
+	 *     // 策略规则指定的授权人 参照下面Principal配置
+	 *     "Principal": {
+	 *       "HWS": [
+	 *         "account_id:root"
+	 *       ]
+	 *     }
+	 *   }
+	 *   ]
+	 * }
+	 * @return
+	 */
+	public static Boolean setBucketPolicy(String bucketName, String policyText) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		// 桶策略字符串
+		try {
+			VoidResult result = hos.setBucketPolicy(bucketName, policyText);
+			if (result.getResponse().isSuccessful()) {
+				log.info("设置桶策略成功:" + bucketName);
+				return true;
+			}
+		} catch (Exception e) {
+			log.info("设置桶策略失败:" + bucketName);
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+
+	/**
+	 * 上传对象
+	 * @param bucketName    桶名称
+	 * @param key           存储文件名
+	 * @param inputStream      上传文件流
+	 * @return  对象唯一标识
+	 */
+	public static String putObject(String bucketName, String key, InputStream inputStream) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		try {
+			PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key , inputStream);
+			PutObjectResult example = hos.putObject(putObjectRequest);
+			if (example.getResponse().isSuccessful()) {
+				log.info("上传对象成功:" + bucketName + "--->" + key);
+				return example.getETag();
+			}
+		} catch (Exception e) {
+			log.info("上传对象成功:" + bucketName);
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+	/**
+	 * 查询对象
+	 * @param bucketName    桶名称
+	 * @param key           存储文件名
+	 * @return
+	 */
+	public static HOSObject getObject(String bucketName, String key) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		try {
+			HOSObject example = hos.getObject(bucketName, key);
+			if (example.getResponse().isSuccessful()) {
+				log.info("查询对象成功:" + bucketName + "--->" + key);
+				return example;
+			}
+		} catch (Exception e) {
+			log.info("查询对象失败:" + bucketName);
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+
+	/**
+	 * 删除对象
+	 * @param bucketName     桶名称
+	 * @param key          存储文件名
+	 * @return
+	 */
+	public static Boolean deleteObject(String bucketName, String key) {
+		/**
+		 * endPoint:HOS的基础路径(公共前缀)
+		 * account:账户的ID
+		 * accessKey:向UAAS服务请求到的access_key
+		 * secretKey:向UAAS服务请求到的secret_key
+		 */
+		HOS hos = new HOSClientBuilder().build(qianYunTongConfig.getEndPoint(), qianYunTongConfig.getAccount(), qianYunTongConfig.getAccessKey(), qianYunTongConfig.getSecretKey());
+		try {
+			VoidResult example = hos.deleteObject(bucketName, key);
+			if (example.getResponse().isSuccessful()) {
+				log.info("删除对象成功:" + bucketName + "--->" + key);
+				return true;
+			}
+		} catch (Exception e) {
+			log.info("删除对象失败:" + bucketName + "--->" + key);
+			e.printStackTrace();
+		}
+		return false;
+	}
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java
new file mode 100644
index 0000000..988e85a
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java
@@ -0,0 +1,682 @@
+package com.supersavedriving.driver.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.supersavedriving.user.modular.system.util.SpringContextsUtil;
+import com.supersavedriving.user.modular.system.util.UUIDUtil;
+import com.supersavedriving.user.modular.system.util.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:34
+ */
+@Slf4j
+public class OrderUtil {
+	
+	private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
+	
+	
+	public static void main(String[] args) {
+		//创建行程
+//		CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setOrderNo("3456789012345678");
+//		request.setCustomerId("11448156");
+//		request.setDriverId("11448158");
+//		request.setSupplierShopId("981100006005951");
+//		request.setServiceType(1);
+//		String travelItinerary = createTravelItinerary(request);
+//		System.err.println(travelItinerary);//1951088602595872768
+		
+		//修改行程状态
+//		ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setOrderId("1951088602595872768");
+//		request.setStatus(7);
+//		request.setDriverId("11448158");
+//		request.setSupplierShopId("981100006005951");
+//		Boolean aBoolean = modifyTravelItinerary(request);
+		
+		//订单创建及拉起支付
+//		TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
+//		tradeOrderCreateData.setScene("TRAFFIC");
+//		tradeOrderCreateData.setPartnerId("522700");
+//		tradeOrderCreateData.setTreatShopId("11448158");
+//		tradeOrderCreateData.setOrderAppId("52270015");
+//		tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
+//		tradeOrderCreateData.setCharge(new BigDecimal("0.01"));
+//		tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
+//		tradeOrderCreateData.setOrderId("1951088602595872768");
+//		tradeOrderCreateData.setOrderNo("3456789012345678");
+//		tradeOrderCreateData.setCustomerId("11448156");
+//		tradeOrderCreateData.setPayPartnerId("5400004");
+//		tradeOrderCreateData.setPartnerPayId("1951088602595872768");
+//		tradeOrderCreateData.setCurrency("RMB");
+//		tradeOrderCreateData.setTotalFee("1");
+//		tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay");
+//		tradeOrderCreateData.setClientIp("127.0.0.1");
+//		tradeOrderCreateData.setNeedLoginFlag("N");
+//		tradeOrderCreateData.setOrderDesc("出行订单支付");
+//		tradeOrderCreateData.setAccessMode("APP");
+//
+//		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+//		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+//		goodsInfoRequest.setId("981100006005901");
+//		goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+//		goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
+//		goodsInfoRequest.setProfitSharing("1");
+//		goodsInfoRequest.setAreaInfo("520100");
+//		goodsInfoRequest.setPayType("0");
+//		goodsInfoRequest.setBusinessType("10408");
+//		goodsInfo.add(goodsInfoRequest);
+//		tradeOrderCreateData.setGoodsInfo(goodsInfo);
+//		TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData);
+//		System.err.println(tradeOrderCreate);
+		//TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f))
+		
+		//查询支付单信息
+//		GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
+//		getPaymentInfoDataRequest.setPartnerId("5400004");
+//		getPaymentInfoDataRequest.setPartnerPayId("1948685426689200128");
+//		GetPaymentInfo getPaymentInfo = paymentInfo(getPaymentInfoDataRequest);
+//		System.err.println(getPaymentInfo);
+		
+		//拉起支付
+//		TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
+//		tradePayOff1Data.setPartnerId("5400004");
+//		tradePayOff1Data.setScene("TRAFFIC");
+//		tradePayOff1Data.setPartnerPayId("1951088602595872768");
+//		tradePayOff1Data.setCurrency("RMB");
+//		tradePayOff1Data.setTotalFee("1");
+//		tradePayOff1Data.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay");
+//		tradePayOff1Data.setClientIp("127.0.0.1");
+//		tradePayOff1Data.setNeedLoginFlag("N");
+//		tradePayOff1Data.setOrderDesc("出行订单支付");
+//		tradePayOff1Data.setAccessMode("APP");
+//		List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+//		GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+//		goodsInfoRequest.setId("981100006005901");
+//		goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+//		goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
+//		goodsInfoRequest.setProfitSharing("1");
+//		goodsInfoRequest.setAreaInfo("520100");
+//		goodsInfoRequest.setPayType("0");
+//		goodsInfoRequest.setBusinessType("10408");
+//		goodsInfo.add(goodsInfoRequest);
+//		tradePayOff1Data.setGoodsInfo(goodsInfo);
+//		PayInfo payInfo = tradePayOff1(tradePayOff1Data);
+//		System.err.println(payInfo);
+		//PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe)
+		
+		
+		// (补偿单)拉起支付
+//		TradePayOffData tradePayOffData = new TradePayOffData();
+//		tradePayOffData.setPartnerId("5400004");
+//		tradePayOffData.setScene("TRAFFIC");
+//		tradePayOffData.setPartnerPayId("1948685426689200128");
+//		tradePayOffData.setCurrency("RMB");
+//		tradePayOffData.setTotalFee("1");
+//		tradePayOffData.setRetUrl("/home/");
+//		tradePayOffData.setClientIp("127.0.0.1");
+//		tradePayOffData.setNeedLoginFlag("N");
+//		tradePayOffData.setOrderDesc("出行订单支付");
+//		tradePayOffData.setAccessMode("APP");
+//		List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>();
+//		PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest();
+//		paymentInfoRequest.setPayModeId("501212");
+//		paymentInfoRequests.add(paymentInfoRequest);
+//		tradePayOffData.setPaymentInfos(paymentInfoRequests);
+//		List<GoodsInfo> goodsInfo = new ArrayList<>();
+//		GoodsInfo goodsInfo1 = new GoodsInfo();
+//		goodsInfo1.setMerchantCode("");
+//		goodsInfo1.setCustId("");
+//		goodsInfo1.setCustName("");
+//		goodsInfo1.setProfitSharing("1");
+//		goodsInfo.add(goodsInfo1);
+//		tradePayOffData.setGoodsInfo(goodsInfo);
+//		PayInfo payInfo1 = tradePayOff(tradePayOffData);
+//		System.err.println(payInfo1);
+		
+		//订单创建
+//		CreateOrderRequest createOrderRequest = new CreateOrderRequest();
+//		createOrderRequest.setTreatShopId("11448158");
+//		createOrderRequest.setOrderAppId("52270015");
+//		createOrderRequest.setScene("TRAFFIC");
+//		createOrderRequest.setPartnerId("522700");
+//		createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
+//		createOrderRequest.setCharge(new BigDecimal("0.01"));
+//		createOrderRequest.setChannelSource("GRJYCXWXXCX");
+//		createOrderRequest.setOrderId("1948685426689200128");
+//		createOrderRequest.setOrderNo("0123456");
+//		createOrderRequest.setCustomerId("11448156");
+//		OrderInfo orderInfo = tradeOrderCreate(createOrderRequest);
+//		System.err.println(orderInfo);
+		
+		//行程单列表查询
+//		GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setCustomerId("11448156");
+//		request.setOrderNo("0123456");
+//		request.setDriverId("11448158");
+//		ListPage<TravelItinerary> travelItineraryList = getTravelItineraryList(request);
+//		System.err.println(travelItineraryList);
+	
+	}
+	
+	/**
+	 * 拉起支付
+	 *
+	 * @param tradePayOff1Data
+	 * @return
+	 */
+	public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
+		tradePayOff1Data.setPartnerId("5400004");
+		tradePayOff1Data.setTimeout("72H");
+		tradePayOff1Data.setScene("TRAFFIC");
+		tradePayOff1Data.setCurrency("RMB");
+		tradePayOff1Data.setNeedLoginFlag("N");
+		tradePayOff1Data.setAccessMode("APP");
+		tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> {
+			goodsInfoRequest.setId("981100006005901");
+			goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+			
+			goodsInfoRequest.setAreaInfo("520100");
+			goodsInfoRequest.setPayType("0");
+			goodsInfoRequest.setBusinessType("10408");
+		});
+		
+		
+		TradeRequest request = new TradeRequest<TradePayOff1Data>();
+		request.setSceneId("1911676727023968256");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradePayOff1Data);
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【拉起支付】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【拉起支付】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
+		return payInfo;
+	}
+	
+	/**
+	 * 创建行程单
+	 *
+	 * @param request
+	 * @return 行程单ID
+	 */
+	public static String createTravelItinerary(CreateTravelItineraryRequest request) {
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/createTravelItinerary";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【创建行程单】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【创建行程单】失败:" + jsonObject.getString("resMsg"));
+		}
+		return jsonObject.getString("busiResp");
+	}
+	
+	
+	/**
+	 * 修改行程单
+	 *
+	 * @param request
+	 */
+	public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request) {
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/modifyTravelItinerary";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【修改行程单】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【修改行程单】失败:" + jsonObject.getString("resMsg"));
+		}
+		return true;
+	}
+	
+	
+	/**
+	 * 行程单列表查询
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static ListPage<List<TravelItinerary>> getTravelItineraryList(GetTravelItineraryListRequest request) {
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/getTravelItineraryList";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【行程单列表查询】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【行程单列表查询】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		Integer total = busiResp.getInteger("total");
+		Integer pageNum = busiResp.getInteger("pageNum");
+		Integer pageSize = busiResp.getInteger("pageSize");
+		JSONArray list = busiResp.getJSONArray("list");
+		List<TravelItinerary> travelItineraryList = new ArrayList<>();
+		for (int i = 0; i < list.size(); i++) {
+			TravelItinerary object = list.getObject(i, TravelItinerary.class);
+			travelItineraryList.add(object);
+		}
+		ListPage listPage = new ListPage<List<TravelItinerary>>();
+		listPage.setTotal(total);
+		listPage.setPageNum(pageNum);
+		listPage.setPageSize(pageSize);
+		listPage.setList(travelItineraryList);
+		return listPage;
+	}
+	
+	/**
+	 * 订单创建及拉起支付
+	 *
+	 * @param tradeOrderCreateData
+	 * @return
+	 */
+	public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
+		tradeOrderCreateData.setScene("TRAFFIC");
+		tradeOrderCreateData.setPartnerId("522700");
+		tradeOrderCreateData.setTimeout("72H");
+		tradeOrderCreateData.setOrderAppId("52270015");
+		tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
+		tradeOrderCreateData.setPayPartnerId("5400004");
+		tradeOrderCreateData.setCurrency("RMB");
+		tradeOrderCreateData.setNeedLoginFlag("N");
+		tradeOrderCreateData.setAccessMode("APP");
+		tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> {
+			goodsInfoRequest.setId("981100006005901");
+			goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+			goodsInfoRequest.setAreaInfo("520100");
+			goodsInfoRequest.setPayType("0");
+			goodsInfoRequest.setBusinessType("10408");
+		});
+		
+		
+		TradeRequest request = new TradeRequest<TradeOrderCreateData>();
+		request.setSceneId("1945688132719169536");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradeOrderCreateData);
+		
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCreate";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg"));
+		}
+		TradeOrderCreate busiResp = jsonObject.getObject("busiResp", TradeOrderCreate.class);
+		return busiResp;
+	}
+	
+	/**
+	 * 订单创建
+	 *
+	 * @param createOrderRequest
+	 * @return
+	 */
+	public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) {
+		createOrderRequest.setOrderAppId("52270015");
+		createOrderRequest.setScene("TRAFFIC");
+		createOrderRequest.setPartnerId("522700");
+		createOrderRequest.setChannelSource("GRJYCXWXXCX");
+		
+		TradeRequest request = new TradeRequest<CreateOrderRequest>();
+		request.setSceneId("1948289607125864448");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(createOrderRequest);
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCreate";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【订单创建】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【订单创建】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class);
+		return orderInfo;
+	}
+	
+	/**
+	 * (补偿单)拉起支付
+	 *
+	 * @param tradePayOffData
+	 * @return
+	 */
+	public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
+		tradePayOffData.setPartnerId("5400005");
+		tradePayOffData.setTimeout("72H");
+		tradePayOffData.setScene("TRAFFIC");
+		tradePayOffData.setCurrency("RMB");
+		tradePayOffData.setRetUrl("");
+		InetAddress inetAddress = null;
+		try {
+			inetAddress = InetAddress.getLocalHost();
+		} catch (UnknownHostException e) {
+			throw new RuntimeException(e);
+		}
+		String ip = inetAddress.getHostAddress();
+		tradePayOffData.setClientIp(ip);
+		tradePayOffData.setNeedLoginFlag("N");
+		tradePayOffData.setAccessMode("APP");
+		List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>();
+		PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest();
+		paymentInfoRequest.setPayModeId("501212");
+		paymentInfoRequest.setRealFee(tradePayOffData.getTotalFee().toString());
+		paymentInfoRequest.setTradeFee(tradePayOffData.getTotalFee().toString());
+		paymentInfoRequest.setAccountTyp("501");
+		paymentInfoRequests.add(paymentInfoRequest);
+		tradePayOffData.setPaymentInfos(paymentInfoRequests);
+		List<GoodsInfo> goodsInfo = new ArrayList<>();
+		GoodsInfo goodsInfo1 = new GoodsInfo();
+		goodsInfo1.setMerchantCode("B00000905");
+		goodsInfo1.setCustId("CB0000004686");
+		goodsInfo1.setCustName("证联消费平台交易客户");
+		goodsInfo1.setBusinessType("10408");
+		goodsInfo1.setAgreementNo("00000000468618354161754464398681");
+		goodsInfo1.setProfitSharing("1");
+		goodsInfo.add(goodsInfo1);
+		tradePayOffData.setGoodsInfo(goodsInfo);
+		
+		
+		TradeRequest request = new TradeRequest<TradePayOffData>();
+		request.setSceneId("1774717104844095488");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion(2);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradePayOffData);
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg"));
+		}
+		JSONObject busiResp = jsonObject.getJSONObject("busiResp");
+		PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
+		return payInfo;
+	}
+	
+	
+	/**
+	 * 查询支付单信息
+	 *
+	 * @param getPaymentInfoDataRequest
+	 * @return
+	 */
+	public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest) {
+		getPaymentInfoDataRequest.setPartnerId("5400004");
+		
+		GetPaymentInfoRequest request = new GetPaymentInfoRequest();
+		request.setRequstType("POST");
+		request.setBusType(1);
+		request.setData(getPaymentInfoDataRequest);
+		
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentInfo";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("retCode");
+		if (!"0".equals(resCode)) {
+			log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+			throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String retCode = object.getString("retCode");
+		if (!"000000".equals(retCode)) {
+			log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+			throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+		}
+		GetPaymentInfo payInfo = object.getObject("data", GetPaymentInfo.class);
+		return payInfo;
+	}
+	
+	
+	/**
+	 * (补偿单)支付成功通知
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static OrderInfo paymentOrder(PaymentOrderRequest request) {
+		request.setScene("TRAFFIC");
+		request.setMhltiCenterAppId("52270015");
+		request.setPayType(4);
+		request.setPayChannel(6);
+		request.setIsCompensate(1);
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentOrder";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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 = UUIDUtil.getRandomCode();
+		contentMap.put(SystemParameterNames.getAppKey(), appKey);
+		contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+		contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 resCode = jsonObject.getString("resCode");
+		if (!"000000".equals(resCode)) {
+			log.error("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg"));
+			throw new RuntimeException("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg"));
+		}
+		OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class);
+		return orderInfo;
+	}
+	
+	
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/QianYunTongConfig.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/QianYunTongConfig.java
new file mode 100644
index 0000000..33d82f6
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/QianYunTongConfig.java
@@ -0,0 +1,203 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/8 11:31
+ */
+@Component
+public class QianYunTongConfig {
+	
+	@Value("${spring.profiles.active}")
+	private String activeProfile;
+	
+	
+	/**
+	 * appkey
+	 */
+	private String appkey;
+	/**
+	 * 私钥地址
+	 */
+	private String privateKeyPath;
+	/**
+	 * 消费者账号
+	 */
+	private String userName;
+	/**
+	 * 状态
+	 * 1:生产环境
+	 * 2:测试环境
+	 */
+	private String status;
+	/**
+	 * API地址
+	 */
+	private String apiUrl;
+	/**
+	 * 桶名
+	 */
+	private String bucketName;
+	/**
+	 * 小程序appId
+	 */
+	private String appId;
+	/**
+	 * HOS的基础路径(公共前缀)
+	 */
+	private String endPoint;
+	/**
+	 * 账户的ID
+	 */
+	private String account;
+	/**
+	 * 向UAAS服务请求到的access_key
+	 */
+	private String accessKey;
+	/**
+	 * 向UAAS服务请求到的secret_key
+	 */
+	private String secretKey;
+
+	public String getActiveProfile() {
+		return activeProfile;
+	}
+
+	public void setActiveProfile(String activeProfile) {
+		this.activeProfile = activeProfile;
+	}
+
+	public String getAppkey() {
+		return appkey;
+	}
+
+	public void setAppkey(String appkey) {
+		this.appkey = appkey;
+	}
+
+	public String getPrivateKeyPath() {
+		return privateKeyPath;
+	}
+
+	public void setPrivateKeyPath(String privateKeyPath) {
+		this.privateKeyPath = privateKeyPath;
+	}
+
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	public String getApiUrl() {
+		return apiUrl;
+	}
+
+	public void setApiUrl(String apiUrl) {
+		this.apiUrl = apiUrl;
+	}
+
+	public String getBucketName() {
+		return bucketName;
+	}
+
+	public void setBucketName(String bucketName) {
+		this.bucketName = bucketName;
+	}
+
+	public String getAppId() {
+		return appId;
+	}
+
+	public void setAppId(String appId) {
+		this.appId = appId;
+	}
+
+	public String getEndPoint() {
+		return endPoint;
+	}
+
+	public void setEndPoint(String endPoint) {
+		this.endPoint = endPoint;
+	}
+
+	public String getAccount() {
+		return account;
+	}
+
+	public void setAccount(String account) {
+		this.account = account;
+	}
+
+	public String getAccessKey() {
+		return accessKey;
+	}
+
+	public void setAccessKey(String accessKey) {
+		this.accessKey = accessKey;
+	}
+
+	public String getSecretKey() {
+		return secretKey;
+	}
+
+	public void setSecretKey(String secretKey) {
+		this.secretKey = secretKey;
+	}
+
+	public QianYunTongConfig getQianYunTongConfig() {
+		if("dev".equals(activeProfile)){
+			this.appkey = "10001104";
+			this.privateKeyPath = "C:\\Users\\Admin\\Desktop\\qyt\\private_key_test.pem";
+			this.userName = "xiaofei";
+			this.status = "1";
+			this.setApiUrl("https://test-zhongtai.stqcloud.com:10070");
+			this.setBucketName("bucuTest0625");
+			this.setAppId("wxcc3c9058e2b294db");
+			this.setEndPoint("http://119.4.112.68:27741/v1");
+			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
+			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
+			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+		}
+		if("test".equals(activeProfile)){
+			this.setAppkey("10001104");
+			this.setPrivateKeyPath("/etraffic/server/private_key_test.pem");
+			this.setUserName("xiaofei");
+			this.setStatus("1");
+			this.setApiUrl("https://test-zhongtai.stqcloud.com:10070");
+			this.setBucketName("bucuTest0625");
+			this.setAppId("wxcc3c9058e2b294db");
+			this.setEndPoint("http://119.4.112.68:27741/v1");
+			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
+			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
+			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+		}
+		if("prod".equals(activeProfile)){
+			this.setAppkey("10001104");
+			this.setPrivateKeyPath("/root/server/app/key/private_key.pem");
+			this.setUserName("xiwang");
+			this.setStatus("1");
+			this.setApiUrl("http://jjzhongtai.stqcloud.com:10010");
+			this.setBucketName("qyt20250702");
+			this.setAppId("wxcc3c9058e2b294db");
+			this.setEndPoint("http://119.4.112.68:27741/v1");
+			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
+			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
+			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+		}
+		return this;
+	}
+	
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/SMSUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/SMSUtil.java
new file mode 100644
index 0000000..e884660
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/SMSUtil.java
@@ -0,0 +1,129 @@
+package com.supersavedriving.driver.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.supersavedriving.driver.modular.system.util.SpringContextsUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.SendSmsRequest;
+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 {
+	
+	private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
+	
+	
+	/**
+	 * 获取易信验证码
+	 * @param mobile
+	 * @return
+	 */
+	public static String sendVerifyCode(String mobile) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/sendVerifyCode";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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");
+	}
+	
+	public static void main(String[] args) {
+		SendSmsRequest request = new SendSmsRequest();
+		request.setDestAddress("15828353127");
+		request.setTemplateId("TPL202507300002");
+		Map<String, String> templateParams = new HashMap<>();
+//		templateParams.put("code", "1234");
+		request.setTemplateParams(templateParams);
+//		request.setCode("code");
+		request.setSpId("Y86asr7J");
+		SMSUtil.sendSms(request);
+	}
+	
+	/**
+	 * 根据模板发送短信
+	 *
+	 * @param request
+	 * @return
+	 */
+	public static Boolean sendSms(SendSmsRequest request) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/sendSmsByTpl";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/UserUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/UserUtil.java
new file mode 100644
index 0000000..230121b
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/UserUtil.java
@@ -0,0 +1,324 @@
+package com.supersavedriving.driver.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.supersavedriving.user.modular.system.util.SpringContextsUtil;
+import com.supersavedriving.user.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 {
+	
+	private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
+	
+	
+	public static void main(String[] args) {
+//		List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127");
+//		System.out.println(userInfoByPhone);
+	}
+	
+	
+	/**
+	 * 根据手机号码获取人员信息
+	 *
+	 * @param mobile 手机号码
+	 */
+	public static List<QYTUserInfo> getUserInfoByPhone(String mobile) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/2.0/queryUserinfoByMobilev2";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		contentMap.put("content", "{\"list\":[{\"mobile\":\"" + mobile + "\"}]}");
+		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);
+			return null;
+		}
+		JSONObject object = jsonObject.getJSONObject("object");
+		String status = object.getString("status");
+		if (!"0".equals(status)) {
+			log.error("【根据手机号码获取人员信息】失败:" + object.toJSONString());
+			return null;
+		}
+		JSONArray data = object.getJSONObject("data").getJSONArray("list");
+		List<QYTUserInfo> list = new ArrayList<>();
+		for (int i = 0; i < data.size(); i++) {
+			QYTUserInfo userInfo = data.getObject(i, QYTUserInfo.class);
+			list.add(userInfo);
+		}
+		return list;
+	}
+	
+	/**
+	 * 根据手机号码获取人员信息
+	 *
+	 * @param mobile   手机号码
+	 * @param enterNum 企业编号
+	 */
+	public static List<QYTUserInfo> getUserInfoByPhone(String mobile, String enterNum) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/getUserInfoByPhone";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		Map<String, String> map = new HashMap<>();
+		map.put("mobile", mobile);
+		if (null != enterNum) {
+			map.put("enterNum", enterNum);
+		}
+		contentMap.put("content", JSON.toJSONString(map));
+		log.info("【根据手机号码获取人员信息】请求地址:" + url);
+		log.info("【根据手机号码获取人员信息】请求参数:" + JSON.toJSONString(contentMap));
+		String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap);
+		log.info("【根据手机号码获取人员信息】请求结果:" + result);
+		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("【根据手机号码获取人员信息】失败:" + object.toJSONString());
+			return null;
+		}
+		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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/m1_register_via_mobile";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/modifyPwd";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/resetPwd";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		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 realName
+	 * @param cardNo
+	 * @return
+	 */
+	public static Boolean idCardAuth(String realName, String cardNo) {
+		//请求路径
+		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/idCardAuth";
+		//私钥文件
+		String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+		//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+		String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName());
+		contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+		Map<String, String> map = new HashMap<>();
+		map.put("realName", realName);
+		map.put("cardNo", cardNo);
+		contentMap.put("content", JSON.toJSONString(map));
+		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");
+		return object.getBoolean("isok");
+	}
+	
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CheckEnterExist.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CheckEnterExist.java
new file mode 100644
index 0000000..51c114d
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CheckEnterExist.java
@@ -0,0 +1,40 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterprise.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterprise.java
new file mode 100644
index 0000000..be6276a
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterprise.java
@@ -0,0 +1,46 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java
new file mode 100644
index 0000000..d1beeff
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateEnterpriseRequest.java
@@ -0,0 +1,118 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateOrderRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateOrderRequest.java
new file mode 100644
index 0000000..55abf78
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateOrderRequest.java
@@ -0,0 +1,53 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:35
+ */
+@Data
+public class CreateOrderRequest {
+	/**
+	 * 司机id
+	 */
+	private String treatShopId;
+	/**
+	 * 应用场景标识
+	 */
+	private String orderAppId;
+	/**
+	 * 场景标识
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”}
+	 */
+	private String field1;
+	/**
+	 * 订单总金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY
+	 */
+	private String channelSource;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 下单人ID
+	 */
+	private String customerId;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
new file mode 100644
index 0000000..f9f3ffb
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
@@ -0,0 +1,43 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class CreateTravelItineraryRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车
+	 */
+	private Integer serviceType;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
new file mode 100644
index 0000000..910f40a
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/DeleteStafNodeRequest.java
@@ -0,0 +1,23 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java
new file mode 100644
index 0000000..a789c7b
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EditStaffNodeRequest.java
@@ -0,0 +1,72 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EnterpriseInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EnterpriseInfo.java
new file mode 100644
index 0000000..8b2d122
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/EnterpriseInfo.java
@@ -0,0 +1,259 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfo.java
new file mode 100644
index 0000000..31f5225
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfo.java
@@ -0,0 +1,53 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 18:24
+ */
+@Data
+public class GetPaymentInfo {
+	/**
+	 * 支付流水号
+	 */
+	private String payId;
+	/**
+	 * 订单中心行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 接入模式:PC H5 APP
+	 */
+	private String accessMode;
+	/**
+	 * 用户标识
+	 */
+	private String customerId;
+	/**
+	 * 商户标识
+	 */
+	private String partnerId;
+	/**
+	 * 币种
+	 */
+	private String currency;
+	/**
+	 * 支付总金额
+	 */
+	private String totalFee;
+	/**
+	 * 支付工单状态
+	 * 0	待支付
+	 * 1	部分支付成功
+	 * 2	支付成功
+	 * 3	支付失败
+	 */
+	private String status;
+	/**
+	 * 商品信息
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
new file mode 100644
index 0000000..b1f4b81
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
@@ -0,0 +1,19 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 17:08
+ */
+@Data
+public class GetPaymentInfoDataRequest {
+	/**
+	 * 支付单标识。传行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 商户号,由支付中心分配
+	 */
+	private String partnerId;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
new file mode 100644
index 0000000..b089e97
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
@@ -0,0 +1,23 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 17:03
+ */
+@Data
+public class GetPaymentInfoRequest {
+	/**
+	 * 默认传POST
+	 */
+	private String requstType;
+	/**
+	 * 默认传1
+	 */
+	private Integer busType;
+	/**
+	 * 业务参数
+	 */
+	private GetPaymentInfoDataRequest data;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
new file mode 100644
index 0000000..1d3a885
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetStaffNodeRequest.java
@@ -0,0 +1,23 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
new file mode 100644
index 0000000..bddb9bd
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
@@ -0,0 +1,47 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class GetTravelItineraryListRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 每页条数
+	 */
+	private Integer pageSize;
+	/**
+	 * 当前页码
+	 */
+	private Integer pageNum;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfo.java
new file mode 100644
index 0000000..d63f070
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfo.java
@@ -0,0 +1,35 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:35
+ */
+@Data
+public class GoodsInfo {
+	/**
+	 * 商户号
+	 */
+	private String merchantCode;
+	/**
+	 * 付款商户号
+	 */
+	private String custId;
+	/**
+	 * 付款方名称
+	 */
+	private String custName;
+	/**
+	 *交通场景固定值
+	 */
+	private String businessType;
+	/**
+	 * 免密支付协议号
+	 */
+	private String agreementNo;
+	/**
+	 * 分账标识。0:不分账,1:分账
+	 */
+	private String profitSharing;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
new file mode 100644
index 0000000..fcd8127
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
@@ -0,0 +1,39 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:13
+ */
+@Data
+public class GoodsInfoRequest {
+	/**
+	 * 企业ID(补偿场景新创建的订单支付传备用金企业ID)
+	 */
+	private String id;
+	/**
+	 * 子商户微信appId(证联预下单支付必填)
+	 */
+	private String subAppId;
+	/**
+	 * 付款人的openId(证联预下单支付必填)
+	 */
+	private String subOpenId;
+	/**
+	 * 分账标识。0:不分账,1:分账
+	 */
+	private String profitSharing;
+	/**
+	 * 地区标识,默认传520100
+	 */
+	private String areaInfo;
+	/**
+	 * 是否匿名。默认传0
+	 */
+	private String payType;
+	/**
+	 * 业务类型,默认传10408
+	 */
+	private String businessType;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ListPage.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ListPage.java
new file mode 100644
index 0000000..f0c45ea
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ListPage.java
@@ -0,0 +1,27 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:45
+ */
+@Data
+public class ListPage<T> {
+	/**
+	 * 总条数
+	 */
+	private Integer total;
+	/**
+	 * 当前页码
+	 */
+	private Integer pageNum;
+	/**
+	 * 每页条数
+	 */
+	private Integer pageSize;
+	/**
+	 * 数据列表
+	 */
+	private T list;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/LoginWeChatXiao.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/LoginWeChatXiao.java
new file mode 100644
index 0000000..bc6e8d5
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/LoginWeChatXiao.java
@@ -0,0 +1,39 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/6/16 23:50
+ */
+@Data
+public class LoginWeChatXiao {
+	/**
+	 * token
+	 */
+	private String token;
+	/**
+	 * 用户UUID
+	 */
+	private String userUUID;
+	/**
+	 * 用户手机号
+	 */
+	private String mobile;
+	/**
+	 * 企业名称,无企业时为空
+	 */
+	private String enterName;
+	/**
+	 * 企业编码
+	 */
+	private String enterCode;
+	/**
+	 * 企业认证状态
+	 */
+	private String enterAuth;
+	/**
+	 * 是否是管理员,是:1;否:0
+	 */
+	private String isAdmin;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java
new file mode 100644
index 0000000..4cac6a1
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyEnterpriseInfoRequest.java
@@ -0,0 +1,75 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyPwdRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyPwdRequest.java
new file mode 100644
index 0000000..dfc0695
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyPwdRequest.java
@@ -0,0 +1,25 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
new file mode 100644
index 0000000..22bc6d4
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
@@ -0,0 +1,39 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class ModifyTravelItineraryRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中
+	 */
+	private Integer status;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/OrderInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/OrderInfo.java
new file mode 100644
index 0000000..efd9177
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/OrderInfo.java
@@ -0,0 +1,19 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:44
+ */
+@Data
+public class OrderInfo {
+	/**
+	 * 订单id
+	 */
+	private String orderId;
+	/**
+	 * 订单状态
+	 */
+	private String status;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfo.java
new file mode 100644
index 0000000..c96697e
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfo.java
@@ -0,0 +1,31 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:18
+ */
+@Data
+public class PayInfo {
+	/**
+	 * 证联返回码000000:请求成功
+	 */
+	private String retCode;
+	/**
+	 * 证联返回信息
+	 */
+	private String retMsg;
+	/**
+	 * true、false
+	 */
+	private String success;
+	/**
+	 * 证联返回数据
+	 */
+	private PayInfoData data;
+	/**
+	 * 签名
+	 */
+	private String sign;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfoData.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfoData.java
new file mode 100644
index 0000000..2501f4e
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PayInfoData.java
@@ -0,0 +1,42 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:18
+ */
+@Data
+public class PayInfoData {
+	/**
+	 * 收银台链接
+	 */
+	private String redirectUrl;
+	/**
+	 * 支付流水号
+	 */
+	private String payId;
+	/**
+	 * 支付工单状态
+	 * 0	待支付
+	 * 1	部分支付成功
+	 * 2	支付成功
+	 * 3	支付失败
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:yyyy-MM-dd HH:mm:ss
+	 */
+	private String payTime;
+	/**
+	 * 扣款金额 单位分
+	 */
+	private String payFee;
+	/**
+	 * 支付信息
+	 */
+	private List<PaymentInfo> paymentInfos;
+	
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfo.java
new file mode 100644
index 0000000..5a3bc46
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfo.java
@@ -0,0 +1,31 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:32
+ */
+@Data
+public class PaymentInfo {
+	/**
+	 * 支付模式。此场景下默认传501212(测试和生产一致)
+	 */
+	private String payModeId;
+	/**
+	 * 支付交易明细标识
+	 */
+	private String payItemId;
+	/**
+	 * 支付金额
+	 */
+	private String payFee;
+	/**
+	 * 支付状态
+	 */
+	private String status;
+	/**
+	 * 支付时间
+	 */
+	private String payTime;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfoRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
new file mode 100644
index 0000000..28954b9
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
@@ -0,0 +1,27 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:32
+ */
+@Data
+public class PaymentInfoRequest {
+	/**
+	 * 支付模式。此场景下默认传501212(测试和生产一致)
+	 */
+	private String payModeId;
+	/**
+	 * 支付金额
+	 */
+	private String realFee;
+	/**
+	 *
+	 */
+	private String tradeFee;
+	/**
+	 * 账户类型 501
+	 */
+	private String accountTyp;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentOrderRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
new file mode 100644
index 0000000..fe05520
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
@@ -0,0 +1,57 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 18:29
+ */
+@Data
+public class PaymentOrderRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 场景应用标识。默认52270015
+	 */
+	private String mhltiCenterAppId;
+	/**
+	 * 支付流水明细
+	 */
+	private String payItemId;
+	/**
+	 * 支付明细json串
+	 */
+	private String paymentInfo;
+	/**
+	 * 订单ID
+	 */
+	private String orderId;
+	/**
+	 * 支付金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 支付时间
+	 */
+	private String payTime;
+	/**
+	 * 支付流水号
+	 */
+	private String paymentSerialNumber;
+	/**
+	 * 付款类型,4、线上支付
+	 */
+	private Integer payType;
+	/**
+	 * 付款方式,6:微信  7:支付宝  8:银行卡 9:银联二维码 10银联购物车收银台
+	 */
+	private Integer payChannel;
+	/**
+	 * 是否补偿单。1、是,0、否
+	 */
+	private Integer isCompensate;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallback.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
new file mode 100644
index 0000000..38f8ffb
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
@@ -0,0 +1,27 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:31
+ */
+@Data
+public class QYTPaymentCallback {
+	/**
+	 * 加密字符串
+	 */
+	private String sign;
+	/**
+	 * 时间戳
+	 */
+	private String timeStamp;
+	/**
+	 * 请求调用唯一标识
+	 */
+	private String messageId;
+	/**
+	 * 支付结果信息
+	 */
+	private QYTPaymentCallbackData data;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
new file mode 100644
index 0000000..a179a9c
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
@@ -0,0 +1,45 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:34
+ */
+@Data
+public class QYTPaymentCallbackData {
+	/**
+	 * 业务侧行程编号
+	 */
+	private String orderNo;
+	/**
+	 * 商户单标识。行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 支付中心商户号
+	 */
+	private String partnerId;
+	/**
+	 * 支付工单标识
+	 */
+	private String payId;
+	/**
+	 * 支付状态。1.未支付 2已支付
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:YYYY-MM-DD HH:mm:ss
+	 */
+	private String payTime;
+	/**
+	 * 扣款总金额 单位分
+	 */
+	private String payFee;
+	/**
+	 * 支付详细信息
+	 */
+	private List<QYTPaymentInfoCallback> paymentInfos;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
new file mode 100644
index 0000000..ee761f8
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
@@ -0,0 +1,35 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:37
+ */
+@Data
+public class QYTPaymentInfoCallback {
+	/**
+	 * 支付交易明细标识
+	 */
+	private String payItemId;
+	/**
+	 * 支付模式
+	 */
+	private String payModeId;
+	/**
+	 * 支付金额,单位分
+	 */
+	private String payFee;
+	/**
+	 * 实付金额,单位分
+	 */
+	private String realFee;
+	/**
+	 * 支付状态。1.未支付 2已支付
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:YYYY-MM-DD HH:mm:ss
+	 */
+	private String payTime;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTUserInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTUserInfo.java
new file mode 100644
index 0000000..68a5060
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/QYTUserInfo.java
@@ -0,0 +1,33 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * 用户信息
+ * @author zhibing.pu
+ * @Date 2025/6/6 15:11
+ */
+@Data
+public class QYTUserInfo {
+	/**
+	 * 手机号码
+	 */
+	private String mobile;
+	/**
+	 * 用户昵称
+	 */
+	private String nickname;
+	/**
+	 * 小头像url
+	 */
+	private String photoUrl;
+	/**
+	 * 大头像url
+	 */
+	private String photoUrlBig;
+	/**
+	 * 企业名称
+	 */
+	private String enterName;
+	
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobile.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobile.java
new file mode 100644
index 0000000..41ca3a9
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobile.java
@@ -0,0 +1,26 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java
new file mode 100644
index 0000000..29b6c19
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/RegisterViaMobileRequest.java
@@ -0,0 +1,46 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ResetPwdRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ResetPwdRequest.java
new file mode 100644
index 0000000..6ebdcdc
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/ResetPwdRequest.java
@@ -0,0 +1,27 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNode.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNode.java
new file mode 100644
index 0000000..5d12248
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNode.java
@@ -0,0 +1,31 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java
new file mode 100644
index 0000000..d1b1822
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SaveStaffNodeRequest.java
@@ -0,0 +1,63 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SendSmsRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SendSmsRequest.java
new file mode 100644
index 0000000..4458570
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/SendSmsRequest.java
@@ -0,0 +1,33 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/2 15:41
+ */
+@Data
+public class SendSmsRequest {
+	/**
+	 * 目标地址
+	 */
+	private String destAddress;
+	/**
+	 * 模板id
+	 */
+	private String templateId;
+	/**
+	 * 参数集合
+	 */
+	private Map<String, String> templateParams;
+	/**
+	 * 模板中占位符key
+	 */
+	private String code;
+	/**
+	 * 签名SPID
+	 */
+	private String spId;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/StaffNodeInfo.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/StaffNodeInfo.java
new file mode 100644
index 0000000..7ccbcb7
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/StaffNodeInfo.java
@@ -0,0 +1,91 @@
+package com.supersavedriving.driver.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/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreate.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreate.java
new file mode 100644
index 0000000..ffe830d
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreate.java
@@ -0,0 +1,19 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:17
+ */
+@Data
+public class TradeOrderCreate {
+	/**
+	 * 订单信息
+	 */
+	private OrderInfo orderInfo;
+	/**
+	 * 支付接口调用信息
+	 */
+	private PayInfo payInfo;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreateData.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
new file mode 100644
index 0000000..fa0dd37
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
@@ -0,0 +1,99 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:03
+ */
+@Data
+public class TradeOrderCreateData {
+	/**
+	 * 司机id
+	 */
+	private String treatShopId;
+	/**
+	 * 应用场景标识
+	 */
+	private String orderAppId;
+	/**
+	 * 场景标识
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 超时时间
+	 */
+	private String timeout;
+	/**
+	 * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”}
+	 */
+	private String field1;
+	/**
+	 * 订单总金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY
+	 */
+	private String channelSource;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 下单人ID
+	 */
+	private String customerId;
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String payPartnerId;
+	/**
+	 * 商户单标识。订单中心行程单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 支付信息
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOff1Data.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOff1Data.java
new file mode 100644
index 0000000..57d770b
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOff1Data.java
@@ -0,0 +1,62 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:23
+ */
+@Data
+public class TradePayOff1Data {
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String partnerId;
+	/**
+	 * 超时时间
+	 */
+	private String timeout;
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 商户单标识。订单中心订单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 商品描述信息。Json数组
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOffData.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOffData.java
new file mode 100644
index 0000000..865ec2e
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradePayOffData.java
@@ -0,0 +1,66 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:23
+ */
+@Data
+public class TradePayOffData {
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String partnerId;
+	/**
+	 * 超时时间
+	 */
+	private String timeout;
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 商户单标识。订单中心订单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 支付信息
+	 */
+	private List<PaymentInfoRequest> paymentInfos;
+	/**
+	 * 商品描述信息。Json数组
+	 */
+	private List<GoodsInfo> goodsInfo;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeRequest.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeRequest.java
new file mode 100644
index 0000000..36a54a9
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TradeRequest.java
@@ -0,0 +1,31 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:22
+ */
+@Data
+public class TradeRequest<T> {
+	/**
+	 * 场景编号.交易中心提供。测试环境:1948289607125864448
+	 */
+	private String sceneId;
+	/**
+	 * 应用编号。中台应用appKey
+	 */
+	private String appId;
+	/**
+	 * 场景版本。交易中心提供。测试环境1
+	 */
+	private Integer configVersion;
+	/**
+	 * 请求ID。每次调用唯一标识
+	 */
+	private String requestId;
+	/**
+	 * 业务数据
+	 */
+	private T data;
+}
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TravelItinerary.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TravelItinerary.java
new file mode 100644
index 0000000..08b8d91
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/model/TravelItinerary.java
@@ -0,0 +1,64 @@
+package com.supersavedriving.driver.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:48
+ */
+@Data
+public class TravelItinerary {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 订单号
+	 */
+	private String orderId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车
+	 */
+	private Integer serviceType;
+	/**
+	 * 订单状态。1、待支付,11、已完结(可结算)
+	 */
+	private Integer orderStatus;
+	/**
+	 * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中
+	 */
+	private Integer status;
+	/**
+	 * 创建时间
+	 */
+	private String createTime;
+	/**
+	 * 更新时间
+	 */
+	private String updateTime;
+	
+}
diff --git a/driver/guns-admin/src/main/resources/application-dev.yml b/driver/guns-admin/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..ad5fc5b
--- /dev/null
+++ b/driver/guns-admin/src/main/resources/application-dev.yml
@@ -0,0 +1,131 @@
+server:
+  port: 8007
+
+guns:
+  swagger-open: true              #是否开启swagger (true/false)
+  kaptcha-open: false             #是否开启登录时验证码 (true/false)
+#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
+  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
+  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+
+spring:
+  application:
+    name: driver-server
+  profiles:
+    active: dev
+#    active: produce
+  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
+
+mybatis-plus:
+  typeAliasesPackage: com.supersavedriving.driver.modular
+  configuration:
+    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
+  mapper-locations: classpath*:com/supersavedriving/driver/modular/system/dao/**/*.xml
+
+
+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.supersavedriving.driver.modular
+
+
+spring:
+  datasource:
+    url: jdbc:mysql://121.31.232.206:3306/qyt_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: 123456
+    db-name: guns #用来搜集数据库的所有表
+    filters: wall,mergeStat
+
+
+
+---
+
+
+
+wx:
+  grantType: authorization_code #填authorization_code
+  appid: 1111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: 111111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wx1f52be0fdb1d2875 #小程序APPid
+  appletsAppSecret: 8210ae106f3a501d77b410070a0aa2c2 #
+  officialAccountAppid: 11111
+  officialAccountAppSecret: 1111
+  webAppId: 111
+  webAppSecret: 11
+  mchId: 111 #微信支付分配的商户号
+  key: 111 #key为商户平台设置的密钥key:
+  apiv3: 111 #key为商户平台设置的密钥key:
+
+---
+
+alipay:
+  appid: 111  #应用程序唯一标识
+  appPrivateKey: 111 #开发者应用私钥
+  alipayPublicKey: 111 #应用公钥
+  alipay_public_key: 111 #支付宝公钥
+
+---
+
+juhe: #聚合数据
+  appKey: 0d3fd83eddaa33e5563f548257648577 #
+
+
+---
+
+filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
+
+callbackPath: http://121.31.232.206:3002/driver
+
+
+---
+
+spring:
+  data:
+    mongodb:
+      uri: mongodb://192.168.110.80:27017/test
+
+---
+
+rongyun:
+  app_key: vnroth0kvgxso
+  app_secret: tZsVNJ4kkBfi
+
+
+#  mallbook 调起接口参数配置
+mallbook:
+  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
+  pay_url: https://cloudpay.mallbook.cn/api
+  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
+  merchant_no: MBH23056
+  # version 接口版本号
+  version: 1.0.0
+  # channel_type 渠道类型 HF:汇付
+  channel_type: HF
+  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
+  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
+  # mall_book_public_key mallbook测试环境公钥 不需要替换
+  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
+
diff --git a/driver/guns-admin/src/main/resources/application-produce.yml b/driver/guns-admin/src/main/resources/application-produce.yml
new file mode 100644
index 0000000..ad5fc5b
--- /dev/null
+++ b/driver/guns-admin/src/main/resources/application-produce.yml
@@ -0,0 +1,131 @@
+server:
+  port: 8007
+
+guns:
+  swagger-open: true              #是否开启swagger (true/false)
+  kaptcha-open: false             #是否开启登录时验证码 (true/false)
+#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
+  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
+  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+
+spring:
+  application:
+    name: driver-server
+  profiles:
+    active: dev
+#    active: produce
+  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
+
+mybatis-plus:
+  typeAliasesPackage: com.supersavedriving.driver.modular
+  configuration:
+    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
+  mapper-locations: classpath*:com/supersavedriving/driver/modular/system/dao/**/*.xml
+
+
+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.supersavedriving.driver.modular
+
+
+spring:
+  datasource:
+    url: jdbc:mysql://121.31.232.206:3306/qyt_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: 123456
+    db-name: guns #用来搜集数据库的所有表
+    filters: wall,mergeStat
+
+
+
+---
+
+
+
+wx:
+  grantType: authorization_code #填authorization_code
+  appid: 1111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: 111111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wx1f52be0fdb1d2875 #小程序APPid
+  appletsAppSecret: 8210ae106f3a501d77b410070a0aa2c2 #
+  officialAccountAppid: 11111
+  officialAccountAppSecret: 1111
+  webAppId: 111
+  webAppSecret: 11
+  mchId: 111 #微信支付分配的商户号
+  key: 111 #key为商户平台设置的密钥key:
+  apiv3: 111 #key为商户平台设置的密钥key:
+
+---
+
+alipay:
+  appid: 111  #应用程序唯一标识
+  appPrivateKey: 111 #开发者应用私钥
+  alipayPublicKey: 111 #应用公钥
+  alipay_public_key: 111 #支付宝公钥
+
+---
+
+juhe: #聚合数据
+  appKey: 0d3fd83eddaa33e5563f548257648577 #
+
+
+---
+
+filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
+
+callbackPath: http://121.31.232.206:3002/driver
+
+
+---
+
+spring:
+  data:
+    mongodb:
+      uri: mongodb://192.168.110.80:27017/test
+
+---
+
+rongyun:
+  app_key: vnroth0kvgxso
+  app_secret: tZsVNJ4kkBfi
+
+
+#  mallbook 调起接口参数配置
+mallbook:
+  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
+  pay_url: https://cloudpay.mallbook.cn/api
+  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
+  merchant_no: MBH23056
+  # version 接口版本号
+  version: 1.0.0
+  # channel_type 渠道类型 HF:汇付
+  channel_type: HF
+  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
+  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
+  # mall_book_public_key mallbook测试环境公钥 不需要替换
+  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
+
diff --git a/driver/guns-admin/src/main/resources/application-test.yml b/driver/guns-admin/src/main/resources/application-test.yml
new file mode 100644
index 0000000..ad5fc5b
--- /dev/null
+++ b/driver/guns-admin/src/main/resources/application-test.yml
@@ -0,0 +1,131 @@
+server:
+  port: 8007
+
+guns:
+  swagger-open: true              #是否开启swagger (true/false)
+  kaptcha-open: false             #是否开启登录时验证码 (true/false)
+#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
+  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
+  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+
+spring:
+  application:
+    name: driver-server
+  profiles:
+    active: dev
+#    active: produce
+  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
+
+mybatis-plus:
+  typeAliasesPackage: com.supersavedriving.driver.modular
+  configuration:
+    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
+  mapper-locations: classpath*:com/supersavedriving/driver/modular/system/dao/**/*.xml
+
+
+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.supersavedriving.driver.modular
+
+
+spring:
+  datasource:
+    url: jdbc:mysql://121.31.232.206:3306/qyt_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: 123456
+    db-name: guns #用来搜集数据库的所有表
+    filters: wall,mergeStat
+
+
+
+---
+
+
+
+wx:
+  grantType: authorization_code #填authorization_code
+  appid: 1111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: 111111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wx1f52be0fdb1d2875 #小程序APPid
+  appletsAppSecret: 8210ae106f3a501d77b410070a0aa2c2 #
+  officialAccountAppid: 11111
+  officialAccountAppSecret: 1111
+  webAppId: 111
+  webAppSecret: 11
+  mchId: 111 #微信支付分配的商户号
+  key: 111 #key为商户平台设置的密钥key:
+  apiv3: 111 #key为商户平台设置的密钥key:
+
+---
+
+alipay:
+  appid: 111  #应用程序唯一标识
+  appPrivateKey: 111 #开发者应用私钥
+  alipayPublicKey: 111 #应用公钥
+  alipay_public_key: 111 #支付宝公钥
+
+---
+
+juhe: #聚合数据
+  appKey: 0d3fd83eddaa33e5563f548257648577 #
+
+
+---
+
+filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
+
+callbackPath: http://121.31.232.206:3002/driver
+
+
+---
+
+spring:
+  data:
+    mongodb:
+      uri: mongodb://192.168.110.80:27017/test
+
+---
+
+rongyun:
+  app_key: vnroth0kvgxso
+  app_secret: tZsVNJ4kkBfi
+
+
+#  mallbook 调起接口参数配置
+mallbook:
+  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
+  pay_url: https://cloudpay.mallbook.cn/api
+  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
+  merchant_no: MBH23056
+  # version 接口版本号
+  version: 1.0.0
+  # channel_type 渠道类型 HF:汇付
+  channel_type: HF
+  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
+  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
+  # mall_book_public_key mallbook测试环境公钥 不需要替换
+  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
+
diff --git a/driver/guns-admin/src/main/resources/application.yml b/driver/guns-admin/src/main/resources/application.yml
index 1c093db..883c13d 100644
--- a/driver/guns-admin/src/main/resources/application.yml
+++ b/driver/guns-admin/src/main/resources/application.yml
@@ -1,155 +1,3 @@
-server:
-  port: 8007
-
-guns:
-  swagger-open: true              #是否开启swagger (true/false)
-  kaptcha-open: false             #是否开启登录时验证码 (true/false)
-#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
-  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
-  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
-  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
-
 spring:
-  application:
-    name: driver-server
   profiles:
-    active: dev
-#    active: produce
-  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
-
-mybatis-plus:
-  typeAliasesPackage: com.supersavedriving.driver.modular
-  configuration:
-    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
-  mapper-locations: classpath*:com/supersavedriving/driver/modular/system/dao/**/*.xml
-
-
-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.supersavedriving.driver.modular
-
-
-spring:
-  datasource:
-    url: jdbc:mysql://121.31.232.206:3306/ok_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
-    username: root
-#    password: f4OfRjqoN3jSiNGiUoiNsQdOBtCOKYRj
-    password: Xiwang2024!
-    db-name: guns #用来搜集数据库的所有表
-    filters: wall,mergeStat
-
-#  datasource:
-#    url: jdbc:mysql://192.168.110.80:3306/super_save_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
-#    username: root
-#    password: 123456
-#    db-name: guns #用来搜集数据库的所有表
-#    filters: wall,mergeStat
-
-#多数据源情况的配置
-guns:
-  muti-datasource:
-    open: false
-    url: jdbc:mysql://127.0.0.1:3306/guns_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
-    username: root
-    password: root
-    dataSourceNames:
-      - dataSourceGuns
-      - dataSourceBiz
-
----
-
-
-
-wx:
-  grantType: authorization_code #填authorization_code
-  appid: wx8a9af3889395d0e1 #应用唯一标识,在微信开放平台提交应用审核通过后获得
-  appSecret: 95a34f114973298cce4297a20bb59bc3 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
-  appletsAppid: wxda355f1377409600 #小程序APPid
-  appletsAppSecret: 58121b67f2ba25c17998fa26dc77e008 #
-  officialAccountAppid: 11111
-  officialAccountAppSecret: 1111
-  webAppId: 111
-  webAppSecret: 11
-  mchId: 1636941942 #微信支付分配的商户号
-  key: Eri2GR2SB3b6iIhaoD7k3KQ8X0wf1Ybh #key为商户平台设置的密钥key:
-  apiv3: AKJ51Z4nhSqYBxmOXgUyCKA1vLP0J5Aj #key为商户平台设置的密钥key:
-
----
-
-alipay:
-  appid: 111  #应用程序唯一标识
-  appPrivateKey: 111 #开发者应用私钥
-  alipayPublicKey: 111 #应用公钥
-  alipay_public_key: 111 #支付宝公钥
-
----
-
-juhe: #聚合数据
-  appKey: 0d3fd83eddaa33e5563f548257648577 #
-
-
----
-
-filePath: /usr/local/server/app/orderPostionFile/ #存储订单轨迹文件路径
-#filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
-
-#支付回调地址
-#正式环境
-#callbackPath: https://chaoshengdaijia.com:443/driver
-#测试环境
-callbackPath: http://121.31.232.206:3002/driver
-#callbackPath: http://221.182.45.100:3002/driver
-
-
----
-
-spring:
-  data:
-    mongodb:
-#      uri: mongodb://192.168.110.188:27017/admin
-      uri: mongodb://121.31.232.206:27017/test
-
----
-
-rongyun:
-  app_key: vnroth0kvgxso
-  app_secret: tZsVNJ4kkBfi
-
-
-#  mallbook 调起接口参数配置
-mallbook:
-  # pay_url:mallbook接口地址    测试环境: https://uat.mallbook.cn/api   生产环境:https://cloudpay.mallbook.cn/api
-  pay_url: https://cloudpay.mallbook.cn/api
-  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
-  merchant_no: MBH23056
-  # version 接口版本号
-  version: 1.0.0
-  # channel_type 渠道类型 HF:汇付
-  channel_type: HF
-  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
-  merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT
-  # mall_book_public_key mallbook测试环境公钥 不需要替换
-  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
-
+    active: '@spring.active@'
\ No newline at end of file
diff --git a/driver/guns-admin/src/main/resources/redis.properties b/driver/guns-admin/src/main/resources/redis.properties
deleted file mode 100644
index 1e2b857..0000000
--- a/driver/guns-admin/src/main/resources/redis.properties
+++ /dev/null
@@ -1,30 +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
-
-## Redis��������ַ
-#spring.redis.host=127.0.0.1
-## Redis���������Ӷ˿�
-#spring.redis.port=6379
-## Redis�������������루Ĭ��Ϊ�գ�
-#spring.redis.password=123456
-
-# ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ�
-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/driver/pom.xml b/driver/pom.xml
index 104bdfa..5784b35 100644
--- a/driver/pom.xml
+++ b/driver/pom.xml
@@ -221,19 +221,13 @@
 
     <profiles>
         <profile>
-            <id>local</id>
-            <properties>
-                <spring.active>local</spring.active>
-            </properties>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
-        </profile>
-        <profile>
             <id>dev</id>
             <properties>
                 <spring.active>dev</spring.active>
             </properties>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
         </profile>
         <profile>
             <id>test</id>

--
Gitblit v1.7.1