Pu Zhibing
3 天以前 b219589d73f46bd98995bceb4caf16dadb56b869
修改bug
40个文件已修改
986 ■■■■ 已修改文件
DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/resources/application-test.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java 352 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/resources/application-test.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
  port: 8008
guns:
  swagger-open: true              #是否开启swagger (true/false)
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
  port: 8008
guns:
  swagger-open: true              #是否开启swagger (true/false)
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -18,15 +18,21 @@
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
import com.stylefeng.guns.modular.system.util.SystemException;
import com.stylefeng.guns.modular.system.util.model.GeoFencingPolygon;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -64,6 +70,9 @@
    
    @Autowired
    private IOrderCrossCityService orderCrossCityService;
    @Autowired
    private MongoTemplate mongoTemplate;
    
    
    /**
@@ -304,12 +313,14 @@
                }
            }
            if(Integer.valueOf(map.get("type").toString()) == 2){//电子围栏
                String gid = map.get("gid").toString();
                List<String> list1 = gdMapElectricFenceUtil.monitorElectricFenc("", lonLat);
                if(list1.contains(gid)){
                String[] split = lonLat.split(",");
                GeoJsonPoint point = new GeoJsonPoint(Double.valueOf(split[0]), Double.valueOf(split[1]));
                Query query = Query.query(Criteria.where("geoJsonPolygon").intersects(point));
                List<GeoFencingPolygon> geoFencingPolygons = mongoTemplate.find(query, GeoFencingPolygon.class);
                List<Integer> s_sites = geoFencingPolygons.stream().map(GeoFencingPolygon::getSiteId).collect(Collectors.toList());
                if(s_sites.contains(siteId)){
                    return true;
                }
                continue;
            }
        }
        return false;
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -24,7 +24,6 @@
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.service.impl.CarServiceImpl;
import com.stylefeng.guns.modular.system.service.impl.CompanyServiceImpl;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
@@ -165,7 +164,8 @@
    private CarModelMapper carModelMapper;
    @Autowired
    private CarServiceImpl carServiceImpl;
    private CompanyServiceImpl companyServiceImpl;
    @Autowired
    private ICompanyService companyService;
    /**
@@ -270,7 +270,7 @@
        }
        UserInfo userInfo = userInfoMapper.selectById(orderCrossCity.getUserId());
        Driver driver = driverService.selectById(orderCrossCity.getDriverId());
        Company company = companyServiceImpl.selectById(driver.getCompanyId());
        Company company = companyService.selectById(driver.getCompanyId());
        switch (state){
            case 3://出发前往预约点
                orderCrossCity.setState(3);
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -5,6 +5,7 @@
import com.google.gson.Gson;
import com.open.common.util.OpenApiClient;
import com.open.common.util.SystemParameterNames;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.SpringContextsUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import lombok.extern.slf4j.Slf4j;
@@ -31,7 +32,7 @@
     * @param request
     * @return
     */
    public static SaveStaffNode saveStaffNode(SaveStaffNodeRequest request){
    public static ResultUtil<SaveStaffNode> saveStaffNode(SaveStaffNodeRequest request){
        //请求路径
        String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/saveStaffNode";
        //私钥文件
@@ -59,16 +60,24 @@
        String retCode = jsonObject.getString("retCode");
        if (!"0".equals(retCode)) {
            log.error("【企业增加员工】请求失败:" + result);
            throw new RuntimeException("【企业增加员工】请求失败:" + result);
            String retMsg = jsonObject.getString("retMsg");
            if(retMsg.contains("员工昵称已存在")){
                request.setEmpName(request.getEmpName() + Double.valueOf(Math.random() * 100).intValue());
                request.setEmpNickname(request.getEmpName());
                return saveStaffNode(request);
            }
            retMsg = retMsg.substring(retMsg.indexOf("{"));
            jsonObject = JSON.parseObject(retMsg);
            return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
        }
        JSONObject object = jsonObject.getJSONObject("object");
        String status = object.getString("status");
        if (!"0".equals(status)) {
            log.error("【企业增加员工】失败:" + object.toJSONString());
            throw new RuntimeException("【企业增加员工】失败:" + object.toJSONString());
            return ResultUtil.error("【企业增加员工】失败:" + object.getString("desc"));
        }
        SaveStaffNode saveStaffNode = object.getObject("data", SaveStaffNode.class);
        return saveStaffNode;
        return ResultUtil.success(saveStaffNode);
    }
    
    
DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
    port: 8007
guns:
    swagger-open: true              #是否开启swagger (true/false)
    swagger-open: false              #是否开启swagger (true/false)
    kaptcha-open: false             #是否开启登录时验证码 (true/false)
    file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
    picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
DriverQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
    port: 8007
guns:
    swagger-open: true              #是否开启swagger (true/false)
    swagger-open: false              #是否开启swagger (true/false)
    kaptcha-open: false             #是否开启登录时验证码 (true/false)
    file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
    picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -168,7 +168,7 @@
     */
    @RequestMapping("/tDriver_add")
    public String tDriverAdd(Model model) {
        List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2));
        List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).eq("state", 0).ne("flag", 3));
        model.addAttribute("companyList", companyList);
    
        Integer roleType = shiroExtUtil.getUser().getRoleType();
@@ -177,8 +177,7 @@
            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>()
                    .eq("type", 3)
                    .eq("superiorId", shiroExtUtil.getUser().getObjectId())
                    .notIn("state", 1)
                    .notIn("flag", 3));
                    .eq("state", 0).ne("flag", 3));
            model.addAttribute("franchiseeList", franchiseeList);
        } else {
            model.addAttribute("franchiseeList", null);
@@ -187,8 +186,15 @@
        model.addAttribute("objectName", tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getName());
        //查询线路列表
        List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
        model.addAttribute("lineList",lineList);
        if(1 != roleType){
            Integer objectId = shiroExtUtil.getUser().getObjectId();
            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1).last(" and (id in (select lineId from t_line_company where companyId = " + objectId + ") or companyId = " + objectId + ")"));
            model.addAttribute("lineList",lineList);
        }else{
            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
            model.addAttribute("lineList",lineList);
        }
        List<TRegion> provinceList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
        model.addAttribute("provinceList",provinceList);
        return PREFIX + "tDriver_add.html";
