From 380c0e958fbc3f2b42a3e38ae5dc9af3254b8f5c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 25 五月 2023 09:36:16 +0800
Subject: [PATCH] 新增加功能和更换账号

---
 driver/guns-admin/src/main/resources/redis.properties                                                                 |   18 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java                                |   50 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java                  |    2 
 management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js                            |  179 ++-
 driver/guns-admin/src/main/resources/application.yml                                                                  |   57 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java                         |    2 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java                     |    2 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java                  |    2 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java                       |   10 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java                 |  595 +++++-------
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java                           |   10 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java                             |    2 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml                        |    2 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html                           |    3 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html                  |  118 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java                      |    2 
 user/guns-admin/src/main/resources/application.yml                                                                    |   62 -
 management/guns-admin/src/main/webapp/WEB-INF/view/home.html                                                          |    9 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java            |   87 +
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html                                          |    1 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html                                 |    1 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java                     |    2 
 user/guns-admin/src/main/resources/redis.properties                                                                   |   18 
 driver/guns-admin/pom.xml                                                                                             |    5 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java          |   33 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java                          |    2 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java                      |  182 ++--
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html                                       |    7 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java           |    2 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java                                  |  134 --
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java |   30 
 management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js                                          |    2 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java                        |   10 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java               |  117 +
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html             |    2 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java             |  112 +
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java             |  113 +
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java        |   80 
 management/guns-admin/src/main/resources/redis.properties                                                             |   22 
 management/guns-admin/src/main/resources/logback-spring.xml                                                           |  337 ++++--
 management/guns-admin/src/main/resources/application.yml                                                              |   15 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html                                      |    4 
 management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js                                 |   14 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html                                        |    7 
 management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js                                      |    4 
 user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java                         |    2 
 /dev/null                                                                                                             |   31 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java                      |    2 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html                                    |    3 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html                         |   11 
 driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java                    |   44 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java      |   29 
 52 files changed, 1,359 insertions(+), 1,231 deletions(-)

diff --git a/driver/guns-admin/pom.xml b/driver/guns-admin/pom.xml
index 83b2012..37e424b 100644
--- a/driver/guns-admin/pom.xml
+++ b/driver/guns-admin/pom.xml
@@ -199,6 +199,11 @@
             <artifactId>hutool-all</artifactId>
             <version>5.7.7</version>
         </dependency>
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.3.1</version>
+        </dependency>
     </dependencies>
 
 
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java
index 1f639ec..c1e7500 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/api/DriverController.java
@@ -894,101 +894,101 @@
     }
 
 
-
-    @ResponseBody
-    @PostMapping("/api/driver/microenterprise")
-//    @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise")
-    @ApiOperation(value = "绑定商户", tags = {"司机端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResponseWarpper microenterprise(String name, String IDCode, String phone){
-        try {
-            Integer uid = driverService.getUserByRequest();
-            if(null == uid){
-                return ResponseWarpper.tokenErr();
-            }
-            ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone);
-            return ResponseWarpper.success(resultUtil);
-        }catch (Exception e){
-            e.printStackTrace();
-            return new ResponseWarpper(500, e.getMessage());
-        }
-    }
+//
+//    @ResponseBody
+//    @PostMapping("/api/driver/microenterprise")
+////    @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise")
+//    @ApiOperation(value = "绑定商户", tags = {"司机端-个人中心"}, notes = "")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
+//            @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
+//            @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
+//            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+//    })
+//    public ResponseWarpper microenterprise(String name, String IDCode, String phone){
+//        try {
+//            Integer uid = driverService.getUserByRequest();
+//            if(null == uid){
+//                return ResponseWarpper.tokenErr();
+//            }
+//            ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone);
+//            return ResponseWarpper.success(resultUtil);
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            return new ResponseWarpper(500, e.getMessage());
+//        }
+//    }
 
 
 
 
-    @ResponseBody
-    @PostMapping("/api/driver/queryBank")
-//    @ServiceLog(name = "获取绑定的银行卡", url = "/api/driver/queryBank")
-    @ApiOperation(value = "获取绑定的银行卡", tags = {"司机端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResponseWarpper<DriverBank> queryBank(){
-        try {
-            Integer uid = driverService.getUserByRequest();
-            if(null == uid){
-                return ResponseWarpper.tokenErr();
-            }
-            DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid));
-            return ResponseWarpper.success(driverId);
-        }catch (Exception e){
-            e.printStackTrace();
-            return new ResponseWarpper(500, e.getMessage());
-        }
-    }
+//    @ResponseBody
+//    @PostMapping("/api/driver/queryBank")
+////    @ServiceLog(name = "获取绑定的银行卡", url = "/api/driver/queryBank")
+//    @ApiOperation(value = "获取绑定的银行卡", tags = {"司机端-个人中心"}, notes = "")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+//    })
+//    public ResponseWarpper<DriverBank> queryBank(){
+//        try {
+//            Integer uid = driverService.getUserByRequest();
+//            if(null == uid){
+//                return ResponseWarpper.tokenErr();
+//            }
+//            DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid));
+//            return ResponseWarpper.success(driverId);
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            return new ResponseWarpper(500, e.getMessage());
+//        }
+//    }
 
 
-    @ResponseBody
-    @PostMapping("/api/driver/addDriverBank")
-//    @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank")
-    @ApiOperation(value = "绑定银行卡", tags = {"司机端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "银行卡号", name = "bankNumber", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResponseWarpper addDriverBank(String name, String phone, String IDCode, String bankNumber){
-        try {
-            Integer uid = driverService.getUserByRequest();
-            if(null == uid){
-                return ResponseWarpper.tokenErr();
-            }
-            ResultUtil resultUtil = driverBankService.addDriverBank(uid, name, phone, IDCode, bankNumber);
-            return ResponseWarpper.success(resultUtil);
-        }catch (Exception e){
-            e.printStackTrace();
-            return new ResponseWarpper(500, e.getMessage());
-        }
-    }
-
-
-    @ResponseBody
-    @PostMapping("/api/driver/delDriverBank")
-//    @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank")
-    @ApiOperation(value = "解绑银行卡", tags = {"司机端-个人中心"}, notes = "")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
-    public ResponseWarpper delDriverBank(Integer id){
-        try {
-            Integer uid = driverService.getUserByRequest();
-            if(null == uid){
-                return ResponseWarpper.tokenErr();
-            }
-            ResultUtil resultUtil = driverBankService.delDriverBank(uid, id);
-            return ResponseWarpper.success(resultUtil);
-        }catch (Exception e){
-            e.printStackTrace();
-            return new ResponseWarpper(500, e.getMessage());
-        }
-    }
+//    @ResponseBody
+//    @PostMapping("/api/driver/addDriverBank")
+////    @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank")
+//    @ApiOperation(value = "绑定银行卡", tags = {"司机端-个人中心"}, notes = "")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
+//            @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
+//            @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
+//            @ApiImplicitParam(value = "银行卡号", name = "bankNumber", required = true, dataType = "String"),
+//            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+//    })
+//    public ResponseWarpper addDriverBank(String name, String phone, String IDCode, String bankNumber){
+//        try {
+//            Integer uid = driverService.getUserByRequest();
+//            if(null == uid){
+//                return ResponseWarpper.tokenErr();
+//            }
+//            ResultUtil resultUtil = driverBankService.addDriverBank(uid, name, phone, IDCode, bankNumber);
+//            return ResponseWarpper.success(resultUtil);
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            return new ResponseWarpper(500, e.getMessage());
+//        }
+//    }
+//
+//
+//    @ResponseBody
+//    @PostMapping("/api/driver/delDriverBank")
+////    @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank")
+//    @ApiOperation(value = "解绑银行卡", tags = {"司机端-个人中心"}, notes = "")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"),
+//            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+//    })
+//    public ResponseWarpper delDriverBank(Integer id){
+//        try {
+//            Integer uid = driverService.getUserByRequest();
+//            if(null == uid){
+//                return ResponseWarpper.tokenErr();
+//            }
+//            ResultUtil resultUtil = driverBankService.delDriverBank(uid, id);
+//            return ResponseWarpper.success(resultUtil);
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            return new ResponseWarpper(500, e.getMessage());
+//        }
+//    }
 }
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java
index aeea3ed..ef841b1 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverBankServiceImpl.java
@@ -6,10 +6,6 @@
 import com.agentdriving.driver.modular.system.model.DriverBank;
 import com.agentdriving.driver.modular.system.service.IDriverBankService;
 import com.agentdriving.driver.modular.system.service.IDriverService;
-import com.agentdriving.driver.modular.system.util.MallBook.model.BindAccount;
-import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
-import com.agentdriving.driver.modular.system.util.MallBook.model.UnbindAccount;
-import com.agentdriving.driver.modular.system.util.MallBook.util.TrhRequest;
 import com.agentdriving.driver.modular.system.util.ResultUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -55,27 +51,27 @@
         driverBank.setName(name);
         driverBank.setPhone(phone);
 
-        BindAccount bindAccount = new BindAccount();
-        bindAccount.setUserId(driver.getMerchantNumber());
-        bindAccount.setCertId(IDCode);
-        bindAccount.setCardName(name);
-        bindAccount.setCardNo(bankNumber);
-        bindAccount.setBankAcctType("2");
-        bindAccount.setPhone(phone);
-        TrhRequest<BindAccount> request = new TrhRequest();
-        InterfaceResponse execute = request.execute(bindAccount, BindAccount.SERVICE_CODE);
-        if(!"0000".equals(execute.getResult())){
-            return ResultUtil.error(execute.getMsg());
-        }
-        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-        String status = jsonObject.getString("status");
-        if("2".equals(status)){
-            return ResultUtil.error("失败");
-        }
-        if("0".equals(status)){
-            return ResultUtil.error("处理中");
-        }
-        this.insert(driverBank);
+//        BindAccount bindAccount = new BindAccount();
+//        bindAccount.setUserId(driver.getMerchantNumber());
+//        bindAccount.setCertId(IDCode);
+//        bindAccount.setCardName(name);
+//        bindAccount.setCardNo(bankNumber);
+//        bindAccount.setBankAcctType("2");
+//        bindAccount.setPhone(phone);
+//        TrhRequest<BindAccount> request = new TrhRequest();
+//        InterfaceResponse execute = request.execute(bindAccount, BindAccount.SERVICE_CODE);
+//        if(!"0000".equals(execute.getResult())){
+//            return ResultUtil.error(execute.getMsg());
+//        }
+//        JSONObject jsonObject = JSON.parseObject(execute.getResult());
+//        String status = jsonObject.getString("status");
+//        if("2".equals(status)){
+//            return ResultUtil.error("失败");
+//        }
+//        if("0".equals(status)){
+//            return ResultUtil.error("处理中");
+//        }
+//        this.insert(driverBank);
         return ResultUtil.success();
     }
 
@@ -86,23 +82,23 @@
         if(ToolUtil.isEmpty(driver.getMerchantNumber())){
             return ResultUtil.error("请先注册商户");
         }
-        UnbindAccount unbindAccount = new UnbindAccount();
-        unbindAccount.setUserId(driver.getMerchantNumber());
-
-        TrhRequest<UnbindAccount> request = new TrhRequest<>();
-        InterfaceResponse execute = request.execute(unbindAccount, UnbindAccount.SERVICE_CODE);
-        if(!"0000".equals(execute.getResult())){
-            return ResultUtil.error(execute.getMsg());
-        }
-        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-        String status = jsonObject.getString("status");
-        if("2".equals(status)){
-            return ResultUtil.error("失败");
-        }
-        if("0".equals(status)){
-            return ResultUtil.error("处理中");
-        }
-        this.deleteById(id);
+//        UnbindAccount unbindAccount = new UnbindAccount();
+//        unbindAccount.setUserId(driver.getMerchantNumber());
+//
+//        TrhRequest<UnbindAccount> request = new TrhRequest<>();
+//        InterfaceResponse execute = request.execute(unbindAccount, UnbindAccount.SERVICE_CODE);
+//        if(!"0000".equals(execute.getResult())){
+//            return ResultUtil.error(execute.getMsg());
+//        }
+//        JSONObject jsonObject = JSON.parseObject(execute.getResult());
+//        String status = jsonObject.getString("status");
+//        if("2".equals(status)){
+//            return ResultUtil.error("失败");
+//        }
+//        if("0".equals(status)){
+//            return ResultUtil.error("处理中");
+//        }
+//        this.deleteById(id);
         return ResultUtil.success();
     }
 }
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java
index 6df6f9a..8779229 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -9,9 +9,7 @@
 import com.agentdriving.driver.modular.system.model.*;
 import com.agentdriving.driver.modular.system.service.*;
 import com.agentdriving.driver.modular.system.util.*;
-import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
-import com.agentdriving.driver.modular.system.util.MallBook.model.Register;
-import com.agentdriving.driver.modular.system.util.MallBook.util.TrhRequest;
+import com.agentdriving.driver.modular.system.util.juhe.OCRUtil;
 import com.agentdriving.driver.modular.system.util.mongodb.model.Location;
 import com.agentdriving.driver.modular.system.util.rongyun.RongYunUtil;
 import com.agentdriving.driver.modular.system.warpper.*;
@@ -19,10 +17,6 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.agentdriving.driver.modular.system.model.*;
-import com.agentdriving.driver.modular.system.service.*;
-import com.agentdriving.driver.modular.system.util.*;
-import com.agentdriving.driver.modular.system.warpper.*;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
@@ -42,8 +36,12 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -125,6 +123,27 @@
         if(null != driver && driver.getApprovalStatus() == 2){
             return ResultUtil.error("该手机账号已审核通过,请直接登录。");
         }
+        String idcardFront = driverRegisterWarpper.getIdcardFront();
+        MultipartFile file = MultipartFileUtil.fileToMultipartFile(new File(idcardFront));
+        JSONObject certificate = OCRUtil.certificate(2, file);
+        if(null == certificate){
+            return ResultUtil.error("身份证识别失败");
+        }
+        String idcode = certificate.getString("公民身份号码");
+        driver.setIdcard(idcode);
+
+
+        String driverLicense = driverRegisterWarpper.getDriverLicense();
+        file = MultipartFileUtil.fileToMultipartFile(new File(driverLicense));
+        certificate = OCRUtil.certificate(5, file);
+        if(null == certificate){
+            return ResultUtil.error("驾驶证识别失败");
+        }
+        System.err.println("驾驶证:" + certificate.toString());
+        String driverLicenseNumber = certificate.getString("驾驶证号码");
+        driver.setDriverLicenseNumber(driverLicenseNumber);
+        driver.setFirstCertificateTime(null);
+
 
         //账号审核拒绝后的处理
         if(null != driver && driver.getApprovalStatus() == 3){
@@ -873,33 +892,33 @@
      */
     @Override
     public ResultUtil microenterprise(Integer uid, String name, String number, String phone) throws Exception {
-        Driver driver = this.selectById(uid);
-        Register registerVO = new Register();
-        registerVO.setMerUserId("driver_" + uid);
-        registerVO.setPhone(phone);
-        registerVO.setUserType("0");
-        registerVO.setUserName(name);
-        registerVO.setCertId(number);
-        registerVO.setNotifyUrl("");
-        TrhRequest<Register> request = new TrhRequest();
-        InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE);
-        if(!"0000".equals(execute.getResult())){
-            return ResultUtil.error(execute.getMsg());
-        }
-        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-        String status = jsonObject.getString("status");
-        if("2".equals(status)){
-            return ResultUtil.error("失败");
-        }
-        if("0".equals(status)){
-            return ResultUtil.error("处理中");
-        }
-        String userId = jsonObject.getString("userId");
-        driver.setMerchantNumber(userId);
-        driver.setMerchantIDCode(number);
-        driver.setMerchantName(name);
-        driver.setMerchantPhone(phone);
-        this.updateById(driver);
+//        Driver driver = this.selectById(uid);
+//        Register registerVO = new Register();
+//        registerVO.setMerUserId("driver_" + uid);
+//        registerVO.setPhone(phone);
+//        registerVO.setUserType("0");
+//        registerVO.setUserName(name);
+//        registerVO.setCertId(number);
+//        registerVO.setNotifyUrl("");
+//        TrhRequest<Register> request = new TrhRequest();
+//        InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE);
+//        if(!"0000".equals(execute.getResult())){
+//            return ResultUtil.error(execute.getMsg());
+//        }
+//        JSONObject jsonObject = JSON.parseObject(execute.getResult());
+//        String status = jsonObject.getString("status");
+//        if("2".equals(status)){
+//            return ResultUtil.error("失败");
+//        }
+//        if("0".equals(status)){
+//            return ResultUtil.error("处理中");
+//        }
+//        String userId = jsonObject.getString("userId");
+//        driver.setMerchantNumber(userId);
+//        driver.setMerchantIDCode(number);
+//        driver.setMerchantName(name);
+//        driver.setMerchantPhone(phone);
+//        this.updateById(driver);
         return ResultUtil.success();
     }
 }
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java
index ca9e7bb..35829aa 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -243,19 +243,18 @@
         JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard");
         JSONObject extraCost = jsonObject.getJSONObject("ExtraCost");
         Date date = new Date();
-        for (int i = 0; i < chargeStandard.size(); i++) {
+
+        boolean b = true;
+        for (int i = 1; i < chargeStandard.size(); i++) {//各种时间段
             JSONObject jsonObject1 = chargeStandard.getJSONObject(i);
             String num1 = jsonObject1.getString("num1");
             String num2 = jsonObject1.getString("num2");
-            Double num3 = jsonObject1.getDouble("num3");//起步里程
-            Double num4 = jsonObject1.getDouble("num4");//起步价格
-            Double num5 = jsonObject1.getDouble("num5");//超过公里
-            Double num6 = jsonObject1.getDouble("num6");//超过num3每num5公里收取num6
-            Double num7 = jsonObject1.getDouble("num7");//长途起始公里
-            Double num8 = jsonObject1.getDouble("num8");//长途结束公里
-            Double num9 = jsonObject1.getDouble("num9");//长途费
-            Double num10 = jsonObject1.getDouble("num10");//超出长途里程每num10公里
-            Double num11 = jsonObject1.getDouble("num11");//超过num8每num10公里收取num11
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
 
             String[] split = num1.split(":");
             Calendar s = Calendar.getInstance();
@@ -272,33 +271,81 @@
             e.set(Calendar.SECOND, 0);
 
             if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
-                if(num3.compareTo(distance) >= 0){//起步里程内
-                    order.setStartDistance(distance);//起步里程
-                    order.setStartPrice(num4);//起步价
-                }else{
-                    BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程
-                    BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN));
-                    BigDecimal multiply = divide.multiply(new BigDecimal(num6));
-                    order.setStartDistance(num3);//起步里程
-                    order.setStartPrice(num4);//起步价
-                    order.setOverDriveDistance(subtract.doubleValue());//超出起步里程
-                    order.setOverDrivePrice(multiply.doubleValue());//超出起步里程费
-
+                b = false;
+                Double dd = 0d;
+                for (int j = 0; j < num3.size(); j++) {
+                    JSONObject jsonObject2 = num3.getJSONObject(j);
+                    Double num1_1 = jsonObject2.getDouble("num1");
+                    Double num2_1 = jsonObject2.getDouble("num2");
+                    Double num3_1 = jsonObject2.getDouble("num3");
+                    if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                        order.setStartDistance(distance);//起步里程
+                        order.setStartPrice(num3_1);//起步价
+                    }
+                    if(j == num3.size() - 1 && order.getStartPrice() == 0){
+                        order.setStartDistance(num2_1);//起步里程
+                        order.setStartPrice(num3_1);//起步价
+                        dd = distance - num2_1;
+                    }
+                }
+                if(dd != 0){
                     //计算长途费
-                    if(distance.compareTo(num7) > 0){
-                        order.setLongDistance(num7 + "-" + num8);//长途里程
-                        order.setLongDistancePrice(num9);//长途费
+                    if(distance.compareTo(num4) > 0){
+                        order.setLongDistance(num4 + "-" + num5);//长途里程
+                        order.setLongDistancePrice(num6);//长途费
                     }
                     //计算长途里程超出的部分
-                    if(distance.compareTo(num8) > 0){
-                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8));
-                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN));
-                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11));
+                    if(distance.compareTo(num5) > 0){
+                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
                         order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
                         order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
                     }
                 }
                 break;
+            }
+        }
+
+        if(b){//默认配置
+            JSONObject jsonObject1 = chargeStandard.getJSONObject(0);
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
+
+            Double dd = 0d;
+            for (int j = 0; j < num3.size(); j++) {
+                JSONObject jsonObject2 = num3.getJSONObject(j);
+                Double num1_1 = jsonObject2.getDouble("num1");
+                Double num2_1 = jsonObject2.getDouble("num2");
+                Double num3_1 = jsonObject2.getDouble("num3");
+                if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                    order.setStartDistance(distance);//起步里程
+                    order.setStartPrice(num3_1);//起步价
+                }
+                if(j == num3.size() - 1 && order.getStartPrice() == 0){
+                    order.setStartDistance(num2_1);//起步里程
+                    order.setStartPrice(num3_1);//起步价
+                    dd = distance - num2_1;
+                }
+            }
+            if(dd != 0){
+                //计算长途费
+                if(distance.compareTo(num4) > 0){
+                    order.setLongDistance(num4 + "-" + num5);//长途里程
+                    order.setLongDistancePrice(num6);//长途费
+                }
+                //计算长途里程超出的部分
+                if(distance.compareTo(num5) > 0){
+                    BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                    BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                    BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
+                    order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
+                    order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
+                }
             }
         }
 
@@ -326,7 +373,7 @@
 
         //恶劣天气
         systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8));
-        if(null != systemConfig) {
+        if(null != systemConfig){
             JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent());
             Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价
             if(1 == num11){
@@ -355,11 +402,6 @@
             }
         }
 
