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