@@ -261,19 +267,19 @@
        model.addAttribute("objectName", tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getName());
    
        if (1 == roleType) {
            List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).ne("flag", 3));
            List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).eq("state", 0).ne("flag", 3));
            model.addAttribute("companyList", companyList);
            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("superiorId", tDriver.getCompanyId()));
            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("state", 0).ne("flag", 3).eq("superiorId", tDriver.getCompanyId()));
            model.addAttribute("franchiseeList", franchiseeList);
        } else if (2 == roleType) {
            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("superiorId", shiroExtUtil.getUser().getObjectId()));
            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("state", 0).ne("flag", 3).eq("superiorId", shiroExtUtil.getUser().getObjectId()));
            model.addAttribute("franchiseeList", franchiseeList);
        }
        //查询平台ID
        TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1));
        TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1).eq("state", 0).ne("flag", 3));
        //判断是平台司机还是加盟司机
        if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId() == company.getId()) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){
        if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId().equals(company.getId())) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){
            model.addAttribute("companyType",1);
        }else{
            model.addAttribute("companyType",2);
@@ -315,26 +321,43 @@
        model.addAttribute("six",six);
        //查询线路列表
        List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
        model.addAttribute("lineList",lineList);
        if(1 != roleType){
            Integer objectId = shiroExtUtil.getUser().getObjectId();
            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1).last(" and (id in (select lineId from t_line_company where companyId = " + objectId + ") or companyId = " + objectId + ")"));
            model.addAttribute("lineList",lineList);
        }else{
            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
            model.addAttribute("lineList",lineList);
        }
        //查询驾驶员已添加的线路列表
        List<Map<String, Object>> driverLineList = tDriverLineService.getDriverLineListByDriverId(tDriverId);
        model.addAttribute("driverLineList",driverLineList);
        model.addAttribute("provinceId", 1);
        model.addAttribute("cityId","");
        model.addAttribute("areaId","");
        model.addAttribute("provinceId", "");
        model.addAttribute("areaList", new ArrayList<>());
        model.addAttribute("cityList", new ArrayList<>());
        if(ToolUtil.isNotEmpty(tDriver.getPlaceOfEmployment())){
            TRegion area = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tDriver.getPlaceOfEmployment()));
            model.addAttribute("areaId",area.getId());
            TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", area.getParentId()));
            model.addAttribute("cityId",city.getId());
            TRegion province = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", city.getParentId()));
            model.addAttribute("provinceId",province.getId());
            if(null != area) {
                model.addAttribute("areaId", area.getId());
                TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", area.getParentId()));
                if (null != city) {
                    model.addAttribute("cityId", city.getId());
                    TRegion province = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", city.getParentId()));
                    if (null != province) {
                        model.addAttribute("provinceId", province.getId());
                    }
                    //市
                    List<TRegion> cityList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", city.getParentId()));
                    model.addAttribute("cityList", cityList);
                }
            //市
            List<TRegion> cityList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", city.getParentId()));
            model.addAttribute("cityList",cityList);
            //区
            List<TRegion> areaList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", area.getParentId()));
            model.addAttribute("areaList",areaList);
                //区
                List<TRegion> areaList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", area.getParentId()));
                model.addAttribute("areaList",areaList);
            }
        }
        //省
        List<TRegion> provinceList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java
@@ -15,6 +15,7 @@
import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.service.impl.IncomeServiceImpl;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
@@ -62,6 +63,9 @@
    @Autowired
    private ITDriverService tDriverService;
    @Autowired
    private IIncomeService incomeService;
    
    @Autowired
    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
@@ -750,6 +754,15 @@
                    paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
                    OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
                    //添加收入
                    Map<String, Object> map = null;
                    try {
                        map = incomeService.saveIncome(tOrderPrivateCar.getId(), 1, tOrderPrivateCar.getOrderMoney().doubleValue());
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                    tOrderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                    request1.setOrderId(tOrderPrivateCar.getTravelId());
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java
@@ -8,12 +8,21 @@
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.modular.system.model.TCompany;
import com.stylefeng.guns.modular.system.model.TDispatch;
import com.stylefeng.guns.modular.system.model.User;
import com.stylefeng.guns.modular.system.service.ITCompanyService;
import com.stylefeng.guns.modular.system.service.ITDispatchService;
import com.stylefeng.guns.modular.system.service.IUserService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -175,7 +184,39 @@
            tDispatch.setCompanyId(objectId1);
        }
        tDispatch.setPassword(ShiroKit.md5(tDispatch.getPassword(), "WL:x9#"));
        tDispatchService.insert(tDispatch);
        User user = userService.selectById(shiroExtUtil.getUser().getId());
        TCompany tCompany = tCompanyService.selectById(user.getObjectId());
        List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDispatch.getAccount(), tCompany.getEnterCode());
        Long empId = null;
        Integer empnew = null;
        if(null == userInfoByPhone || userInfoByPhone.size() == 0){
            SaveStaffNodeRequest request = new SaveStaffNodeRequest();
            request.setMobile(user.getPhone());
            request.setEntercode(tCompany.getEnterCode());
            request.setEmpName(tDispatch.getName());
            request.setEmpNickname(tDispatch.getName());
            request.setLoginNo(tDispatch.getPhone());
            request.setEmpSex("男");
            request.setMphone(tDispatch.getPhone());
            request.setEmail(tDispatch.getPhone() + "@qyt.com");
            request.setDeptId(0);
            request.setPositionId(1);
            request.setSuperLevel(0);
            request.setHideMobile(0);
            ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
            if(200 != resultUtil.getStatus()){
                return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
            }
            SaveStaffNode saveStaffNode = resultUtil.getData();
            empId = saveStaffNode.getEmpId();
            empnew = 1;
        }
        tDispatch.setEmpId(empId);
        tDispatch.setEntercode(tCompany.getEnterCode());
        tDispatch.setEnterId(Long.valueOf(tCompany.getEnterCode()));
        tDispatch.setEmpnew(empnew);
        tDispatchService.insert(tDispatch);
        return SUCCESS_TIP;
    }
@@ -197,6 +238,22 @@
            dispatch.setState(1);
        }
        tDispatchService.updateById(dispatch);
        ShiroUser user = shiroExtUtil.getUser();
        TCompany tCompany = tCompanyService.selectById(user.getObjectId());
        if (null != dispatch.getEmpId() && 1 == dispatch.getEmpnew()) {
            //中台先删除司机
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(dispatch.getPhone(), tCompany.getEnterCode());
            if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == dispatch.getEmpnew()) {
                DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest();
                deleteStafNodeRequest.setEmpId(dispatch.getEmpId());
                deleteStafNodeRequest.setEntercode(tCompany.getEnterCode());
                deleteStafNodeRequest.setMobile(tCompany.getPrincipalPhone());
                ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
            }
        }
        return SUCCESS_TIP;
    }
@@ -214,15 +271,15 @@
                return new ErrorTip(500, "账号已存在,请重新输入");
            }
        }
        Integer roleType = shiroExtUtil.getUser().getRoleType();
        Integer objectId = shiroExtUtil.getUser().getObjectId();
        if (2 == roleType) {
            tDispatch.setCompanyId(objectId);
        } else if (3 == roleType) {
            TCompany company = tCompanyService.selectById(objectId);
            tDispatch.setCompanyId(company.getSuperiorId());
            tDispatch.setFranchiseeId(objectId);
        }
//        Integer roleType = shiroExtUtil.getUser().getRoleType();
//        Integer objectId = shiroExtUtil.getUser().getObjectId();
//        if (2 == roleType) {
//            tDispatch.setCompanyId(objectId);
//        } else if (3 == roleType) {
//            TCompany company = tCompanyService.selectById(objectId);
//            tDispatch.setCompanyId(company.getSuperiorId());
//            tDispatch.setFranchiseeId(objectId);
//        }
        if (SinataUtil.isNotEmpty(tDispatch.getPassword())) {
            tDispatch.setPassword(ShiroKit.md5(tDispatch.getPassword(), "WL:x9#"));
        }
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
@@ -81,7 +81,12 @@
    @RequestMapping("/tLine_add")
    public String tLineAdd(Model model) {
        //站点
        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1));
        Integer companyId = null;
        if(shiroExtUtil.getUser().getRoleType() != 1){
            companyId = shiroExtUtil.getUser().getObjectId();
        }
        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1)
                .eq(null != companyId, "companyId", companyId));
        model.addAttribute("siteList",siteList);
        //跨城车型
        List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1));