-
-        //计算折扣
-        if(null != order.getUserId()){
-
-        }
 
         //计算总金额
         BigDecimal bigDecimal = new BigDecimal(order.getStartPrice() + order.getOverDrivePrice() + order.getLongDistancePrice() + order.getOverLongDistancePrice() +
@@ -823,6 +865,7 @@
                 Driver driver = driverService.selectById(order.getDriverId());
                 driver.setServerStatus(1);
                 driverService.updateById(driver);
+                accountChangeDetailService.deductionInsurance();//扣减保险费
                 saveIntegral(order);
                 break;
             case 401:
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiApiUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiApiUtil.java
deleted file mode 100644
index 136746e..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiApiUtil.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.agentdriving.driver.modular.system.util;
-
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.agentdriving.driver.modular.system.util.httpClinet.HttpClientUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 阿里云API接口工具类
- */
-@Component
-public class ALiApiUtil {
-
-
-    /**
-     * 身份认证接口
-     * @param name  姓名
-     * @param code  身份证号
-     * @return
-     */
-    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");
-        Map<String, Object> param = new HashMap<>();
-        param.put("__userId", "1732960796168165");
-        param.put("verifyKey", "IVO4js5kValcdt");
-        param.put("userName", name);
-        param.put("identifyNum", code);
-        String get = null;
-        try {
-            get = HttpClientUtil.pushHttpRequset("GET", url, param, header, "form").getData();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        JSONObject jsonObject = JSON.parseObject(get);
-        if(jsonObject.getIntValue("code") == 200){
-            JSONObject value = jsonObject.getJSONObject("value");
-            if(value.getString("bizCode").equals("0")){
-                return true;
-            }else{
-                return false;
-            }
-        }else{
-            System.err.println(jsonObject.getString("message"));
-        }
-        return false;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiSendSms.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiSendSms.java
deleted file mode 100644
index e81d729..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ALiSendSms.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package com.agentdriving.driver.modular.system.util;
-
-
-import com.aliyuncs.CommonRequest;
-import com.aliyuncs.CommonResponse;
-import com.aliyuncs.DefaultAcsClient;
-import com.aliyuncs.IAcsClient;
-import com.aliyuncs.exceptions.ClientException;
-import com.aliyuncs.profile.DefaultProfile;
-import com.google.gson.Gson;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 阿里云短信工具类
- */
-@Component
-public class ALiSendSms {
-
-    // 设置鉴权参数,初始化客户端
-    private DefaultProfile profile = DefaultProfile.getProfile(
-            "cn-hangzhou",// 地域ID
-            "LTAI4G9Zez9H4B36vakPXGy4",// 您的AccessKey ID
-            "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ");// 您的AccessKey Secret
-    private IAcsClient client = new DefaultAcsClient(profile);
-
-    private static void log_print(String functionName, Object result) {
-        Gson gson = new Gson();
-        System.out.println("-------------------------------" + functionName + "-------------------------------");
-        System.out.println(gson.toJson(result));
-    }
-
-    /**
-     * 添加短信模板
-     */
-    public String addSmsTemplate() throws ClientException {
-        CommonRequest addSmsTemplateRequest = new CommonRequest();
-        addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com");
-        addSmsTemplateRequest.setSysAction("AddSmsTemplate");
-        addSmsTemplateRequest.setSysVersion("2017-05-25");
-        // 短信类型。0:验证码;1:短信通知;2:推广短信;3:国际/港澳台消息
-        addSmsTemplateRequest.putQueryParameter("TemplateType", "0");
-        // 模板名称,长度为1~30个字符
-        addSmsTemplateRequest.putQueryParameter("TemplateName", "测试短信模板");
-        // 模板内容,长度为1~500个字符
-        addSmsTemplateRequest.putQueryParameter("TemplateContent", "您正在申请手机注册,验证码为:${code},5分钟内有效!");
-        // 短信模板申请说明
-        addSmsTemplateRequest.putQueryParameter("Remark", "测试");
-        CommonResponse addSmsTemplateResponse = client.getCommonResponse(addSmsTemplateRequest);
-        String data = addSmsTemplateResponse.getData();
-        // 消除返回文本中的反转义字符
-        String sData = data.replaceAll("'\'", "");
-        log_print("addSmsTemplate", sData);
-        Gson gson = new Gson();
-        // 将字符串转换为Map类型,取TemplateCode字段值
-        Map map = gson.fromJson(sData, Map.class);
-        Object templateCode = map.get("TemplateCode");
-        return templateCode.toString();
-    }
-
-    /**
-     * 发送短信
-     */
-    public String sendSms(String phone, String templateCode, String json) throws ClientException {
-        CommonRequest request = new CommonRequest();
-        request.setSysDomain("dysmsapi.aliyuncs.com");
-        request.setSysVersion("2017-05-25");
-        request.setSysAction("SendSms");
-        // 接收短信的手机号码
-        request.putQueryParameter("PhoneNumbers", phone);
-        // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
-        request.putQueryParameter("SignName", "OK出行");
-        // 短信模板ID
-        request.putQueryParameter("TemplateCode", templateCode);
-        // 短信模板变量对应的实际值,JSON格式。
-        request.putQueryParameter("TemplateParam", json);
-        CommonResponse commonResponse = client.getCommonResponse(request);
-        String data = commonResponse.getData();
-        String sData = data.replaceAll("'\'", "");
-        log_print("sendSms", sData);
-        return sData;
-    }
-
-    /**
-     * 查询发送详情
-     */
-    private void querySendDetails(String bizId) throws ClientException {
-        CommonRequest request = new CommonRequest();
-        request.setSysDomain("dysmsapi.aliyuncs.com");
-        request.setSysVersion("2017-05-25");
-        request.setSysAction("QuerySendDetails");
-        // 接收短信的手机号码
-        request.putQueryParameter("PhoneNumber", "156xxxxxxxx");
-        // 短信发送日期,支持查询最近30天的记录。格式为yyyyMMdd,例如20191010。
-        request.putQueryParameter("SendDate", "20191010");
-        // 分页记录数量
-        request.putQueryParameter("PageSize", "10");
-        // 分页当前页码
-        request.putQueryParameter("CurrentPage", "1");
-        // 发送回执ID,即发送流水号。
-        request.putQueryParameter("BizId", bizId);
-        CommonResponse response = client.getCommonResponse(request);
-        log_print("querySendDetails", response.getData());
-    }
-
-    public static void main(String[] args) {
-        ALiSendSms sendSmsDemo = new ALiSendSms();
-        try {
-            // 创建短信模板
-            String templateCode = sendSmsDemo.addSmsTemplate();
-            // 使用刚创建的短信模板发送短信
-            String sData = sendSmsDemo.sendSms("156xxxxxxxx", templateCode, "{\"code\":\"8888\"}");
-            Gson gson = new Gson();
-            Map map = gson.fromJson(sData, Map.class);
-            String bizId = map.get("BizId").toString();
-            // 根据短信发送流水号查询短信发送情况
-            sendSmsDemo.querySendDetails(bizId);
-        } catch (ClientException e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ChinaMobileUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ChinaMobileUtil.java
deleted file mode 100644
index d86a5e5..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/ChinaMobileUtil.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package com.agentdriving.driver.modular.system.util;
-
-import com.agentdriving.driver.core.util.MD5Util;
-import com.alibaba.fastjson.JSONObject;
-import com.agentdriving.driver.modular.system.util.httpClinet.HttpClientUtil;
-import com.agentdriving.driver.modular.system.util.httpClinet.HttpResult;
-import org.apache.commons.codec.binary.Base64;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 中国移动工具类
- */
-@Component
-public class ChinaMobileUtil {
-
-    private String APIKey = "zj42494b1bdd416b9762229af6b5cbbd";
-
-    private String SecretKey = "30323561316534653735613230316339";
-
-
-    /**
-     * 绑定小号
-     * @param phoneA
-     * @param phoneB
-     * @param areaCode
-     * @return
-     * @throws Exception
-     */
-    public Map<String, String> midAxbBindSend(String phoneA, String phoneB, Integer areaCode) throws Exception{
-        //组装请求对象-具体描述见开发文档-订单小号-AXB接口规范部分内容
-        Map<String, Object> request = new HashMap<>();
-        request.put("APPID", APIKey);
-        request.put("bindtype", "AXB");
-        request.put("requestId", UUIDUtil.getRandomCode(16));
-        request.put("record", "0");
-        //用户号码,必填,格式遵循国际电信联盟定义的E.164标准
-        request.put("telA", "86" + phoneA);
-        //用户号码B,必填,格式遵循国际电信联盟定义的E.164标准
-        request.put("telB", "86" + phoneB);
-        //需要选择的小号所属区号,当telX不写时必填,例如:杭州(571)
-        request.put("areaCode", 571);
-        //订单小号,非必填,当指定小号绑定时填写,格式遵循国际电信联盟定义的E.164标准
-//        request.setTelX("8618867110000");
-        //绑定关系过期失效时间,秒,取值必须大于0且最大值不超过4294967296
-        request.put("expiration", Integer.valueOf(7 * 24 * 60 * 60));
-
-        Map<String, String> header = new HashMap<String, String>(3);
-        header.put("Authorization", "Basic " + new String(Base64.encodeBase64((APIKey + ":" + SecretKey).getBytes())));
-        header.put("Content-Type", "application/json;charset=utf-8");
-        HttpResult httpResult = HttpClientUtil.pushHttpRequset("POST", "https://ct.open.10086.cn/ordernumber/v1/binding", request, header, "json");
-        String post = httpResult.getData();
-        Map<String, String> map1 = new HashMap<>();
-        if(post.indexOf("0000") != -1){
-            JSONObject jsonObject = JSONObject.parseObject(post);
-            if(jsonObject.getString("code").equals("0000")){
-                map1.put("code", "200");
-                map1.put("msg", jsonObject.getString("message"));
-                map1.put("telX", jsonObject.getString("x_no").substring(2));
-                map1.put("bindId", jsonObject.getString("bindId"));
-            }else{
-                map1.put("code", jsonObject.getString("code"));
-                map1.put("msg", jsonObject.getString("message"));
-            }
-        }else{
-            map1.put("code", "-1");
-            map1.put("msg", post);
-        }
-
-        return map1;
-    }
-
-
-    /**
-     * 解绑小号关系
-     * @param bindId    绑定关系id
-     * @return
-     * @throws Exception
-     */
-    public Map<String, String> midAxbUnBindSend(String bindId) throws Exception{
-        //组装请求对象-具体描述见开发文档-订单小号-AXB接口规范部分内容
-        Map<String, Object> request = new HashMap<>();
-        //绑定关系ID
-        request.put("APPID", APIKey);
-        request.put("bindId", bindId);
-
-        Map<String, String> header = new HashMap<String, String>(3);
-        header.put("Authorization", "Basic " + new String(Base64.encodeBase64((APIKey + ":" + SecretKey).getBytes())));
-        header.put("Content-Type", "application/json;charset=utf-8");
-        HttpResult httpResult = HttpClientUtil.pushHttpRequset("POST", "https://ct.open.10086.cn/ordernumber/v1/unbinding", request, header, "json");
-        String post = httpResult.getData();
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        Map<String, String> map1 = new HashMap<>();
-        if(jsonObject.getString("code").equals("0000")){
-            map1.put("code", "200");
-            map1.put("msg", jsonObject.getString("message"));
-        }else{
-            map1.put("code", jsonObject.getString("code"));
-            map1.put("msg", jsonObject.getString("message"));
-        }
-        return map1;
-    }
-
-
-
-
-    public Map<String, String> HeaderUtils(String APIKey, String SecretKey) throws Exception{
-        Map<String, String> header = new HashMap<>();
-        long time = System.currentTimeMillis();
-        String signStr = MD5Util.encrypt(APIKey + SecretKey + time);
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("apiKey", APIKey);
-        jsonObject.put("time", time);
-        jsonObject.put("sign", signStr);
-        Base64 base64 = new Base64();
-        String s = base64.encodeToString(jsonObject.toJSONString().getBytes("UTF-8"));
-        header.put("header", s);
-
-        jsonObject = new JSONObject();
-        jsonObject.put("platformId", "");
-        jsonObject.put("secret", "");
-        s = base64.encodeToString(jsonObject.toJSONString().getBytes("UTF-8"));
-        header.put("accessCode", s);
-        return header;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java
index 617826a..dd1cc2a 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/GaoDe/MapConfig.java
@@ -10,5 +10,5 @@
     /**
      * 高德key
      */
-    String key = "e0370a9a4d10739045fb0b8f4742a67e";
+    String key = "588845b621c3c42d6d6c8f50ba00cb41";
 }
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/config/ChannelConfig.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/config/ChannelConfig.java
deleted file mode 100644
index f784874..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/config/ChannelConfig.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.config;
-
-import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
-import org.springframework.core.io.ClassPathResource;
-
-import java.util.Properties;
-
-/**
- * @Author xiaogc
- * @Date 2022/2/10 10:03
- */
-public class ChannelConfig {
-    /**
-     * mallbook 测试环境地址
-     */
-    public static String payUrl;
-
-    /**
-     * 业务系统商户平台编号
-     */
-    public static String merchantNo;
-    /**
-     * 接口版本号,不同版本号触发不同接口业务
-     */
-    public static String version;
-    /*
-     * 渠道类型 HF:汇付
-     */
-    public static String channelType;
-
-    /**
-     * 商户平台私钥路径
-     */
-    public static String merchantPrivateKey;
-    /**
-     * mallbook公钥路径
-     */
-    public static String mallBookPublicKey;
-
-    static {
-        YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean();
-        yamlProFb.setResources(new ClassPathResource("application.yaml"));
-        Properties properties = yamlProFb.getObject();
-        System.out.println("mallbook 参数配置初始化");
-        System.out.println("--------------------------------");
-        System.out.println("环境地址:" + properties.get("mallbook.pay_url"));
-        System.out.println("商户平台编号:" + properties.get("mallbook.merchant_no"));
-        System.out.println("接口版本号:" + properties.get("mallbook.version"));
-        System.out.println("渠道类型:" + properties.get("mallbook.channel_type"));
-        System.out.println("商户平台私钥:" + properties.get("mallbook.merchant_private_key"));
-        System.out.println("mallbook 公钥:" + properties.get("mallbook.mall_book_public_key"));
-        System.out.println("--------------------------------");
-        payUrl = properties.get("mallbook.pay_url").toString();
-        merchantNo = properties.get("mallbook.merchant_no").toString();
-        version = properties.get("mallbook.version").toString();
-        channelType = properties.get("mallbook.channel_type").toString();
-        merchantPrivateKey = properties.get("mallbook.merchant_private_key").toString();
-        mallBookPublicKey = properties.get("mallbook.mall_book_public_key").toString();
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/BindAccount.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/BindAccount.java
deleted file mode 100644
index bbda9f3..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/BindAccount.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.model;
-
-public class BindAccount<T> {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "bindAccount";
-    //子商户编号
-    private String userId;
-    //身份证号
-    private String certId;
-    //结算账户名
-    private String cardName;
-    //结算账户号
-    private String cardNo;
-    //银行账户类型
-    private String bankAcctType;
-    //手机号
-    private String phone;
-    //开户银行名称
-    private String bankName;
-    //银行编码
-    private String bankCode;
-    //省份编码
-    private String provCode;
-    //地区编码
-    private String areaCode;
-
-
-    public String getUserId() {
-        return userId;
-    }
-
-    public void setUserId(String userId) {
-        this.userId = userId;
-    }
-
-    public String getCertId() {
-        return certId;
-    }
-
-    public void setCertId(String certId) {
-        this.certId = certId;
-    }
-
-    public String getCardName() {
-        return cardName;
-    }
-
-    public void setCardName(String cardName) {
-        this.cardName = cardName;
-    }
-
-    public String getCardNo() {
-        return cardNo;
-    }
-
-    public void setCardNo(String cardNo) {
-        this.cardNo = cardNo;
-    }
-
-    public String getBankAcctType() {
-        return bankAcctType;
-    }
-
-    public void setBankAcctType(String bankAcctType) {
-        this.bankAcctType = bankAcctType;
-    }
-
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    public String getBankName() {
-        return bankName;
-    }
-
-    public void setBankName(String bankName) {
-        this.bankName = bankName;
-    }
-
-    public String getBankCode() {
-        return bankCode;
-    }
-
-    public void setBankCode(String bankCode) {
-        this.bankCode = bankCode;
-    }
-
-    public String getProvCode() {
-        return provCode;
-    }
-
-    public void setProvCode(String provCode) {
-        this.provCode = provCode;
-    }
-
-    public String getAreaCode() {
-        return areaCode;
-    }
-
-    public void setAreaCode(String areaCode) {
-        this.areaCode = areaCode;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceRequest.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceRequest.java
deleted file mode 100644
index d53d564..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceRequest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- *
- */
-package com.agentdriving.driver.modular.system.util.MallBook.model;
-
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONUtil;
-import com.agentdriving.driver.modular.system.util.MallBook.config.ChannelConfig;
-import com.agentdriving.driver.modular.system.util.MallBook.util.RSASignature;
-import com.agentdriving.driver.modular.system.util.MallBook.util.StringUtil;
-
-import java.io.Serializable;
-
-/**
- * 接口请求包
- *
- */
-public class InterfaceRequest<T> implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = -8130938432046696213L;
-
-
-    /**
-     * 商户平台编号
-     */
-    private String merchantNo = ChannelConfig.merchantNo;
-
-    /**
-     * 接口版本号,不同版本号触发不同接口业务
-     */
-    private String version = ChannelConfig.version;
-    /*
-     * 渠道类型  HF:汇付
-     */
-    private String channelType = ChannelConfig.channelType;
-
-
-    /**
-     * 业务系统订单ID
-     */
-    private String merOrderId;
-
-    /**
-     * 签名
-     */
-    private String sign;
-
-    /**
-     * 业务类型编号
-     */
-    private String serverCode;
-
-    /**
-     * 业务参数,json格式
-     */
-    private String params;
-
-    /**
-     * 时间戳
-     */
-    private String date;
-
-
-    public String getChannelType() {
-        return channelType;
-    }
-
-    public void setChannelType(String channelType) {
-        this.channelType = channelType;
-    }
-
-    public String getMerOrderId() {
-        return merOrderId;
-    }
-
-    public void setMerOrderId(String merOrderId) {
-        this.merOrderId = merOrderId;
-    }
-
-    public String getMerchantNo() {
-        return merchantNo;
-    }
-
-    public void setMerchantNo(String merchantNo) {
-        this.merchantNo = merchantNo;
-    }
-
-    public String getSign() {
-        return sign;
-    }
-
-    public void setSign(String sign) {
-        this.sign = sign;
-    }
-
-    public String getServerCode() {
-        return serverCode;
-    }
-
-    public void setServerCode(String serverCode) {
-        this.serverCode = serverCode;
-    }
-
-    public String getParams() {
-        return params;
-    }
-
-    public void setParams(String params) {
-        this.params = params;
-    }
-
-    public String getDate() {
-        return date;
-    }
-
-    public void setDate(String date) {
-        this.date = date;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-
-    /**
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     *  订单号 + 商户号 + 渠道类型 +  时间戳 + 业务参数json
-     * @return 待签名字符串
-     */
-    public String content() {
-        return StrUtil.builder()
-                .append(StringUtil.convertNull(merOrderId))
-                .append(StringUtil.convertNull(merchantNo))
-                .append(StringUtil.convertNull(channelType))
-                .append(StringUtil.convertNull(date))
-                .append(StringUtil.convertNull(params))
-                .toString();
-    }
-
-    public InterfaceRequest() {
-    }
-
-    public InterfaceRequest(T obj, String serverCode) {
-        this.merOrderId = IdUtil.fastSimpleUUID();
-        this.serverCode = serverCode;
-        this.date = System.currentTimeMillis() + "";
-        this.params = JSONUtil.toJsonStr(obj);
-        // todo 使用商户平台私钥生成sign,需要修改证书对应路径
-        this.sign = RSASignature.sign(content());
-    }
-
-
-    @Override
-    public String toString() {
-        return "InterfaceRequest{" +
-                "merOrderId='" + merOrderId + '\'' +
-                ", merchantNo='" + merchantNo + '\'' +
-                ", sign='" + sign + '\'' +
-                ", serverCode='" + serverCode + '\'' +
-                ", params='" + params + '\'' +
-                ", date='" + date + '\'' +
-                ", version='" + version + '\'' +
-                ", channelType='" + channelType + '\'' +
-                '}';
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceResponse.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceResponse.java
deleted file mode 100644
index 9eab110..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/InterfaceResponse.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- *
- */
-package com.agentdriving.driver.modular.system.util.MallBook.model;
-
-
-import cn.hutool.core.util.StrUtil;
-import com.agentdriving.driver.modular.system.util.MallBook.util.StringUtil;
-
-import java.io.Serializable;
-
-
-public class InterfaceResponse implements Serializable {
-
-
-    /**
-     * 结果字符串,json格式
-     */
-    private String result;
-
-    /**
-     * 签名,由code+msg+date+result根据私钥生成, 如果有参数为null,签名串中应当做空字符串("")来处理
-     */
-    private String sign;
-
-    /**
-     * 结果代码
-     */
-    private String code;
-
-    /**
-     * 结果信息
-     */
-    private String msg;
-
-    /**
-     * 时间戳
-     */
-    private String date;
-
-    /**
-     * 接口版本号
-     */
-    private String version;
-
-    public String getResult() {
-        return result;
-    }
-
-    public void setResult(String result) {
-        this.result = result;
-    }
-
-    public String getSign() {
-        return sign;
-    }
-
-    public void setSign(String sign) {
-        this.sign = sign;
-    }
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
-    public String getDate() {
-        return date;
-    }
-
-    public void setDate(String date) {
-        this.date = date;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    @Override
-    public String toString() {
-        return "InterfaceResponse{" +
-                "result='" + result + '\'' +
-                ", sign='" + sign + '\'' +
-                ", code='" + code + '\'' +
-                ", msg='" + msg + '\'' +
-                ", date='" + date + '\'' +
-                ", version='" + version + '\'' +
-                '}';
-    }
-
-    /**
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     *  结果代码 + 结果信息 + 渠道类型 +  时间戳 + 结果字符串json
-     * @return 待签名字符串
-     */
-    public String content() {
-        return StrUtil.builder()
-                .append(StringUtil.convertNull(code))
-                .append(StringUtil.convertNull(msg))
-                .append(StringUtil.convertNull(date))
-                .append(StringUtil.convertNull(result))
-                .toString();
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/Register.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/Register.java
deleted file mode 100644
index d723d4f..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/Register.java
+++ /dev/null
@@ -1,193 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.model;
-
-/**
- * @author huangh
- * @version 1.0
- * @description
- * @date 2021/12/10 16:45
- */
-
-public class Register {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "register";
-    //业务系统会员id
-    private String merUserId;
-    //手机号
-    private String phone;
-    //子商户类型
-    private String userType;
-    //子商户名称
-    private String userName;
-    //身份证号码
-    private String certId;
-    //法人身份证有效期
-    private String certIdExpires;
-    //经营范围
-    private String businessScope;
-    //统一社会信用码
-    private String socialCreditCode;
-    //统一社会信用证有效期
-    private String socialCreditCodeExpires;
-    //法人手机号
-    private String legalPhone;
-    //法人姓名
-    private String legalPerson;
-    //企业地址
-    private String address;
-    //省份编码
-    private String provCode;
-    //地区编码
-    private String areaCode;
-    //附件编号
-    private String fileNo;
-    //后台回调地址
-    private String notifyUrl;
-    //自定义参数1
-    private String parameter1;
-    //自定义参数2
-    private String parameter2;
-
-    public String getMerUserId() {
-        return merUserId;
-    }
-
-    public void setMerUserId(String merUserId) {
-        this.merUserId = merUserId;
-    }
-
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    public String getUserType() {
-        return userType;
-    }
-
-    public void setUserType(String userType) {
-        this.userType = userType;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getCertId() {
-        return certId;
-    }
-
-    public void setCertId(String certId) {
-        this.certId = certId;
-    }
-
-    public String getCertIdExpires() {
-        return certIdExpires;
-    }
-
-    public void setCertIdExpires(String certIdExpires) {
-        this.certIdExpires = certIdExpires;
-    }
-
-    public String getBusinessScope() {
-        return businessScope;
-    }
-
-    public void setBusinessScope(String businessScope) {
-        this.businessScope = businessScope;
-    }
-
-    public String getSocialCreditCode() {
-        return socialCreditCode;
-    }
-
-    public void setSocialCreditCode(String socialCreditCode) {
-        this.socialCreditCode = socialCreditCode;
-    }
-
-    public String getSocialCreditCodeExpires() {
-        return socialCreditCodeExpires;
-    }
-
-    public void setSocialCreditCodeExpires(String socialCreditCodeExpires) {
-        this.socialCreditCodeExpires = socialCreditCodeExpires;
-    }
-
-    public String getLegalPhone() {
-        return legalPhone;
-    }
-
-    public void setLegalPhone(String legalPhone) {
-        this.legalPhone = legalPhone;
-    }
-
-    public String getLegalPerson() {
-        return legalPerson;
-    }
-
-    public void setLegalPerson(String legalPerson) {
-        this.legalPerson = legalPerson;
-    }
-
-    public String getAddress() {
-        return address;
-    }
-
-    public void setAddress(String address) {
-        this.address = address;
-    }
-
-    public String getProvCode() {
-        return provCode;
-    }
-
-    public void setProvCode(String provCode) {
-        this.provCode = provCode;
-    }
-
-    public String getAreaCode() {
-        return areaCode;
-    }
-
-    public void setAreaCode(String areaCode) {
-        this.areaCode = areaCode;
-    }
-
-    public String getFileNo() {
-        return fileNo;
-    }
-
-    public void setFileNo(String fileNo) {
-        this.fileNo = fileNo;
-    }
-
-    public String getNotifyUrl() {
-        return notifyUrl;
-    }
-
-    public void setNotifyUrl(String notifyUrl) {
-        this.notifyUrl = notifyUrl;
-    }
-
-    public String getParameter1() {
-        return parameter1;
-    }
-
-    public void setParameter1(String parameter1) {
-        this.parameter1 = parameter1;
-    }
-
-    public String getParameter2() {
-        return parameter2;
-    }
-
-    public void setParameter2(String parameter2) {
-        this.parameter2 = parameter2;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/UnbindAccount.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/UnbindAccount.java
deleted file mode 100644
index 02beffa..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/model/UnbindAccount.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.model;
-
-public class UnbindAccount {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "unbindAccount";
-
-    /**
-     * 子商户编号
-     */
-    private String userId;
-
-    public String getUserId() {
-        return userId;
-    }
-
-    public void setUserId(String userId) {
-        this.userId = userId;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/Base64.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/Base64.java
deleted file mode 100644
index 68b75b4..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/Base64.java
+++ /dev/null
@@ -1,288 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.util;
-
-/**
- * @Author xiaogc
- * @Date 2021/12/21 14:23
- */
-public class Base64 {
-    static private final int BASELENGTH = 128;
-    static private final int LOOKUPLENGTH = 64;
-    static private final int TWENTYFOURBITGROUP = 24;
-    static private final int EIGHTBIT = 8;
-    static private final int SIXTEENBIT = 16;
-    static private final int FOURBYTE = 4;
-    static private final int SIGN = -128;
-    static private final char PAD = '=';
-    static private final boolean fDebug = false;
-    static final private byte[] base64Alphabet = new byte[BASELENGTH];
-    static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH];
-
-    static {
-        for (int i = 0; i < BASELENGTH; ++i) {
-            base64Alphabet[i] = -1;
-        }
-        for (int i = 'Z'; i >= 'A'; i--) {
-            base64Alphabet[i] = (byte) (i - 'A');
-        }
-        for (int i = 'z'; i >= 'a'; i--) {
-            base64Alphabet[i] = (byte) (i - 'a' + 26);
-        }
-
-        for (int i = '9'; i >= '0'; i--) {
-            base64Alphabet[i] = (byte) (i - '0' + 52);
-        }
-
-        base64Alphabet['+'] = 62;
-        base64Alphabet['/'] = 63;
-
-        for (int i = 0; i <= 25; i++) {
-            lookUpBase64Alphabet[i] = (char) ('A' + i);
-        }
-
-        for (int i = 26, j = 0; i <= 51; i++, j++) {
-            lookUpBase64Alphabet[i] = (char) ('a' + j);
-        }
-
-        for (int i = 52, j = 0; i <= 61; i++, j++) {
-            lookUpBase64Alphabet[i] = (char) ('0' + j);
-        }
-        lookUpBase64Alphabet[62] = (char) '+';
-        lookUpBase64Alphabet[63] = (char) '/';
-
-    }
-
-    private static boolean isWhiteSpace(char octect) {
-        return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9);
-    }
-
-    private static boolean isPad(char octect) {
-        return (octect == PAD);
-    }
-
-    private static boolean isData(char octect) {
-        return (octect < BASELENGTH && base64Alphabet[octect] != -1);
-    }
-
-    /**
-     * Encodes hex octects into Base64
-     *
-     * @param binaryData
-     *            Array containing binaryData
-     * @return Encoded Base64 array
-     */
-    public static String encode(byte[] binaryData) {
-
-        if (binaryData == null) {
-            return null;
-        }
-
-        int lengthDataBits = binaryData.length * EIGHTBIT;
-        if (lengthDataBits == 0) {
-            return "";
-        }
-
-        int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
-        int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP;
-        int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1
-                : numberTriplets;
-        char encodedData[] = null;
-
-        encodedData = new char[numberQuartet * 4];
-
-        byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0;
-
-        int encodedIndex = 0;
-        int dataIndex = 0;
-        if (fDebug) {
-            System.out.println("number of triplets = " + numberTriplets);
-        }
-
-        for (int i = 0; i < numberTriplets; i++) {
-            b1 = binaryData[dataIndex++];
-            b2 = binaryData[dataIndex++];
-            b3 = binaryData[dataIndex++];
-
-            if (fDebug) {
-                System.out.println("b1= " + b1 + ", b2= " + b2 + ", b3= " + b3);
-            }
-
-            l = (byte) (b2 & 0x0f);
-            k = (byte) (b1 & 0x03);
-
-            byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-                    : (byte) ((b1) >> 2 ^ 0xc0);
-            byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4)
-                    : (byte) ((b2) >> 4 ^ 0xf0);
-            byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6)
-                    : (byte) ((b3) >> 6 ^ 0xfc);
-
-            if (fDebug) {
-                System.out.println("val2 = " + val2);
-                System.out.println("k4   = " + (k << 4));
-                System.out.println("vak  = " + (val2 | (k << 4)));
-            }
-
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f];
-        }
-
-        // form integral number of 6-bit groups
-        if (fewerThan24bits == EIGHTBIT) {
-            b1 = binaryData[dataIndex];
-            k = (byte) (b1 & 0x03);
-            if (fDebug) {
-                System.out.println("b1=" + b1);
-                System.out.println("b1<<2 = " + (b1 >> 2));
-            }
-            byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-                    : (byte) ((b1) >> 2 ^ 0xc0);
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4];
-            encodedData[encodedIndex++] = PAD;
-            encodedData[encodedIndex++] = PAD;
-        } else if (fewerThan24bits == SIXTEENBIT) {
-            b1 = binaryData[dataIndex];
-            b2 = binaryData[dataIndex + 1];
-            l = (byte) (b2 & 0x0f);
-            k = (byte) (b1 & 0x03);
-
-            byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-                    : (byte) ((b1) >> 2 ^ 0xc0);
-            byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4)
-                    : (byte) ((b2) >> 4 ^ 0xf0);
-
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2];
-            encodedData[encodedIndex++] = PAD;
-        }
-
-        return new String(encodedData);
-    }
-
-    /**
-     * Decodes Base64 data into octects
-     *
-     * @param encoded
-     *            string containing Base64 data
-     * @return Array containind decoded data.
-     */
-    public static byte[] decode(String encoded) {
-
-        if (encoded == null) {
-            return null;
-        }
-
-        char[] base64Data = encoded.toCharArray();
-        // remove white spaces
-        int len = removeWhiteSpace(base64Data);
-
-        if (len % FOURBYTE != 0) {
-            return null;// should be divisible by four
-        }
-
-        int numberQuadruple = (len / FOURBYTE);
-
-        if (numberQuadruple == 0) {
-            return new byte[0];
-        }
-
-        byte decodedData[] = null;
-        byte b1 = 0, b2 = 0, b3 = 0, b4 = 0;
-        char d1 = 0, d2 = 0, d3 = 0, d4 = 0;
-
-        int i = 0;
-        int encodedIndex = 0;
-        int dataIndex = 0;
-        decodedData = new byte[(numberQuadruple) * 3];
-
-        for (; i < numberQuadruple - 1; i++) {
-
-            if (!isData((d1 = base64Data[dataIndex++]))
-                    || !isData((d2 = base64Data[dataIndex++]))
-                    || !isData((d3 = base64Data[dataIndex++]))
-                    || !isData((d4 = base64Data[dataIndex++]))) {
-                return null;
-            }// if found "no data" just return null
-
-            b1 = base64Alphabet[d1];
-            b2 = base64Alphabet[d2];
-            b3 = base64Alphabet[d3];
-            b4 = base64Alphabet[d4];
-
-            decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-            decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-            decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);
-        }
-
-        if (!isData((d1 = base64Data[dataIndex++]))
-                || !isData((d2 = base64Data[dataIndex++]))) {
-            return null;// if found "no data" just return null
-        }
-
-        b1 = base64Alphabet[d1];
-        b2 = base64Alphabet[d2];
-
-        d3 = base64Data[dataIndex++];
-        d4 = base64Data[dataIndex++];
-        if (!isData((d3)) || !isData((d4))) {// Check if they are PAD characters
-            if (isPad(d3) && isPad(d4)) {
-                if ((b2 & 0xf) != 0)// last 4 bits should be zero
-                {
-                    return null;
-                }
-                byte[] tmp = new byte[i * 3 + 1];
-                System.arraycopy(decodedData, 0, tmp, 0, i * 3);
-                tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4);
-                return tmp;
-            } else if (!isPad(d3) && isPad(d4)) {
-                b3 = base64Alphabet[d3];
-                if ((b3 & 0x3) != 0)// last 2 bits should be zero
-                {
-                    return null;
-                }
-                byte[] tmp = new byte[i * 3 + 2];
-                System.arraycopy(decodedData, 0, tmp, 0, i * 3);
-                tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-                tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-                return tmp;
-            } else {
-                return null;
-            }
-        } else { // No PAD e.g 3cQl
-            b3 = base64Alphabet[d3];
-            b4 = base64Alphabet[d4];
-            decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-            decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-            decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);
-
-        }
-
-        return decodedData;
-    }
-
-    /**
-     * remove WhiteSpace from MIME containing encoded Base64 data.
-     *
-     * @param data
-     *            the byte array of base64 data (with WS)
-     * @return the new length
-     */
-    private static int removeWhiteSpace(char[] data) {
-        if (data == null) {
-            return 0;
-        }
-
-        // count characters that's not whitespace
-        int newSize = 0;
-        int len = data.length;
-        for (int i = 0; i < len; i++) {
-            if (!isWhiteSpace(data[i])) {
-                data[newSize++] = data[i];
-            }
-        }
-        return newSize;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/CacheUtils.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/CacheUtils.java
deleted file mode 100644
index 777e268..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/CacheUtils.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.util;
-
-import cn.hutool.cache.CacheUtil;
-import cn.hutool.cache.impl.TimedCache;
-
-/**
- * @author linqy
- * 缓存工具类,生产建议使用其他缓存中间件
- */
-public class CacheUtils {
-    private static final TimedCache<String, String> TIMED_CACHE = CacheUtil.newTimedCache(5000);
-
-    static {
-        /** 每1s检查一次过期 */
-        TIMED_CACHE.schedulePrune(1000);
-    }
-
-    /**
-     * 存入键值对,提供消逝时间
-     *
-     * @param key
-     * @param value
-     * @param timeout
-     */
-    public static void put(String key, String value, Long timeout) {
-        /** 设置消逝时间 */
-        TIMED_CACHE.put(key, value, timeout);
-    }
-
-    /**
-     * 每次重新get一次缓存,均会重新刷新消逝时间
-     * @param key
-     * @return
-     */
-    public static String get(String key) {
-        return TIMED_CACHE.get(key);
-    }
-
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSAEncryptGeneration.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSAEncryptGeneration.java
deleted file mode 100644
index 227d3f2..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSAEncryptGeneration.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.util;
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.interfaces.RSAPrivateKey;
-import java.security.interfaces.RSAPublicKey;
-
-/**
- * 公私钥代码生成
- * @Author xiaogc
- * @Date 2021/12/21 14:22
- */
-public class RSAEncryptGeneration {
-
-    public static void main(String[] args) {
-        // 生成一对公私钥到指定路径下  .pfx私钥 .cer公钥
-        RSAEncryptGeneration.genKeyPair("D:\\tools");
-    }
-    /**
-     * 随机生成密钥对
-     */
-    public static void genKeyPair(String filePath) {
-        // KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象
-        KeyPairGenerator keyPairGen = null;
-        try {
-            keyPairGen = KeyPairGenerator.getInstance("RSA");
-        } catch (NoSuchAlgorithmException e) {
-            e.printStackTrace();
-        }
-        // 初始化密钥对生成器,密钥大小为96-1024位
-        keyPairGen.initialize(1024, new SecureRandom());
-        // 生成一个密钥对,保存在keyPair中
-        KeyPair keyPair = keyPairGen.generateKeyPair();
-        // 得到私钥
-        RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
-        // 得到公钥
-        RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
-        try {
-            // 得到公钥字符串
-            String publicKeyString = Base64.encode(publicKey.getEncoded());
-            System.out.println("公钥字符串:"+publicKeyString);
-            // 得到私钥字符串
-            String privateKeyString = Base64.encode(privateKey.getEncoded());
-            System.out.println("私钥字符串:"+privateKeyString);
-            // 将密钥对写入到文件  .pfx私钥 .cer公钥
-            FileWriter pubfw = new FileWriter(filePath + "/merchant_no.cer");
-            FileWriter prifw = new FileWriter(filePath + "/merchant_no.pfx");
-            BufferedWriter pubbw = new BufferedWriter(pubfw);
-            BufferedWriter pribw = new BufferedWriter(prifw);
-            pubbw.write(publicKeyString);
-            pribw.write(privateKeyString);
-            pubbw.flush();
-            pubbw.close();
-            pubfw.close();
-            pribw.flush();
-            pribw.close();
-            prifw.close();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSASignature.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSASignature.java
deleted file mode 100644
index 37eb368..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/RSASignature.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.util;
-
-
-import com.agentdriving.driver.modular.system.util.MallBook.config.ChannelConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.security.KeyFactory;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.spec.PKCS8EncodedKeySpec;
-import java.security.spec.X509EncodedKeySpec;
-
-/**
- * @author RSA签名验签类
- */
-public class RSASignature {
-
-    public static Logger logger = LoggerFactory.getLogger(RSASignature.class);
-
-    /**
-     * 签名算法
-     */
-    public static final String SIGN_ALGORITHMS = "SHA1WithRSA";
-
-
-    /**
-     * 商户平台私钥签名
-     *
-     * @param content
-     * @return
-     */
-    public static String sign(String content) {
-        try {
-            String privateKey = ChannelConfig.merchantPrivateKey;
-            PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(privateKey));
-            KeyFactory keyf = KeyFactory.getInstance("RSA");
-            PrivateKey priKey = keyf.generatePrivate(priPKCS8);
-            java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
-            signature.initSign(priKey);
-            signature.update(content.getBytes());
-            byte[] signed = signature.sign();
-            return Base64.encode(signed);
-        } catch (Exception e) {
-            logger.error("签名失败{}", e);
-        }
-        return null;
-    }
-
-
-    /**
-     * 读取证书
-     *
-     * @param filePath 证书文件路径
-     */
-    public static String loadKey(String filePath) throws Exception {
-        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
-            String readLine;
-            StringBuilder sb = new StringBuilder();
-            while ((readLine = br.readLine()) != null) {
-                sb.append(readLine);
-            }
-            return sb.toString();
-        } catch (IOException e) {
-            throw new Exception("私钥数据读取错误");
-        } catch (NullPointerException e) {
-            throw new Exception("私钥输入流为空");
-        }
-    }
-
-
-    /**
-     * mallbook公钥验签
-     *
-     * @param content 待签名数据
-     * @param sign    签名值
-     * @return false 验签失败 true 成功
-     */
-    public static boolean validate(String content, String sign) {
-        boolean verify = false;
-        try {
-            String publicKey = ChannelConfig.mallBookPublicKey;
-            verify = RSASignature.doCheck(content, sign, publicKey, "utf-8");
-        } catch (Exception e) {
-            logger.error("验签失败:{}", e);
-        }
-        return verify;
-    }
-
-
-    /**
-     * RSA验签
-     *
-     * @param content   待签名数据
-     * @param sign      签名值
-     * @param publicKey 分配给开发商公钥
-     * @param encode    字符集编码
-     * @return 布尔值
-     */
-    public static boolean doCheck(String content, String sign, String publicKey, String encode) {
-        try {
-            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
-            byte[] encodedKey = Base64.decode(publicKey);
-            PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
-            java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
-            signature.initVerify(pubKey);
-            signature.update(content.getBytes(encode));
-            return signature.verify(Base64.decode(sign));
-        } catch (Exception e) {
-            logger.error("验签失败{}", e);
-        }
-        return false;
-    }
-
-}
\ No newline at end of file
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/StringUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/StringUtil.java
deleted file mode 100644
index 3061272..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/StringUtil.java
+++ /dev/null
@@ -1,23 +0,0 @@
-
-package com.agentdriving.driver.modular.system.util.MallBook.util;
-
-import cn.hutool.core.util.StrUtil;
-
-
-public class StringUtil extends StrUtil {
-
-    /**
-     * null转为空字符串
-     *
-     * @param str
-     * @return
-     */
-    public static String convertNull(String str) {
-        if (str == null) {
-            return "";
-        }
-        return str;
-    }
-
-
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/TrhRequest.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/TrhRequest.java
deleted file mode 100644
index 8199b31..0000000
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MallBook/util/TrhRequest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.agentdriving.driver.modular.system.util.MallBook.util;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.exceptions.ValidateException;
-import cn.hutool.http.HttpUtil;
-import cn.hutool.json.JSONUtil;
-import com.agentdriving.driver.modular.system.util.MallBook.config.ChannelConfig;
-import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceRequest;
-import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
-
-/**
- * @Author xiaogc
- * @Date 2022/1/24 13:45
- */
-public class TrhRequest<T> {
-
-    public InterfaceResponse execute(T t, String serverCode) {
-        InterfaceRequest<T> request = new InterfaceRequest(t, serverCode);
-        System.out.println("mallbook请求参数:" + JSONUtil.toJsonStr(request));
-        String result = HttpUtil.post(ChannelConfig.payUrl, BeanUtil.beanToMap(request));
-        System.out.println("mallbook响应参数:" + result);
-        InterfaceResponse response = JSONUtil.toBean(result, InterfaceResponse.class);
-        boolean verify = RSASignature.validate(response.content(), response.getSign());
-        if (!verify) {
-            throw new ValidateException("签名验证失败");
-        } else {
-            System.out.printf("签名验证通过");
-        }
-        return response;
-    }
-}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java
new file mode 100644
index 0000000..f16e130
--- /dev/null
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/MultipartFileUtil.java
@@ -0,0 +1,44 @@
+package com.agentdriving.driver.modular.system.util;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
+
+import java.io.*;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/5/23 18:29
+ */
+public class MultipartFileUtil {
+
+    private MultipartFileUtil() { }
+
+
+    public static MultipartFile fileToMultipartFile(File file) {
+        FileItem fileItem = createFileItem(file);
+        MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
+        return multipartFile;
+    }
+
+    private static FileItem createFileItem(File file) {
+        FileItemFactory factory = new DiskFileItemFactory(16, null);
+        FileItem item = factory.createItem("textField", "text/plain", true, file.getName());
+        int bytesRead = 0;
+        byte[] buffer = new byte[8192];
+        try {
+            FileInputStream fis = new FileInputStream(file);
+            OutputStream os = item.getOutputStream();
+            while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
+                os.write(buffer, 0, bytesRead);
+            }
+            os.close();
+            fis.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return item;
+    }
+}
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java
index 54fd8a3..6dd93c1 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/TaskUtil.java
@@ -46,7 +46,7 @@
     @Scheduled(cron = "0 0 0 * * *")
     public void taskDay(){
         try {
-            accountChangeDetailService.deductionInsurance();
+
         }catch (Exception e){
             e.printStackTrace();
         }
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java
index 37b8fa3..4852819 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/huawei/OBSUtil.java
@@ -13,10 +13,10 @@
  */
 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 endPoint = "https://obs.cn-southwest-2.myhuaweicloud.com";
+    public static String ak = "YMBKC9LS6CDG9QHCIGUU";
+    public static String sk = "kztanexutGzoGiYcIALCNhazfxoU6yecDOSBrFXu";
+    public static String bucketname = "fanghuadaijia";
 
     /**
      * 上传文件
@@ -31,7 +31,7 @@
             // 待上传的本地文件路径,需要指定到具体的文件名
             PutObjectRequest request = new PutObjectRequest();
             request.setBucketName(bucketname);
-            request.setObjectKey(objectKey);
+            request.setObjectKey("img/" + objectKey);
             request.setInput(inputStream);
             PutObjectResult putObjectResult = obsClient.putObject(request);
             return putObjectResult.getObjectUrl();
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java
index bdd46f6..f3d0837 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/OCRUtil.java
@@ -19,7 +19,7 @@
 
     static Logger logger = LoggerFactory.getLogger("ServiceLog");
 
-    private final static String key = "5cc9622f299335639dbc046f3812c52a";
+    private final static String key = "7589cb21f09f6ab1a1263ca98f0b4d52";
 
     private static HttpClientUtil httpClientUtil = new HttpClientUtil();
 
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java
index 6e35b3e..5e8675a 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/util/juhe/WeatherUtil.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/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 = "edc965edb129580401ed211eaa4ae8ab";
 
     private static HttpClientUtil httpClientUtil = new HttpClientUtil();
 
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java
index 7c91607..7512e82 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/HallOrderList.java
@@ -26,7 +26,7 @@
     private Integer cancelTimes;
     @ApiModelProperty("与用户距离")
     private Double currentDistance;
-    @ApiModelProperty("订单来源(1=用户创建,2=司机创建)")
+    @ApiModelProperty("订单来源(1=用户创建,2=司机创建,3=后台创建)")
     private Integer source;
     @ApiModelProperty("下单时间")
     private Long createTime;
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java
index 48317ce..e30b858 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/warpper/OrderInfoWarpper.java
@@ -27,7 +27,7 @@
     private Double currentDistance;
     @ApiModelProperty("预估接驾时间")
     private Integer pickUpTime;
-    @ApiModelProperty("订单来源(1=用户创建,2=司机创建)")
+    @ApiModelProperty("订单来源(1=用户创建,2=司机创建,3=后台创建)")
     private Integer source;
     @ApiModelProperty("下单时间")
     private Long createTime;
diff --git a/driver/guns-admin/src/main/resources/application.yml b/driver/guns-admin/src/main/resources/application.yml
index f936063..dd26d12 100644
--- a/driver/guns-admin/src/main/resources/application.yml
+++ b/driver/guns-admin/src/main/resources/application.yml
@@ -13,8 +13,8 @@
   application:
     name: driver-server
   profiles:
-    active: dev
-#    active: produce
+#    active: dev
+    active: produce
   mvc:
     static-path-pattern: /static/**
     view:
@@ -55,8 +55,8 @@
   datasource:
     url: jdbc:mysql://127.0.0.1:3306/fh_agent_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-#    password: PI_v6J5@dvHwGTqc
-    password: 123456
+    password: PI_v6J5@dvHwGTqc
+#    password: 123456
     db-name: guns #用来搜集数据库的所有表
     filters: wall,mergeStat
 
@@ -77,26 +77,21 @@
 
 wx:
   grantType: authorization_code #填authorization_code
-  appid: wx8a9af3889395d0e1 #应用唯一标识,在微信开放平台提交应用审核通过后获得
-  appSecret: 95a34f114973298cce4297a20bb59bc3 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appid: wxa89b3291683bb3ff #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: 3883f641d86c6f0e4e9365bbdaa1affe #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
   appletsAppid: 1 #小程序APPid
   appletsAppSecret: 1 #
-  mchId: 1636941942 #微信支付分配的商户号
-  key: Eri2GR2SB3b6iIhaoD7k3KQ8X0wf1Ybh #key为商户平台设置的密钥key:
-  apiv3: AKJ51Z4nhSqYBxmOXgUyCKA1vLP0J5Aj #key为商户平台设置的密钥key:
+  mchId: 1644659263 #微信支付分配的商户号
+  key: KY7XYaJwnZPV4O5CvJ6CreywiUxxnUGM #key为商户平台设置的密钥key:
+  apiv3: mAhbxa2ez1GUNWIArATff4b630AH99yg #key为商户平台设置的密钥key:
 
 ---
 
 alipay:
-  appid: 2021001161600393  #应用程序唯一标识
-  appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEbTcG2wz+kaYDo2YxflpHE59MvKc3rbl6RlBgO6i5GzgphzeRTv5kRWUpSVkKCsbxFvAYLcgFPmm5nY2fz5hCTKiRcYfpUjH/OougUbzYU3ilUc9JqMbmvy7KN+Kv7+kQYCGLvMqlyYPiJ7LrmJLpE/FUcNLDwo6xUmwJSxaF7M4TbD3ZQZdddki1iJp9GihlqehZCMWOBeotEXvPKDEzSEkYlnvHPQaaspVgeesGmlHDuOiZUokENutxpjo7klWe97NA49hXEtI+xlczNGJKdBr0keBX/kSMsnx8kMxYDjh4QTySBaR6zlO4RYPFekWv9QZ2CrfiKCS7AHUpZYZ5AgMBAAECggEAXjCoUPIBHhhOcowIJe/vGlr0lUohzdJ8+GGGzcvhSDf6DF+mwG3lN0C8oU8QS7o6okRkZW46tLAd1u4fS6oGbDHGPBz6RJQ4B4eGxHMe1OcaCsxTmdq4DmuxRhfV3rnPldwqQA/6O01HxtXhxvzwkWOj5SGSZ7a8c5diTIHh9ULd6neUI/rIFC97mH1TeW0uDIxAtyvswz0pIfDhAR+lsOyTg/8qzsIXjpBFG4gAVxhUeUqQA5HzbsFglC08V7ViDk1OEoWi3yIj1CmNdtntJI4cxqLgTK7MNB9udhbN2I9YasuIpZvlAcvPi5R9cYT8vvFBCFGM+i22wtcsQmxdAQKBgQDaD9y6WNmsp+IaAUG3FqbJC8SqwreGIiEflWwVjrd+LuN6yhyr45CobOmhbTz0de8gRJEZKgJZEJcywL1ScrPIC4n1JaG688lk5aR+0Lik5fy1+L6G/CydJoJqlh6KKdwPJmDGpVu/geLJcLkWcYOwL56IL7GK2JI1p607R0x6iQKBgQCbd0n4xG9GkpvW4LDAJiMEhwPu9QcCKIT0mXVXCgMFdWel9bY3+8RSZoziWutaofm9tRHFAqwjbRyOZ+EdckkNsWVkkTnkKGtAhYKgM0GaOwdMFxmvME5WYJ74a5t1jiezDmR3obUBtS2nyQ8CFPUnlimoTR9F6APrth3h8uvwcQKBgFWaCn1AqdrEYNbyjViRVNHxg7fBDohiV3xtjOt9hfzL7VLjipPTlpL3hlNvbZFNxpx1LjyhqCBMif5LeUanbnnmRbbtmeqpDvNDzupVh1Z8TlMlHa4hymW6m1G6MqzsN83es/jnKvgnxd5sGMx9rUN5vhMaHekykVrswu1VVOl5AoGAMDljh7gfMEv/7TqLeT8bM6dR8AivoNrCy0Di5hnj8AiIGzHJ0TnWnxzSbNB5GwcNeew109/NV7vb1MyiRskRoh657eUiiQSEqGIBsAHWQqo2zEKKJA6e7ipQhYyTj3aGGAPJ5FYT2LDDtb0nW6T2ms34pA0wOzYKKU63nEQHLfECgYEAgbbpZJRtPxWB1M/Dg7loguT5O/VUsKefS0JrSD+tJIqYkumH5mejvYW5YEeDdelkvBhAEFUW9JOkzL+1w1g3wz2QQ2aPV/r55cJE3EfOzbwgw6GsO+8UuyiavbFhS3pFZNI0pR5M3u1+SIcLqQCnYLbO11vnEXglB6wjw9/oxPE= #开发者应用私钥
-  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhG03BtsM/pGmA6NmMX5aRxOfTLynN625ekZQYDuouRs4KYc3kU7+ZEVlKUlZCgrG8RbwGC3IBT5puZ2Nn8+YQkyokXGH6VIx/zqLoFG82FN4pVHPSajG5r8uyjfir+/pEGAhi7zKpcmD4iey65iS6RPxVHDSw8KOsVJsCUsWhezOE2w92UGXXXZItYiafRooZanoWQjFjgXqLRF7zygxM0hJGJZ7xz0GmrKVYHnrBppRw7jomVKJBDbrcaY6O5JVnvezQOPYVxLSPsZXMzRiSnQa9JHgV/5EjLJ8fJDMWA44eEE8kgWkes5TuEWDxXpFr/UGdgq34igkuwB1KWWGeQIDAQAB #应用公钥
-  alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzmDrvcNvhexu3KkxVS9bemdSn6pyQUFmpyOGMDOirGR+RbmldpH2N9bPegzZynb5+bmRHii4ib31XeoXc7M7r6UsPhmPeLoSBNwpC+Uig0VxPa0hmvHjAl6StArhB3eMib6Zo40nM6eCYZLLZ1kKpI5Ad/APov9uLrbSnoeZsgeRibQix07arvTEsZq6pJavNlA+UBjp65o6Bv0+kfQ65pMTpbu+jRtTzkTj1hoW9PjwlWrY21F1FvN67zDWkTB2LjGFsqan0Qoe4/X8nK3VsDvkjIm/ZQsnQr8ZzfcuTzQPrcZpo3h9DPZoHeiToEfXtyk7E0bQHEmYVpmrvk/IJwIDAQAB #支付宝公钥
-
----
-
-juhe: #聚合数据
-  appKey: 0d3fd83eddaa33e5563f548257648577 #
+  appid: 111  #应用程序唯一标识
+  appPrivateKey: 111 #开发者应用私钥
+  alipayPublicKey: 111 #应用公钥
+  alipay_public_key: 111 #支付宝公钥
 
 
 ---
@@ -116,30 +111,12 @@
 spring:
   data:
     mongodb:
-#      uri: mongodb://root:bv@_N36o+cTe1LpS@127.0.0.1:27017/admin
-      uri: mongodb://127.0.0.1:27017/admin
+      uri: mongodb://root:PaWPtGG95APCMBEb@127.0.0.1:27017/admin
+#      uri: mongodb://127.0.0.1:27017/admin
 
 ---
 
 rongyun:
-  app_key: k51hidwqkx92b
-  app_secret: t0jxbPrHHar
-
-
-#  mallbook 调起接口参数配置
-mallbook:
-  # pay_url:mallbook接口地址    测试环境: http://ld.mallbook.cn:12000/api   生产环境:https://cloudpay.mallbook.cn/api
-  pay_url: http://ld.mallbook.cn:12000/api
-  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
-  merchant_no:  需要替换内容
-  # version 接口版本号
-  version: 1.0.0
-  # channel_type 渠道类型 HF:汇付
-  channel_type: HF
-  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
-  merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIoGARvX6k6rVwuUW6HjAPkzXVntCtDI8q/niGZbeILc5T/noer+UNDECSy9f8T6ENw7tEKWaHOFcicrqgRv+wXeo2hPiJI2iYsUNs6I8ckd8i4uy/PBEDMW78GlnQLAatk0NC44HKjn8cuIHaETKNG2Vk3rwGBzNgDZ/God1L6JAgMBAAECgYBhCsOwzehBk5pJ2+9pLO+8Rm72EQGvtflb0BBI1zst1x2gBr4DOPedMJe6yymQVrmP/rJItvONdV/DRqHtKMZ2Wa4ul/U1mDnAtS/FkpRYBA5FaXV2hNEW11xBLhL5iGk35P23Bzaa0MJw9Vsd0vjeykridIw/PweDyTdeRBwC2QJBANS+iOaKRuf6BRwCKDmBSHOiZmc/kKnpx2f5BD3h+LWEX3JsNxObMbW1SxQIf2/qwqzIoEm/WbWaOyuwtRZkXQ8CQQCmFjTm5l+Ws2LoQgM+5+eLmPyMyRFOu4G8yqsUkhKuANHK/qrsS1GTbv6SN341NijjNYl05e0h6Jq1T9UZmtrnAkEAwTfzmn7H+3RmI5QJ+IBkzzEWFHv05X0/8DyID7QmcKWzEncaZqIzObdYYu983qa2/LqSaahyz68uQnYRYi7xHQJATr3SgPIRuaH8r360iTtrRHzYp2qgYQJ25On1KECEyKgszp/kqzieSVbjLLFQjavKwMXeEGT+AwiDaJibwJLxWwJAXZApORsqGqdxc9FTxt5iiqG2ZP5DTXxc6E+ihmlmoVl9KncgTf9ez0Q0Qz/4KUTPTHNVgzt1nyBxiLtnyzFavA==
-  # mall_book_public_key mallbook测试环境公钥 不需要替换
-  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0L2DaHOO8ekhktB6RoHxIcki/0v7OUeOn9tX9VBE+jv6PRjqlZRWL3Qezxz5ADtHEyLv+RFFaceXSep6rWyoQ6DRlvLv5CySUAxAM42LLVe4DI3l/0ccEAIuU5NCpwAAj1zkm2X01DwUCZwymLjlqbDlBvQhpq+1fddtTtA/QLQIDAQAB
-  # mall_book_public_key mallbook生产环境公钥  不需要替换
-  # mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
+  app_key: 82hegw5u86n4x
+  app_secret: 16ezqnP0EEU7
 
diff --git a/driver/guns-admin/src/main/resources/redis.properties b/driver/guns-admin/src/main/resources/redis.properties
index 1d000e8..c64267e 100644
--- a/driver/guns-admin/src/main/resources/redis.properties
+++ b/driver/guns-admin/src/main/resources/redis.properties
@@ -2,19 +2,19 @@
 # Redis���ݿ�������Ĭ��Ϊ0��
 spring.redis.database=0
 
-## Redis��������ַ
-#spring.redis.host=127.0.0.1
-## Redis���������Ӷ˿�
-#spring.redis.port=16379
-## Redis�������������루Ĭ��Ϊ�գ�
-#spring.redis.password=wuOT@8NLdZ*V09Jt
-
 # Redis��������ַ
 spring.redis.host=127.0.0.1
 # Redis���������Ӷ˿�
-spring.redis.port=6379
+spring.redis.port=16379
 # Redis�������������루Ĭ��Ϊ�գ�
-spring.redis.password=123456
+spring.redis.password=wuOT@8NLdZ*V09Jt
+
+## 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
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java
index 2bd89db..1fa5adb 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java
@@ -5,19 +5,18 @@
 import com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp;
 import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
 import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
+import com.stylefeng.guns.modular.system.model.TCashWithdrawal;
 import com.stylefeng.guns.modular.system.model.TDriver;
+import com.stylefeng.guns.modular.system.service.ITCashWithdrawalService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.stylefeng.guns.core.log.LogObjectHolder;
-import org.springframework.web.bind.annotation.RequestParam;
 import com.stylefeng.guns.modular.system.model.TRevenue;
 import com.stylefeng.guns.modular.system.service.ITRevenueService;
 
@@ -44,6 +43,13 @@
 
     @Autowired
     private ITRevenueService tRevenueService;
+
+
+    @Autowired
+    private ITCashWithdrawalService cashWithdrawalService;
+
+
+
 
     /**
      * 跳转到首页
@@ -216,4 +222,19 @@
             e.printStackTrace();
         }
     }
+
+
+    /**
+     * 同意提现
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/agreeWithdraw")
+    public Object agreeWithdraw(Integer id){
+        TCashWithdrawal tCashWithdrawal = cashWithdrawalService.selectById(id);
+        tCashWithdrawal.setState(2);
+        cashWithdrawalService.updateById(tCashWithdrawal);
+        return SUCCESS;
+    }
 }
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java
index 24d5a39..a84a7fc 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java
@@ -146,23 +146,29 @@
                 .last("LIMIT 1"));
         JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent());
         JSONArray array = jsonObject.getJSONArray("ChargeStandard");
-        JSONArray objects = new JSONArray();
-        for (int i = 0; i < array.size(); i++) {
-            JSONObject jsonObject1 = JSONObject.parseObject(JSONObject.toJSONString(array.get(i)));
-            if(i == 0){
-                jsonObject1.put("key",0);
-            }else {
-                jsonObject1.put("key",1);
-            }
-            objects.add(jsonObject1);
+        JSONObject defaule = array.getJSONObject(0);
+        JSONArray num3 = defaule.getJSONArray("num3");
+        for (int i = 0; i < num3.size(); i++) {
+            JSONObject jsonObject1 = num3.getJSONObject(i);
+            jsonObject1.put("index", i);
         }
-
+        JSONArray array1 = new JSONArray();
+        for (int i = 1; i < array.size(); i++) {
+            JSONObject jsonObject1 = array.getJSONObject(i);
+            JSONArray num32 = jsonObject1.getJSONArray("num3");
+            for (int j = 0; j < num32.size(); j++) {
+                JSONObject jsonObject2 = num32.getJSONObject(j);
+                jsonObject2.put("index", j);
+            }
+            array1.add(array.get(i));
+        }
+        model.addAttribute("defaule", defaule);
+        model.addAttribute("array", array1);
         TSystemConfig config = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 8)
                 .last("LIMIT 1"));
         JSONObject jsonObj = JSONObject.parseObject(config.getContent());
         Integer zcOne = jsonObj.getInteger("num1");
-        model.addAttribute("zcOne",zcOne);
-        model.addAttribute("array",objects);
+        model.addAttribute("zcOne", zcOne);
         JSONObject extraCost = JSONObject.parseObject(jsonObject.getString("ExtraCost"));
         model.addAttribute("ExtraCost",extraCost);
         return PREFIX + "tSystemConfigPriceRules.html";
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java
index 084d76d..495a902 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/HttpUtils.java
@@ -39,7 +39,7 @@
 
     private Logger log = LoggerFactory.getLogger(this.getClass());
 
-    private final static String KEY = "5cc9622f299335639dbc046f3812c52a";
+    private final static String KEY = "7589cb21f09f6ab1a1263ca98f0b4d52";
 
     //请求超时时间
     private final static Integer TIME_OUT = 1000;
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
index 43d547b..ff310a5 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -483,19 +483,18 @@
         JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard");
         JSONObject extraCost = jsonObject.getJSONObject("ExtraCost");
         Date date = new Date();
-        for (int i = 0; i < chargeStandard.size(); i++) {
+
+        boolean b = true;
+        for (int i = 1; i < chargeStandard.size(); i++) {//各种时间段
             JSONObject jsonObject1 = chargeStandard.getJSONObject(i);
             String num1 = jsonObject1.getString("num1");
             String num2 = jsonObject1.getString("num2");
-            Double num3 = jsonObject1.getDouble("num3");//起步里程
-            Double num4 = jsonObject1.getDouble("num4");//起步价格
-            Double num5 = jsonObject1.getDouble("num5");//超过公里
-            Double num6 = jsonObject1.getDouble("num6");//超过num3每num5公里收取num6
-            Double num7 = jsonObject1.getDouble("num7");//长途起始公里
-            Double num8 = jsonObject1.getDouble("num8");//长途结束公里
-            Double num9 = jsonObject1.getDouble("num9");//长途费
-            Double num10 = jsonObject1.getDouble("num10");//超出长途里程每num10公里
-            Double num11 = jsonObject1.getDouble("num11");//超过num8每num10公里收取num11
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
 
             String[] split = num1.split(":");
             Calendar s = Calendar.getInstance();
@@ -512,33 +511,81 @@
             e.set(Calendar.SECOND, 0);
 
             if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
-                if(num3.compareTo(distance) >= 0){//起步里程内
-                    order.setStartDistance(distance);//起步里程
-                    order.setStartPrice(new BigDecimal(num4));//起步价
-                }else{
-                    BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程
-                    BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN));
-                    BigDecimal multiply = divide.multiply(new BigDecimal(num6));
-                    order.setStartDistance(num3);//起步里程
-                    order.setStartPrice(new BigDecimal(num4));//起步价
-                    order.setOverDriveDistance(subtract.doubleValue());//超出起步里程
-                    order.setOverDrivePrice(multiply);//超出起步里程费
-
+                b = false;
+                Double dd = 0d;
+                for (int j = 0; j < num3.size(); j++) {
+                    JSONObject jsonObject2 = num3.getJSONObject(j);
+                    Double num1_1 = jsonObject2.getDouble("num1");
+                    Double num2_1 = jsonObject2.getDouble("num2");
+                    Double num3_1 = jsonObject2.getDouble("num3");
+                    if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                        order.setStartDistance(distance);//起步里程
+                        order.setStartPrice(new BigDecimal(num3_1));//起步价
+                    }
+                    if(j == num3.size() - 1 && order.getStartPrice().doubleValue() == 0){
+                        order.setStartDistance(num2_1);//起步里程
+                        order.setStartPrice(new BigDecimal(num3_1));//起步价
+                        dd = distance - num2_1;
+                    }
+                }
+                if(dd != 0){
                     //计算长途费
-                    if(distance.compareTo(num7) > 0){
-                        order.setLongDistance(num7 + "-" + num8);//长途里程
-                        order.setLongDistancePrice(new BigDecimal(num9));//长途费
+                    if(distance.compareTo(num4) > 0){
+                        order.setLongDistance(num4 + "-" + num5);//长途里程
+                        order.setLongDistancePrice(new BigDecimal(num6));//长途费
                     }
                     //计算长途里程超出的部分
-                    if(distance.compareTo(num8) > 0){
-                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8));
-                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN));
-                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11));
+                    if(distance.compareTo(num5) > 0){
+                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
                         order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
                         order.setOverLongDistancePrice(multiply1);//超出长途里程费
                     }
                 }
                 break;
+            }
+        }
+
+        if(b){//默认配置
+            JSONObject jsonObject1 = chargeStandard.getJSONObject(0);
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
+
+            Double dd = 0d;
+            for (int j = 0; j < num3.size(); j++) {
+                JSONObject jsonObject2 = num3.getJSONObject(j);
+                Double num1_1 = jsonObject2.getDouble("num1");
+                Double num2_1 = jsonObject2.getDouble("num2");
+                Double num3_1 = jsonObject2.getDouble("num3");
+                if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                    order.setStartDistance(distance);//起步里程
+                    order.setStartPrice(new BigDecimal(num3_1));//起步价
+                }
+                if(j == num3.size() - 1 && order.getStartPrice().doubleValue() == 0){
+                    order.setStartDistance(num2_1);//起步里程
+                    order.setStartPrice(new BigDecimal(num3_1));//起步价
+                    dd = distance - num2_1;
+                }
+            }
+            if(dd != 0){
+                //计算长途费
+                if(distance.compareTo(num4) > 0){
+                    order.setLongDistance(num4 + "-" + num5);//长途里程
+                    order.setLongDistancePrice(new BigDecimal(num6));//长途费
+                }
+                //计算长途里程超出的部分
+                if(distance.compareTo(num5) > 0){
+                    BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                    BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                    BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
+                    order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
+                    order.setOverLongDistancePrice(multiply1);//超出长途里程费
+                }
             }
         }
 
@@ -566,7 +613,7 @@
 
         //恶劣天气
         systemConfig = systemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 8));
-        if(null != systemConfig) {
+        if(null != systemConfig){
             JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent());
             Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价
             if(1 == num11){
@@ -595,11 +642,6 @@
             }
         }
 
-
-        //计算折扣
-        if(null != order.getUserId()){
-
-        }
 
         //计算总金额
         BigDecimal bigDecimal = order.getStartPrice().add(order.getOverDrivePrice()).add(order.getLongDistancePrice()).add(order.getOverLongDistancePrice())
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java
index a21e4bd..6e4d926 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java
@@ -102,6 +102,7 @@
 
     @Override
     public void packageModel(RevenueExpenditureResp revenueExpenditureResp,Model model) {
+        model.addAttribute("id",revenueExpenditureResp.getId());
         model.addAttribute("code",revenueExpenditureResp.getCode());
         model.addAttribute("businessTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(revenueExpenditureResp.getBusinessTime()));
         model.addAttribute("businessType",revenueExpenditureResp.getBusinessType());
@@ -109,6 +110,7 @@
         model.addAttribute("driverPhone",revenueExpenditureResp.getDriverPhone());
         model.addAttribute("amount",revenueExpenditureResp.getAmount());
         model.addAttribute("accountBalance",revenueExpenditureResp.getAccountBalance());
+        model.addAttribute("state",revenueExpenditureResp.getState());
     }
 
     @Override
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java
index 6ff9137..c9ee71c 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/huawei/OBSUtil.java
@@ -13,10 +13,10 @@
  */
 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 endPoint = "https://obs.cn-southwest-2.myhuaweicloud.com";
+    public static String ak = "YMBKC9LS6CDG9QHCIGUU";
+    public static String sk = "kztanexutGzoGiYcIALCNhazfxoU6yecDOSBrFXu";
+    public static String bucketname = "fanghuadaijia";
 
     /**
      * 上传文件
@@ -31,7 +31,7 @@
             // 待上传的本地文件路径,需要指定到具体的文件名
             PutObjectRequest request = new PutObjectRequest();
             request.setBucketName(bucketname);
-            request.setObjectKey(objectKey);
+            request.setObjectKey("img/" + objectKey);
             request.setInput(inputStream);
             PutObjectResult putObjectResult = obsClient.putObject(request);
             return putObjectResult.getObjectUrl();
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java
index 772c9a3..1876914 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/juhe/WeatherUtil.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/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 = "edc965edb129580401ed211eaa4ae8ab";
 
     private static HttpClientUtil httpClientUtil = new HttpClientUtil();
 
diff --git a/management/guns-admin/src/main/resources/application.yml b/management/guns-admin/src/main/resources/application.yml
index 6697fea..4cc2e8b 100644
--- a/management/guns-admin/src/main/resources/application.yml
+++ b/management/guns-admin/src/main/resources/application.yml
@@ -1,5 +1,5 @@
 server:
-  port: 8011
+  port: 8010
 
 guns:
   swagger-open: false              #是否开启swagger (true/false)
@@ -15,7 +15,8 @@
 
 spring:
   profiles:
-    active: local
+#    active: dev
+    active: produce
   mvc:
     static-path-pattern: /static/**
     view:
@@ -43,7 +44,7 @@
     secret: 95a34f114973298cce4297a20bb59bc3
 gaode:
   map:
-    key: e0370a9a4d10739045fb0b8f4742a67e #高德key
+    key: 588845b621c3c42d6d6c8f50ba00cb41 #高德key
 
 #eureka:
 #  client:
@@ -59,8 +60,8 @@
   datasource:
     url: jdbc:mysql://127.0.0.1:3306/fh_agent_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
-#    password: PI_v6J5@dvHwGTqc
-    password: 123456
+    password: PI_v6J5@dvHwGTqc
+#    password: 123456
     db-name: fh_agent_driving #用来搜集数据库的所有表
     filters: wall,mergeStat
 
@@ -83,8 +84,8 @@
 spring:
   data:
     mongodb:
-#      uri: mongodb://root:bv@_N36o+cTe1LpS@127.0.0.1:27017/admin
-      uri: mongodb://127.0.0.1:27017/admin
+      uri: mongodb://root:PaWPtGG95APCMBEb@127.0.0.1:27017/admin
+#      uri: mongodb://127.0.0.1:27017/admin
 
 ---
 
diff --git a/management/guns-admin/src/main/resources/logback-spring.xml b/management/guns-admin/src/main/resources/logback-spring.xml
index 894a46b..b1bc1fe 100644
--- a/management/guns-admin/src/main/resources/logback-spring.xml
+++ b/management/guns-admin/src/main/resources/logback-spring.xml
@@ -1,132 +1,231 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<configuration>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
 
-    <!--定义日志存放的位置-->
-    <springProperty scope="context" name="gunsLogPath" source="log.path" defaultValue="guns-logs"/>
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/usr/local/server/app/logs/manager"/>
+    <!--<property name="log.path" value="d:/logs/manager"/>-->
 
-    <!-- ****************************************************************************************** -->
-    <!-- ****************************** 本地开发只在控制台打印日志 ******************************** -->
-    <!-- ****************************************************************************************** -->
-    <springProfile name="local">
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
 
-        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-            <!--encoder 默认配置为PatternLayoutEncoder-->
-            <encoder>
-                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %logger Line:%-3L - %msg%n</pattern>
-                <charset>utf-8</charset>
-            </encoder>
-        </appender>
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
 
-        <!-- 日志记录器,日期滚动记录 -->
-        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-            <!-- 正在记录的日志文件的路径及文件名 -->
-            <file>${gunsLogPath}/log_error.log</file>
-            <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
-                而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
-                <fileNamePattern>${gunsLogPath}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-                <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
-                命名日志文件,例如log-error-2013-12-21.0.log -->
-                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                    <maxFileSize>2MB</maxFileSize>
-                </timeBasedFileNamingAndTriggeringPolicy>
-            </rollingPolicy>
-            <!-- 追加方式记录日志 -->
-            <append>true</append>
-            <!-- 日志文件的格式 -->
-            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
-                <charset>utf-8</charset>
-            </encoder>
-            <!-- 日志文件记录级别配置。
-                日志级别:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
-                onMatch="ACCEPT" 表示匹配该级别及以上
-                onMatch="DENY" 表示不匹配该级别及以上
-                onMatch="NEUTRAL" 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上
-                onMismatch="ACCEPT" 表示匹配该级别以下
-                onMismatch="NEUTRAL" 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
-                onMismatch="DENY" 表示不匹配该级别以下的
-             -->
-            <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                <level>ERROR</level>
-                <onMatch>ACCEPT</onMatch>
-                <onMismatch>DENY</onMismatch>
-            </filter>
-        </appender>
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
 
-        <root level="INFO">
-            <appender-ref ref="STDOUT"/>
-            <appender-ref ref="FILE"/>
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
+    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/all.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>DENY</onMatch>
+            <onMismatch>ACCEPT</onMismatch>
+        </filter>
+    </appender>
+
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4  最终的策略:
+                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
+    <springProfile name="dev">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="WARN_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="ALL_FILE" />
         </root>
+        <logger name="ServiceLog" level="debug"/>
+        <logger name="com.baomidou.mybatisplus" level="debug"/>
+        <logger name="com.stylefeng.guns.modular.system.dao" level="debug"/>
     </springProfile>
 
-    <!-- ****************************************************************************************** -->
-    <!-- ********************** 放到服务器上不管在什么环境都只在文件记录日志 ********************** -->
-    <!-- ****************************************************************************************** -->
-    <springProfile name="!local">
-
-        <!-- 日志记录器,日期滚动记录 -->
-        <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-            <!-- 正在记录的日志文件的路径及文件名 -->
-            <file>${gunsLogPath}/log_error.log</file>
-            <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
-                而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
-                <fileNamePattern>${gunsLogPath}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-                <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
-                命名日志文件,例如log-error-2013-12-21.0.log -->
-                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                    <maxFileSize>2MB</maxFileSize>
-                </timeBasedFileNamingAndTriggeringPolicy>
-            </rollingPolicy>
-            <!-- 追加方式记录日志 -->
-            <append>true</append>
-            <!-- 日志文件的格式 -->
-            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-                <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
-                <charset>utf-8</charset>
-            </encoder>
-            <!-- 此日志文件只记录error级别的 -->
-            <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                <level>error</level>
-                <onMatch>ACCEPT</onMatch>
-                <onMismatch>DENY</onMismatch>
-            </filter>
-        </appender>
-
-        <!-- 日志记录器,日期滚动记录 -->
-        <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
-            <!-- 正在记录的日志文件的路径及文件名 -->
-            <file>${gunsLogPath}/log_total.log</file>
-            <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
-                而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
-                <fileNamePattern>${gunsLogPath}/total/log-total-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-                <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
-                命名日志文件,例如log-error-2013-12-21.0.log -->
-                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                    <maxFileSize>2MB</maxFileSize>
-                </timeBasedFileNamingAndTriggeringPolicy>
-            </rollingPolicy>
-            <!-- 追加方式记录日志 -->
-            <append>true</append>
-            <!-- 日志文件的格式 -->
-            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-                <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
-                <charset>utf-8</charset>
-            </encoder>
-        </appender>
-
-        <root level="INFO">
-            <appender-ref ref="FILE_ERROR"/>
-            <appender-ref ref="FILE_ALL"/>
+    <springProfile name="fat">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="WARN_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="ALL_FILE" />
         </root>
-
+        <logger name="ServiceLog" level="debug"/>
+        <logger name="com.baomidou.mybatisplus" level="debug"/>
+        <logger name="com.stylefeng.guns.modular.system.dao" level="debug"/>
     </springProfile>
 
-</configuration>
+    <springProfile name="produce">
+        <root level="warn">
+            <!-- 生产环境最好不配置console写文件 -->
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="WARN_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="ALL_FILE" />
+        </root>
+        <logger name="ServiceLog" level="warn"/>
+        <logger name="com.baomidou.mybatisplus" level="error"/>
+        <logger name="com.stylefeng.guns.modular.system.dao" level="error"/>
+    </springProfile>
 
-
+</configuration>
\ No newline at end of file
diff --git a/management/guns-admin/src/main/resources/redis.properties b/management/guns-admin/src/main/resources/redis.properties
index fb10637..16f6fb7 100644
--- a/management/guns-admin/src/main/resources/redis.properties
+++ b/management/guns-admin/src/main/resources/redis.properties
@@ -2,19 +2,19 @@
 # Redis���ݿ�������Ĭ��Ϊ0��
 spring.redis.database=0
 
-## Redis��������ַ
-#spring.redis.host=127.0.0.1
-### Redis���������Ӷ˿�
-#spring.redis.port=16379
-### Redis�������������루Ĭ��Ϊ�գ�
-#spring.redis.password=wuOT@8NLdZ*V09Jt
-
 # Redis��������ַ
 spring.redis.host=127.0.0.1
-# Redis���������Ӷ˿�
-spring.redis.port=6379
-# Redis�������������루Ĭ��Ϊ�գ�
-spring.redis.password=123456
+## Redis���������Ӷ˿�
+spring.redis.port=16379
+## Redis�������������루Ĭ��Ϊ�գ�
+spring.redis.password=wuOT@8NLdZ*V09Jt
+
+## 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
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/home.html b/management/guns-admin/src/main/webapp/WEB-INF/view/home.html
index b9308a3..c38f287 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/home.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/home.html
@@ -256,8 +256,13 @@
 		</div>
 	</div>
 </div>
-<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1"></script>
-<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool"></script>
+<script type="text/javascript">
+    window._AMapSecurityConfig = {
+        securityJsCode:'34399ecced17d9c01ef705ef964fc077',
+    }
+</script>
+<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f"></script>
+<script src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f&plugin=AMap.MouseTool"></script>
 <script type="text/javascript" src='https://a.amap.com/jsapi_demos/static/citys.js'></script>
 <script src="${ctxPath}/static/home.js"></script>
 <script src="${ctxPath}/static/js/jquery.sparkline 2.1.2.js"></script>
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html
index 08fbb98..0be89cb 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder.html
@@ -20,6 +20,7 @@
                                 <option value="">请选择订单来源</option>
                                 <option value="1">小程序</option>
                                 <option value="2">司机创建</option>
+                                <option value="3">后台添加</option>
                             </#SelectCon>
                             </div>
                             <div class="col-sm-3">
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html
index a33026c..25f4c99 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html
@@ -42,6 +42,9 @@
                                 @if(source==2){
                                 <label>APP</label>
                                 @}
+                                @if(source==3){
+                                <label>后台</label>
+                                @}
                             </div>
                             <div class="initialLevel col-sm-3 control-label form-group"  >
                                 <label class="control-label" >乘车时间:</label>
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html
index 56b7034..4af3803 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderException.html
@@ -20,6 +20,7 @@
                                 <option value="">请选择订单来源</option>
                                 <option value="1">小程序</option>
                                 <option value="2">司机创建</option>
+                                <option value="3">后台添加</option>
                             </#SelectCon>
                             </div>
                             <div class="col-sm-2">
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html
index 7d16ff4..c1bbb85 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html
@@ -40,6 +40,9 @@
                                 @if(source==2){
                                 <label>APP</label>
                                 @}
+                                @if(source==3){
+                                <label>后台</label>
+                                @}
                             </div>
                             <div class="initialLevel col-sm-3 control-label form-group"  >
                                 <label class="control-label" >乘车时间:</label>
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html
index c3dfea9..7cb77b0 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrder_add.html
@@ -56,11 +56,11 @@
 </div>
 <script type="text/javascript">
     window._AMapSecurityConfig = {
-        securityJsCode:'0e712f129051b8df19a7f81484009f28',
+        securityJsCode:'34399ecced17d9c01ef705ef964fc077',
     }
 </script>
 <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script>
-<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=99b1546635dac9d51440c9d5b1fde512"></script>
+<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=86fcccf007b64ae97b01c3c982c0ef0f"></script>
 <script type="text/javascript">
     //地图加载
     var map1 = new AMap.Map("container1", {
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html
index 359f6f7..4f261fb 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html
@@ -8,7 +8,7 @@
             <div class="ibox-content">
                 <div class="row row-lg">
                     <div class="col-sm-12">
-
+                        <input type="hidden" id="id" value="${id}">
                         <div class="initialLevel col-sm-12 control-label form-group"  >
                             <div class="initialLevel col-sm-3 control-label form-group"  >
                                 <label class="control-label" >订单号:</label>
@@ -47,9 +47,13 @@
                         </div>
 
                         <div class="initialLevel col-sm-12 control-label form-group"  >
-                            <div class="initialLevel col-sm-2 control-label form-group" >
+                            <div class="initialLevel col-sm-3 control-label form-group" >
                                 <label class="control-label">提现金额:</label>
                                 <label>${amount}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">状态:</label>
+                                <label>${state == 1 ? '待审核' : '审核通过'}</label>
                             </div>
                         </div>
 
@@ -61,6 +65,9 @@
                         </div>
 
                         <div class="hidden-xs" id="TDriverTableToolbar" role="group"  style="text-align: center">
+                            @if(state == 1){
+                            <#button name="同意" icon="fa-check" clickFun="TRevenueInfoDlg.agree()" />
+                            @}
                             <#button name="取消" icon="fa-plus" clickFun="TRevenueInfoDlg.close()" />
                         </div>
 
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
index 284514e..47fe35e 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_add.html
@@ -164,7 +164,12 @@
 
     </div>
 </div>
-<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script>
+<script type="text/javascript">
+    window._AMapSecurityConfig = {
+        securityJsCode:'34399ecced17d9c01ef705ef964fc077',
+    }
+</script>
+<script src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script>
 <script src="${ctxPath}/static/modular/system/tSite/electricFence.js"></script>
 <script src="${ctxPath}/static/modular/system/tSite/tSite_info.js"></script>
 @}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
index 319a285..f0c8ae7 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSite/tSite_edit.html
@@ -187,7 +187,12 @@
 
     </div>
 </div>
-<script src="https://webapi.amap.com/maps?v=1.4.15&key=c59c0ec8058a8305009eb315584e07d1&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script>
+<script type="text/javascript">
+    window._AMapSecurityConfig = {
+        securityJsCode:'34399ecced17d9c01ef705ef964fc077',
+    }
+</script>
+<script src="https://webapi.amap.com/maps?v=1.4.15&key=86fcccf007b64ae97b01c3c982c0ef0f&plugin=AMap.MouseTool,AMap.DistrictSearch,AMap.PolyEditor,AMap.RectangleEditor,AMap.CircleEditor"></script>
 <script src="${ctxPath}/static/modular/system/tSite/electricFence.js"></script>
 <script src="${ctxPath}/static/modular/system/tSite/tSite_info.js"></script>
 @}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html
index 871e90d..88acd29 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigExtractionRules.html
@@ -19,7 +19,7 @@
                             <div class="initialLevel col-sm-3 control-label form-group"  >
                                 <span class="control-label" >司机订单保险费,每单固定抽取</span>
                                 <input class="control-label" id="num1" name="num1" value="${num1}" type="number" min="0" style="height: 30px;width: 80px">
-                                <span class="control-label" >元/天</span>
+                                <span class="control-label" >元/单</span>
                             </div>
                         </div>
 
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html
index 18f040d..b01e970 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigPriceRules.html
@@ -17,44 +17,82 @@
                         </div>
                         <hr/>
 
-                        <input hidden id="array" value="${array}">
+                        <input hidden id="array" value="">
 
                         <div class="initialLevel col-sm-12 control-label form-group" id="rules" style="text-align: left" >
-                            @for(ChargeStandard in array){
-                            <div name="rulesForm">
-                                <div class="initialLevel col-sm-12 control-label form-group"  >
-                                    <span class="control-label" >时间段</span>
-                                    <input class="control-label" id="num1" name="num1" value="${ChargeStandard.num1}" type="text" placeholder="00:00" style="height: 30px;width: 80px">
-                                    <span class="control-label" >——</span>
-                                    <input class="control-label" id="num2" name="num2" value="${ChargeStandard.num2}" type="text" placeholder="00:00" style="height: 30px;width: 80px">
-                                    <span class="control-label" >代驾里程</span>
-                                    <input class="control-label" id="num3" name="num3" value="${ChargeStandard.num3}" type="number" min="0" style="height: 30px;width: 80px">
-                                    <span class="control-label" >公里,起步价</span>
-                                    <input class="control-label" id="num4" name="num4" value="${ChargeStandard.num4}" type="number" min="0"   style="height: 30px;width: 80px">
-                                    <span class="control-label" >元,超出里程每</span>
-                                    <input class="control-label" id="num5" name="num5" value="${ChargeStandard.num5}" type="number" min="0" style="height: 30px;width: 80px">
-                                    <span class="control-label" >公里,收费</span>
-                                    <input class="control-label" id="num6" name="num6" value="${ChargeStandard.num6}" type="number" min="0" style="height: 30px;width: 80px">
-                                    <span class="control-label" >元</span>
-                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                                    @if(ChargeStandard.key == 0){
-                                        <span class="fa fa-plus" onclick="TSystemConfig.addBox()"></span>
-                                    @}
-                                    @if(ChargeStandard.key == 1){
-                                        <span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span>
+                            <button onclick="TSystemConfig.addTime()" style="padding: 5px 10px;font-size: 16px;background-color: #0086f6;color: #fff;border: none;border-radius: 5px;">添加时间段</button>
+                            <div class="rulesForm" style="border: 1px solid #888888;padding-top: 10px;display: grid;margin: 10px 0px">
+                                <span style="position: absolute;right: 30px;color: #0086f6;font-size: 16px;">默认</span>
+                                <div class="prices">
+                                    @for(obj in defaule.num3){
+                                    <div class="initialLevel col-sm-12 control-label form-group price">
+                                        <span class="control-label" >代驾里程</span>
+                                        <input class="control-label" id="num1" name="num1" value="${obj.num1}" type="number" min="0" style="height: 30px;width: 80px">
+                                        <span class="control-label" >公里,至</span>
+                                        <input class="control-label" id="num2" name="num2" value="${obj.num2}" type="number" min="0" style="height: 30px;width: 80px">
+                                        <span class="control-label" >公里,收费</span>
+                                        <input class="control-label" id="num3" name="num3" value="${obj.num3}" type="number" min="0" style="height: 30px;width: 80px">
+                                        <span class="control-label" >元</span>
+                                        @if(obj.index == 0){
+                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="fa fa-plus" onclick="TSystemConfig.addBox(this)"></span>
+                                        @}else{
+                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span>
+                                        @}
+                                    </div>
                                     @}
                                 </div>
                                 <div class="initialLevel col-sm-12 control-label form-group"  >
                                     <span class="control-label" >长途里程</span>
-                                    <input class="control-label" id="num7" name="num7" value="${ChargeStandard.num7}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <input class="control-label" id="num4" name="num4" value="${defaule.num4}" type="number" min="0" style="height: 30px;width: 80px">
                                     <span class="control-label" >——</span>
-                                    <input class="control-label" id="num8" name="num8" value="${ChargeStandard.num8}" type="number" min="0" style="height: 30px;width: 80px">
-                                    <span class="control-label" >公里,收费</span>
-                                    <input class="control-label" id="num9" name="num9" value="${ChargeStandard.num9}" type="number" min="0" style="height: 30px;width: 80px">
-                                    <span class="control-label" >元,超出里程每</span>
-                                    <input class="control-label" id="num10" name="num10" value="${ChargeStandard.num10}" type="number" min="0" style="height: 30px;width: 80px">
-                                    <span class="control-label" >公里,收费</span>
-                                    <input class="control-label" id="num11" name="num11" value="${ChargeStandard.num11}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <input class="control-label" id="num5" name="num5" value="${defaule.num5}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >公里,费用</span>
+                                    <input class="control-label" id="num6" name="num6" value="${defaule.num6}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >元,超出里程每</span>
+                                    <input class="control-label" id="num7" name="num7" value="${defaule.num7}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >公里,收费</span>
+                                    <input class="control-label" id="num8" name="num8" value="${defaule.num8}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >元</span>
+                                </div>
+                            </div>
+                            @for(o in array){
+                            <div class="rulesForm" style="border: 1px solid #888888;padding-top: 10px;display: grid;margin: 10px 0px">
+                                <div class="initialLevel col-sm-12 control-label form-group" id='time' >
+                                    <span class="control-label" >时间段</span>
+                                    <input class="control-label" id="num1" name="num1" type="text" value="${o.num1}" placeholder="00:00" style="height: 30px;width: 80px">
+                                    <span class="control-label" >——</span>
+                                    <input class="control-label" id="num2" name="num2" type="text" value="${o.num2}" placeholder="00:00" style="height: 30px;width: 80px">
+                                    <span class="fa fa-remove" style='position: absolute;right: 20px;color: red;font-size: 20px;' onclick="TSystemConfig.delTime(this)"></span>
+                                </div>
+                                <div class="prices">
+                                    @for(obj in o.num3){
+                                    <div class="initialLevel col-sm-12 control-label form-group price">
+                                        <span class="control-label" >代驾里程</span>
+                                        <input class="control-label" id="num1" name="num1" value="${obj.num1}" type="number" min="0" style="height: 30px;width: 80px">
+                                        <span class="control-label" >公里,至</span>
+                                        <input class="control-label" id="num2" name="num2" value="${obj.num2}" type="number" min="0" style="height: 30px;width: 80px">
+                                        <span class="control-label" >公里,收费</span>
+                                        <input class="control-label" id="num3" name="num3" value="${obj.num3}" type="number" min="0" style="height: 30px;width: 80px">
+                                        <span class="control-label" >元</span>
+                                        @if(obj.index == 0){
+                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="fa fa-plus" onclick="TSystemConfig.addBox(this)"></span>
+                                        @}else{
+                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span>
+                                        @}
+                                    </div>
+                                    @}
+                                </div>
+                                <div class="initialLevel col-sm-12 control-label form-group"  >
+                                    <span class="control-label" >长途里程</span>
+                                    <input class="control-label" id="num4" name="num4" value="${o.num4}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >——</span>
+                                    <input class="control-label" id="num5" name="num5" value="${o.num5}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >公里,费用</span>
+                                    <input class="control-label" id="num6" name="num6" value="${o.num6}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >元,超出里程每</span>
+                                    <input class="control-label" id="num7" name="num7" value="${o.num7}" type="number" min="0" style="height: 30px;width: 80px">
+                                    <span class="control-label" >公里,收费</span>
+                                    <input class="control-label" id="num8" name="num8" value="${o.num8}" type="number" min="0" style="height: 30px;width: 80px">
                                     <span class="control-label" >元</span>
                                 </div>
                             </div>
@@ -69,20 +107,20 @@
                         </div>
                         <hr/>
 
-                        <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" >
+                        <div class="initialLevel col-sm-12 control-label form-group" id="wait" style="text-align: left" >
                             <div class="initialLevel col-sm-12 control-label form-group"  >
                                 <span class="control-label" >等待</span>
                                 <input class="control-label" id="num12" name="num12" value="${ExtraCost.num1}" type="number"  min="0" style="height: 30px;width: 80px">
-                                <span class="control-label" >分钟,收取</span>
+                                <span class="control-label" >分钟,收取</span>
                                 <input class="control-label" id="num13" name="num13" value="${ExtraCost.num2}" type="number" min="0" style="height: 30px;width: 80px">
-                                <span class="control-label" >元,超出</span>
+                                <span class="control-label" >元,超出</span>
                                 <input class="control-label" id="num14" name="num14" value="${ExtraCost.num3}" type="number" min="0" style="height: 30px;width: 80px">
-                                <span class="control-label" >分钟,收取</span>
+                                <span class="control-label" >分钟,收取</span>
                                 <input class="control-label" id="num15" name="num15" value="${ExtraCost.num4}" type="number"  min="0" style="height: 30px;width: 80px">
                                 <span class="control-label" >元/分钟</span>
                             </div>
                             <input hidden id="zcOne" value="${zcOne}">
-                            <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-12 control-label form-group"  id="weather">
                                 <div class="col-sm-1">
                                     <input type="checkbox" class="js-switch1" id="isTaxiCar"
                                        @if(isNotEmpty(zcOne)){
@@ -94,13 +132,13 @@
                                     <div class="initialLevel col-sm-10 control-label form-group"  >
                                         <span class="control-label" >恶劣天气</span>
                                         <input class="control-label" id="num16" name="num16" value="${ExtraCost.num5}" type="number" min="0" style="height: 30px;width: 80px">
-                                        <span class="control-label" >公里以内,加收</span>
+                                        <span class="control-label" >公里以内,加收</span>
                                         <input class="control-label" id="num17" name="num17" value="${ExtraCost.num6}" type="number"  min="0" style="height: 30px;width: 80px">
-                                        <span class="control-label" >元,超出</span>
+                                        <span class="control-label" >元,超出</span>
                                         <input class="control-label" id="num18" name="num18" value="${ExtraCost.num7}" type="number" min="0" style="height: 30px;width: 80px">
-                                        <span class="control-label" >公里,收取订单的</span>
+                                        <span class="control-label" >公里,收取订单的</span>
                                         <input class="control-label" id="num19" name="num19" value="${ExtraCost.num8}" type="number" min="0" style="height: 30px;width: 80px">
-                                        <span class="control-label" >倍计费,最高收取</span>
+                                        <span class="control-label" >倍计费,最高收取</span>
                                         <input class="control-label" id="num20" name="num20" value="${ExtraCost.num9}" type="number" min="0" style="height: 30px;width: 80px">
                                         <span class="control-label" >元</span>
                                     </div>
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js
index 92ac2fb..6f8eeb9 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js
@@ -23,6 +23,8 @@
                     return '<span>小程序</span>'
                 }else if (row.source === 2){
                     return '<span>司机创建</span>'
+                }else if (row.source === 3){
+                    return '<span>后台添加</span>'
                 }
             }},
         {title: '开始服务时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'},
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js
index a3d131d..b590815 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js
@@ -76,7 +76,9 @@
             {title: '余额', field: 'accountBalance', visible: true, align: 'center', valign: 'middle'},
             {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
                 formatter: function (value, row) {
-                    if (row.state === 2){
+                    if (row.state === 1){
+                        return '<span>待审核</span>'
+                    }else if (row.state === 2){
                         return '<span>完成</span>'
                     }else if (row.state === 108){
                         return '<span>完成</span>'
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js
index 2e2ec2d..42cc24c 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js
@@ -40,6 +40,20 @@
     parent.layer.close(window.parent.TRevenue.layerIndex);
 }
 
+
+TRevenueInfoDlg.agree = function(){
+    var ajax = new $ax(Feng.ctxPath + "/tRevenue/agreeWithdraw", function(data){
+        Feng.success("审核成功!");
+        window.parent.TRevenue.table.refresh();
+        TRevenueInfoDlg.close();
+    },function(data){
+        Feng.error("审核失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set('id', $('#id').val());
+    ajax.start();
+}
+
+
 /**
  * 收集数据
  */
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js b/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js
index 265d356..6f75cc9 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js
@@ -174,6 +174,58 @@
  * 价格规则
  */
 TSystemConfig.priceRulesSubmit = function () {
+    var content = {};
+    var ChargeStandard = [];
+    $('.rulesForm').each(function (i, e) {
+        var time = $(e).find("#time");
+        var obj = {};
+        if(null != time && time.length != 0){
+            var num1 = $(time).find('input[name="num1"]').val();
+            var num2 = $(time).find('input[name="num2"]').val();
+            obj.num1 = num1;
+            obj.num2 = num2;
+        }
+        var prices = $(this).find(".prices .price");
+
+        var arr = [];
+        prices.each(function (j, e) {
+            var o = {};
+            var num1 = $(e).find('input[name="num1"]').val();
+            var num2 = $(e).find('input[name="num2"]').val();
+            var num3 = $(e).find('input[name="num3"]').val();
+            o.num1 = num1;
+            o.num2 = num2;
+            o.num3 = num3;
+            arr.push(o);
+        })
+        obj.num3 = arr;
+
+        var num4 = $(this).find('input[name="num4"]').val();
+        var num5 = $(this).find('input[name="num5"]').val();
+        var num6 = $(this).find('input[name="num6"]').val();
+        var num7 = $(this).find('input[name="num7"]').val();
+        var num8 = $(this).find('input[name="num8"]').val();
+        obj.num4 = num4;
+        obj.num5 = num5;
+        obj.num6 = num6;
+        obj.num7 = num7;
+        obj.num8 = num8;
+        ChargeStandard.push(obj);
+    });
+    content.ChargeStandard = ChargeStandard;
+
+    var ExtraCost = {};
+    ExtraCost.num1 = $('#wait').find('input[name="num12"]').val();
+    ExtraCost.num2 = $('#wait').find('input[name="num13"]').val();
+    ExtraCost.num3 = $('#wait').find('input[name="num14"]').val();
+    ExtraCost.num4 = $('#wait').find('input[name="num15"]').val();
+    ExtraCost.num5 = $('#weather').find('input[name="num16"]').val();
+    ExtraCost.num6 = $('#weather').find('input[name="num17"]').val();
+    ExtraCost.num7 = $('#weather').find('input[name="num18"]').val();
+    ExtraCost.num8 = $('#weather').find('input[name="num19"]').val();
+    ExtraCost.num9 = $('#weather').find('input[name="num20"]').val();
+    content.ExtraCost = ExtraCost;
+
     var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) {
         Feng.success("保存成功!");
         TSystemConfig.table.refresh();
@@ -181,38 +233,7 @@
         Feng.error("保存失败!" + data.responseJSON.message + "!");
     });
 
-    var json1=[];
-    for (let i = 0; i < $('input[name="num1"]').length; i++) {
-        var arr = {}
-        arr['num1'] = $($('input[name="num1"]')[i]).val();
-        arr['num2'] = $($('input[name="num2"]')[i]).val();
-        arr['num3'] = Number($($('input[name="num3"]')[i]).val());
-        arr['num4'] = Number($($('input[name="num4"]')[i]).val());
-        arr['num5'] = Number($($('input[name="num5"]')[i]).val());
-        arr['num6'] = Number($($('input[name="num6"]')[i]).val());
-        arr['num7'] = Number($($('input[name="num7"]')[i]).val());
-        arr['num8'] = Number($($('input[name="num8"]')[i]).val());
-        arr['num9'] = Number($($('input[name="num9"]')[i]).val());
-        arr['num10'] = Number($($('input[name="num10"]')[i]).val());
-        arr['num11'] = Number($($('input[name="num11"]')[i]).val());
-        json1.push(arr)
-    }
-
-    var ExtraCost = {};
-    ExtraCost['num1'] = Number($('#num12').val());
-    ExtraCost['num2'] = Number($('#num13').val());
-    ExtraCost['num3'] = Number($('#num14').val());
-    ExtraCost['num4'] = Number($('#num15').val());
-    ExtraCost['num5'] = Number($('#num16').val());
-    ExtraCost['num6'] = Number($('#num17').val());
-    ExtraCost['num7'] = Number($('#num18').val());
-    ExtraCost['num8'] = Number($('#num19').val());
-    ExtraCost['num9'] = Number($('#num20').val());
-
-    var reqData = {};
-    reqData['ChargeStandard'] = json1;
-    reqData['ExtraCost'] = ExtraCost;
-    ajax.set("content",JSON.stringify(reqData));
+    ajax.set("content",JSON.stringify(content));
     ajax.set("type",5);
     ajax.start();
 };
@@ -261,57 +282,71 @@
     ajax.start();
 };
 
-TSystemConfig.addBox = function (){
+TSystemConfig.addTime = function (){
     var i = $('input[name="num1"]').length + 1;
-    var a ="<div>\n" +
-        "                                <div class=\"initialLevel col-sm-12 control-label form-group\"  >\n" +
+    var a ="" +
+        "<div class=\"rulesForm\" style=\"border: 1px solid #888888;padding-top: 10px;display: grid;margin: 10px 0px\">" +
+
+        "                                <div class=\"initialLevel col-sm-12 control-label form-group\" id='time' >\n" +
         "                                    <span class=\"control-label\" >时间段</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num1-"+i+"\" name=\"num1\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <input class=\"control-label\" id=\"num1\" name=\"num1\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" +
         "                                    <span class=\"control-label\" >——</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num2-"+i+"\" name=\"num2\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <input class=\"control-label\" id=\"num2\" name=\"num2\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"fa fa-remove\" style='position: absolute;right: 20px;color: red;font-size: 20px;' onclick=\"TSystemConfig.delTime(this)\"></span>\n" +
+        "                                </div>\n" +
+        "<div class='prices'>\n" +
+        "                                <div class=\"initialLevel col-sm-12 control-label form-group price\"  >\n" +
         "                                    <span class=\"control-label\" >代驾里程</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num3-"+i+"\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >公里,起步价</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num4-"+i+"\" name=\"num4\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >元,超出里程每</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num5-"+i+"\" name=\"num5\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >公里,收费</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num6-"+i+"\" name=\"num6\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <input class=\"control-label\" id=\"num1\" name=\"num1\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >公里,至</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num2\" name=\"num2\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >公里,收费</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num3\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >元</span>\n" +
+        "                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"fa fa-plus\" onclick=\"TSystemConfig.addBox(this)\"></span>\n" +
+        "                                </div>\n" +
+        "                            </div>" +
+        "                                <div class=\"initialLevel col-sm-12 control-label form-group\"  >\n" +
+        "                                    <span class=\"control-label\" >长途里程</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num4\" name=\"num4\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >——</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num5\" name=\"num5\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >公里,费用</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num6\" name=\"num6\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >元,超出里程每</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num7\" name=\"num7\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >公里,收费</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num8\" name=\"num8\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >元</span>\n" +
+        "                                </div>\n" +
+        "</div>"
+
+    $("#rules").append($(a))
+}
+
+
+TSystemConfig.addBox = function (e){
+    var a ="<div>\n" +
+        "                                <div class=\"initialLevel col-sm-12 control-label form-group price\"  >\n" +
+        "                                    <span class=\"control-label\" >代驾里程</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num1\" name=\"num1\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >公里,至</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num2\" name=\"num2\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
+        "                                    <span class=\"control-label\" >公里,收费</span>\n" +
+        "                                    <input class=\"control-label\" id=\"num3\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
         "                                    <span class=\"control-label\" >元</span>\n" +
         "                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"fa fa-remove\" onclick=\"TSystemConfig.delBox(this)\"></span>\n" +
         "                                </div>\n" +
-        "                                <div class=\"initialLevel col-sm-12 control-label form-group\"  >\n" +
-        "                                    <span class=\"control-label\" >长途里程</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num7-"+i+"\" name=\"num7\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >——</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num8-"+i+"\" name=\"num8\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >公里,收费</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num9-"+i+"\" name=\"num9\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >元,超出里程每</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num10-"+i+"\" name=\"num10\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >公里,收费</span>\n" +
-        "                                    <input class=\"control-label\" id=\"num11-"+i+"\" name=\"num11\" type=\"number\" style=\"height: 30px;width: 80px\">\n" +
-        "                                    <span class=\"control-label\" >元</span>\n" +
-        "                                </div>\n" +
         "                            </div>"
 
-    $("#rules").append($(a))
-    // laydate.render({
-    //     elem: '#num1-'+i,
-    //     type: 'time',
-    //     format: 'HH:mm',
-    //     range: false,
-    //     lang:'zn'
-    // });
-    // laydate.render({
-    //     elem: '#num2-'+i,
-    //     type: 'time',
-    //     format: 'HH:mm',
-    //     range: false,
-    //     lang:'zn'
-    // });
+    $(e).parent('div').parent(".prices").append($(a))
 }
 
+TSystemConfig.delTime = function (o) {
+    $(o).parent("div").parent('.rulesForm').remove()
+};
+
+
 TSystemConfig.delBox = function (o) {
     $(o).parent("div").parent("div").remove()
 };
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java
index fd4fd11..0e5c372 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/AppUserController.java
@@ -9,16 +9,12 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.agentdriving.user.modular.system.model.AppUser;
 import com.agentdriving.user.modular.system.model.SystemConfig;
-import com.agentdriving.user.modular.system.service.*;
-import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse;
-import com.agentdriving.user.modular.system.util.MallBook.util.RSASignature;
 import com.agentdriving.user.modular.system.util.PayMoneyUtil;
 import com.agentdriving.user.modular.system.util.RedisUtil;
 import com.agentdriving.user.modular.system.util.ResultUtil;
 import com.agentdriving.user.modular.system.util.UUIDUtil;
 import com.agentdriving.user.modular.system.util.huawei.OBSUtil;
 import com.agentdriving.user.modular.system.util.huawei.SMSUtil;
-import com.agentdriving.user.modular.system.warpper.*;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -35,6 +31,7 @@
 import java.io.InputStream;
 import java.io.PrintWriter;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户控制器
@@ -317,47 +314,18 @@
 //    @ServiceLog(name = "余额充值回调", url = "/base/appUser/rechargeBalanceCallback")
     public void rechargeBalanceCallback(HttpServletRequest request, HttpServletResponse response){
         try {
-            String code = request.getParameter("code");
-            String version = request.getParameter("version");
-            String msg = request.getParameter("msg");
-            String date = request.getParameter("date");
-            String result = request.getParameter("result");
-            String sign = request.getParameter("sign");
-            InterfaceResponse interfaceResponse = new InterfaceResponse();
-            interfaceResponse.setCode(code);
-            interfaceResponse.setVersion(version);
-            interfaceResponse.setMsg(msg);
-            interfaceResponse.setDate(date);
-            interfaceResponse.setResult(result);
-            interfaceResponse.setSign(sign);
-            // 验签
-            boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
-            if (verify) {//验签成功业务处理逻辑
-                JSONObject jsonObject = JSON.parseObject(result);
-                String merOrderId = jsonObject.getString("merOrderId");
-                String orderId = jsonObject.getString("parameter1");
-                appUserService.rechargeBalanceCallback(orderId, merOrderId);
-                response.setStatus(200);
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+                String result = map.get("result");
+                String orderId = out_trade_no.substring(17);
+                appUserService.rechargeBalanceCallback(out_trade_no, transaction_id);
                 PrintWriter out = response.getWriter();
-                out.print("OK");
+                out.print(result);
                 out.flush();
                 out.close();
-            } else {//验签失败业务处理逻辑
-                System.err.println("支付回调验签失败");
             }
-
-//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-//            if(null != map){
-//                String out_trade_no = map.get("out_trade_no");
-//                String transaction_id = map.get("transaction_id");
-//                String result = map.get("result");
-//                String orderId = out_trade_no.substring(17);
-//                appUserService.rechargeBalanceCallback(out_trade_no, transaction_id);
-//                PrintWriter out = response.getWriter();
-//                out.print(result);
-//                out.flush();
-//                out.close();
-//            }
         }catch (Exception e){
             e.printStackTrace();
         }
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java
index d920b43..1acf7e2 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/api/OrderController.java
@@ -1,24 +1,13 @@
 package com.agentdriving.user.modular.api;
 
 import com.agentdriving.user.core.util.ToolUtil;
-import com.agentdriving.user.modular.system.model.Driver;
 import com.agentdriving.user.modular.system.service.*;
 import com.agentdriving.user.modular.system.warpper.*;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.agentdriving.user.modular.system.model.AppUser;
 import com.agentdriving.user.modular.system.model.Order;
-import com.agentdriving.user.modular.system.model.Revenue;
-import com.agentdriving.user.modular.system.service.*;
-import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse;
-import com.agentdriving.user.modular.system.util.MallBook.model.Receive;
-import com.agentdriving.user.modular.system.util.MallBook.model.ReceiveUser;
-import com.agentdriving.user.modular.system.util.MallBook.util.RSASignature;
-import com.agentdriving.user.modular.system.util.MallBook.util.TrhRequest;
 import com.agentdriving.user.modular.system.util.PayMoneyUtil;
 import com.agentdriving.user.modular.system.util.ResultUtil;
-import com.agentdriving.user.modular.system.warpper.*;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -357,124 +346,19 @@
     @PostMapping("/base/order/orderPayCallback")
     public void orderPayCallback(HttpServletRequest request, HttpServletResponse response){
         try {
-            String code = request.getParameter("code");
-            String version = request.getParameter("version");
-            String msg = request.getParameter("msg");
-            String date = request.getParameter("date");
-            String result = request.getParameter("result");
-            String sign = request.getParameter("sign");
-            InterfaceResponse interfaceResponse = new InterfaceResponse();
-            interfaceResponse.setCode(code);
-            interfaceResponse.setVersion(version);
-            interfaceResponse.setMsg(msg);
-            interfaceResponse.setDate(date);
-            interfaceResponse.setResult(result);
-            interfaceResponse.setSign(sign);
-            // 验签
-            boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
-            if (verify) {//验签成功业务处理逻辑
-                JSONObject jsonObject = JSON.parseObject(result);
-                String merOrderId = jsonObject.getString("merOrderId");
-                String orderId = jsonObject.getString("parameter1");
-                ResultUtil resultUtil = orderService.orderPayCallback(orderId, merOrderId);
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+                String result = map.get("result");
+                String orderId = out_trade_no.substring(17);
+                ResultUtil resultUtil = orderService.orderPayCallback(orderId, transaction_id);
                 if(resultUtil.getCode() == 10000){
-                    response.setStatus(200);
                     PrintWriter out = response.getWriter();
-                    out.print("OK");
+                    out.print(result);
                     out.flush();
                     out.close();
                 }
-            } else {//验签失败业务处理逻辑
-                System.err.println("支付回调验签失败");
-            }
-
-
-//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-//            if(null != map){
-//                String out_trade_no = map.get("out_trade_no");
-//                String transaction_id = map.get("transaction_id");
-//                String result = map.get("result");
-//                String orderId = out_trade_no.substring(17);
-//                ResultUtil resultUtil = orderService.orderPayCallback(orderId, transaction_id);
-//                if(resultUtil.getCode() == 10000){
-//                    PrintWriter out = response.getWriter();
-//                    out.print(result);
-//                    out.flush();
-//                    out.close();
-//                }
-//            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 异步分账回调
-     */
-    @ResponseBody
-    @PostMapping("/base/order/ledgerCallback")
-    public void ledgerCallback(HttpServletRequest request, HttpServletResponse response){
-        try{
-            String code = request.getParameter("code");
-            String version = request.getParameter("version");
-            String msg = request.getParameter("msg");
-            String date = request.getParameter("date");
-            String result = request.getParameter("result");
-            String sign = request.getParameter("sign");
-            InterfaceResponse interfaceResponse = new InterfaceResponse();
-            interfaceResponse.setCode(code);
-            interfaceResponse.setVersion(version);
-            interfaceResponse.setMsg(msg);
-            interfaceResponse.setDate(date);
-            interfaceResponse.setResult(result);
-            interfaceResponse.setSign(sign);
-            // 验签
-            boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
-            if (verify) {//验签成功业务处理逻辑
-                JSONObject jsonObject = JSON.parseObject(result);
-                String merOrderId = jsonObject.getString("merOrderId");
-                String orderId = jsonObject.getString("parameter1");
-                //确认收货
-                new Timer().schedule(new TimerTask() {
-                    @Override
-                    public void run() {
-                        Order order = orderService.selectById(orderId);
-                        List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("userType", 2).eq("orderId", order.getId()));
-                        Receive receive = new Receive();//确认收货
-                        receive.setOriginalMerOrderId(merOrderId);
-                        receive.setRcvAmount(String.valueOf(order.getPayMoney() * 100));
-                        List<ReceiveUser> splitList = new ArrayList<>();
-                        for (Revenue revenue : revenues) {
-                            Driver driver = driverService.selectById(revenue.getUserId());
-                            ReceiveUser receiveUser = new ReceiveUser();
-                            receiveUser.setSplitUserId(driver.getMerchantNumber());
-                            receiveUser.setRcvSplitAmount(revenue.getAmount().toString());
-                            splitList.add(receiveUser);
-                        }
-                        receive.setSplitList(splitList);
-                        TrhRequest<Receive> request1 = new TrhRequest();
-                        InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE);
-                        if(!"0000".equals(execute.getResult())){
-                            System.err.println("确认收货" + execute.getMsg());
-                        }
-                        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-                        String status = jsonObject.getString("status");
-                        if("2".equals(status)){
-                            System.err.println("确认收货失败");
-                        }
-                        if("0".equals(status)){
-                            System.err.println("确认收货处理中");
-                        }
-                    }
-                }, 30000);
-                response.setStatus(200);
-                PrintWriter out = response.getWriter();
-                out.print("OK");
-                out.flush();
-                out.close();
-            } else {//验签失败业务处理逻辑
-                System.err.println("支付回调验签失败");
             }
         }catch (Exception e){
             e.printStackTrace();
@@ -484,6 +368,8 @@
 
 
 
+
+
     @ResponseBody
     @PostMapping("/api/order/orderAppraise")
 //    @ServiceLog(name = "订单评价操作", url = "/api/order/orderAppraise")
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml
index 1a1c265..1965eb7 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/dao/mapping/OrderMapper.xml
@@ -81,7 +81,7 @@
         b.phone as driverPhone,
         b.`code` as driverCode,
         ifnull(DATE_FORMAT(now(), '%Y') - DATE_FORMAT(b.firstCertificateTime, '%Y'), 0) as driverAge,
-        (select count(1) from t_order where driverId = b.id and `status` = 1 and state in (107, 108, 109)) as driverNumber,
+        (select count(1) from t_order where driverId = b.id and `status` = 1 and state in (107, 108, 109)) + 200 as driverNumber,
         b.score as driverScore,
         a.state,
         UNIX_TIMESTAMP(a.createTime) * 1000 as createTime,
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java
index 7775655..4d98ed3 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -13,12 +13,6 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.agentdriving.user.modular.system.model.*;
-import com.agentdriving.user.modular.system.service.*;
-import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse;
-import com.agentdriving.user.modular.system.util.MallBook.model.PaymentOrder;
-import com.agentdriving.user.modular.system.util.MallBook.model.PaymentOrderGood;
-import com.agentdriving.user.modular.system.util.MallBook.util.TrhRequest;
 import com.agentdriving.user.modular.system.util.PayMoneyUtil;
 import com.agentdriving.user.modular.system.util.RedisUtil;
 import com.agentdriving.user.modular.system.util.ResultUtil;
@@ -26,7 +20,6 @@
 import com.agentdriving.user.modular.system.util.weChat.WXCore;
 import com.agentdriving.user.modular.system.util.weChat.WeChatUtil;
 import com.agentdriving.user.modular.system.util.weChat.model.Code2Session;
-import com.agentdriving.user.modular.system.warpper.*;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
@@ -39,11 +32,11 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
-import java.net.InetAddress;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -318,43 +311,81 @@
         rechargeRecord.setPayStatus(1);
         rechargeRecord.setPayType(1);
         rechargeRecordService.insert(rechargeRecord);
-//        ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/appUser/rechargeBalanceCallback", "JSAPI", appUser.getOpenid());
-//        return weixinpay;
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/appUser/rechargeBalanceCallback", "JSAPI", appUser.getOpenid());
+        if(weixinpay.getCode() == 200){
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        int num = 1;
+                        int wait = 0;
+                        while (num <= 10) {
+                            int min = 5000;
+                            wait += (min * num);
+                            RechargeRecord rechargeRecord1 = rechargeRecordService.selectById(rechargeRecord.getId());
+                            if (rechargeRecord1.getPayStatus() == 2) {
+                                return;
+                            }
+                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, "");
+                            if (resultUtil.getCode() == 200) {
+                                /**
+                                 * 订单状态
+                                 * SUCCESS—支付成功,
+                                 * REFUND—转入退款,
+                                 * NOTPAY—未支付,
+                                 * CLOSED—已关闭,
+                                 * REVOKED—已撤销(刷卡支付),
+                                 * USERPAYING--用户支付中,
+                                 * PAYERROR--支付失败(其他原因,如银行返回失败)
+                                 */
+                                Map<String, String> data2 = resultUtil.getData();
+                                String s = data2.get("state");
+                                String transaction_id = data2.get("transaction_id");
+                                if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s)) {
+                                    //回退
+                                    return;
+                                }
+                                if ("SUCCESS".equals(s)) {
+                                    rechargeRecord1.setPayStatus(2);
+                                    rechargeRecord1.setPayTime(new Date());
+                                    rechargeRecord1.setOrderNumber(transaction_id);
+                                    rechargeRecordService.updateById(rechargeRecord1);
 
-        PaymentOrder paymentOrder = new PaymentOrder();
-        paymentOrder.setBizOrderId(out_trade_no);
-        paymentOrder.setAmount(String.valueOf(amount * 100));
-        paymentOrder.setOrderName("余额充值");
-        paymentOrder.setPayType("WX_MINI");
-        paymentOrder.setTransferType("0");
-        paymentOrder.setAsynSplitFlag("1");
-        paymentOrder.setAppid(appletsAppid);
-        paymentOrder.setOpenid(appUser.getOpenid());
-        paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress());
-        List<PaymentOrderGood> goodsDetail = new ArrayList<>();
-        PaymentOrderGood paymentOrderGood = new PaymentOrderGood();
-        paymentOrderGood.setGoodsName("余额充值");
-        goodsDetail.add(paymentOrderGood);
-        paymentOrder.setGoodsDetail(goodsDetail);
-        paymentOrder.setFrontUrl("");
-        paymentOrder.setNotifyUrl(callbackPath + "/base/appUser/rechargeBalanceCallback");
-        paymentOrder.setParameter1(out_trade_no);
-
-        TrhRequest<PaymentOrder> request = new TrhRequest();
-        InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
-        if(!"0000".equals(execute.getResult())){
-            return ResultUtil.error(execute.getMsg());
+                                    AppUser appUser1 = AppUserServiceImpl.this.selectById(rechargeRecord1.getUserId());
+                                    AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+                                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+                                    accountChangeDetail.setUserType(1);
+                                    accountChangeDetail.setUserId(appUser1.getId());
+                                    accountChangeDetail.setCreateTime(new Date());
+                                    accountChangeDetail.setOldData(appUser1.getAccountBalance());
+                                    accountChangeDetail.setType(1);
+                                    accountChangeDetail.setChangeType(3);
+                                    accountChangeDetail.setExplain("余额充值");
+                                    appUser1.setAccountBalance(appUser1.getAccountBalance() + rechargeRecord1.getAmount());
+                                    accountChangeDetail.setNewData(appUser1.getAccountBalance());
+                                    AppUserServiceImpl.this.updateById(appUser1);
+                                    accountChangeDetailService.insert(accountChangeDetail);
+                                    return;
+                                }
+                                if ("USERPAYING".equals(s)) {
+                                    Thread.sleep(wait);
+                                    num++;
+                                }
+                            }else{
+                                Thread.sleep(wait);
+                                num++;
+                            }
+                            if(10 == num){
+                                rechargeRecordService.deleteById(rechargeRecord1.getId());
+                            }
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
         }
-        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-        String status = jsonObject.getString("status");
-        if("2".equals(status)){
-            return ResultUtil.error("失败");
-        }
-        if("0".equals(status)){
-            return ResultUtil.error("处理中");
-        }
-        String payCode = jsonObject.getString("payCode");
-        return ResultUtil.success(payCode);
+        return weixinpay;
     }
 
 
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
index 89920f4..de79ec0 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -3,7 +3,6 @@
 import com.agentdriving.user.modular.system.model.*;
 import com.agentdriving.user.modular.system.service.*;
 import com.agentdriving.user.modular.system.util.*;
-import com.agentdriving.user.modular.system.util.MallBook.model.*;
 import com.agentdriving.user.modular.system.warpper.*;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -12,17 +11,10 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.agentdriving.user.core.util.ToolUtil;
 import com.agentdriving.user.modular.system.dao.OrderMapper;
-import com.agentdriving.user.modular.system.model.*;
-import com.agentdriving.user.modular.system.service.*;
-import com.agentdriving.user.modular.system.util.*;
 import com.agentdriving.user.modular.system.util.GaoDe.MapUtil;
 import com.agentdriving.user.modular.system.util.GaoDe.model.District;
-import com.agentdriving.user.modular.system.util.MallBook.model.*;
-import com.agentdriving.user.modular.system.util.MallBook.util.Transfer;
-import com.agentdriving.user.modular.system.util.MallBook.util.TrhRequest;
 import com.agentdriving.user.modular.system.util.juhe.WeatherUtil;
 import com.agentdriving.user.modular.system.util.mongodb.model.Location;
-import com.agentdriving.user.modular.system.warpper.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -38,7 +30,6 @@
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
-import java.net.InetAddress;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -99,15 +90,6 @@
 
     @Autowired
     private IRevenueService revenueService;
-
-    @Autowired
-    private IAgentService agentService;
-
-    @Autowired
-    private IPlatformRechargeRecordService platformRechargeRecordService;
-
-    @Autowired
-    private IDivisionRecordService divisionRecordService;
 
     @Value("${callbackPath}")
     private String callbackPath;//支付回调网关地址
@@ -211,19 +193,18 @@
         JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard");
         JSONObject extraCost = jsonObject.getJSONObject("ExtraCost");
         Date date = new Date();
-        for (int i = 0; i < chargeStandard.size(); i++) {
+
+        boolean b = true;
+        for (int i = 1; i < chargeStandard.size(); i++) {//各种时间段
             JSONObject jsonObject1 = chargeStandard.getJSONObject(i);
             String num1 = jsonObject1.getString("num1");
             String num2 = jsonObject1.getString("num2");
-            Double num3 = jsonObject1.getDouble("num3");//起步里程
-            Double num4 = jsonObject1.getDouble("num4");//起步价格
-            Double num5 = jsonObject1.getDouble("num5");//超过公里
-            Double num6 = jsonObject1.getDouble("num6");//超过num3每num5公里收取num6
-            Double num7 = jsonObject1.getDouble("num7");//长途起始公里
-            Double num8 = jsonObject1.getDouble("num8");//长途结束公里
-            Double num9 = jsonObject1.getDouble("num9");//长途费
-            Double num10 = jsonObject1.getDouble("num10");//超出长途里程每num10公里
-            Double num11 = jsonObject1.getDouble("num11");//超过num8每num10公里收取num11
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
 
             String[] split = num1.split(":");
             Calendar s = Calendar.getInstance();
@@ -240,33 +221,81 @@
             e.set(Calendar.SECOND, 0);
 
             if(date.getTime() >= s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
-                if(num3.compareTo(distance) >= 0){//起步里程内
-                    order.setStartDistance(distance);//起步里程
-                    order.setStartPrice(num4);//起步价
-                }else{
-                    BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程
-                    BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN));
-                    BigDecimal multiply = divide.multiply(new BigDecimal(num6));
-                    order.setStartDistance(num3);//起步里程
-                    order.setStartPrice(num4);//起步价
-                    order.setOverDriveDistance(subtract.doubleValue());//超出起步里程
-                    order.setOverDrivePrice(multiply.doubleValue());//超出起步里程费
-
+                b = false;
+                Double dd = 0d;
+                for (int j = 0; j < num3.size(); j++) {
+                    JSONObject jsonObject2 = num3.getJSONObject(j);
+                    Double num1_1 = jsonObject2.getDouble("num1");
+                    Double num2_1 = jsonObject2.getDouble("num2");
+                    Double num3_1 = jsonObject2.getDouble("num3");
+                    if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                        order.setStartDistance(distance);//起步里程
+                        order.setStartPrice(num3_1);//起步价
+                    }
+                    if(j == num3.size() - 1 && order.getStartPrice() == 0){
+                        order.setStartDistance(num2_1);//起步里程
+                        order.setStartPrice(num3_1);//起步价
+                        dd = distance - num2_1;
+                    }
+                }
+                if(dd != 0){
                     //计算长途费
-                    if(distance.compareTo(num7) > 0){
-                        order.setLongDistance(num7 + "-" + num8);//长途里程
-                        order.setLongDistancePrice(num9);//长途费
+                    if(distance.compareTo(num4) > 0){
+                        order.setLongDistance(num4 + "-" + num5);//长途里程
+                        order.setLongDistancePrice(num6);//长途费
                     }
                     //计算长途里程超出的部分
-                    if(distance.compareTo(num8) > 0){
-                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8));
-                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN));
-                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11));
+                    if(distance.compareTo(num5) > 0){
+                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
                         order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
                         order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
                     }
                 }
                 break;
+            }
+        }
+
+        if(b){//默认配置
+            JSONObject jsonObject1 = chargeStandard.getJSONObject(0);
+            JSONArray num3 = jsonObject1.getJSONArray("num3");//起步里程
+            Double num4 = jsonObject1.getDouble("num4");//长途里程
+            Double num5 = jsonObject1.getDouble("num5");//长途里程
+            Double num6 = jsonObject1.getDouble("num6");//长途费
+            Double num7 = jsonObject1.getDouble("num7");//超出长途里程每num10公里
+            Double num8 = jsonObject1.getDouble("num8");//超过num8每num10公里收取num11
+
+            Double dd = 0d;
+            for (int j = 0; j < num3.size(); j++) {
+                JSONObject jsonObject2 = num3.getJSONObject(j);
+                Double num1_1 = jsonObject2.getDouble("num1");
+                Double num2_1 = jsonObject2.getDouble("num2");
+                Double num3_1 = jsonObject2.getDouble("num3");
+                if(num1_1.compareTo(distance) <= 0 && num2_1.compareTo(distance) > 0){
+                    order.setStartDistance(distance);//起步里程
+                    order.setStartPrice(num3_1);//起步价
+                }
+                if(j == num3.size() - 1 && order.getStartPrice() == 0){
+                    order.setStartDistance(num2_1);//起步里程
+                    order.setStartPrice(num3_1);//起步价
+                    dd = distance - num2_1;
+                }
+            }
+            if(dd != 0){
+                //计算长途费
+                if(distance.compareTo(num4) > 0){
+                    order.setLongDistance(num4 + "-" + num5);//长途里程
+                    order.setLongDistancePrice(num6);//长途费
+                }
+                //计算长途里程超出的部分
+                if(distance.compareTo(num5) > 0){
+                    BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num5));
+                    BigDecimal divide1 = subtract1.divide(new BigDecimal(num7), new MathContext(2, RoundingMode.HALF_EVEN));
+                    BigDecimal multiply1 = divide1.multiply(new BigDecimal(num8));
+                    order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
+                    order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
+                }
             }
         }
 
@@ -783,12 +812,7 @@
         orderPriceWarpper.setDiscountAmount(0D);
         orderPriceWarpper.setPayType(1);//微信支付
         Double orderMoney = order.getOrderMoney();
-        //先算优惠券
-//        Coupon coupon = userToCouponService.queryCoupon(uid, orderMoney);
-//        if(null != coupon && null == couponId){
-//            orderPriceWarpper.setDiscountedPrice(coupon.getCouponPreferentialAmount());
-//            orderPriceWarpper.setCouponId(coupon.getId());
-//        }
+
         if(payType == 1 && null == couponId && appUser.getHavDiscount() == 1 && balance.compareTo(orderMoney) >= 0){//使用余额抵扣
             orderPriceWarpper.setDiscount(9D);
             orderPriceWarpper.setDiscountAmount(new BigDecimal(orderMoney * 0.1).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
@@ -859,6 +883,9 @@
         if(orderPayment.getPayType() == 3){//线下支付(由司机端操作)
         }
         if(orderPayment.getPayType() == 4){//微信+余额
+            if(appUser.getAccountBalance() == 0){
+                return ResultUtil.error("账户余额不足");
+            }
             return weixinAndBalancePayment(order, appUser, orderPayment.getCouponId());
         }
         return ResultUtil.success();
@@ -889,48 +916,92 @@
         }
         order.setPayType(1);
         order.setPayMoney(payMoney);
+        this.updateById(order);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String out_trade_no = sdf.format(new Date()) + order.getId();
-//        ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid());
-//        this.updateById(order);
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid());
+        if(weixinpay.getCode() == 200){
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        int num = 1;
+                        int wait = 0;
+                        while (num <= 10) {
+                            int min = 5000;
+                            wait += (min * num);
+                            Order order1 = OrderServiceImpl.this.selectById(order.getId());
+                            if (order1.getState() != 107) {
+                                return;
+                            }
+                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, "");
+                            if (resultUtil.getCode() == 200) {
+                                /**
+                                 * 订单状态
+                                 * SUCCESS—支付成功,
+                                 * REFUND—转入退款,
+                                 * NOTPAY—未支付,
+                                 * CLOSED—已关闭,
+                                 * REVOKED—已撤销(刷卡支付),
+                                 * USERPAYING--用户支付中,
+                                 * PAYERROR--支付失败(其他原因,如银行返回失败)
+                                 */
+                                Map<String, String> data2 = resultUtil.getData();
+                                String s = data2.get("state");
+                                String transaction_id = data2.get("transaction_id");
+                                if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
+                                    //回退
+                                    return;
+                                }
+                                if ("SUCCESS".equals(s)) {
+                                    order1.setState(108);
+                                    order1.setPayTime(new Date());
+                                    order1.setOrderNo(transaction_id);
+                                    OrderServiceImpl.this.updateById(order1);
 
+                                    Driver driver = driverService.selectById(order1.getDriverId());
+                                    AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+                                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+                                    accountChangeDetail.setUserType(2);
+                                    accountChangeDetail.setUserId(order1.getDriverId());
+                                    accountChangeDetail.setCreateTime(new Date());
+                                    accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                                    accountChangeDetail.setType(1);
+                                    accountChangeDetail.setChangeType(7);
+                                    accountChangeDetail.setOrderId(order1.getId());
+                                    accountChangeDetail.setExplain("优惠券收入");
+                                    driver.setCouponBalance(driver.getCouponBalance() + order1.getDiscountedPrice());
+                                    accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                                    driverService.updateById(driver);
+                                    accountChangeDetailService.insert(accountChangeDetail);
 
-
-        PaymentOrder paymentOrder = new PaymentOrder();
-        paymentOrder.setBizOrderId(out_trade_no);
-        paymentOrder.setAmount(String.valueOf(payMoney * 100));
-        paymentOrder.setOrderName("代驾服务费");
-        paymentOrder.setPayType("WX_MINI");
-        paymentOrder.setTransferType("0");
-        paymentOrder.setAsynSplitFlag("1");
-        paymentOrder.setAppid("");
-        paymentOrder.setOpenid(appUser.getOpenid());
-        paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress());
-        List<PaymentOrderGood> goodsDetail = new ArrayList<>();
-        PaymentOrderGood paymentOrderGood = new PaymentOrderGood();
-        paymentOrderGood.setGoodsName("服务费");
-        goodsDetail.add(paymentOrderGood);
-        paymentOrder.setGoodsDetail(goodsDetail);
-        paymentOrder.setFrontUrl("");
-        paymentOrder.setNotifyUrl(callbackPath + "/base/order/orderPayCallback");
-        paymentOrder.setParameter1(order.getId().toString());
-
-        TrhRequest<PaymentOrder> request = new TrhRequest();
-        InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
-        if(!"0000".equals(execute.getResult())){
-            return ResultUtil.error(execute.getMsg());
+                                    pushUtil.pushOrderStatus(order1.getUserId(), 1, order1.getId(), order1.getState());
+                                    if(null != order1.getDriverId()) {
+                                        PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper();
+                                        pushOrderInfoWarpper.setId(order1.getId());
+                                        pushOrderInfoWarpper.setState(order1.getState());
+                                        pushUtil.pushOrderInfo(order1.getDriverId(), 2, pushOrderInfoWarpper);
+                                    }
+                                    //处理佣金和收入记录
+                                    saveCommission(order1);
+                                    return;
+                                }
+                                if ("USERPAYING".equals(s)) {
+                                    Thread.sleep(wait);
+                                    num++;
+                                    continue;
+                                }
+                                Thread.sleep(wait);
+                                num++;
+                            }
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
         }
-        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-        String status = jsonObject.getString("status");
-        if("2".equals(status)){
-            return ResultUtil.error("失败");
-        }
-        if("0".equals(status)){
-            return ResultUtil.error("处理中");
-        }
-        String payCode = jsonObject.getString("payCode");
-        this.updateById(order);
-        return ResultUtil.success(payCode);
+        return weixinpay;
     }
 
 
@@ -1056,126 +1127,109 @@
         if(0 < payMoney){//还需要调起微信支付
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
             String out_trade_no = sdf.format(new Date()) + order.getId();
-//            ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid());
+            ResultUtil weixinpay = payMoneyUtil.weixinpay("代驾服务费", "", out_trade_no, payMoney.toString(), "/base/order/orderPayCallback", "JSAPI", appUser.getOpenid());
 
-            PaymentOrder paymentOrder = new PaymentOrder();
-            paymentOrder.setBizOrderId(out_trade_no);
-            paymentOrder.setAmount(String.valueOf(payMoney * 100));
-            paymentOrder.setOrderName("代驾服务费");
-            paymentOrder.setPayType("WX_MINI");
-            paymentOrder.setTransferType("0");
-            paymentOrder.setAsynSplitFlag("1");
-            paymentOrder.setAppid("");
-            paymentOrder.setOpenid(appUser.getOpenid());
-            paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress());
-            List<PaymentOrderGood> goodsDetail = new ArrayList<>();
-            PaymentOrderGood paymentOrderGood = new PaymentOrderGood();
-            paymentOrderGood.setGoodsName("服务费");
-            goodsDetail.add(paymentOrderGood);
-            paymentOrder.setGoodsDetail(goodsDetail);
-            paymentOrder.setFrontUrl("");
-            paymentOrder.setNotifyUrl(callbackPath + "/base/order/orderPayCallback");
-            paymentOrder.setParameter1(order.getId().toString());
+            if(weixinpay.getCode() == 200){
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            int num = 1;
+                            int wait = 0;
+                            while (num <= 10) {
+                                int min = 5000;
+                                wait += (min * num);
+                                Order order1 = OrderServiceImpl.this.selectById(order.getId());
+                                if (order1.getState() != 107) {
+                                    return;
+                                }
+                                ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, "");
+                                if (resultUtil.getCode() == 200) {
+                                    /**
+                                     * 订单状态
+                                     * SUCCESS—支付成功,
+                                     * REFUND—转入退款,
+                                     * NOTPAY—未支付,
+                                     * CLOSED—已关闭,
+                                     * REVOKED—已撤销(刷卡支付),
+                                     * USERPAYING--用户支付中,
+                                     * PAYERROR--支付失败(其他原因,如银行返回失败)
+                                     */
+                                    Map<String, String> data2 = resultUtil.getData();
+                                    String s = data2.get("state");
+                                    String transaction_id = data2.get("transaction_id");
+                                    if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
+                                        //回退
+                                        AccountChangeDetail accountChangeDetail1 = accountChangeDetailService.selectById(accountChangeDetail.getId());
+                                        double v = accountChangeDetail1.getOldData() - accountChangeDetail1.getNewData();
+                                        AppUser appUser1 = appUserService.selectById(order1.getUserId());
 
-            TrhRequest<PaymentOrder> request = new TrhRequest();
-            InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
-            if(!"0000".equals(execute.getResult())){
-                return ResultUtil.error(execute.getMsg());
-            }
-            JSONObject jsonObject = JSON.parseObject(execute.getResult());
-            String status = jsonObject.getString("status");
-            if("2".equals(status)){
-                return ResultUtil.error("失败");
-            }
-            if("0".equals(status)){
-                return ResultUtil.error("处理中");
-            }
-            String payCode = jsonObject.getString("payCode");
-            this.updateById(order);
-            return ResultUtil.success(payCode);
+                                        accountChangeDetail1 = new AccountChangeDetail();
+                                        accountChangeDetail1.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+                                        accountChangeDetail1.setUserType(1);
+                                        accountChangeDetail1.setUserId(appUser1.getId());
+                                        accountChangeDetail1.setCreateTime(new Date());
+                                        accountChangeDetail1.setOldData(appUser1.getAccountBalance());
+                                        accountChangeDetail1.setType(1);
+                                        accountChangeDetail1.setChangeType(2);
+                                        accountChangeDetail1.setOrderId(order1.getId());
+                                        accountChangeDetail1.setExplain("支付失败回退");
+                                        appUser1.setAccountBalance(appUser1.getAccountBalance() + v);
+                                        accountChangeDetail1.setNewData(appUser1.getAccountBalance());
+                                        appUserService.updateById(appUser1);
+                                        accountChangeDetailService.insert(accountChangeDetail1);
+                                        return;
+                                    }
+                                    if ("SUCCESS".equals(s)) {
+                                        order1.setState(108);
+                                        order1.setPayTime(new Date());
+                                        order1.setOrderNo(transaction_id);
+                                        OrderServiceImpl.this.updateById(order1);
 
-            // TODO: 2023/5/18 取消支付后需要处理优惠券数据回退
-//
-//
-//            new Thread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    try {
-//                        int num = 1;
-//                        int wait = 0;
-//                        while (num <= 10){
-//                            int min = 5000;
-//                            wait += (min * num);
-//                            Order order1 = OrderServiceImpl.this.selectById(order.getId());
-//                            if(order1.getState() != 107){
-//                                return;
-//                            }
-//
-//                            /**
-//                             * SUCCESS--支付成功
-//                             * REFUND--转入退款
-//                             * NOTPAY--未支付
-//                             * CLOSED--已关闭
-//                             * REVOKED--已撤销(刷卡支付)
-//                             * USERPAYING--用户支付中
-//                             * PAYERROR--支付失败(其他原因,如银行返回失败)
-//                             * ACCEPT--已接收,等待扣款
-//                             */
-//                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, "");
-//                            if(resultUtil.getCode() == 200){
-//                                Map<String, String> map = resultUtil.getData();
-//                                String trade_type = map.get("trade_type");
-//                                String trade_state = map.get("trade_state");
-//                                String transaction_id = map.get("transaction_id");
-//                                if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){
-//                                    AccountChangeDetail accountChangeDetail1 = accountChangeDetailService.selectById(accountChangeDetail.getId());
-//                                    AppUser appUser1 = appUserService.selectById(accountChangeDetail1.getUserId());
-//                                    Double b = accountChangeDetail1.getOldData() - accountChangeDetail1.getNewData();
-//                                    appUser1.setAccountBalance(appUser1.getAccountBalance() + b);
-//                                    appUserService.updateById(appUser1);
-//
-//                                    accountChangeDetailService.deleteById(accountChangeDetail.getId());
-//                                    return;
-//                                }
-//                                if("SUCCESS".equals(trade_state)){
-//                                    order1.setPayTime(new Date());
-//                                    order1.setState(108);
-//                                    order1.setOrderNo(transaction_id);
-//                                    OrderServiceImpl.this.updateById(order1);
-//
-//                                    //处理抽成及收入
-//                                    saveCommission(order1);
-//                                    return;
-//                                }
-//                                if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
-//                                    Thread.sleep(wait);
-//                                    num++;
-//                                }
-//                            }else{
-//                                Thread.sleep(wait);
-//                                num++;
-//                            }
-//                            if(10 == num){
-//                                AccountChangeDetail accountChangeDetail1 = accountChangeDetailService.selectById(accountChangeDetail.getId());
-//                                AppUser appUser1 = appUserService.selectById(accountChangeDetail1.getUserId());
-//                                Double b = accountChangeDetail1.getOldData() - accountChangeDetail1.getNewData();
-//                                appUser1.setAccountBalance(appUser1.getAccountBalance() + b);
-//                                appUserService.updateById(appUser1);
-//
-//                                accountChangeDetailService.deleteById(accountChangeDetail.getId());
-//                            }
-//                        }
-//                    }catch (Exception e){
-//                        e.printStackTrace();
-//                    }
-//                }
-//            }).start();
-//            return weixinpay;
+                                        Driver driver = driverService.selectById(order1.getDriverId());
+                                        AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+                                        accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+                                        accountChangeDetail.setUserType(2);
+                                        accountChangeDetail.setUserId(order1.getDriverId());
+                                        accountChangeDetail.setCreateTime(new Date());
+                                        accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                                        accountChangeDetail.setType(1);
+                                        accountChangeDetail.setChangeType(7);
+                                        accountChangeDetail.setOrderId(order1.getId());
+                                        accountChangeDetail.setExplain("优惠券收入");
+                                        driver.setCouponBalance(driver.getCouponBalance() + order1.getDiscountedPrice());
+                                        accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+                                        driverService.updateById(driver);
+                                        accountChangeDetailService.insert(accountChangeDetail);
+
+                                        pushUtil.pushOrderStatus(order1.getUserId(), 1, order1.getId(), order1.getState());
+                                        if(null != order1.getDriverId()) {
+                                            PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper();
+                                            pushOrderInfoWarpper.setId(order1.getId());
+                                            pushOrderInfoWarpper.setState(order1.getState());
+                                            pushUtil.pushOrderInfo(order1.getDriverId(), 2, pushOrderInfoWarpper);
+                                        }
+                                        //处理佣金和收入记录
+                                        saveCommission(order1);
+                                        return;
+                                    }
+                                    if ("USERPAYING".equals(s)) {
+                                        Thread.sleep(wait);
+                                        num++;
+                                        continue;
+                                    }
+                                    Thread.sleep(wait);
+                                    num++;
+                                }
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }).start();
+            }
+            return weixinpay;
         }
-//        order.setPayTime(new Date());
-//        this.updateById(order);
-
-
         return ResultUtil.success();
 
     }
