From b219589d73f46bd98995bceb4caf16dadb56b869 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 12 九月 2025 20:30:13 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 4 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java | 77 +++ UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java | 5 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 24 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java | 69 ++- ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js | 5 DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java | 13 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html | 48 ++ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java | 53 +++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java | 19 DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml | 2 DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 39 + ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html | 5 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java | 352 ++++++++++++++++++++ ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml | 2 UserQYTTravel/guns-admin/src/main/resources/application-test.yml | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java | 17 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 4 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java | 21 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java | 18 - ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html | 16 UserQYTTravel/guns-admin/src/main/resources/application-prod.yml | 2 ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java | 21 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml | 2 DriverQYTTravel/guns-admin/src/main/resources/application-test.yml | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java | 8 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java | 5 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 47 +- ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 39 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 6 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java | 4 ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java | 6 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java | 35 + 40 files changed, 828 insertions(+), 158 deletions(-) diff --git a/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml b/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml index d2c6f43..aab39b2 100644 --- a/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml +++ b/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) diff --git a/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml b/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml index c32a571..69e1a88 100644 --- a/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml +++ b/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) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java index 6ac2b97..61f805f 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java @@ -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; diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index 0a36215..da50ac1 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -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); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java index 25dea7d..ccb71ad 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java +++ b/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); } diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml b/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml index afcaef7..364e895 100644 --- a/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml +++ b/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/ #图片服务器地址 diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml b/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml index 9e8d31f..ad9230c 100644 --- a/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml +++ b/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/ #图片服务器地址 diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java index c4a66e2..37bac06 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java @@ -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)); diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java index bf36247..33ca40d 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java +++ b/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()); diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java index 0fc8764..0fb36a9 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java +++ b/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#")); } diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java index 946aeb5..c7fa7d3 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java +++ b/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;", ">"); diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java index 0837007..c863de8 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java @@ -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); //添加交易明细 diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java index 848390c..0807929 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java +++ b/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); } diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml index 20954a2..90a10ed 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml +++ b/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 diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java index f765df7..467e507 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java +++ b/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; diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java index 61cf3e6..fa1fb03 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java +++ b/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; } diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java index ac47b6e..be6012d 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java +++ b/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); + } + } diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java index 88e4bb9..28c2683 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java @@ -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")); diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java index ec396fc..29be15d 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java +++ b/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); diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml b/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml index f75941d..163b453 100644 --- a/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml +++ b/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类中配置) 单位:秒 diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml b/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml index 22bbbc5..56aed10 100644 --- a/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml +++ b/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类中配置) 单位:秒 diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html index 9f6b6b5..d77054b 100644 --- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html +++ b/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"> diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html index 1a36c30..9076ca5 100644 --- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html +++ b/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> diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html index 2cf1237..eb525ff 100644 --- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html +++ b/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> diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html index a152350..4f2f370 100644 --- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html +++ b/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>--> + 超过起步里程后每公里加收 + <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位数"/>元 + <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位数"/>元 ' + + '<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> @} diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js index 4ead55d..6ccc7ac 100644 --- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js +++ b/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(); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java index 23b8ed9..95abc9e 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java +++ b/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 = "") diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml index 17bf4d0..21d6ebc 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml +++ b/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> diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index 495fdc8..0f1ac3b 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -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); } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 7172da0..e1756b2 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -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); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java index 04a97d7..cf75e07 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java +++ b/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; + + } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index 809878a..2356f32 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -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(); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java index e01832f..b724f16 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java @@ -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")); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java index daae9ea..bd5e2c3 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java +++ b/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); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java index b3d7f21..addf947 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java +++ b/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; } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java index 27ffc26..2de1651 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java +++ b/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; /** diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 056e1db..04b0101 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -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); diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml index bed8ffb..68b5a93 100644 --- a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml +++ b/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/ #图片服务器地址 diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml index 0ed2998..2f7eb7f 100644 --- a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml +++ b/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/ #图片服务器地址 diff --git a/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java b/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java index 564070d..3a1e339 100644 --- a/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java +++ b/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; } -- Gitblit v1.7.1