@@ -132,7 +137,12 @@
        TLineSite end = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLineId).eq("type", 2));
        model.addAttribute("end",end);
        //站点
        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1));
        Integer companyId = null;
        if(shiroExtUtil.getUser().getRoleType() != 1){
            companyId = shiroExtUtil.getUser().getObjectId();
        }
        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1)
                .eq(null != companyId, "companyId", companyId));
        model.addAttribute("siteList",siteList);
        //跨城车型
        List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1));
@@ -160,7 +170,11 @@
            endTime = timeArray[1];
        }
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        page.setRecords(tLineService.getLineList(page, beginTime, endTime, name, insertUser, modelStr, state, shiroExtUtil.getUser().getObjectId()));
        Integer companyId = null;
        if(shiroExtUtil.getUser().getRoleType() != 1){
            companyId = shiroExtUtil.getUser().getObjectId();
        }
        page.setRecords(tLineService.getLineList(page, beginTime, endTime, name, insertUser, modelStr, state, companyId));
        return super.packForBT(page);
    }
@@ -170,6 +184,7 @@
    @RequestMapping(value = "/add")
    @ResponseBody
    public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,@RequestParam String shuArr) {
        String name = tLine.getName();
        name = name.replaceAll("& lt;", "<");
        name = name.replaceAll("& gt;", ">");
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
@@ -498,22 +498,6 @@
            }
        }
        //中台修改订单状态
        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
        request1.setOrderId(orderCrossCity.getTravelId());
        request1.setStatus(orderCrossCity.getState());
        if (null != orderCrossCity.getDriverId()) {
            TDriver driver2 = tDriverService.selectById(orderCrossCity.getDriverId());
            TCompany company = iTCompanyService.selectById(driver2.getCompanyId());
            request1.setDriverId(driver2.getEmpId().toString());
            request1.setSupplierShopId(company.getEnterCode());
        }
        if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) {
            TDriver driver2 = tDriverService.selectById(orderCrossCity.getPromotionDriverId());
            request1.setPromoterId(driver2.getEmpId().toString());
        }
        OrderUtil.modifyTravelItinerary(request1);
        //未支付,调取消订单
        if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
            OrderUtil.tradeOrderCancel(orderCrossCity.getTravelId());