@@ -1206,135 +1260,6 @@
             pushOrderInfoWarpper.setState(order.getState());
             pushUtil.pushOrderInfo(order.getDriverId(), 2, pushOrderInfoWarpper);
         }
-
-        //支付成功---->异步分账----->10s钟后再进行确认收货
-        //确认收货后才能进行提现(结算接口)
-        //异步分账
-        List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("orderId", order.getId()));
-        Complete complete = new Complete();
-        complete.setOriginalMerOrderId(transaction_id);
-        complete.setNotifyUrl(callbackPath + "/base/order/ledgerCallback");
-        List<PamentOrderUser> splitList = new ArrayList<>();
-        for (Revenue revenue : revenues) {
-            if(revenue.getUserType() == 2){//司机
-                Driver driver = driverService.selectById(revenue.getUserId());
-                PamentOrderUser pamentOrderUser = new PamentOrderUser();
-                pamentOrderUser.setSplitUserId(driver.getMerchantNumber());
-                pamentOrderUser.setSplitAmount(revenue.getAmount().toString());
-                pamentOrderUser.setSplitType("2");
-                splitList.add(pamentOrderUser);
-
-                DivisionRecord divisionRecord = new DivisionRecord();
-                divisionRecord.setUserType(1);
-                divisionRecord.setUserId(revenue.getUserId());
-                divisionRecord.setOrderId(order.getId());
-                divisionRecord.setMerOrderId(transaction_id);
-                divisionRecord.setSourceType(1);
-                divisionRecord.setAmount(revenue.getAmount());
-                divisionRecord.setMerchantNumber(driver.getMerchantNumber());
-                divisionRecord.setState(1);
-                divisionRecord.setCreateTime(new Date());
-                divisionRecordService.insert(divisionRecord);
-            }
-            if(revenue.getUserType() == 3){//代理商
-                Agent agent = agentService.selectById(revenue.getUserId());
-                PamentOrderUser pamentOrderUser = new PamentOrderUser();
-                pamentOrderUser.setSplitUserId(agent.getMerchantNumber());
-                pamentOrderUser.setSplitAmount(revenue.getAmount().toString());
-                pamentOrderUser.setSplitType("2");
-                splitList.add(pamentOrderUser);
-
-                DivisionRecord divisionRecord = new DivisionRecord();
-                divisionRecord.setUserType(2);
-                divisionRecord.setUserId(revenue.getUserId());
-                divisionRecord.setOrderId(order.getId());
-                divisionRecord.setMerOrderId(transaction_id);
-                divisionRecord.setSourceType(1);
-                divisionRecord.setAmount(revenue.getAmount());
-                divisionRecord.setMerchantNumber(agent.getMerchantNumber());
-                divisionRecord.setState(1);
-                divisionRecord.setCreateTime(new Date());
-                divisionRecordService.insert(divisionRecord);
-            }
-
-        }
-        complete.setSplitList(splitList);
-        TrhRequest<Complete> request = new TrhRequest();
-        InterfaceResponse execute = request.execute(complete, Complete.SERVICE_CODE);
-        if(!"0000".equals(execute.getResult())){
-            return ResultUtil.error(execute.getMsg());
-        }
-        JSONObject jsonObject = JSON.parseObject(execute.getResult());
-        String status = jsonObject.getString("status");
-        if("2".equals(status)){
-            return ResultUtil.error("失败");
-        }
-        if("0".equals(status)){
-            return ResultUtil.error("处理中");
-        }
-
-        //使用优惠券的情况,通过转账接口将优惠券的收入转到司机电子账簿
-        if(null != order.getCouponId()){
-            List<PlatformRechargeRecord> platformRechargeRecords = platformRechargeRecordService.selectList(new EntityWrapper<PlatformRechargeRecord>().eq("state", 2).last(" and balance > 0 order by payTime"));
-            Double discountedPrice = order.getDiscountedPrice();
-            Driver driver = driverService.selectById(order.getDriverId());
-
-            UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
-            Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
-            AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
-            accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
-            accountChangeDetail.setUserType(2);
-            accountChangeDetail.setUserId(order.getDriverId());
-            accountChangeDetail.setCreateTime(new Date());
-            accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
-            accountChangeDetail.setType(1);
-            accountChangeDetail.setChangeType(7);
-            accountChangeDetail.setOrderId(order.getId());
-            accountChangeDetail.setExplain("优惠券收入");
-            driver.setCouponBalance(driver.getCouponBalance() + coupon.getCouponPreferentialAmount());
-            accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
-            driverService.updateById(driver);
-            accountChangeDetailService.insert(accountChangeDetail);
-
-
-            for (PlatformRechargeRecord platformRechargeRecord : platformRechargeRecords) {
-                if(discountedPrice == 0){
-                    break;
-                }
-
-                if(platformRechargeRecord.getBalance().compareTo(discountedPrice) >= 0){
-                    discountedPrice = 0D;
-                    platformRechargeRecord.setBalance(platformRechargeRecord.getBalance() - discountedPrice);
-                    platformRechargeRecordService.updateById(platformRechargeRecord);
-                }else{
-
-                }
-
-                Transfer transfer = new Transfer();
-                transfer.setDepositMerOrderId("6831518911582834611");
-                transfer.setToUserId(driver.getMerchantNumber());
-                transfer.setAmount(discountedPrice.toString());
-                transfer.setOrderName("");
-                transfer.setNotifyUrl("");
-                transfer.setParameter1(order.getId().toString());
-
-                TrhRequest<Transfer> request1 = new TrhRequest();
-                InterfaceResponse execute1 = request1.execute(transfer, Transfer.SERVICE_CODE);
-                if(!"0000".equals(execute1.getResult())){
-                    return ResultUtil.error(execute1.getMsg());
-                }
-                JSONObject jsonObject1 = JSON.parseObject(execute1.getResult());
-                String status1 = jsonObject1.getString("status");
-                if("2".equals(status1)){
-                    return ResultUtil.error("失败");
-                }
-                if("0".equals(status1)){
-                    return ResultUtil.error("处理中");
-                }
-            }
-        }
-
-
         return ResultUtil.success();
     }
 
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java
index cc4a211..2a303ca 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/service/impl/SystemConfigServiceImpl.java
@@ -1,5 +1,6 @@
 package com.agentdriving.user.modular.system.service.impl;
 
