From dda9ffb76b585bb5bcf5282def424999448fa915 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 28 七月 2025 17:57:42 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 411 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 313 insertions(+), 98 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 8941aea..d40981b 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -1,28 +1,35 @@ package com.stylefeng.guns.modular.system.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.common.constant.JwtConstants; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.shiro.ShiroUser; import com.stylefeng.guns.core.util.JwtTokenUtil; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper; +import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; +import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; +import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.system.dao.*; import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.model.vo.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; -import com.stylefeng.guns.modular.system.util.qianyuntong.model.EditStaffNodeRequest; -import com.stylefeng.guns.modular.system.util.qianyuntong.model.GetStaffNodeRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo; import com.stylefeng.guns.modular.system.util.qianyuntong.model.SendSmsRequest; -import com.stylefeng.guns.modular.system.util.qianyuntong.model.StaffNodeInfo; import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.system.warpper.RegisteredWarpper; +import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; +import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; +import io.rong.models.response.TokenResult; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -37,6 +44,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; @@ -47,8 +55,6 @@ @Resource private DriverMapper driverMapper; - @Resource - private CompanyCityMapper companyCityMapper; @Resource private UserActivityInviteMapper userActivityInviteMapper; @@ -90,10 +96,9 @@ private RedisTemplate<String, Object> redisTemplate; @Autowired - private ALiSendSms aLiSendSms; - - @Autowired private ICompanyCityService companyCityService; + @Autowired + private IOpenCityService openCityService; @Autowired private GDFalconUtil gdFalconUtil; @@ -126,9 +131,6 @@ private CarServiceMapper carServiceMapper; @Autowired - private PushUtil pushUtil; - - @Autowired private IOrderLogisticsService orderLogisticsService; @Value("${pushMinistryOfTransport}") @@ -136,8 +138,52 @@ private String salt = "SA;d5#"; + @Resource + private OrderPrivateCarMapper orderPrivateCarMapper; + + @Resource + private OrderCrossCityMapper orderCrossCityMapper; + + @Resource + private OrderTaxiMapper orderTaxiMapper; + + @Autowired + private GeodesyUtil geodesyUtil; + @Override + public List<Driver> queryIdleDriver(Integer type, Double lon, Double lat, Double distance, Integer companyId) throws Exception { + List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId); + List<Driver> list = new ArrayList<>(); + for(Driver driver : drivers){ + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId())); + if(null != value){ + Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); + double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); + if(d < (distance * 1000)){ + list.add(driver); + } + } + } + return list; + } + + @Override + public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception { + List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); + List<Driver> list = new ArrayList<>(); + for(Driver driver : drivers){ + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(driver.getId())); + if(null != value){ + Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); + double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); + if(d < (distance * 1000)){ + list.add(driver); + } + } + } + return list; + } /** * 获取短信验证码 @@ -346,11 +392,24 @@ @Override public ResultUtil updateDriver(RegisteredWarpper registeredWarpper, Integer uid) throws Exception { Driver driver = this.selectById(uid); + //调用中台接口校验实名信息 + Boolean auth = UserUtil.idCardAuth(registeredWarpper.getName(), registeredWarpper.getIdCard()); + if(!auth){ + return ResultUtil.error("实名认证失败,请输入正确的姓名和身份证号码"); + } driver.setName(registeredWarpper.getName()); driver.setSex(registeredWarpper.getSex()); driver.setIdCard(registeredWarpper.getIdCard()); - String code = registeredWarpper.getPlaceOfEmployment(); + driver.setArea(registeredWarpper.getArea()); + driver.setAreaCode(registeredWarpper.getAreaCode()); + driver.setCity(registeredWarpper.getCity()); + driver.setCityCode(registeredWarpper.getCityCode()); + driver.setProvince(registeredWarpper.getProvince()); + driver.setProvinceCode(registeredWarpper.getProvinceCode()); + driver.setCompanyId(registeredWarpper.getCompanyId()); + + String code = registeredWarpper.getAreaCode(); Company query = companyCityService.query(code); if(null == query){ return ResultUtil.error("选择从业地暂未开通业务"); @@ -397,7 +456,7 @@ boolean b = true; for(String t : split){ for(DriverService driverService : list){ - if(driverService.getType() == Integer.valueOf(t)){ + if(driverService.getType().equals(Integer.valueOf(t))){ b = false; break; } @@ -448,14 +507,10 @@ */ @Override public Map<String, Object> queryPhone(String code) throws Exception { - Company query = companyCityService.query(code); Map<String, Object> map = new HashMap<>(); - if(null == query){ - map.put("phone", ""); - }else{ - Phone phone = phoneMapper.queryInfo(query.getId(), 2); - map.put("phone", null != phone ? phone.getPhone() : ""); - } + OpenCity openCity = openCityService.openCity1(code); + Phone phone = phoneMapper.queryInfo(openCity.getId(), 2, 2); + map.put("phone", null != phone ? phone.getPhone() : ""); return map; } @@ -475,14 +530,10 @@ } Company company = companyMapper.selectById(driver.getCompanyId()); //查询中台员工数据 - GetStaffNodeRequest request = new GetStaffNodeRequest(); - request.setEmpId(driver.getEmpId()); - request.setEntercode(company.getEnterCode()); - request.setMobile(company.getPrincipalPhone()); - StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request); - if (null == staffNode || staffNode.getIsValid().equals("0")) { - return ResultUtil.error("账号未注册"); - } +// List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver.getPhone(), company.getEnterCode()); +// if (null == userInfoByPhone || userInfoByPhone.size() == 0) { +// return ResultUtil.error("账号未注册"); +// } if (ToolUtil.isNotEmpty(driver.getIdCard()) && driver.getAuthState() == 1) { return ResultUtil.error("账号正在审核中,请耐心等待"); @@ -508,11 +559,13 @@ loginWarpper.setToken(token); loginWarpper.setAppid(UUIDUtil.getRandomCode()); loginWarpper.setState(ToolUtil.isEmpty(driver.getIdCard()) ? 1 : 0); - + TokenResult token1 = RongCloudUtil.getToken(driver.getId().toString(), driver.getName(), driver.getHeadImgUrl()); + loginWarpper.setRongYunToken(token1.getToken()); + //创建高德猎鹰的终端数据 - String tid = gdFalconUtil.createTerminal(phone); - loginWarpper.setServerId(gdFalconUtil.getServerId()); - loginWarpper.setTerminalId(tid); +// String tid = gdFalconUtil.createTerminal(phone); +// loginWarpper.setServerId(gdFalconUtil.getServerId()); +// loginWarpper.setTerminalId(tid); return ResultUtil.success(loginWarpper); } @@ -581,6 +634,10 @@ driverWorkMapper.updateById(driverWork); driver.setState(1); + // 更新车辆使用状态 + carService.updateUseState(uid); + + new Thread(new Runnable() { @Override public void run() { @@ -597,6 +654,18 @@ return ResultUtil.error("车辆正在使用中"); } } + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -644,6 +713,9 @@ driverWorkMapper.updateById(driverWork); driver.setState(1); + // 更新车辆使用状态 + carService.updateUseState(uid); + new Thread(new Runnable() { @Override public void run() { @@ -653,6 +725,18 @@ } }).start(); }else{ + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -791,31 +875,9 @@ } Driver driver1 = this.selectById(uid); Company company = companyMapper.selectById(driver1.getCompanyId()); - GetStaffNodeRequest request = new GetStaffNodeRequest(); - request.setEmpId(driver1.getEmpId()); - request.setEntercode(driver1.getEntercode()); - request.setMobile(driver1.getPhone()); - StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request); - if ("0".equals(staffNode.getIsValid())) { - return ResultUtil.error("无效的司机账号"); - } - EditStaffNodeRequest editStaffNodeRequest = new EditStaffNodeRequest(); - editStaffNodeRequest.setEmpId(staffNode.getEmpId()); - editStaffNodeRequest.setMobile(company.getPrincipalPhone()); - editStaffNodeRequest.setEntercode(company.getEnterCode()); - editStaffNodeRequest.setEnterId(staffNode.getEnterId()); - editStaffNodeRequest.setEmpName(staffNode.getEmpName()); - editStaffNodeRequest.setEmpNickname(staffNode.getEmpNickname()); - editStaffNodeRequest.setLoginNo(staffNode.getLoginNo()); - editStaffNodeRequest.setMphone(phone); - editStaffNodeRequest.setEmail(staffNode.getEmail()); - editStaffNodeRequest.setDeptId(staffNode.getDeptId()); - editStaffNodeRequest.setPositionId(1); - editStaffNodeRequest.setSuperLevel(0); - editStaffNodeRequest.setHideMobile(0); - Boolean editStaffNode = EmployeeUtil.editStaffNode(editStaffNodeRequest); - if (!editStaffNode) { - return ResultUtil.error("修改手机号码失败"); + List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver1.getPhone(), company.getEnterCode()); + if (null == userInfoByPhone || userInfoByPhone.size() == 0) { + return ResultUtil.error("账号未注册"); } driver1.setAccount(phone); @@ -867,9 +929,16 @@ return ResultUtil.error("还在服务中,不能更换"); } // boolean idle = carService.idle(carId); -// if(!idle){ -// return ResultUtil.error("车辆已被绑定了"); -// } + // 修改是否别司机在使用 + boolean idle = carService.useState(carId,uid); + if(!idle){ + return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆"); + } + // 将所有绑定他的车 =null + carService.updateUseState(carId,uid); + Car car = carService.selectById(carId); + car.setUseDriverId(uid); + carService.updateById( car); driver.setCarId(carId); this.updateById(driver); return ResultUtil.success(); @@ -883,47 +952,31 @@ * @throws Exception */ @Override - public Map<String, Object> queryPhone(Integer uid) throws Exception { + public Map<String, Object> queryPhone(Integer uid, String code) throws Exception { Driver driver = this.selectById(uid); - Company company = companyMapper.selectById(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( - driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); + OpenCity openCity = openCityService.openCity1(code); + Company company = companyMapper.selectById(driver.getCompanyId()); Map<String, Object> map = new HashMap<>(); if(company.getType() == 3){//加盟商 - Phone phone = phoneMapper.queryInfo(company.getId(), 2); + map.put("branch", ""); + Phone phone = phoneMapper.queryInfo(openCity.getId(), 2, 2); map.put("franchisee", null != phone ? phone.getPhone() : ""); - company = companyMapper.selectById(company.getSuperiorId()); - if(null != company){ - phone = phoneMapper.queryInfo(company.getId(), 2); - map.put("branch", null != phone ? phone.getPhone() : ""); - }else{ - map.put("branch", ""); - } - company = companyMapper.selectById(company.getSuperiorId()); - if(null != company){ - phone = phoneMapper.queryInfo(company.getId(), 2); - map.put("platform", null != phone ? phone.getPhone() : ""); - }else{ - map.put("platform", ""); - } + phone = phoneMapper.queryInfo(openCity.getId(), 2, 1); + map.put("platform",null != phone ? phone.getPhone() : ""); return map; } if(company.getType() == 2){//分公司 map.put("franchisee", ""); - Phone phone = phoneMapper.queryInfo(company.getId(), 2); + Phone phone = phoneMapper.queryInfo(openCity.getId(), 2, 2); map.put("branch", null != phone ? phone.getPhone() : ""); - company = companyMapper.selectById(company.getSuperiorId()); - if(null != company){ - phone = phoneMapper.queryInfo(company.getId(), 2); - map.put("platform",null != phone ? phone.getPhone() : ""); - }else{ - map.put("platform", ""); - } + phone = phoneMapper.queryInfo(openCity.getId(), 2, 1); + map.put("platform",null != phone ? phone.getPhone() : ""); return map; } if(company.getType() == 1){//平台 map.put("franchisee", ""); map.put("branch", ""); - Phone phone = phoneMapper.queryInfo(company.getId(), 2); + Phone phone = phoneMapper.queryInfo(company.getId(), 2, 1); map.put("platform", null != phone ? phone.getPhone() : ""); return map; } @@ -1282,9 +1335,9 @@ loginWarpper.setAppid(UUIDUtil.getRandomCode()); //创建高德猎鹰的终端数据 - String tid = gdFalconUtil.createTerminal(driver.getPhone()); - loginWarpper.setServerId(gdFalconUtil.getServerId()); - loginWarpper.setTerminalId(tid); +// String tid = gdFalconUtil.createTerminal(driver.getPhone()); +// loginWarpper.setServerId(gdFalconUtil.getServerId()); +// loginWarpper.setTerminalId(tid); return ResultUtil.success(loginWarpper); } @@ -1378,9 +1431,9 @@ loginWarpper.setAppid(UUIDUtil.getRandomCode()); //创建高德猎鹰的终端数据 - String tid = gdFalconUtil.createTerminal(driver.getPhone()); - loginWarpper.setServerId(gdFalconUtil.getServerId()); - loginWarpper.setTerminalId(tid); +// String tid = gdFalconUtil.createTerminal(driver.getPhone()); +// loginWarpper.setServerId(gdFalconUtil.getServerId()); +// loginWarpper.setTerminalId(tid); return ResultUtil.success(loginWarpper); } @@ -1464,9 +1517,9 @@ loginWarpper.setAppid(UUIDUtil.getRandomCode()); //创建高德猎鹰的终端数据 - String tid = gdFalconUtil.createTerminal(driver.getPhone()); - loginWarpper.setServerId(gdFalconUtil.getServerId()); - loginWarpper.setTerminalId(tid); +// String tid = gdFalconUtil.createTerminal(driver.getPhone()); +// loginWarpper.setServerId(gdFalconUtil.getServerId()); +// loginWarpper.setTerminalId(tid); return ResultUtil.success(loginWarpper); } @@ -1568,7 +1621,169 @@ redisTemplate.delete("DEVICE_" + id);//清除车载端登录的标识 return ResultUtil.success(); } - + + @Override + public DriverIndexVo queryHomeDataFromDriver(Integer uid) { + DriverIndexVo driverIndexVo = new DriverIndexVo(); + // 获取快车订单 + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString())); + // 跨城订单 + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString())); + // 出租车订单 + List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDateTime.now().toString())); + driverIndexVo.setTodayOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size()); + + + double sum = orderPrivateCars.stream().mapToDouble(OrderPrivateCar::getOrderMoney).sum(); + double sum1 = orderCrossCities.stream().mapToDouble(OrderCrossCity::getOrderMoney).sum(); + double sum2 = orderTaxis.stream().mapToDouble(OrderTaxi::getOrderMoney).sum(); + driverIndexVo.setTodayOrderMoney(new BigDecimal(sum +sum1+sum2)); + + + BigDecimal reduce = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal reduce1 = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal reduce2 = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().eq("promotionDriverId", uid).like("insertTime", LocalDateTime.now().toString())).stream().map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + driverIndexVo.setTodayPromotionMoney(reduce.add(reduce1).add(reduce2)); + return driverIndexVo; + }; + + + + @Override + public DriverOrderDataVo queryOrderDataFromDriver(String time, Page<DriverOrderDataNextVo> driverOrderDataVoPage, Integer uid) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM"); + // 总的订单数 + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().ne("state", 10).eq("driverId", uid)); + // 跨城订单 + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid)); + // 出租车订单 + List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid)); + DriverOrderDataVo driverOrderDataVo = new DriverOrderDataVo(); + driverOrderDataVo.setAllOrderNum(orderPrivateCars.size() + orderCrossCities.size() + orderTaxis.size()); + long count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count(); + long count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count(); + long count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).count(); + driverOrderDataVo.setTodayOrderNum((int) (count+count1+count2)); + + Date date = new Date(); + String month = simpleDateFormat1.format(date); + long count3 = orderPrivateCars.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).count(); + long count4 = orderCrossCities.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).count(); + long count5 = orderTaxis.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).count(); + driverOrderDataVo.setMonthOrderNum((int) (count3+count4+count5)); + + String sTime=null; + String eTime=null; + if(ToolUtil.isNotEmpty( time)){ + sTime=time.split(" - ")[0]+" 00:00:00"; + eTime=time.split(" - ")[1]+" 23:59:59"; + } + List<DriverOrderDataNextVo> driverOrderDataNextVoPage = driverServiceMapper.queryOrderDataFromDriver(sTime, eTime, driverOrderDataVoPage, uid); + driverOrderDataVoPage.setRecords(driverOrderDataNextVoPage); + driverOrderDataVo.setDriverOrderDataNextVos(driverOrderDataVoPage); + return driverOrderDataVo; + } + + + + @Override + public DriverOrderMoneyDataVo queryOrderMoneyFromDriver(String time, Page<DriverOrderDataNextVo> driverOrderDataVoPage, Integer uid) { + DriverOrderMoneyDataVo driverOrderDataVo = new DriverOrderMoneyDataVo(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM"); + // 总的订单数 + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("driverId", uid)); + // 跨城订单 + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state",Arrays.asList(8,9)).eq("driverId", uid)); + // 出租车订单 + List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state",Arrays.asList(8,9)).eq("driverId", uid)); + + + double sum = orderPrivateCars.stream().mapToDouble(OrderPrivateCar::getOrderMoney).sum(); + double sum1 = orderCrossCities.stream().mapToDouble(OrderCrossCity::getOrderMoney).sum(); + double sum2 = orderTaxis.stream().mapToDouble(OrderTaxi::getOrderMoney).sum(); + driverOrderDataVo.setAllOrderMoney(new BigDecimal(sum +sum1+sum2)); + + + + double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum(); + double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum(); + double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum(); + driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count+count1+count2)); + + + Date date = new Date(); + String month = simpleDateFormat1.format(date); + double count3 = orderPrivateCars.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderPrivateCar::getOrderMoney).sum(); + double count4 = orderCrossCities.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderCrossCity::getOrderMoney).sum(); + double count5 = orderTaxis.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(OrderTaxi::getOrderMoney).sum(); + driverOrderDataVo.setMonthOrderMoney(new BigDecimal(count3+count4+count5)); + + String sTime=null; + String eTime=null; + if(ToolUtil.isNotEmpty( time)){ + sTime=time.split(" - ")[0]+" 00:00:00"; + eTime=time.split(" - ")[1]+" 23:59:59"; + } + List<DriverOrderDataNextVo> driverOrderDataNextVoPage = driverServiceMapper.queryOrderMoneyDataFromDriver(sTime, eTime, driverOrderDataVoPage, uid); + List<DriverOrderDataNextVo> driverOrderDataNextVoPage1 = driverServiceMapper.queryOrderMoneyDataFromDriverAll(sTime, eTime, uid); + double sum3 = driverOrderDataNextVoPage1.stream().mapToDouble(DriverOrderDataNextVo::getOrderMoney).sum(); + driverOrderDataVo.setSearchMoney(new BigDecimal(sum3)); + driverOrderDataVoPage.setRecords(driverOrderDataNextVoPage); + driverOrderDataVo.setDriverOrderDataNextVos(driverOrderDataVoPage); + return driverOrderDataVo; + } + @Override + public DriverOrderPromotionDataVo queryOrderPromotionFromDriver(String time, Page<DriverOrderDataNextVo> driverOrderDataVoPage, Integer uid) { + DriverOrderPromotionDataVo driverOrderDataVo = new DriverOrderPromotionDataVo(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM"); + // 总的订单数 + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid)); + // 跨城订单 + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid)); + // 出租车订单 + List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid)); + + + BigDecimal sum = orderPrivateCars.stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum1 = orderCrossCities.stream().map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum2 = orderTaxis.stream().map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + driverOrderDataVo.setAllOrderMoney(sum.add(sum1).add(sum2)); + + + + BigDecimal count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDateTime.now().toString())).map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + driverOrderDataVo.setTodayOrderMoney(count.add(count1).add(count2)); + + + Date date = new Date(); + String month = simpleDateFormat1.format(date); + BigDecimal count3 = orderPrivateCars.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count4 = orderCrossCities.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).map(OrderCrossCity::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count5 = orderTaxis.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).map(OrderTaxi::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + driverOrderDataVo.setMonthOrderMoney(count3.add(count4).add(count5)); + + String sTime=null; + String eTime=null; + if(ToolUtil.isNotEmpty( time)){ + sTime=time.split(" - ")[0]+" 00:00:00"; + eTime=time.split(" - ")[1]+" 23:59:59"; + } + List<DriverOrderDataNextVo> driverOrderDataNextVoPage = driverServiceMapper.queryOrderPromotionFromDriver(sTime, eTime, driverOrderDataVoPage, uid); + List<DriverOrderDataNextVo> driverOrderDataNextVoPage1 =driverServiceMapper.queryOrderPromotionFromDriverAll(sTime, eTime, uid); + double sum3 = driverOrderDataNextVoPage1.stream().mapToDouble(DriverOrderDataNextVo::getOrderMoney).sum(); + driverOrderDataVo.setSearchMoney(new BigDecimal(sum3)); + + driverOrderDataVoPage.setRecords(driverOrderDataNextVoPage); + driverOrderDataVo.setDriverOrderDataNextVos(driverOrderDataVoPage); + return driverOrderDataVo; + } + + /** * 单点登录 * -- Gitblit v1.7.1