@@ -576,7 +560,7 @@
                        request2.setRefundType("5");
                        request2.setApplyRefundCharge(orderCrossCity.getPayMoney());
                        request2.setActualRefundCharge(orderCrossCity.getPayMoney());
                        request2.setRefundAccount(user1.getEnterId().toString());
                        request2.setRefundAccount(user1.getEmpId().toString());
                        request2.setRemark("服务商取消订单退款");
                        OrderUtil.orderRefundNotice(request2);
                        //添加交易明细
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java
@@ -9,6 +9,7 @@
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.IdGenerator;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.modular.system.model.TLocation;
@@ -142,7 +143,12 @@
            endTime = timeArray[1];
        }
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        page.setRecords(tSiteService.getSiteList(page, beginTime, endTime, name, insertUser, city, state, shiroExtUtil.getUser().getObjectId()));
        ShiroUser user = shiroExtUtil.getUser();
        Integer companyId = null;
        if(1 != user.getRoleType()){
            companyId = user.getObjectId();
        }
        page.setRecords(tSiteService.getSiteList(page, beginTime, endTime, name, insertUser, city, state, companyId));
        return super.packForBT(page);
    }
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml
@@ -46,7 +46,7 @@
                and o.state = #{state}
            </if>
            <if test="companyId != null">
                and o.companyId = #{companyId}
                and (o.id in (select lineId from t_line_company where companyId = #{companyId}) or o.companyId = #{companyId})
            </if>
        </where>
        order by o.id desc
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java
@@ -2,6 +2,7 @@
import java.util.Date;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
@@ -62,6 +63,26 @@
     * 状态 1=正常 2=冻结 3=删除
     */
    private Integer state;
    /**
     * 中台员工ID
     */
    @TableField("empId")
    private Long empId;
    /**
     * 中台员工所属企业ID
     */
    @TableField("enterId")
    private Long enterId;
    /**
     * 中台员工所属企业编号
     */
    @TableField("entercode")
    private String entercode;
    /**
     * 中台新增状态(0=否,1=是)
     */
    @TableField("empnew")
    private Integer empnew;
    public Integer getId() {
@@ -152,6 +173,38 @@
        this.state = state;
    }
    public Long getEmpId() {
        return empId;
    }
    public void setEmpId(Long empId) {
        this.empId = empId;
    }
    public Long getEnterId() {
        return enterId;
    }
    public void setEnterId(Long enterId) {
        this.enterId = enterId;
    }
    public String getEntercode() {
        return entercode;
    }
    public void setEntercode(String entercode) {
        this.entercode = entercode;
    }
    public Integer getEmpnew() {
        return empnew;
    }
    public void setEmpnew(Integer empnew) {
        this.empnew = empnew;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
@@ -63,4 +63,6 @@
    void updateState(String s);
    Map<String, Object> saveIncome(Integer orderId, Integer orderType, Double payMoney) throws Exception;
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
@@ -1,11 +1,15 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.util.ExcelUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.IncomeMapper;
import com.stylefeng.guns.modular.system.model.Income;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +18,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -45,6 +50,12 @@
    private ITDriverService driverService;
    @Autowired
    private ShiroExtUtil shiroExtUtil;
    @Autowired
    private ITCompanyService companyService;
    @Autowired
    private ITLineService lineService;
    
    
    /**
@@ -664,4 +675,343 @@
    public void updateState(String s) {
        this.baseMapper.updateState(s);
    }
    @Override
    public Map<String, Object> saveIncome(Integer orderId, Integer orderType, Double payMoney) throws Exception {
        TCompany company = null;
        Integer orderNumber = 0;
        Integer driverId = null;
        JSONObject jsonObject = null;
        JSONArray rules = null;
        JSONArray time_rules = null;
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        String startTime = sdf1.format(new Date()) + " 00:00:00";
        String endTime = sdf1.format(new Date()) + " 23:59:59";
        Map<String, Object> map = new HashMap<>();
        switch (orderType){
            case 1:
                TOrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                driverId = orderPrivateCar.getDriverId();
                company = companyService.selectById(orderPrivateCar.getCompanyId());
                jsonObject = JSON.parseObject(company.getSpe());
                rules = jsonObject.getJSONArray("rules");
                time_rules = jsonObject.getJSONArray("time_rules");
                //按天查询当天的订单量
                //按时间段
                if(time_rules.size() > 0){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    for (int i = 0; i < time_rules.size(); i++) {
                        JSONArray jsonArray = time_rules.getJSONArray(i);
                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                        String time = jsonObject2.getString("time");
                        if( ToolUtil.isNotEmpty(time)){
                            String[] split = time.split(" - ");
                            Date start = sdf.parse(split[0] + " 00:00:00");
                            Date end = sdf.parse(split[1] + " 23:59:59");
                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                                startTime = split[0] + " 00:00:00";
                                endTime = split[1] + " 23:59:59";
                                break;
                            }
                        }
                    }
                }
                orderNumber = orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>()
                        .eq("driverId", orderPrivateCar.getDriverId())
                        .eq("isDelete", 1)
                        .in("state", Arrays.asList(7, 8, 9))
                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
                );
                map.put("orderNumber", orderNumber);
                map.put("disposition", company.getSpe());
                break;
            case 2:
                TOrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                driverId = orderTaxi.getDriverId();
                company = companyService.selectById(orderTaxi.getCompanyId());
                jsonObject = JSON.parseObject(company.getTaxi());
                rules = jsonObject.getJSONArray("rules");
                time_rules = jsonObject.getJSONArray("time_rules");
                //按天查询当天的订单量
                //按时间段
                if(time_rules.size() > 0){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    for (int i = 0; i < time_rules.size(); i++) {
                        JSONArray jsonArray = time_rules.getJSONArray(i);
                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                        String time = jsonObject2.getString("time");
                        if(ToolUtil.isNotEmpty(time)){
                            String[] split = time.split(" - ");
                            Date start = sdf.parse(split[0] + " 00:00:00");
                            Date end = sdf.parse(split[1] + " 23:59:59");
                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                                startTime = split[0] + " 00:00:00";
                                endTime = split[1] + " 23:59:59";
                                break;
                            }
                        }
                    }
                }
                orderNumber = orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>()
                        .eq("driverId", orderTaxi.getDriverId())
                        .eq("isDelete", 1)
                        .in("state", Arrays.asList(7, 8, 9))
                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
                );
                map.put("orderNumber", orderNumber);
                map.put("disposition", company.getTaxi());
                break;
            case 3:
                TOrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
                TLine line = lineService.selectById(orderCrossCity.getLineId());
                driverId = orderCrossCity.getDriverId();
                jsonObject = JSON.parseObject(line.getOutSetting());
                rules = jsonObject.getJSONArray("rules");
                time_rules = jsonObject.getJSONArray("time_rules");
                //按天查询当天的订单量
                //按时间段
                if(time_rules.size() > 0){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    for (int i = 0; i < time_rules.size(); i++) {
                        JSONArray jsonArray = time_rules.getJSONArray(i);
                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                        String time = jsonObject2.getString("time");
                        if(ToolUtil.isNotEmpty(time)){
                            String[] split = time.split(" - ");
                            Date start = sdf.parse(split[0] + " 00:00:00");
                            Date end = sdf.parse(split[1] + " 23:59:59");
                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                                startTime = split[0] + " 00:00:00";
                                endTime = split[1] + " 23:59:59";
                                break;
                            }
                        }
                    }
                }
                orderNumber = orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>()
                        .eq("driverId", orderCrossCity.getDriverId())
                        .eq("isDelete", 1)
                        .in("state", Arrays.asList(8, 9))
                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
                );
                map.put("orderNumber", orderNumber);
                map.put("disposition", line.getOutSetting());
                break;
            case 4:
                TOrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
                driverId = orderLogistics.getDriverId();
                company = companyService.selectById(orderLogistics.getCompanyId());
                jsonObject = JSON.parseObject(company.getSameLogistics());
                rules = jsonObject.getJSONArray("rules");
                time_rules = jsonObject.getJSONArray("time_rules");
                //按天查询当天的订单量
                //按时间段
                if(time_rules.size() > 0){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    for (int i = 0; i < time_rules.size(); i++) {
                        JSONArray jsonArray = time_rules.getJSONArray(i);
                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                        String time = jsonObject2.getString("time");
                        if(ToolUtil.isNotEmpty(time)){
                            String[] split = time.split(" - ");
                            Date start = sdf.parse(split[0] + " 00:00:00");
                            Date end = sdf.parse(split[1] + " 23:59:59");
                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                                startTime = split[0] + " 00:00:00";
                                endTime = split[1] + " 23:59:59";
                                break;
                            }
                        }
                    }
                }
                orderNumber = orderLogisticsService.selectCount(new EntityWrapper<TOrderLogistics>()
                        .eq("driverId", orderLogistics.getDriverId())
                        .eq("type", 4)
                        .eq("isDelete", 1)
                        .in("state", Arrays.asList(6, 9))
                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
                );
                map.put("orderNumber", orderNumber);
                map.put("disposition", company.getSameLogistics());
                break;
            case 5:
                TOrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
                driverId = orderLogistics1.getDriverId();
                company = companyService.selectById(orderLogistics1.getCompanyId());
                jsonObject = JSON.parseObject(company.getCrossLogistics());
                rules = jsonObject.getJSONArray("rules");
                time_rules = jsonObject.getJSONArray("time_rules");
                //按天查询当天的订单量
                //按时间段
                if(time_rules.size() > 0){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    for (int i = 0; i < time_rules.size(); i++) {
                        JSONArray jsonArray = time_rules.getJSONArray(i);
                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                        String time = jsonObject2.getString("time");
                        if(ToolUtil.isNotEmpty(time)){
                            String[] split = time.split(" - ");
                            Date start = sdf.parse(split[0] + " 00:00:00");
                            Date end = sdf.parse(split[1] + " 23:59:59");
                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                                startTime = split[0] + " 00:00:00";
                                endTime = split[1] + " 23:59:59";
                                break;
                            }
                        }
                    }
                }
                orderNumber = orderLogisticsService.selectCount(new EntityWrapper<TOrderLogistics>()
                        .eq("driverId", orderLogistics1.getDriverId())
                        .eq("type", 5)
                        .eq("isDelete", 1)
                        .in("state", Arrays.asList(6, 9))
                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
                );
                map.put("orderNumber", orderNumber);
                map.put("disposition", company.getCrossLogistics());
                break;
            case 7:
                TOrderCall orderCall = orderCallService.selectById(orderId);
                driverId = orderCall.getDriverId();
                company = companyService.selectById(orderCall.getCompanyId());
                jsonObject = JSON.parseObject(company.getOnCall());
                rules = jsonObject.getJSONArray("rules");
                time_rules = jsonObject.getJSONArray("time_rules");
                //按天查询当天的订单量
                //按时间段
                if(time_rules.size() > 0){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    for (int i = 0; i < time_rules.size(); i++) {
                        JSONArray jsonArray = time_rules.getJSONArray(i);
                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                        String time = jsonObject2.getString("time");
                        if(ToolUtil.isNotEmpty(time)){
                            String[] split = time.split(" - ");
                            Date start = sdf.parse(split[0] + " 00:00:00");
                            Date end = sdf.parse(split[1] + " 23:59:59");
                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                                startTime = split[0] + " 00:00:00";
                                endTime = split[1] + " 23:59:59";
                                break;
                            }
                        }
                    }
                }
                orderNumber = orderCallService.selectCount(new EntityWrapper<TOrderCall>()
                        .eq("driverId", orderCall.getDriverId())
                        .eq("isDelete", 1)
                        .in("state", Arrays.asList(7, 8, 9))
                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
                );
                map.put("orderNumber", orderNumber);
                map.put("disposition", company.getOnCall());
                break;
        }
        BigDecimal money = BigDecimal.ZERO;
        //{"rules":[],"time_rules":[[{"order":"1,3","percent":"20","MemberCoins":"1.1,2"},{"order":"3,10","percent":"40","MemberCoins":"2,5"}]]}
        //按天
        if(rules.size() > 0){
            for (int i = 0; i < rules.size(); i++) {
                JSONObject jsonObject1 = rules.getJSONObject(i);
                money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
                if(money.compareTo(BigDecimal.ZERO) >= 0){
                    break;
                }
            }
        }
        //按时间段
        if(time_rules.size() > 0){
            boolean b = false;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            for (int i = 0; i < time_rules.size(); i++) {
                JSONArray jsonArray = time_rules.getJSONArray(i);
                JSONObject jsonObject2 = jsonArray.getJSONObject(0);
                String time = jsonObject2.getString("time");
                if(!b && ToolUtil.isNotEmpty(time)){
                    String[] split = time.split(" - ");
                    Date start = sdf.parse(split[0] + " 00:00:00");
                    Date end = sdf.parse(split[1] + " 23:59:59");
                    if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
                        for (int j = 0; j < jsonArray.size(); j++) {
                            JSONObject jsonObject1 = jsonArray.getJSONObject(j);
                            money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
                            if(money.compareTo(BigDecimal.ZERO) < 0){
                                continue;
                            }
                            b = true;
                            break;
                        }
                    }
                }
                if(b){
                    break;
                }
            }
            if(!b){
                JSONArray jsonArray = time_rules.getJSONArray(0);
                for (int j = 0; j < jsonArray.size(); j++) {
                    JSONObject jsonObject1 = jsonArray.getJSONObject(j);
                    money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
                    if(money.compareTo(BigDecimal.ZERO) < 0){
                        continue;
                    }
                    break;
                }
            }
        }
        if(money.compareTo(BigDecimal.ZERO) > 0){
            TDriver driver = driverService.selectById(driverId);
            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driver.setBalance((null != driver.getBalance() ? driver.getBalance() : BigDecimal.ZERO).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN));
            driverService.updateById(driver);
        }
        return map;
    }
    public BigDecimal getDriverMoney(Integer orderNumber, Double payMoney, Integer driverId, Integer orderId, Integer orderType, JSONObject jsonObject1) throws Exception{
        String order = jsonObject1.getString("order");
        Double percent = jsonObject1.getDouble("percent");
        String MemberCoins = jsonObject1.getString("MemberCoins");
        String[] split = order.split(",");
        if(Integer.valueOf(split[0]).compareTo(orderNumber) <= 0 && Integer.valueOf(split[1]).compareTo(orderNumber) > 0){
            String[] split1 = MemberCoins.split(",");
            Double d = Double.valueOf(split1[0]);
            Double g = Double.valueOf(split1[1]);
            //平台抽成金额
            BigDecimal multiply1 = new BigDecimal(payMoney).multiply(new BigDecimal(percent / 100));
            //抽成金额小于最低金额,司机收入为0
            if(multiply1.compareTo(new BigDecimal(d)) < 0){
                saveData(1, 1, 2, orderId, orderType, d);
                //司机收入
                BigDecimal subtract = new BigDecimal(payMoney).subtract(new BigDecimal(d));
                if(subtract.compareTo(BigDecimal.ZERO) > 0){
                    saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
                    return subtract;
                }
                return new BigDecimal(0);
            }
            if(multiply1.compareTo(new BigDecimal(d)) >= 0 && multiply1.compareTo(new BigDecimal(g)) < 0){
                //司机收入
                BigDecimal subtract = new BigDecimal(payMoney).subtract(multiply1);
                saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
                saveData(1, 1, 2, orderId, orderType, multiply1.doubleValue());
                return subtract;
            }
            if(multiply1.compareTo(new BigDecimal(g)) >= 0){
                //司机收入
                BigDecimal subtract = new BigDecimal(payMoney).subtract(new BigDecimal(g));
                saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
                saveData(1, 1, 2, orderId, orderType, g);
                return subtract;
            }
        }
        return new BigDecimal(-1);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -229,6 +229,11 @@
        if (!"0".equals(retCode)) {
            log.error("【企业增加员工】请求失败:{}", result);
            String retMsg = jsonObject.getString("retMsg");
            if(retMsg.contains("员工昵称已存在")){
                request.setEmpName(request.getEmpName() + Double.valueOf(Math.random() * 100).intValue());
                request.setEmpNickname(request.getEmpName());
                return saveStaffNode(request);
            }
            retMsg = retMsg.substring(retMsg.indexOf("{"));
            jsonObject = JSON.parseObject(retMsg);
            return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -680,11 +680,11 @@
    /**
     * 订单退款
     * @param request
     * @param request1
     * @return
     */
    public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request) {
        request.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5400004" : "5401007");
    public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request1) {
        request1.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
        //请求路径
        String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderRefund";
        //私钥文件
@@ -696,6 +696,13 @@
        Map<String, Object> contentMap = new HashMap<String, Object>();
        Date nowdate = new Date();
        SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
        TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
        request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1726529285264269312");
        request.setAppId(qianYunTongConfig.getAppkey());
        request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 6);
        request.setRequestId(UUIDUtil.getRandomCode());
        request.setData(request1);
        String timeStamp = date.format(nowdate);
        String messageId = UUIDUtil.getRandomCode();
@@ -716,11 +723,18 @@
        }
        JSONObject refundInfo = jsonObject.getJSONObject("busiResp").getJSONObject("refundInfo");
        String retCode = refundInfo.getString("retCode");
        if(!"".equals(retCode)){
        if(!"0".equals(retCode)){
            log.error("【订单退款】失败:" + refundInfo.getString("retMsg"));
            throw new RuntimeException("【订单退款】失败:" + refundInfo.getString("retMsg"));
        }
        TradeOrderRefund tradeOrderRefund = refundInfo.getObject("data", TradeOrderRefund.class);
        JSONObject object = refundInfo.getJSONObject("object");
        String retCode1 = object.getString("retCode");
        if(!"000000".equals(retCode1)){
            log.error("【订单退款】失败:" + object.getString("retMsg"));
            throw new RuntimeException("【订单退款】失败:" + object.getString("retMsg"));
        }
        TradeOrderRefund tradeOrderRefund = object.getObject("data", TradeOrderRefund.class);
        return tradeOrderRefund;
    }
@@ -771,10 +785,10 @@
     * @param orderId
     */
    public static void tradeOrderCancel(String orderId) {
        TradeOrderCancelRequest request = new TradeOrderCancelRequest();
        request.setScene("TRAFFIC");
        request.setMhltiCenterAppId("52270015");
        request.setOrderId(orderId);
        TradeOrderCancelRequest request1 = new TradeOrderCancelRequest();
        request1.setScene("TRAFFIC");
        request1.setMhltiCenterAppId("52270015");
        request1.setOrderId(orderId);
        //请求路径
        String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCancel";
@@ -788,6 +802,13 @@
        Date nowdate = new Date();
        SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
        TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
        request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1963507067318833152");
        request.setAppId(qianYunTongConfig.getAppkey());
        request.setConfigVersion(1);
        request.setRequestId(UUIDUtil.getRandomCode());
        request.setData(request1);
        String timeStamp = date.format(nowdate);
        String messageId = UUIDUtil.getRandomCode();
        contentMap.put(SystemParameterNames.getAppKey(), appKey);
ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
  port: 8010
guns:
  swagger-open: true              #是否开启swagger (true/false)
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: true      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
  port: 8080
guns:
  swagger-open: true              #是否开启swagger (true/false)
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: true      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
@@ -9,6 +9,11 @@
    <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
    <link href="${ctxPath}/static/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
    <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
    <style>
        .slimScrollBar{
            width: 10px !important;
        }
    </style>
</head>
<body class="fixed-sidebar full-height-layout gray-bg" style="overflow:hidden">
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html
@@ -9,13 +9,13 @@
                    <#input id="name" name="调度名称" value="${item.name}"/>
                    @if(roleType == 1){
                        <#select id="oneId" name="所属分公司:" onchange="TDispatchInfoDlg.companyChange(this)">
                        <option value="">选择所属分公司</option>
                        @for(obj in companyList){
                        <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
                        @}
                        <#select id="oneId" name="所属分公司:" onchange="TDispatchInfoDlg.companyChange(this)" disabled>
                            <option value="">选择所属分公司</option>
                            @for(obj in companyList){
                            <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
                            @}
                        </#select>
                        <#select id="twoId" name="所属加盟商:" >
                        <#select id="twoId" name="所属加盟商:" disabled>
                            <option value="">选择所属加盟商</option>
                            @for(obj in franchiseeList){
                            <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
@@ -23,7 +23,7 @@
                        </#select>
                    @}
                    @if(roleType == 2){
                        <#select id="franchiseeId" name="所属加盟商:" >
                        <#select id="franchiseeId" name="所属加盟商:" disabled>
                            <option value="">选择所属加盟商</option>
                            @for(obj in franchiseeList){
                            <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
@@ -31,7 +31,7 @@
                        </#select>
                    @}
                    <#input id="phone" name="联系电话" value="${item.phone}" />
                    <#input id="account" name="登录账号" value="${item.account}"/>
                    <#input id="account" name="登录账号" value="${item.account}" disabled/>
                    <#input id="password" name="登录密码" value="" type="password"/>
                    <#input id="rePassword" name="确认密码" value="" type="password"/>
                </div>
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
@@ -203,7 +203,7 @@
            <div class="row btn-group-m-t">
                <div class="col-sm-10 col-sm-offset-5">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addSubmit()"/>
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addSubmit(this)"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TLineInfoDlg.close()"/>
                </div>
            </div>
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html
@@ -50,9 +50,21 @@
                            <input type="text" onblur="checkIsYuan(this)" value='${json.num1!}' name="num1" id="num1" class="form-control newWidth" placeholder="最多3位数"/>
                            元,起步包含<input type="text" onblur="checkIsGongLi(this)" name="num2" id="num2" value='${json.num2!}' class="form-control newWidth" placeholder="最多3位数"/>
                            公里,不足起步公里按起步公里收费</br></br>
                            超过起步里程后每公里加收  <input type="text" onblur="checkIsYuan(this)" name="num3" id="num3" value='${json.num3!}' class="form-control newWidth" placeholder="最多3位数"/>元
<!--                            <span id="min">,<input type="text" onblur="checkIsMinute(this)" name="num5" id="num5" class="form-control newWidth" placeholder="最多3位数"/>-->
<!--                            分钟</span>-->
                            超过起步里程后每公里加收  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                            <button style="background-color: #1c53c1; width: 60px; height: 30px; border-style: none; border-radius: 5px; color: white; font-size: 20px;" onclick="addPriceButton()">+</button>
                            <div id="mileage_div">
                                @if(null != json.mileageList){
                                    @for(obj in json.mileageList){
                                    <div style="padding: 10px 0px;">
                                        <input onblur="checkIsYuan(this)" name="mileage" class="form-control newWidth mileage" value="${obj.mileage}" placeholder="最多3位数"/>公里以上,每公里加收
                                        <input onblur="checkIsYuan(this)" name="price" class="form-control newWidth price" value="${obj.price}" placeholder="最多3位数"/>元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                        <button style="background-color: white; width: 60px;height: 30px;border-radius: 5px;color: red;font-size: 15px;border: none;" onclick="remPriceButton(this)">删除</button>
                                    </div>
                                    @}
                                @}
                            </div>
                        </div>
                    </div>
                    <div class="form-group waitFee">
@@ -60,7 +72,7 @@
                        <div class="col-sm-10">
                            单程载客行驶
                            <input type="text" onblur="checkIsGongLi(this)" name="num4" id="num4"  value='${json.num4!}' class="form-control newWidth" placeholder="最多3位数" oninput="change(this)"/>
                            (不含<input type="text" id="buhan" value="${json.num4!}" disabled style="border: none;width:45px;text-align:center">公里)超出部分收取空驶费,每公里加收<input type="text" onblur="checkIsYuan(this)" name="num5" id="num5"  value='${json.num5!}' class="form-control newWidth" placeholder="最多3位数"/>元
                            (不含<input id="buhan" value="${json.num4!}" disabled style="border: none;width:45px;text-align:center">公里)超出部分收取空驶费,每公里加收<input type="text" onblur="checkIsYuan(this)" name="num5" id="num5"  value='${json.num5!}' class="form-control newWidth" placeholder="最多3位数"/>元
                        </div>
                    </div>
                    <div class="form-group waitFee">
@@ -108,7 +120,6 @@
        var b = false;
        var waitFee = '{';
        // waitFee = waitFee + '"num1":"'+$("#num1").val()+'",';
        $('.waitFee input[type="text"]').each(function(){
            var value = $(this).val();
            if('' == value){
@@ -118,8 +129,23 @@
            }
            waitFee = waitFee + '"'+$(this)[0].name+'":"'+value+'",';
        });
        waitFee = waitFee + '"mileageList":['
        $('#mileage_div').children('div').each(function (){
            waitFee = waitFee + "{"
                $(this).children('input').each(function (){
                var value = $(this).val();
                if('' == value){
                    b = true;
                    Feng.info("请填写完整配置");
                    return
                }
                waitFee = waitFee + '"'+$(this)[0].name+'":"'+value+'",';
            })
            waitFee = waitFee.substring(0,waitFee.length-1);
            waitFee = waitFee + "},"
        })
        waitFee = waitFee.substring(0,waitFee.length-1);
        waitFee += '}';
        waitFee += ']}';
        console.log(btoa(waitFee));
        window.parent.document.getElementById("zc_price").value = btoa(waitFee);
@@ -174,6 +200,16 @@
            $(obj).val('');
        }
    }
    function addPriceButton(){
        $('#mileage_div').append('<div style="padding: 10px 0px;">' +
            '<input onblur="checkIsYuan(this)" name="mileage" class="form-control newWidth mileage" placeholder="最多3位数"/>公里以上,每公里加收' +
            '<input onblur="checkIsYuan(this)" name="price" class="form-control newWidth price" placeholder="最多3位数"/>元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' +
            '<button style="background-color: white; width: 60px;height: 30px;border-radius: 5px;color: red;font-size: 15px;border: none;" onclick="remPriceButton(this)">删除</button>' +
            '</div>')
    }
    function remPriceButton(e){
        $(e).parent('div').remove();
    }
</script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
@@ -137,7 +137,7 @@
/**
 * 提交添加
 */
TLineInfoDlg.addSubmit = function() {
TLineInfoDlg.addSubmit = function(e) {
    this.clearData();
    this.collectData();
@@ -173,9 +173,10 @@
        Feng.error("请至少设置一条班次设置");
        return;
    }
    $(e).attr('disabled','disabled'); //点击后就禁用,若想再次点击需刷新页面;
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/tLine/add", function(data){
        $(e).removeAttr('disabled');
        if(data.status == 200){
            Feng.success("添加成功!");
            window.parent.TLine.table.refresh();
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
@@ -3,6 +3,10 @@
import com.stylefeng.guns.modular.crossCity.server.ILineService;
import com.stylefeng.guns.modular.crossCity.warpper.LineWarpper;
import com.stylefeng.guns.modular.system.dao.CarMapper;
import com.stylefeng.guns.modular.system.model.Car;
import com.stylefeng.guns.modular.system.model.Company;
import com.stylefeng.guns.modular.system.service.ICompanyService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import io.swagger.annotations.Api;
@@ -29,6 +33,12 @@
    @Autowired
    private ILineService lineService;
    @Autowired
    private CarMapper carMapper;
    @Autowired
    private ICompanyService companyService;
    @ResponseBody
@@ -49,6 +59,17 @@
        }
    }
    @ResponseBody
    @RequestMapping(value = "/base/line/confirm", method = RequestMethod.POST)
    @ApiOperation(value = "判断当前是否需要摆渡车", tags = {"用户端-跨城"}, notes = "")
    public ResultUtil confirm(Integer carId){
        Car car = carMapper.selectById(carId);
        Company company = companyService.selectById(car.getCompanyId());
        return ResultUtil.success(company.getIsNeedFerry());
    }
//    @ResponseBody
//    @RequestMapping(value = "/base/line/scanCodeQueryLines", method = RequestMethod.POST)
//    @ApiOperation(value = "扫码获取线路信息", tags = {"用户端-跨城"}, notes = "")
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
@@ -43,7 +43,7 @@
        left join t_car_model f on (d.carModelId = f.id)
        left join t_car_service g on (d.id = g.carId and g.`type` = 3)
        left join t_line_price h on (g.serverCarModelId = h.serverCarModelId and a.lineId = h.lineId)
        where 1 = 1
        where b.driverId in (select driverId from t_driver_work where state = 1 and type like '%3%')
        <if test="null != lineId">
            and a.lineId = #{lineId}
        </if>
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -55,6 +55,8 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -1033,7 +1035,7 @@
                }else{
                    tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isCompensate\":\"1\",\"isPromote\":\"0\"}");
                }
                tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
                tradeOrderCreateData.setCharge(new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_EVEN));
                tradeOrderCreateData.setOrderNo("CC" + orderCrossCity.getId());
                tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID());
                tradeOrderCreateData.setPartnerPayId(orderCrossCity.getTravelId());