+import com.agentdriving.user.core.util.ToolUtil;
 import com.agentdriving.user.modular.system.dao.SystemConfigMapper;
 import com.agentdriving.user.modular.system.model.SystemConfig;
 import com.agentdriving.user.modular.system.service.ISystemConfigService;
@@ -35,7 +36,6 @@
         SystemConfig systemConfig = this.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5));
         PriceRulesWarpper priceRulesWarpper = new PriceRulesWarpper();
         if(null != systemConfig){
-            //{"ChargeStandard":[{"num1":"06:00","num2":"08:00","num3":2,"num4":2,"num5":2,"num6":2,"num7":2,"num8":2,"num9":2,"num10":2,"num11":2},{"num1":"06:00","num2":"08:00","num3":1,"num4":1,"num5":1,"num6":1,"num7":2,"num8":2,"num9":2,"num10":2,"num11":2},{"num1":"00:00","num2":"10:00","num3":3,"num4":3,"num5":3,"num6":3,"num7":3,"num8":3,"num9":3,"num10":3,"num11":3}],"ExtraCost":{"num1":1,"num2":1,"num3":1,"num4":1,"num5":1,"num6":1,"num7":1,"num8":1,"num9":1}}
             JSONObject jsonObject = JSON.parseObject(systemConfig.getContent());
             JSONArray chargeStandard = jsonObject.getJSONArray("ChargeStandard");
             List<Map<String, Object>> basePrice = new ArrayList<>();
@@ -44,29 +44,34 @@
                 JSONObject jsonObject1 = chargeStandard.getJSONObject(i);
                 String num1 = jsonObject1.getString("num1");
                 String num2 = jsonObject1.getString("num2");
-                Double num3 = jsonObject1.getDouble("num3");
+                JSONArray num3 = jsonObject1.getJSONArray("num3");
                 Double num4 = jsonObject1.getDouble("num4");
                 Double num5 = jsonObject1.getDouble("num5");
                 Double num6 = jsonObject1.getDouble("num6");
                 Double num7 = jsonObject1.getDouble("num7");
                 Double num8 = jsonObject1.getDouble("num8");
-                Double num9 = jsonObject1.getDouble("num9");
-                Double num10 = jsonObject1.getDouble("num10");
-                Double num11 = jsonObject1.getDouble("num11");
-
 
                 Map<String, Object> map1 = new HashMap<>();
-                map1.put("time", num1 + "-" + num2);
-                map1.put("startingMileage", num3 + "公里(包含" + num3 + "公里)");
-                map1.put("startingPrice", num4 + "元");
-                map1.put("exceedStartingPrice", num6 + "元/" + num5 + "公里");
+                map1.put("time", ToolUtil.isEmpty(num1) ? "其他时段" : num1 + "-" + num2);
+                List<Map<String, String>> list = new ArrayList<>();
+                for (int j = 0; j < num3.size(); j++) {
+                    Map<String, String> map = new HashMap<>();
+                    JSONObject jsonObject2 = num3.getJSONObject(j);
+                    Double num1_1 = jsonObject2.getDouble("num1");
+                    Double num2_1 = jsonObject2.getDouble("num2");
+                    Double num3_1 = jsonObject2.getDouble("num3");
+                    map.put("startingMileage", num1_1 + "-" + num2_1 + "公里(含" + num2_1 + "公里)");
+                    map.put("startingPrice", num3_1 + "元");
+                    list.add(map);
+                }
+                map1.put("data", list);
                 basePrice.add(map1);
 
                 Map<String, Object> map2 = new HashMap<>();
-                map2.put("time", num1 + "-" + num2);
-                map2.put("startingMileage", num7 + "-" + num8 + "公里");
-                map2.put("startingPrice", num9 + "元");
-                map2.put("exceedStartingPrice", num11 + "元/" + num10 + "公里");
+                map2.put("time", ToolUtil.isEmpty(num1) ? "其他时段" : num1 + "-" + num2);
+                map2.put("startingMileage", num4 + "-" + num5 + "公里");
+                map2.put("startingPrice", num6 + "元");
+                map2.put("exceedStartingPrice", num7 + "元/" + num8 + "公里");
                 longDistanceCharges.add(map2);
             }
             priceRulesWarpper.setBasePrice(JSON.toJSONString(basePrice));
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/ALiSendSms.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/ALiSendSms.java
deleted file mode 100644
index a4ab8bb..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/ALiSendSms.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package com.agentdriving.user.modular.system.util;
-
-
-import com.aliyuncs.CommonRequest;
-import com.aliyuncs.CommonResponse;
-import com.aliyuncs.DefaultAcsClient;
-import com.aliyuncs.IAcsClient;
-import com.aliyuncs.exceptions.ClientException;
-import com.aliyuncs.profile.DefaultProfile;
-import com.google.gson.Gson;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 阿里云短信工具类
- */
-@Component
-public class ALiSendSms {
-
-    // 设置鉴权参数,初始化客户端
-    private DefaultProfile profile = DefaultProfile.getProfile(
-            "cn-hangzhou",// 地域ID
-            "LTAI4G9Zez9H4B36vakPXGy4",// 您的AccessKey ID
-            "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ");// 您的AccessKey Secret
-    private IAcsClient client = new DefaultAcsClient(profile);
-
-    private static void log_print(String functionName, Object result) {
-        Gson gson = new Gson();
-        System.out.println("-------------------------------" + functionName + "-------------------------------");
-        System.out.println(gson.toJson(result));
-    }
-
-    /**
-     * 添加短信模板
-     */
-    public String addSmsTemplate() throws ClientException {
-        CommonRequest addSmsTemplateRequest = new CommonRequest();
-        addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com");
-        addSmsTemplateRequest.setSysAction("AddSmsTemplate");
-        addSmsTemplateRequest.setSysVersion("2017-05-25");
-        // 短信类型。0:验证码;1:短信通知;2:推广短信;3:国际/港澳台消息
-        addSmsTemplateRequest.putQueryParameter("TemplateType", "0");
-        // 模板名称,长度为1~30个字符
-        addSmsTemplateRequest.putQueryParameter("TemplateName", "测试短信模板");
-        // 模板内容,长度为1~500个字符
-        addSmsTemplateRequest.putQueryParameter("TemplateContent", "您正在申请手机注册,验证码为:${code},5分钟内有效!");
-        // 短信模板申请说明
-        addSmsTemplateRequest.putQueryParameter("Remark", "测试");
-        CommonResponse addSmsTemplateResponse = client.getCommonResponse(addSmsTemplateRequest);
-        String data = addSmsTemplateResponse.getData();
-        // 消除返回文本中的反转义字符
-        String sData = data.replaceAll("'\'", "");
-        log_print("addSmsTemplate", sData);
-        Gson gson = new Gson();
-        // 将字符串转换为Map类型,取TemplateCode字段值
-        Map map = gson.fromJson(sData, Map.class);
-        Object templateCode = map.get("TemplateCode");
-        return templateCode.toString();
-    }
-
-    /**
-     * 发送短信
-     */
-    public String sendSms(String phone, String templateCode, String json) throws ClientException {
-        CommonRequest request = new CommonRequest();
-        request.setSysDomain("dysmsapi.aliyuncs.com");
-        request.setSysVersion("2017-05-25");
-        request.setSysAction("SendSms");
-        // 接收短信的手机号码
-        request.putQueryParameter("PhoneNumbers", phone);
-        // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
-        request.putQueryParameter("SignName", "OK出行");
-        // 短信模板ID
-        request.putQueryParameter("TemplateCode", templateCode);
-        // 短信模板变量对应的实际值,JSON格式。
-        request.putQueryParameter("TemplateParam", json);
-        CommonResponse commonResponse = client.getCommonResponse(request);
-        String data = commonResponse.getData();
-        String sData = data.replaceAll("'\'", "");
-        log_print("sendSms", sData);
-        return sData;
-    }
-
-    /**
-     * 查询发送详情
-     */
-    private void querySendDetails(String bizId) throws ClientException {
-        CommonRequest request = new CommonRequest();
-        request.setSysDomain("dysmsapi.aliyuncs.com");
-        request.setSysVersion("2017-05-25");
-        request.setSysAction("QuerySendDetails");
-        // 接收短信的手机号码
-        request.putQueryParameter("PhoneNumber", "156xxxxxxxx");
-        // 短信发送日期,支持查询最近30天的记录。格式为yyyyMMdd,例如20191010。
-        request.putQueryParameter("SendDate", "20191010");
-        // 分页记录数量
-        request.putQueryParameter("PageSize", "10");
-        // 分页当前页码
-        request.putQueryParameter("CurrentPage", "1");
-        // 发送回执ID,即发送流水号。
-        request.putQueryParameter("BizId", bizId);
-        CommonResponse response = client.getCommonResponse(request);
-        log_print("querySendDetails", response.getData());
-    }
-
-    public static void main(String[] args) {
-        ALiSendSms sendSmsDemo = new ALiSendSms();
-        try {
-            // 创建短信模板
-            String templateCode = sendSmsDemo.addSmsTemplate();
-            // 使用刚创建的短信模板发送短信
-            String sData = sendSmsDemo.sendSms("156xxxxxxxx", templateCode, "{\"code\":\"8888\"}");
-            Gson gson = new Gson();
-            Map map = gson.fromJson(sData, Map.class);
-            String bizId = map.get("BizId").toString();
-            // 根据短信发送流水号查询短信发送情况
-            sendSmsDemo.querySendDetails(bizId);
-        } catch (ClientException e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java
index 78e4dde..6487113 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/GaoDe/MapConfig.java
@@ -10,5 +10,5 @@
     /**
      * 高德key
      */
-    String key = "e0370a9a4d10739045fb0b8f4742a67e";
+    String key = "588845b621c3c42d6d6c8f50ba00cb41";
 }
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/JGPushUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/JGPushUtil.java
deleted file mode 100644
index f5cdbf0..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/JGPushUtil.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.agentdriving.user.modular.system.util;
-
-import cn.jiguang.common.ClientConfig;
-import cn.jiguang.common.resp.APIConnectionException;
-import cn.jiguang.common.resp.APIRequestException;
-import cn.jpush.api.JPushClient;
-import cn.jpush.api.push.PushResult;
-import cn.jpush.api.push.model.Platform;
-import cn.jpush.api.push.model.PushPayload;
-import cn.jpush.api.push.model.audience.Audience;
-import cn.jpush.api.push.model.notification.Notification;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 极光推送工具类
- */
-@Component
-public class JGPushUtil {
-
-    @Value("${jiguang.appKey-driver}")
-    private String appKeyDriver;
-
-    @Value("${jiguang.masterSecret-driver}")
-    private String masterSecretDriver;
-
-    @Value("${jiguang.appKey-dispatch}")
-    private String appKeyDispatch;
-
-    @Value("${jiguang.masterSecret-dispatch}")
-    private String masterSecretDispatch;
-
-
-    private PushPayload buildPushObject_all_all_alert(String content, String...tags) {
-        return PushPayload.newBuilder()
-                .setPlatform(Platform.all())//设置推送平台为全部平台
-                .setAudience(Audience.alias(tags))//通过别名的方式发送(用户owner_id,员工user_id)
-                .setNotification(Notification.alert(content))
-                .build();
-    }
-
-
-    private PushPayload buildPushObject_all_all_alert(String title, String content, Map<String, String> map, String...tags) {
-        return PushPayload.newBuilder()
-                .setPlatform(Platform.all())//设置推送平台为全部平台
-                .setAudience(Audience.alias(tags))//通过别名的方式发送(用户owner_id,员工user_id)
-                .setNotification(Notification.android(content, title, map))
-                .setNotification(Notification.ios(content, map))
-                .setNotification(Notification.winphone(content, map))
-                .build();
-    }
-
-
-    /**
-     * 推送
-     * @param tags
-     * @param content
-     */
-    public void push(Integer type, String content, String...tags){
-        String masterSecret = (type == 1 ? masterSecretDriver : masterSecretDispatch);
-        String appKey = (type == 1 ? appKeyDriver : appKeyDispatch);
-        JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance());
-        PushPayload payload = this.buildPushObject_all_all_alert(content, tags);
-        try {
-            PushResult result = jpushClient.sendPush(payload);
-            System.err.println(result.statusCode);
-        } catch (APIConnectionException e) {
-            e.printStackTrace();
-        } catch (APIRequestException e) {
-            e.printStackTrace();
-        }
-    }
-
-
-    public void push(Integer type, String content, String title, Map<String, String> map, String...tags){
-        String masterSecret = (type == 1 ? masterSecretDriver : masterSecretDispatch);
-        String appKey = (type == 1 ? appKeyDriver : appKeyDispatch);
-        JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance());
-        PushPayload payload = this.buildPushObject_all_all_alert(title, content, map, tags);
-        try {
-            PushResult result = jpushClient.sendPush(payload);
-            System.err.println(result.statusCode);
-        } catch (APIConnectionException e) {
-            e.printStackTrace();
-        } catch (APIRequestException e) {
-            e.printStackTrace();
-        }
-    }
-
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/config/ChannelConfig.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/config/ChannelConfig.java
deleted file mode 100644
index 01b372f..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/config/ChannelConfig.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.config;
-
-import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
-import org.springframework.core.io.ClassPathResource;
-
-import java.util.Properties;
-
-/**
- * @Author xiaogc
- * @Date 2022/2/10 10:03
- */
-public class ChannelConfig {
-    /**
-     * mallbook 测试环境地址
-     */
-    public static String payUrl;
-
-    /**
-     * 业务系统商户平台编号
-     */
-    public static String merchantNo;
-    /**
-     * 接口版本号,不同版本号触发不同接口业务
-     */
-    public static String version;
-    /*
-     * 渠道类型 HF:汇付
-     */
-    public static String channelType;
-
-    /**
-     * 商户平台私钥路径
-     */
-    public static String merchantPrivateKey;
-    /**
-     * mallbook公钥路径
-     */
-    public static String mallBookPublicKey;
-
-    static {
-        YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean();
-        yamlProFb.setResources(new ClassPathResource("application.yaml"));
-        Properties properties = yamlProFb.getObject();
-        System.out.println("mallbook 参数配置初始化");
-        System.out.println("--------------------------------");
-        System.out.println("环境地址:" + properties.get("mallbook.pay_url"));
-        System.out.println("商户平台编号:" + properties.get("mallbook.merchant_no"));
-        System.out.println("接口版本号:" + properties.get("mallbook.version"));
-        System.out.println("渠道类型:" + properties.get("mallbook.channel_type"));
-        System.out.println("商户平台私钥:" + properties.get("mallbook.merchant_private_key"));
-        System.out.println("mallbook 公钥:" + properties.get("mallbook.mall_book_public_key"));
-        System.out.println("--------------------------------");
-        payUrl = properties.get("mallbook.pay_url").toString();
-        merchantNo = properties.get("mallbook.merchant_no").toString();
-        version = properties.get("mallbook.version").toString();
-        channelType = properties.get("mallbook.channel_type").toString();
-        merchantPrivateKey = properties.get("mallbook.merchant_private_key").toString();
-        mallBookPublicKey = properties.get("mallbook.mall_book_public_key").toString();
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Complete.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Complete.java
deleted file mode 100644
index 6ccff8d..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Complete.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-import java.util.List;
-
-public class Complete {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "complete";
-    //原支付请求订单号
-    private String originalMerOrderId;
-    //分账方列表
-    private List<PamentOrderUser> splitList;
-    //后台回调地址
-    private String notifyUrl;
-    //自定义参数1
-    private String parameter1;
-    //自定义参数2
-    private String parameter2;
-
-    public String getOriginalMerOrderId() {
-        return originalMerOrderId;
-    }
-
-    public void setOriginalMerOrderId(String originalMerOrderId) {
-        this.originalMerOrderId = originalMerOrderId;
-    }
-
-    public List<PamentOrderUser> getSplitList() {
-        return splitList;
-    }
-
-    public void setSplitList(List<PamentOrderUser> splitList) {
-        this.splitList = splitList;
-    }
-
-    public String getNotifyUrl() {
-        return notifyUrl;
-    }
-
-    public void setNotifyUrl(String notifyUrl) {
-        this.notifyUrl = notifyUrl;
-    }
-
-    public String getParameter1() {
-        return parameter1;
-    }
-
-    public void setParameter1(String parameter1) {
-        this.parameter1 = parameter1;
-    }
-
-    public String getParameter2() {
-        return parameter2;
-    }
-
-    public void setParameter2(String parameter2) {
-        this.parameter2 = parameter2;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceRequest.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceRequest.java
deleted file mode 100644
index 86c6796..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceRequest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- *
- */
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONUtil;
-import com.agentdriving.user.modular.system.util.MallBook.config.ChannelConfig;
-import com.agentdriving.user.modular.system.util.MallBook.util.RSASignature;
-import com.agentdriving.user.modular.system.util.MallBook.util.StringUtil;
-
-import java.io.Serializable;
-
-/**
- * 接口请求包
- *
- */
-public class InterfaceRequest<T> implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = -8130938432046696213L;
-
-
-    /**
-     * 商户平台编号
-     */
-    private String merchantNo = ChannelConfig.merchantNo;
-
-    /**
-     * 接口版本号,不同版本号触发不同接口业务
-     */
-    private String version = ChannelConfig.version;
-    /*
-     * 渠道类型  HF:汇付
-     */
-    private String channelType = ChannelConfig.channelType;
-
-
-    /**
-     * 业务系统订单ID
-     */
-    private String merOrderId;
-
-    /**
-     * 签名
-     */
-    private String sign;
-
-    /**
-     * 业务类型编号
-     */
-    private String serverCode;
-
-    /**
-     * 业务参数,json格式
-     */
-    private String params;
-
-    /**
-     * 时间戳
-     */
-    private String date;
-
-
-    public String getChannelType() {
-        return channelType;
-    }
-
-    public void setChannelType(String channelType) {
-        this.channelType = channelType;
-    }
-
-    public String getMerOrderId() {
-        return merOrderId;
-    }
-
-    public void setMerOrderId(String merOrderId) {
-        this.merOrderId = merOrderId;
-    }
-
-    public String getMerchantNo() {
-        return merchantNo;
-    }
-
-    public void setMerchantNo(String merchantNo) {
-        this.merchantNo = merchantNo;
-    }
-
-    public String getSign() {
-        return sign;
-    }
-
-    public void setSign(String sign) {
-        this.sign = sign;
-    }
-
-    public String getServerCode() {
-        return serverCode;
-    }
-
-    public void setServerCode(String serverCode) {
-        this.serverCode = serverCode;
-    }
-
-    public String getParams() {
-        return params;
-    }
-
-    public void setParams(String params) {
-        this.params = params;
-    }
-
-    public String getDate() {
-        return date;
-    }
-
-    public void setDate(String date) {
-        this.date = date;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-
-    /**
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     *  订单号 + 商户号 + 渠道类型 +  时间戳 + 业务参数json
-     * @return 待签名字符串
-     */
-    public String content() {
-        return StrUtil.builder()
-                .append(StringUtil.convertNull(merOrderId))
-                .append(StringUtil.convertNull(merchantNo))
-                .append(StringUtil.convertNull(channelType))
-                .append(StringUtil.convertNull(date))
-                .append(StringUtil.convertNull(params))
-                .toString();
-    }
-
-    public InterfaceRequest() {
-    }
-
-    public InterfaceRequest(T obj, String serverCode) {
-        this.merOrderId = IdUtil.fastSimpleUUID();
-        this.serverCode = serverCode;
-        this.date = System.currentTimeMillis() + "";
-        this.params = JSONUtil.toJsonStr(obj);
-        // todo 使用商户平台私钥生成sign,需要修改证书对应路径
-        this.sign = RSASignature.sign(content());
-    }
-
-
-    @Override
-    public String toString() {
-        return "InterfaceRequest{" +
-                "merOrderId='" + merOrderId + '\'' +
-                ", merchantNo='" + merchantNo + '\'' +
-                ", sign='" + sign + '\'' +
-                ", serverCode='" + serverCode + '\'' +
-                ", params='" + params + '\'' +
-                ", date='" + date + '\'' +
-                ", version='" + version + '\'' +
-                ", channelType='" + channelType + '\'' +
-                '}';
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceResponse.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceResponse.java
deleted file mode 100644
index c907a5a..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/InterfaceResponse.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- *
- */
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-
-import cn.hutool.core.util.StrUtil;
-import com.agentdriving.user.modular.system.util.MallBook.util.StringUtil;
-
-import java.io.Serializable;
-
-
-public class InterfaceResponse implements Serializable {
-
-
-    /**
-     * 结果字符串,json格式
-     */
-    private String result;
-
-    /**
-     * 签名,由code+msg+date+result根据私钥生成, 如果有参数为null,签名串中应当做空字符串("")来处理
-     */
-    private String sign;
-
-    /**
-     * 结果代码
-     */
-    private String code;
-
-    /**
-     * 结果信息
-     */
-    private String msg;
-
-    /**
-     * 时间戳
-     */
-    private String date;
-
-    /**
-     * 接口版本号
-     */
-    private String version;
-
-    public String getResult() {
-        return result;
-    }
-
-    public void setResult(String result) {
-        this.result = result;
-    }
-
-    public String getSign() {
-        return sign;
-    }
-
-    public void setSign(String sign) {
-        this.sign = sign;
-    }
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
-    public String getDate() {
-        return date;
-    }
-
-    public void setDate(String date) {
-        this.date = date;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    @Override
-    public String toString() {
-        return "InterfaceResponse{" +
-                "result='" + result + '\'' +
-                ", sign='" + sign + '\'' +
-                ", code='" + code + '\'' +
-                ", msg='" + msg + '\'' +
-                ", date='" + date + '\'' +
-                ", version='" + version + '\'' +
-                '}';
-    }
-
-    /**
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     * 签名顺序必须一致!!!
-     *  结果代码 + 结果信息 + 渠道类型 +  时间戳 + 结果字符串json
-     * @return 待签名字符串
-     */
-    public String content() {
-        return StrUtil.builder()
-                .append(StringUtil.convertNull(code))
-                .append(StringUtil.convertNull(msg))
-                .append(StringUtil.convertNull(date))
-                .append(StringUtil.convertNull(result))
-                .toString();
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PamentOrderUser.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PamentOrderUser.java
deleted file mode 100644
index 314c755..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PamentOrderUser.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-public class PamentOrderUser {
-
-    /**
-     * 分账方会员ID(必填)
-     */
-    private  String splitUserId;
-
-    /**
-     * 分账金额(必填)
-     */
-    private String splitAmount;
-
-    /**
-     * 分账类型(必填)
-     * 0:收单金额(收款人)
-     * 1:分账金额
-     * 2:佣金
-     */
-    private String splitType;
-
-    public String getSplitUserId() {
-        return splitUserId;
-    }
-
-    public void setSplitUserId(String splitUserId) {
-        this.splitUserId = splitUserId;
-    }
-
-    public String getSplitAmount() {
-        return splitAmount;
-    }
-
-    public void setSplitAmount(String splitAmount) {
-        this.splitAmount = splitAmount;
-    }
-
-    public String getSplitType() {
-        return splitType;
-    }
-
-    public void setSplitType(String splitType) {
-        this.splitType = splitType;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrder.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrder.java
deleted file mode 100644
index 6cc876a..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrder.java
+++ /dev/null
@@ -1,293 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-import java.util.List;
-
-public class PaymentOrder {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "paymentOrder";
-    /**
-     * 业务订单号(必填)
-     */
-    private String bizOrderId;
-
-    /**
-     * 交易金额(必填)
-     */
-    private String amount;
-
-    /**
-     * 付款人
-     */
-    private String payerUserName;
-
-    /**
-     * 收款人会员ID(必填)
-     */
-    private String payeeUserId;
-
-    /**
-     * 订单名称(必填)
-     */
-    private String orderName;
-
-    /**
-     * 支付类型(必填)
-     */
-    private String payType;
-
-    /**
-     * 交易类型(必填)
-     */
-    private String transferType;
-
-    /**
-     * 订单过期时间
-     */
-    private String expire;
-
-    /**
-     * 微信或支付宝的appid
-     */
-    private String appid;
-
-    /**
-     * 微信或支付宝用户id
-     */
-    private String openid;
-
-    /**
-     * 终端IP(必填)
-     */
-    private String terminalIp;
-
-    /**
-     * 分账方列表(必填)
-     */
-    private List<PamentOrderUser> splitList;
-
-    /**
-     * 商品列表(必填)
-     */
-    private List<PaymentOrderGood> goodsDetail;
-
-    /**
-     * 前台回调地址(必填)
-     */
-    private String frontUrl;
-
-    /**
-     * 后台回调地址(必填)
-     */
-    private String notifyUrl;
-
-    /**
-     * 自定义参数1
-     */
-    private String parameter1;
-
-    /**
-     * 自定义参数2
-     */
-    private String parameter2;
-    /*
-     * 是否异步分账
-     */
-    private String asynSplitFlag;
-
-    /**
-     * 付款方子商户编号
-     */
-    private String payerUserId;
-
-    /**
-     * 银行编码
-     */
-    private String bankCode;
-
-    /**
-     * 银行卡类型
-     */
-    private String cardType;
-
-    /**
-     * 快捷卡唯一标识
-     */
-    private String tokenNo;
-
-
-    public String getPayerUserId() {
-        return payerUserId;
-    }
-
-    public void setPayerUserId(String payerUserId) {
-        this.payerUserId = payerUserId;
-    }
-
-    public String getBankCode() {
-        return bankCode;
-    }
-
-    public void setBankCode(String bankCode) {
-        this.bankCode = bankCode;
-    }
-
-    public String getCardType() {
-        return cardType;
-    }
-
-    public void setCardType(String cardType) {
-        this.cardType = cardType;
-    }
-
-    public String getTokenNo() {
-        return tokenNo;
-    }
-
-    public void setTokenNo(String tokenNo) {
-        this.tokenNo = tokenNo;
-    }
-
-    public String getAsynSplitFlag() {
-        return asynSplitFlag;
-    }
-
-    public void setAsynSplitFlag(String asynSplitFlag) {
-        this.asynSplitFlag = asynSplitFlag;
-    }
-
-    public String getBizOrderId() {
-        return bizOrderId;
-    }
-
-    public void setBizOrderId(String bizOrderId) {
-        this.bizOrderId = bizOrderId;
-    }
-
-    public String getAmount() {
-        return amount;
-    }
-
-    public void setAmount(String amount) {
-        this.amount = amount;
-    }
-
-    public String getPayerUserName() {
-        return payerUserName;
-    }
-
-    public void setPayerUserName(String payerUserName) {
-        this.payerUserName = payerUserName;
-    }
-
-    public String getPayeeUserId() {
-        return payeeUserId;
-    }
-
-    public void setPayeeUserId(String payeeUserId) {
-        this.payeeUserId = payeeUserId;
-    }
-
-    public String getOrderName() {
-        return orderName;
-    }
-
-    public void setOrderName(String orderName) {
-        this.orderName = orderName;
-    }
-
-    public String getPayType() {
-        return payType;
-    }
-
-    public void setPayType(String payType) {
-        this.payType = payType;
-    }
-
-    public String getTransferType() {
-        return transferType;
-    }
-
-    public void setTransferType(String transferType) {
-        this.transferType = transferType;
-    }
-
-    public String getExpire() {
-        return expire;
-    }
-
-    public void setExpire(String expire) {
-        this.expire = expire;
-    }
-
-    public String getAppid() {
-        return appid;
-    }
-
-    public void setAppid(String appid) {
-        this.appid = appid;
-    }
-
-    public String getOpenid() {
-        return openid;
-    }
-
-    public void setOpenid(String openid) {
-        this.openid = openid;
-    }
-
-    public String getTerminalIp() {
-        return terminalIp;
-    }
-
-    public void setTerminalIp(String terminalIp) {
-        this.terminalIp = terminalIp;
-    }
-
-    public List<PamentOrderUser> getSplitList() {
-        return splitList;
-    }
-
-    public void setSplitList(List<PamentOrderUser> splitList) {
-        this.splitList = splitList;
-    }
-
-    public List<PaymentOrderGood> getGoodsDetail() {
-        return goodsDetail;
-    }
-
-    public void setGoodsDetail(List<PaymentOrderGood> goodsDetail) {
-        this.goodsDetail = goodsDetail;
-    }
-
-    public String getFrontUrl() {
-        return frontUrl;
-    }
-
-    public void setFrontUrl(String frontUrl) {
-        this.frontUrl = frontUrl;
-    }
-
-    public String getNotifyUrl() {
-        return notifyUrl;
-    }
-
-    public void setNotifyUrl(String notifyUrl) {
-        this.notifyUrl = notifyUrl;
-    }
-
-    public String getParameter1() {
-        return parameter1;
-    }
-
-    public void setParameter1(String parameter1) {
-        this.parameter1 = parameter1;
-    }
-
-    public String getParameter2() {
-        return parameter2;
-    }
-
-    public void setParameter2(String parameter2) {
-        this.parameter2 = parameter2;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrderGood.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrderGood.java
deleted file mode 100644
index 2a43d4f..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/PaymentOrderGood.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-public class PaymentOrderGood {
-
-    /** 商品编号 */
-    private String goodsId;
-
-    /** 商品名称,必填 */
-    private String goodsName;
-
-    /** 商品数量 */
-    private String quantity;
-
-    /** 商品价格 */
-    private String price;
-
-    public String getGoodsId() {
-        return goodsId;
-    }
-
-    public void setGoodsId(String goodsId) {
-        this.goodsId = goodsId;
-    }
-
-    public String getGoodsName() {
-        return goodsName;
-    }
-
-    public void setGoodsName(String goodsName) {
-        this.goodsName = goodsName;
-    }
-
-    public String getQuantity() {
-        return quantity;
-    }
-
-    public void setQuantity(String quantity) {
-        this.quantity = quantity;
-    }
-
-    public String getPrice() {
-        return price;
-    }
-
-    public void setPrice(String price) {
-        this.price = price;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Receive.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Receive.java
deleted file mode 100644
index 85bd40d..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/Receive.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-import java.util.List;
-
-/**
- * 确认收货信息参数
- */
-public class Receive {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "receive";
-    /**
-     * 原支付请求订单号(必填)
-     */
-    private String originalMerOrderId;
-    /**
-     * 异步分账订单号(多次异步确认订单进行确认收货时必传)
-     */
-    private String asynMerOrderId;
-
-    /**
-     * 确认收货总额(必填)
-     * 必须大于0
-     * 确认收货总额=总确认分账金额
-     */
-    private String rcvAmount;
-
-    /**
-     * 分账方列表(必填)
-     */
-    private List<ReceiveUser> splitList;
-
-    /**
-     * 商品列表
-     */
-    private List<ReceiveGood> goodsDetail;
-    /**
-     * 自定义参数1
-     */
-    private String parameter1;
-
-    /**
-     * 自定义参数2
-     */
-    private String parameter2;
-
-    public String getOriginalMerOrderId() {
-        return originalMerOrderId;
-    }
-
-    public void setOriginalMerOrderId(String originalMerOrderId) {
-        this.originalMerOrderId = originalMerOrderId;
-    }
-
-    public String getAsynMerOrderId() {
-        return asynMerOrderId;
-    }
-
-    public void setAsynMerOrderId(String asynMerOrderId) {
-        this.asynMerOrderId = asynMerOrderId;
-    }
-
-    public String getRcvAmount() {
-        return rcvAmount;
-    }
-
-    public void setRcvAmount(String rcvAmount) {
-        this.rcvAmount = rcvAmount;
-    }
-
-    public List<ReceiveUser> getSplitList() {
-        return splitList;
-    }
-
-    public void setSplitList(List<ReceiveUser> splitList) {
-        this.splitList = splitList;
-    }
-
-    public List<ReceiveGood> getGoodsDetail() {
-        return goodsDetail;
-    }
-
-    public void setGoodsDetail(List<ReceiveGood> goodsDetail) {
-        this.goodsDetail = goodsDetail;
-    }
-
-    public String getParameter1() {
-        return parameter1;
-    }
-
-    public void setParameter1(String parameter1) {
-        this.parameter1 = parameter1;
-    }
-
-    public String getParameter2() {
-        return parameter2;
-    }
-
-    public void setParameter2(String parameter2) {
-        this.parameter2 = parameter2;
-    }
-
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveGood.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveGood.java
deleted file mode 100644
index 11edf3c..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveGood.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-public class ReceiveGood {
-
-    /** 商品编号 */
-    private String goodsId;
-
-    /** 商品名称,必填 */
-    private String goodsName;
-
-    /** 商品数量 */
-    private String quantity;
-
-    /** 商品价格 */
-    private String price;
-
-    public String getGoodsId() {
-        return goodsId;
-    }
-
-    public void setGoodsId(String goodsId) {
-        this.goodsId = goodsId;
-    }
-
-    public String getGoodsName() {
-        return goodsName;
-    }
-
-    public void setGoodsName(String goodsName) {
-        this.goodsName = goodsName;
-    }
-
-    public String getQuantity() {
-        return quantity;
-    }
-
-    public void setQuantity(String quantity) {
-        this.quantity = quantity;
-    }
-
-    public String getPrice() {
-        return price;
-    }
-
-    public void setPrice(String price) {
-        this.price = price;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveUser.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveUser.java
deleted file mode 100644
index b084d30..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/model/ReceiveUser.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.model;
-
-
-public class ReceiveUser {
-
-    /** 分账方会员ID,必填 */
-    private String splitUserId;
-
-    /** 确认分账金额,必填 */
-    private String rcvSplitAmount;
-
-    public String getSplitUserId() {
-        return splitUserId;
-    }
-
-    public void setSplitUserId(String splitUserId) {
-        this.splitUserId = splitUserId;
-    }
-
-    public String getRcvSplitAmount() {
-        return rcvSplitAmount;
-    }
-
-    public void setRcvSplitAmount(String rcvSplitAmount) {
-        this.rcvSplitAmount = rcvSplitAmount;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Base64.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Base64.java
deleted file mode 100644
index 058e621..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Base64.java
+++ /dev/null
@@ -1,288 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.util;
-
-/**
- * @Author xiaogc
- * @Date 2021/12/21 14:23
- */
-public class Base64 {
-    static private final int BASELENGTH = 128;
-    static private final int LOOKUPLENGTH = 64;
-    static private final int TWENTYFOURBITGROUP = 24;
-    static private final int EIGHTBIT = 8;
-    static private final int SIXTEENBIT = 16;
-    static private final int FOURBYTE = 4;
-    static private final int SIGN = -128;
-    static private final char PAD = '=';
-    static private final boolean fDebug = false;
-    static final private byte[] base64Alphabet = new byte[BASELENGTH];
-    static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH];
-
-    static {
-        for (int i = 0; i < BASELENGTH; ++i) {
-            base64Alphabet[i] = -1;
-        }
-        for (int i = 'Z'; i >= 'A'; i--) {
-            base64Alphabet[i] = (byte) (i - 'A');
-        }
-        for (int i = 'z'; i >= 'a'; i--) {
-            base64Alphabet[i] = (byte) (i - 'a' + 26);
-        }
-
-        for (int i = '9'; i >= '0'; i--) {
-            base64Alphabet[i] = (byte) (i - '0' + 52);
-        }
-
-        base64Alphabet['+'] = 62;
-        base64Alphabet['/'] = 63;
-
-        for (int i = 0; i <= 25; i++) {
-            lookUpBase64Alphabet[i] = (char) ('A' + i);
-        }
-
-        for (int i = 26, j = 0; i <= 51; i++, j++) {
-            lookUpBase64Alphabet[i] = (char) ('a' + j);
-        }
-
-        for (int i = 52, j = 0; i <= 61; i++, j++) {
-            lookUpBase64Alphabet[i] = (char) ('0' + j);
-        }
-        lookUpBase64Alphabet[62] = (char) '+';
-        lookUpBase64Alphabet[63] = (char) '/';
-
-    }
-
-    private static boolean isWhiteSpace(char octect) {
-        return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9);
-    }
-
-    private static boolean isPad(char octect) {
-        return (octect == PAD);
-    }
-
-    private static boolean isData(char octect) {
-        return (octect < BASELENGTH && base64Alphabet[octect] != -1);
-    }
-
-    /**
-     * Encodes hex octects into Base64
-     *
-     * @param binaryData
-     *            Array containing binaryData
-     * @return Encoded Base64 array
-     */
-    public static String encode(byte[] binaryData) {
-
-        if (binaryData == null) {
-            return null;
-        }
-
-        int lengthDataBits = binaryData.length * EIGHTBIT;
-        if (lengthDataBits == 0) {
-            return "";
-        }
-
-        int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
-        int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP;
-        int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1
-                : numberTriplets;
-        char encodedData[] = null;
-
-        encodedData = new char[numberQuartet * 4];
-
-        byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0;
-
-        int encodedIndex = 0;
-        int dataIndex = 0;
-        if (fDebug) {
-            System.out.println("number of triplets = " + numberTriplets);
-        }
-
-        for (int i = 0; i < numberTriplets; i++) {
-            b1 = binaryData[dataIndex++];
-            b2 = binaryData[dataIndex++];
-            b3 = binaryData[dataIndex++];
-
-            if (fDebug) {
-                System.out.println("b1= " + b1 + ", b2= " + b2 + ", b3= " + b3);
-            }
-
-            l = (byte) (b2 & 0x0f);
-            k = (byte) (b1 & 0x03);
-
-            byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-                    : (byte) ((b1) >> 2 ^ 0xc0);
-            byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4)
-                    : (byte) ((b2) >> 4 ^ 0xf0);
-            byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6)
-                    : (byte) ((b3) >> 6 ^ 0xfc);
-
-            if (fDebug) {
-                System.out.println("val2 = " + val2);
-                System.out.println("k4   = " + (k << 4));
-                System.out.println("vak  = " + (val2 | (k << 4)));
-            }
-
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f];
-        }
-
-        // form integral number of 6-bit groups
-        if (fewerThan24bits == EIGHTBIT) {
-            b1 = binaryData[dataIndex];
-            k = (byte) (b1 & 0x03);
-            if (fDebug) {
-                System.out.println("b1=" + b1);
-                System.out.println("b1<<2 = " + (b1 >> 2));
-            }
-            byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-                    : (byte) ((b1) >> 2 ^ 0xc0);
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4];
-            encodedData[encodedIndex++] = PAD;
-            encodedData[encodedIndex++] = PAD;
-        } else if (fewerThan24bits == SIXTEENBIT) {
-            b1 = binaryData[dataIndex];
-            b2 = binaryData[dataIndex + 1];
-            l = (byte) (b2 & 0x0f);
-            k = (byte) (b1 & 0x03);
-
-            byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-                    : (byte) ((b1) >> 2 ^ 0xc0);
-            byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4)
-                    : (byte) ((b2) >> 4 ^ 0xf0);
-
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)];
-            encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2];
-            encodedData[encodedIndex++] = PAD;
-        }
-
-        return new String(encodedData);
-    }
-
-    /**
-     * Decodes Base64 data into octects
-     *
-     * @param encoded
-     *            string containing Base64 data
-     * @return Array containind decoded data.
-     */
-    public static byte[] decode(String encoded) {
-
-        if (encoded == null) {
-            return null;
-        }
-
-        char[] base64Data = encoded.toCharArray();
-        // remove white spaces
-        int len = removeWhiteSpace(base64Data);
-
-        if (len % FOURBYTE != 0) {
-            return null;// should be divisible by four
-        }
-
-        int numberQuadruple = (len / FOURBYTE);
-
-        if (numberQuadruple == 0) {
-            return new byte[0];
-        }
-
-        byte decodedData[] = null;
-        byte b1 = 0, b2 = 0, b3 = 0, b4 = 0;
-        char d1 = 0, d2 = 0, d3 = 0, d4 = 0;
-
-        int i = 0;
-        int encodedIndex = 0;
-        int dataIndex = 0;
-        decodedData = new byte[(numberQuadruple) * 3];
-
-        for (; i < numberQuadruple - 1; i++) {
-
-            if (!isData((d1 = base64Data[dataIndex++]))
-                    || !isData((d2 = base64Data[dataIndex++]))
-                    || !isData((d3 = base64Data[dataIndex++]))
-                    || !isData((d4 = base64Data[dataIndex++]))) {
-                return null;
-            }// if found "no data" just return null
-
-            b1 = base64Alphabet[d1];
-            b2 = base64Alphabet[d2];
-            b3 = base64Alphabet[d3];
-            b4 = base64Alphabet[d4];
-
-            decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-            decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-            decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);
-        }
-
-        if (!isData((d1 = base64Data[dataIndex++]))
-                || !isData((d2 = base64Data[dataIndex++]))) {
-            return null;// if found "no data" just return null
-        }
-
-        b1 = base64Alphabet[d1];
-        b2 = base64Alphabet[d2];
-
-        d3 = base64Data[dataIndex++];
-        d4 = base64Data[dataIndex++];
-        if (!isData((d3)) || !isData((d4))) {// Check if they are PAD characters
-            if (isPad(d3) && isPad(d4)) {
-                if ((b2 & 0xf) != 0)// last 4 bits should be zero
-                {
-                    return null;
-                }
-                byte[] tmp = new byte[i * 3 + 1];
-                System.arraycopy(decodedData, 0, tmp, 0, i * 3);
-                tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4);
-                return tmp;
-            } else if (!isPad(d3) && isPad(d4)) {
-                b3 = base64Alphabet[d3];
-                if ((b3 & 0x3) != 0)// last 2 bits should be zero
-                {
-                    return null;
-                }
-                byte[] tmp = new byte[i * 3 + 2];
-                System.arraycopy(decodedData, 0, tmp, 0, i * 3);
-                tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-                tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-                return tmp;
-            } else {
-                return null;
-            }
-        } else { // No PAD e.g 3cQl
-            b3 = base64Alphabet[d3];
-            b4 = base64Alphabet[d4];
-            decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-            decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-            decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);
-
-        }
-
-        return decodedData;
-    }
-
-    /**
-     * remove WhiteSpace from MIME containing encoded Base64 data.
-     *
-     * @param data
-     *            the byte array of base64 data (with WS)
-     * @return the new length
-     */
-    private static int removeWhiteSpace(char[] data) {
-        if (data == null) {
-            return 0;
-        }
-
-        // count characters that's not whitespace
-        int newSize = 0;
-        int len = data.length;
-        for (int i = 0; i < len; i++) {
-            if (!isWhiteSpace(data[i])) {
-                data[newSize++] = data[i];
-            }
-        }
-        return newSize;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/CacheUtils.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/CacheUtils.java
deleted file mode 100644
index 7d1bea0..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/CacheUtils.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.util;
-
-import cn.hutool.cache.CacheUtil;
-import cn.hutool.cache.impl.TimedCache;
-
-/**
- * @author linqy
- * 缓存工具类,生产建议使用其他缓存中间件
- */
-public class CacheUtils {
-    private static final TimedCache<String, String> TIMED_CACHE = CacheUtil.newTimedCache(5000);
-
-    static {
-        /** 每1s检查一次过期 */
-        TIMED_CACHE.schedulePrune(1000);
-    }
-
-    /**
-     * 存入键值对,提供消逝时间
-     *
-     * @param key
-     * @param value
-     * @param timeout
-     */
-    public static void put(String key, String value, Long timeout) {
-        /** 设置消逝时间 */
-        TIMED_CACHE.put(key, value, timeout);
-    }
-
-    /**
-     * 每次重新get一次缓存,均会重新刷新消逝时间
-     * @param key
-     * @return
-     */
-    public static String get(String key) {
-        return TIMED_CACHE.get(key);
-    }
-
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSAEncryptGeneration.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSAEncryptGeneration.java
deleted file mode 100644
index 877829d..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSAEncryptGeneration.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.util;
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.interfaces.RSAPrivateKey;
-import java.security.interfaces.RSAPublicKey;
-
-/**
- * 公私钥代码生成
- * @Author xiaogc
- * @Date 2021/12/21 14:22
- */
-public class RSAEncryptGeneration {
-
-    public static void main(String[] args) {
-        // 生成一对公私钥到指定路径下  .pfx私钥 .cer公钥
-        RSAEncryptGeneration.genKeyPair("D:\\tools");
-    }
-    /**
-     * 随机生成密钥对
-     */
-    public static void genKeyPair(String filePath) {
-        // KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象
-        KeyPairGenerator keyPairGen = null;
-        try {
-            keyPairGen = KeyPairGenerator.getInstance("RSA");
-        } catch (NoSuchAlgorithmException e) {
-            e.printStackTrace();
-        }
-        // 初始化密钥对生成器,密钥大小为96-1024位
-        keyPairGen.initialize(1024, new SecureRandom());
-        // 生成一个密钥对,保存在keyPair中
-        KeyPair keyPair = keyPairGen.generateKeyPair();
-        // 得到私钥
-        RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
-        // 得到公钥
-        RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
-        try {
-            // 得到公钥字符串
-            String publicKeyString = Base64.encode(publicKey.getEncoded());
-            System.out.println("公钥字符串:"+publicKeyString);
-            // 得到私钥字符串
-            String privateKeyString = Base64.encode(privateKey.getEncoded());
-            System.out.println("私钥字符串:"+privateKeyString);
-            // 将密钥对写入到文件  .pfx私钥 .cer公钥
-            FileWriter pubfw = new FileWriter(filePath + "/merchant_no.cer");
-            FileWriter prifw = new FileWriter(filePath + "/merchant_no.pfx");
-            BufferedWriter pubbw = new BufferedWriter(pubfw);
-            BufferedWriter pribw = new BufferedWriter(prifw);
-            pubbw.write(publicKeyString);
-            pribw.write(privateKeyString);
-            pubbw.flush();
-            pubbw.close();
-            pubfw.close();
-            pribw.flush();
-            pribw.close();
-            prifw.close();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSASignature.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSASignature.java
deleted file mode 100644
index 1513b73..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/RSASignature.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.util;
-
-
-import com.agentdriving.user.modular.system.util.MallBook.config.ChannelConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.security.KeyFactory;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.spec.PKCS8EncodedKeySpec;
-import java.security.spec.X509EncodedKeySpec;
-
-/**
- * @author RSA签名验签类
- */
-public class RSASignature {
-
-    public static Logger logger = LoggerFactory.getLogger(RSASignature.class);
-
-    /**
-     * 签名算法
-     */
-    public static final String SIGN_ALGORITHMS = "SHA1WithRSA";
-
-
-    /**
-     * 商户平台私钥签名
-     *
-     * @param content
-     * @return
-     */
-    public static String sign(String content) {
-        try {
-            String privateKey = ChannelConfig.merchantPrivateKey;
-            PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(privateKey));
-            KeyFactory keyf = KeyFactory.getInstance("RSA");
-            PrivateKey priKey = keyf.generatePrivate(priPKCS8);
-            java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
-            signature.initSign(priKey);
-            signature.update(content.getBytes());
-            byte[] signed = signature.sign();
-            return Base64.encode(signed);
-        } catch (Exception e) {
-            logger.error("签名失败{}", e);
-        }
-        return null;
-    }
-
-
-    /**
-     * 读取证书
-     *
-     * @param filePath 证书文件路径
-     */
-    public static String loadKey(String filePath) throws Exception {
-        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
-            String readLine;
-            StringBuilder sb = new StringBuilder();
-            while ((readLine = br.readLine()) != null) {
-                sb.append(readLine);
-            }
-            return sb.toString();
-        } catch (IOException e) {
-            throw new Exception("私钥数据读取错误");
-        } catch (NullPointerException e) {
-            throw new Exception("私钥输入流为空");
-        }
-    }
-
-
-    /**
-     * mallbook公钥验签
-     *
-     * @param content 待签名数据
-     * @param sign    签名值
-     * @return false 验签失败 true 成功
-     */
-    public static boolean validate(String content, String sign) {
-        boolean verify = false;
-        try {
-            String publicKey = ChannelConfig.mallBookPublicKey;
-            verify = RSASignature.doCheck(content, sign, publicKey, "utf-8");
-        } catch (Exception e) {
-            logger.error("验签失败:{}", e);
-        }
-        return verify;
-    }
-
-
-    /**
-     * RSA验签
-     *
-     * @param content   待签名数据
-     * @param sign      签名值
-     * @param publicKey 分配给开发商公钥
-     * @param encode    字符集编码
-     * @return 布尔值
-     */
-    public static boolean doCheck(String content, String sign, String publicKey, String encode) {
-        try {
-            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
-            byte[] encodedKey = Base64.decode(publicKey);
-            PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
-            java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
-            signature.initVerify(pubKey);
-            signature.update(content.getBytes(encode));
-            return signature.verify(Base64.decode(sign));
-        } catch (Exception e) {
-            logger.error("验签失败{}", e);
-        }
-        return false;
-    }
-
-}
\ No newline at end of file
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/StringUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/StringUtil.java
deleted file mode 100644
index ea0267c..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/StringUtil.java
+++ /dev/null
@@ -1,23 +0,0 @@
-
-package com.agentdriving.user.modular.system.util.MallBook.util;
-
-import cn.hutool.core.util.StrUtil;
-
-
-public class StringUtil extends StrUtil {
-
-    /**
-     * null转为空字符串
-     *
-     * @param str
-     * @return
-     */
-    public static String convertNull(String str) {
-        if (str == null) {
-            return "";
-        }
-        return str;
-    }
-
-
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Transfer.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Transfer.java
deleted file mode 100644
index d3441d2..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/Transfer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.util;
-
-public class Transfer {
-    /**业务类型编号,必须和接口文档一致*/
-    public static String SERVICE_CODE = "transfer";
-    //充值订单号
-    private String depositMerOrderId;
-    //收款方子商户号
-    private String toUserId;
-    //转账金额
-    private String amount;
-    //订单信息
-    private String orderName;
-    //后台回调地址
-    private String notifyUrl;
-    //自定义参数1
-    private String parameter1;
-    //自定义参数2
-    private String parameter2;
-
-    public String getDepositMerOrderId() {
-        return depositMerOrderId;
-    }
-
-    public void setDepositMerOrderId(String depositMerOrderId) {
-        this.depositMerOrderId = depositMerOrderId;
-    }
-
-    public String getToUserId() {
-        return toUserId;
-    }
-
-    public void setToUserId(String toUserId) {
-        this.toUserId = toUserId;
-    }
-
-    public String getAmount() {
-        return amount;
-    }
-
-    public void setAmount(String amount) {
-        this.amount = amount;
-    }
-
-    public String getOrderName() {
-        return orderName;
-    }
-
-    public void setOrderName(String orderName) {
-        this.orderName = orderName;
-    }
-
-    public String getNotifyUrl() {
-        return notifyUrl;
-    }
-
-    public void setNotifyUrl(String notifyUrl) {
-        this.notifyUrl = notifyUrl;
-    }
-
-    public String getParameter1() {
-        return parameter1;
-    }
-
-    public void setParameter1(String parameter1) {
-        this.parameter1 = parameter1;
-    }
-
-    public String getParameter2() {
-        return parameter2;
-    }
-
-    public void setParameter2(String parameter2) {
-        this.parameter2 = parameter2;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/TrhRequest.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/TrhRequest.java
deleted file mode 100644
index 0aab384..0000000
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/MallBook/util/TrhRequest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.agentdriving.user.modular.system.util.MallBook.util;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.exceptions.ValidateException;
-import cn.hutool.http.HttpUtil;
-import cn.hutool.json.JSONUtil;
-import com.agentdriving.user.modular.system.util.MallBook.config.ChannelConfig;
-import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceRequest;
-import com.agentdriving.user.modular.system.util.MallBook.model.InterfaceResponse;
-
-/**
- * @Author xiaogc
- * @Date 2022/1/24 13:45
- */
-public class TrhRequest<T> {
-
-    public InterfaceResponse execute(T t, String serverCode) {
-        InterfaceRequest<T> request = new InterfaceRequest(t, serverCode);
-        System.out.println("mallbook请求参数:" + JSONUtil.toJsonStr(request));
-        String result = HttpUtil.post(ChannelConfig.payUrl, BeanUtil.beanToMap(request));
-        System.out.println("mallbook响应参数:" + result);
-        InterfaceResponse response = JSONUtil.toBean(result, InterfaceResponse.class);
-        boolean verify = RSASignature.validate(response.content(), response.getSign());
-        if (!verify) {
-            throw new ValidateException("签名验证失败");
-        } else {
-            System.out.printf("签名验证通过");
-        }
-        return response;
-    }
-}
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java
index ab22ec9..2879108 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/huawei/OBSUtil.java
@@ -13,10 +13,10 @@
  */
 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 endPoint = "https://obs.cn-southwest-2.myhuaweicloud.com";
+    public static String ak = "YMBKC9LS6CDG9QHCIGUU";
+    public static String sk = "kztanexutGzoGiYcIALCNhazfxoU6yecDOSBrFXu";
+    public static String bucketname = "fanghuadaijia";
 
     /**
      * 上传文件
@@ -31,7 +31,7 @@
             // 待上传的本地文件路径,需要指定到具体的文件名
             PutObjectRequest request = new PutObjectRequest();
             request.setBucketName(bucketname);
-            request.setObjectKey(objectKey);
+            request.setObjectKey("img/" + objectKey);
             request.setInput(inputStream);
             PutObjectResult putObjectResult = obsClient.putObject(request);
             return putObjectResult.getObjectUrl();
diff --git a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java b/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java
index 3175a8f..810bef4 100644
--- a/user/guns-admin/src/main/java/com/agentdriving/user/modular/system/util/juhe/WeatherUtil.java
+++ b/user/guns-admin/src/main/java/com/agentdriving/user/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 = "edc965edb129580401ed211eaa4ae8ab";
 
     private static HttpClientUtil httpClientUtil = new HttpClientUtil();
 
diff --git a/user/guns-admin/src/main/resources/application.yml b/user/guns-admin/src/main/resources/application.yml
index 6d540c4..d090225 100644
--- a/user/guns-admin/src/main/resources/application.yml
+++ b/user/guns-admin/src/main/resources/application.yml
@@ -13,8 +13,8 @@
   application:
     name: user-server
   profiles:
-    active: dev
-#    active: produce
+#    active: dev
+    active: produce
   mvc:
     static-path-pattern: /static/**
     view:
@@ -55,8 +55,8 @@
   datasource:
     url: jdbc:mysql://127.0.0.1:3306/fh_agent_driving?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-#    password: PI_v6J5@dvHwGTqc
-    password: 123456
+    password: PI_v6J5@dvHwGTqc
+#    password: 123456
     db-name: guns #用来搜集数据库的所有表
     filters: wall,mergeStat
 
@@ -79,37 +79,24 @@
   grantType: authorization_code #填authorization_code
   appid: 11 #应用唯一标识,在微信开放平台提交应用审核通过后获得
   appSecret: 11 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
-  appletsAppid: wx8ae6c610563f2fe6 #小程序APPid
-  appletsAppSecret: 8b2c93b0be4f017350050f1e660680fe #
+  appletsAppid: wxb7d7de754460c422 #小程序APPid
+  appletsAppSecret: 3aa63e3e8dc2e958f7e30bbed0865738 #
   officialAccountAppid: 11111
   officialAccountAppSecret: 1111
   webAppId: 111
   webAppSecret: 11
-  mchId: 1636941942 #微信支付分配的商户号
-  key: Eri2GR2SB3b6iIhaoD7k3KQ8X0wf1Ybh #key为商户平台设置的密钥key:
-  apiv3: AKJ51Z4nhSqYBxmOXgUyCKA1vLP0J5Aj #key为商户平台设置的密钥key:
+  mchId: 1644659263 #微信支付分配的商户号
+  key: KY7XYaJwnZPV4O5CvJ6CreywiUxxnUGM #key为商户平台设置的密钥key:
+  apiv3: mAhbxa2ez1GUNWIArATff4b630AH99yg #key为商户平台设置的密钥key:
 
 ---
 
 alipay:
-  appid: 2021001161600393  #应用程序唯一标识
-  appPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEbTcG2wz+kaYDo2YxflpHE59MvKc3rbl6RlBgO6i5GzgphzeRTv5kRWUpSVkKCsbxFvAYLcgFPmm5nY2fz5hCTKiRcYfpUjH/OougUbzYU3ilUc9JqMbmvy7KN+Kv7+kQYCGLvMqlyYPiJ7LrmJLpE/FUcNLDwo6xUmwJSxaF7M4TbD3ZQZdddki1iJp9GihlqehZCMWOBeotEXvPKDEzSEkYlnvHPQaaspVgeesGmlHDuOiZUokENutxpjo7klWe97NA49hXEtI+xlczNGJKdBr0keBX/kSMsnx8kMxYDjh4QTySBaR6zlO4RYPFekWv9QZ2CrfiKCS7AHUpZYZ5AgMBAAECggEAXjCoUPIBHhhOcowIJe/vGlr0lUohzdJ8+GGGzcvhSDf6DF+mwG3lN0C8oU8QS7o6okRkZW46tLAd1u4fS6oGbDHGPBz6RJQ4B4eGxHMe1OcaCsxTmdq4DmuxRhfV3rnPldwqQA/6O01HxtXhxvzwkWOj5SGSZ7a8c5diTIHh9ULd6neUI/rIFC97mH1TeW0uDIxAtyvswz0pIfDhAR+lsOyTg/8qzsIXjpBFG4gAVxhUeUqQA5HzbsFglC08V7ViDk1OEoWi3yIj1CmNdtntJI4cxqLgTK7MNB9udhbN2I9YasuIpZvlAcvPi5R9cYT8vvFBCFGM+i22wtcsQmxdAQKBgQDaD9y6WNmsp+IaAUG3FqbJC8SqwreGIiEflWwVjrd+LuN6yhyr45CobOmhbTz0de8gRJEZKgJZEJcywL1ScrPIC4n1JaG688lk5aR+0Lik5fy1+L6G/CydJoJqlh6KKdwPJmDGpVu/geLJcLkWcYOwL56IL7GK2JI1p607R0x6iQKBgQCbd0n4xG9GkpvW4LDAJiMEhwPu9QcCKIT0mXVXCgMFdWel9bY3+8RSZoziWutaofm9tRHFAqwjbRyOZ+EdckkNsWVkkTnkKGtAhYKgM0GaOwdMFxmvME5WYJ74a5t1jiezDmR3obUBtS2nyQ8CFPUnlimoTR9F6APrth3h8uvwcQKBgFWaCn1AqdrEYNbyjViRVNHxg7fBDohiV3xtjOt9hfzL7VLjipPTlpL3hlNvbZFNxpx1LjyhqCBMif5LeUanbnnmRbbtmeqpDvNDzupVh1Z8TlMlHa4hymW6m1G6MqzsN83es/jnKvgnxd5sGMx9rUN5vhMaHekykVrswu1VVOl5AoGAMDljh7gfMEv/7TqLeT8bM6dR8AivoNrCy0Di5hnj8AiIGzHJ0TnWnxzSbNB5GwcNeew109/NV7vb1MyiRskRoh657eUiiQSEqGIBsAHWQqo2zEKKJA6e7ipQhYyTj3aGGAPJ5FYT2LDDtb0nW6T2ms34pA0wOzYKKU63nEQHLfECgYEAgbbpZJRtPxWB1M/Dg7loguT5O/VUsKefS0JrSD+tJIqYkumH5mejvYW5YEeDdelkvBhAEFUW9JOkzL+1w1g3wz2QQ2aPV/r55cJE3EfOzbwgw6GsO+8UuyiavbFhS3pFZNI0pR5M3u1+SIcLqQCnYLbO11vnEXglB6wjw9/oxPE= #开发者应用私钥
-  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhG03BtsM/pGmA6NmMX5aRxOfTLynN625ekZQYDuouRs4KYc3kU7+ZEVlKUlZCgrG8RbwGC3IBT5puZ2Nn8+YQkyokXGH6VIx/zqLoFG82FN4pVHPSajG5r8uyjfir+/pEGAhi7zKpcmD4iey65iS6RPxVHDSw8KOsVJsCUsWhezOE2w92UGXXXZItYiafRooZanoWQjFjgXqLRF7zygxM0hJGJZ7xz0GmrKVYHnrBppRw7jomVKJBDbrcaY6O5JVnvezQOPYVxLSPsZXMzRiSnQa9JHgV/5EjLJ8fJDMWA44eEE8kgWkes5TuEWDxXpFr/UGdgq34igkuwB1KWWGeQIDAQAB #应用公钥
-  alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzmDrvcNvhexu3KkxVS9bemdSn6pyQUFmpyOGMDOirGR+RbmldpH2N9bPegzZynb5+bmRHii4ib31XeoXc7M7r6UsPhmPeLoSBNwpC+Uig0VxPa0hmvHjAl6StArhB3eMib6Zo40nM6eCYZLLZ1kKpI5Ad/APov9uLrbSnoeZsgeRibQix07arvTEsZq6pJavNlA+UBjp65o6Bv0+kfQ65pMTpbu+jRtTzkTj1hoW9PjwlWrY21F1FvN67zDWkTB2LjGFsqan0Qoe4/X8nK3VsDvkjIm/ZQsnQr8ZzfcuTzQPrcZpo3h9DPZoHeiToEfXtyk7E0bQHEmYVpmrvk/IJwIDAQAB #支付宝公钥
+  appid: 1111  #应用程序唯一标识
+  appPrivateKey: 1111 #开发者应用私钥
+  alipayPublicKey: 1111 #应用公钥
+  alipay_public_key: 1111 #支付宝公钥
 
----
-
-juhe: #聚合数据
-  appKey: 0d3fd83eddaa33e5563f548257648577 #
-
-
----
-
-jiguang:
-  appKey-driver: 93204c35ded9ba377a14af19 #极光推送应用唯一标识
-  masterSecret-driver: e4f6f435faefad29db6ba9b2 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
-  appKey-dispatch: cc212ee6dcecb26625917f40 #极光推送应用唯一标识
-  masterSecret-dispatch: 0d163a25a20647665c28639e #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
 
 
 ---
@@ -130,24 +117,5 @@
 spring:
   data:
     mongodb:
-#      uri: mongodb://root:bv@_N36o+cTe1LpS@127.0.0.1:27017/admin
-      uri: mongodb://127.0.0.1:27017/admin
-
-
-#  mallbook 调起接口参数配置
-mallbook:
-  # pay_url:mallbook接口地址    测试环境: http://ld.mallbook.cn:12000/api   生产环境:https://cloudpay.mallbook.cn/api
-  pay_url: http://ld.mallbook.cn:12000/api
-  # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号
-  merchant_no:  需要替换内容
-  # version 接口版本号
-  version: 1.0.0
-  # channel_type 渠道类型 HF:汇付
-  channel_type: HF
-  # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥
-  merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIoGARvX6k6rVwuUW6HjAPkzXVntCtDI8q/niGZbeILc5T/noer+UNDECSy9f8T6ENw7tEKWaHOFcicrqgRv+wXeo2hPiJI2iYsUNs6I8ckd8i4uy/PBEDMW78GlnQLAatk0NC44HKjn8cuIHaETKNG2Vk3rwGBzNgDZ/God1L6JAgMBAAECgYBhCsOwzehBk5pJ2+9pLO+8Rm72EQGvtflb0BBI1zst1x2gBr4DOPedMJe6yymQVrmP/rJItvONdV/DRqHtKMZ2Wa4ul/U1mDnAtS/FkpRYBA5FaXV2hNEW11xBLhL5iGk35P23Bzaa0MJw9Vsd0vjeykridIw/PweDyTdeRBwC2QJBANS+iOaKRuf6BRwCKDmBSHOiZmc/kKnpx2f5BD3h+LWEX3JsNxObMbW1SxQIf2/qwqzIoEm/WbWaOyuwtRZkXQ8CQQCmFjTm5l+Ws2LoQgM+5+eLmPyMyRFOu4G8yqsUkhKuANHK/qrsS1GTbv6SN341NijjNYl05e0h6Jq1T9UZmtrnAkEAwTfzmn7H+3RmI5QJ+IBkzzEWFHv05X0/8DyID7QmcKWzEncaZqIzObdYYu983qa2/LqSaahyz68uQnYRYi7xHQJATr3SgPIRuaH8r360iTtrRHzYp2qgYQJ25On1KECEyKgszp/kqzieSVbjLLFQjavKwMXeEGT+AwiDaJibwJLxWwJAXZApORsqGqdxc9FTxt5iiqG2ZP5DTXxc6E+ihmlmoVl9KncgTf9ez0Q0Qz/4KUTPTHNVgzt1nyBxiLtnyzFavA==
-  # mall_book_public_key mallbook测试环境公钥 不需要替换
-  mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0L2DaHOO8ekhktB6RoHxIcki/0v7OUeOn9tX9VBE+jv6PRjqlZRWL3Qezxz5ADtHEyLv+RFFaceXSep6rWyoQ6DRlvLv5CySUAxAM42LLVe4DI3l/0ccEAIuU5NCpwAAj1zkm2X01DwUCZwymLjlqbDlBvQhpq+1fddtTtA/QLQIDAQAB
-  # mall_book_public_key mallbook生产环境公钥  不需要替换
-  # mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB
-
+      uri: mongodb://root:PaWPtGG95APCMBEb@127.0.0.1:27017/admin
+#      uri: mongodb://127.0.0.1:27017/admin
diff --git a/user/guns-admin/src/main/resources/redis.properties b/user/guns-admin/src/main/resources/redis.properties
index 1d000e8..c64267e 100644
--- a/user/guns-admin/src/main/resources/redis.properties
+++ b/user/guns-admin/src/main/resources/redis.properties
@@ -2,19 +2,19 @@
 # Redis���ݿ�������Ĭ��Ϊ0��
 spring.redis.database=0
 
-## Redis��������ַ
-#spring.redis.host=127.0.0.1
-## Redis���������Ӷ˿�
-#spring.redis.port=16379
-## Redis�������������루Ĭ��Ϊ�գ�
-#spring.redis.password=wuOT@8NLdZ*V09Jt
-
 # Redis��������ַ
 spring.redis.host=127.0.0.1
 # Redis���������Ӷ˿�
-spring.redis.port=6379
+spring.redis.port=16379
 # Redis�������������루Ĭ��Ϊ�գ�
-spring.redis.password=123456
+spring.redis.password=wuOT@8NLdZ*V09Jt
+
+## 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

--
Gitblit v1.7.1