@@ -1057,6 +1059,7 @@
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                    goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
                }
                goodsInfo.add(goodsInfoRequest);
                tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -1066,7 +1069,7 @@
                    return ResultUtil.error(payInfo.getRetMsg());
                }
                orderCrossCity.setIsCreated(1);
                orderCrossCity.setTrackId(tradeOrderCreate.getOrderInfo().getOrderId());
                orderCrossCity.setTravelId(tradeOrderCreate.getOrderInfo().getOrderId());
                resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
            }else{
                //拉起支付
@@ -1083,6 +1086,7 @@
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                    goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
                }
                goodsInfo.add(goodsInfoRequest);
                tradePayOff1Data.setGoodsInfo(goodsInfo);
@@ -1092,7 +1096,7 @@
                }
                resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
            }
            this.updateById(orderCrossCity);
            paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, "", 1);//添加预支付数据
            //创建定时任务查询订单支付状态
@@ -1114,9 +1118,9 @@
                        request.setDriverId(driver.getEmpId().toString());
                        ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
                        TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
                        if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
                        if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
                            GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
                            getPaymentInfoDataRequest1.setPartnerPayId(orderCrossCity1.getTravelId());
                            getPaymentInfoDataRequest1.setPartnerPayId(orderCrossCity.getTravelId());
                            GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
                            payOrderCrossCityCallback(orderCrossCity1.getId(), getPaymentInfo1.getPayId(), 1, null);
                            break;
@@ -2179,21 +2183,6 @@
        } else {
            return ResultUtil.error("请完善后台取消规则设置");
        }
        //中台修改订单状态
        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
        request1.setOrderId(orderCrossCity.getTravelId());
        request1.setStatus(orderCrossCity.getState());
        if (null != orderCrossCity.getDriverId()) {
            Driver driver2 = driverService.selectById(orderCrossCity.getDriverId());
            Company company = iCompanyService.selectById(driver2.getCompanyId());
            request1.setDriverId(driver2.getEmpId().toString());
            request1.setSupplierShopId(company.getEnterCode());
        }
        if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) {
            Driver driver2 = driverService.selectById(orderCrossCity.getPromotionDriverId());
            request1.setPromoterId(driver2.getEmpId().toString());
        }
        OrderUtil.modifyTravelItinerary(request1);
        //未支付的情况取消订单
        if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
@@ -2251,15 +2240,15 @@
                        }});
                        TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
                        //退款通知
                        OrderRefundNoticeRequest request1 = new OrderRefundNoticeRequest();
                        request1.setOrderId(orderCrossCity.getTravelId());
                        request1.setRefundPayNum(tradeOrderRefund.getRefundId());
                        request1.setRefundType("5");
                        request1.setApplyRefundCharge(new BigDecimal(orderCrossCity.getPayMoney()));
                        request1.setActualRefundCharge(new BigDecimal(orderCrossCity.getPayMoney()));
                        request1.setRefundAccount(userInfo.getOnconUUID());
                        request1.setRemark("跨城订单取消退款");
                        OrderUtil.orderRefundNotice(request1);
                        OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
                        request2.setOrderId(orderCrossCity.getTravelId());
                        request2.setRefundPayNum(tradeOrderRefund.getRefundId());
                        request2.setRefundType("5");
                        request2.setApplyRefundCharge(BigDecimal.valueOf(orderCrossCity.getPayMoney()));
                        request2.setActualRefundCharge(BigDecimal.valueOf(orderCrossCity.getPayMoney()));
                        request2.setRefundAccount(userInfo.getOnconUUID());
                        request2.setRemark("跨城订单取消退款");
                        OrderUtil.orderRefundNotice(request2);
                        //添加交易明细
                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, id);
                    }
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -48,6 +48,8 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -1982,15 +1984,6 @@
        if (orderPrivateCar.getState() != 7) {
            return ResultUtil.error("订单不在待支付状态,不允许支付", new ArrayList<>());
        }
        //查询支付信息
        GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
        getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
        GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
        String status = getPaymentInfo.getStatus();
        if("1".equals(status) || "2".equals(status)){
            payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
            return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
        }
        Integer uid = orderPrivateCar.getUserId();
        Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
@@ -2225,6 +2218,7 @@
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                    goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
                }
                goodsInfo.add(goodsInfoRequest);
                tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -2236,6 +2230,15 @@
                orderPrivateCar.setIsCreated(1);
                resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
            }else{
                //查询支付信息
                GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
                getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
                GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
                String status = getPaymentInfo.getStatus();
                if("1".equals(status) || "2".equals(status)){
                    payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
                    return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
                }
                //拉起支付
                TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
                tradePayOff1Data.setPartnerPayId(orderPrivateCar.getTravelId());
@@ -2250,6 +2253,7 @@
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                    goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
                }
                goodsInfo.add(goodsInfoRequest);
                tradePayOff1Data.setGoodsInfo(goodsInfo);
@@ -2280,7 +2284,7 @@
                        request.setDriverId(driver.getEmpId().toString());
                        ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
                        TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
                        if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
                        if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
                            GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
                            getPaymentInfoDataRequest1.setPartnerPayId(orderPrivateCar1.getTravelId());
                            GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
@@ -15,6 +16,7 @@
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -226,7 +228,7 @@
        JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费
        Double num1 = jsonObject.getDouble("num1");
        Double num2 = jsonObject.getDouble("num2");
        Double num3 = jsonObject.getDouble("num3");
        JSONArray mileageList = jsonObject.getJSONArray("mileageList");
        Double num4 = jsonObject.getDouble("num4");
        Double num5 = jsonObject.getDouble("num5");
        String num6 = jsonObject.getString("num6");
@@ -292,7 +294,28 @@
            BigDecimal multiply = BigDecimal.ZERO;
            BigDecimal yt = BigDecimal.ZERO;
            if (d > num2) {
                multiply = new BigDecimal(d).subtract(new BigDecimal(num2)).multiply(new BigDecimal(num3));
                List<MileageObject> list = new ArrayList<>();
                for (int i = 0; i < mileageList.size(); i++) {
                    MileageObject mileageObject = mileageList.getObject(i, MileageObject.class);
                    list.add(mileageObject);
                }
                //根据配置的里程倒序排序
                list.sort(new Comparator<MileageObject>() {
                    @Override
                    public int compare(MileageObject o1, MileageObject o2) {
                        return o1.getMileage().compareTo(o2.getMileage()) * -1;
                    }
                });
                //计算每个阶段的增加费用
                Double last = d;
                for (int i = 0; i < list.size(); i++) {
                    Double mileage = list.get(i).getMileage();
                    Double price = list.get(i).getPrice();
                    if(d > mileage){
                        multiply = new BigDecimal(last).subtract(new BigDecimal(mileage)).multiply(new BigDecimal(price));
                        last = mileage;
                    }
                }
                if (d > num4) {
                    yt = new BigDecimal(d).subtract(new BigDecimal(num4)).multiply(new BigDecimal(num5));
                }
@@ -428,4 +451,12 @@
        }
        return map;
    }
    @Data
    public static class MileageObject{
        private Double mileage;
        private Double price;
    }
}
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -107,7 +107,7 @@
        try {
            List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("isDelete", 1)
                    .eq("state", 7).eq("abnormal", 1)
                    .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 1 HOUR)"));
                    .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
            for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
                SendSmsRequest request = new SendSmsRequest();
@@ -120,7 +120,7 @@
            }
            List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("isDelete", 1)
                    .eq("state", 7).eq("abnormal", 1)
                    .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 1 HOUR)"));
                    .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
            for (OrderTaxi orderTaxi : orderTaxis) {
                UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
                SendSmsRequest request = new SendSmsRequest();
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -81,6 +81,11 @@
        if (!"0".equals(retCode)) {
            log.error("【企业增加员工】请求失败:" + result);
            String retMsg = jsonObject.getString("retMsg");
            if(retMsg.contains("员工昵称已存在")){
                request.setEmpName(request.getEmpName() + Double.valueOf(Math.random() * 100).intValue());
                request.setEmpNickname(request.getEmpName());
                return saveStaffNode(request);
            }
            retMsg = retMsg.substring(retMsg.indexOf("{"));
            jsonObject = JSON.parseObject(retMsg);
            return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -691,11 +691,11 @@
    /**
     * 订单退款
     * @param request
     * @param request1
     * @return
     */
    public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request) {
        request.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5400004" : "5401007");
    public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request1) {
        request1.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
        //请求路径
        String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderRefund";
        //私钥文件
@@ -707,6 +707,13 @@
        Map<String, Object> contentMap = new HashMap<String, Object>();
        Date nowdate = new Date();
        SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
        TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
        request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1726529285264269312");
        request.setAppId(qianYunTongConfig.getAppkey());
        request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 6);
        request.setRequestId(UUIDUtil.getRandomCode());
        request.setData(request1);
        String timeStamp = date.format(nowdate);
        String messageId = UUIDUtil.getRandomCode();
@@ -727,11 +734,18 @@
        }
        JSONObject refundInfo = jsonObject.getJSONObject("busiResp").getJSONObject("refundInfo");
        String retCode = refundInfo.getString("retCode");
        if(!"".equals(retCode)){
        if(!"0".equals(retCode)){
            log.error("【订单退款】失败:" + refundInfo.getString("retMsg"));
            throw new RuntimeException("【订单退款】失败:" + refundInfo.getString("retMsg"));
        }
        TradeOrderRefund tradeOrderRefund = refundInfo.getObject("data", TradeOrderRefund.class);
        JSONObject object = refundInfo.getJSONObject("object");
        String retCode1 = object.getString("retCode");
        if(!"000000".equals(retCode1)){
            log.error("【订单退款】失败:" + object.getString("retMsg"));
            throw new RuntimeException("【订单退款】失败:" + object.getString("retMsg"));
        }
        TradeOrderRefund tradeOrderRefund = object.getObject("data", TradeOrderRefund.class);
        return tradeOrderRefund;
    }
@@ -782,10 +796,10 @@
     * @param orderId
     */
    public static void tradeOrderCancel(String orderId) {
        TradeOrderCancelRequest request = new TradeOrderCancelRequest();
        request.setScene("TRAFFIC");
        request.setMhltiCenterAppId("52270015");
        request.setOrderId(orderId);
        TradeOrderCancelRequest request1 = new TradeOrderCancelRequest();
        request1.setScene("TRAFFIC");
        request1.setMhltiCenterAppId("52270015");
        request1.setOrderId(orderId);
        //请求路径
        String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCancel";
@@ -799,6 +813,13 @@
        Date nowdate = new Date();
        SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
        TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
        request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1963507067318833152");
        request.setAppId(qianYunTongConfig.getAppkey());
        request.setConfigVersion(1);
        request.setRequestId(UUIDUtil.getRandomCode());
        request.setData(request1);
        String timeStamp = date.format(nowdate);
        String messageId = UUIDUtil.getRandomCode();
        contentMap.put(SystemParameterNames.getAppKey(), appKey);
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
@@ -36,4 +36,8 @@
     * 业务类型,默认传10408
     */
    private String businessType;
    /**
     * 结算日期yyyyMMdd
     */
    private String settleDate;
}
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
@@ -45,7 +45,7 @@
     */
    private Integer serviceType;
    /**
     * 订单状态。1、待支付,11、已完结(可结算)
     * 订单状态。1、待支付,3=已支付,11、已完结(可结算),16、已取消,32、已全部退款
     */
    private Integer orderStatus;
    /**
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -49,6 +49,8 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -1629,6 +1631,7 @@
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                    goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
                }
                goodsInfo.add(goodsInfoRequest);
                tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -1654,6 +1657,7 @@
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                    goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
                }
                goodsInfo.add(goodsInfoRequest);
                tradePayOff1Data.setGoodsInfo(goodsInfo);
UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
  port: 8006
guns:
  swagger-open: true              #是否开启swagger (true/false)
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
UserQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
  port: 8006
guns:
  swagger-open: true              #是否开启swagger (true/false)
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java
@@ -37,9 +37,9 @@
        public List<SwaggerResource> get() {
            List resource=new ArrayList<>();
            //name可以随便写,location前缀要与zuul配置的path一致。zuul开了token验证,要加上token,否则不用加?token=1
            resource.add(swaggerResource("user","/user-server/v2/api-docs","1.0"));
            resource.add(swaggerResource("driver","/driver-server/v2/api-docs","1.0"));
            resource.add(swaggerResource("dispatch","/dispatch-server/v2/api-docs","1.0"));
//            resource.add(swaggerResource("user","/user-server/v2/api-docs","1.0"));
//            resource.add(swaggerResource("driver","/driver-server/v2/api-docs","1.0"));
//            resource.add(swaggerResource("dispatch","/dispatch-server/v2/api-docs","1.0"));
            return resource;
        }