From cbc307682c0ca48d59e7b539d6a2ae58d49cabe1 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 20 八月 2025 22:33:02 +0800 Subject: [PATCH] refactor(driver): 重构司机端收入查询逻辑 --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 87 +++++++++++++++++++++++-------------------- 1 files changed, 46 insertions(+), 41 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 a880df4..5e4db32 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 @@ -156,7 +156,7 @@ 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())); + String value = (String) redisTemplate.opsForValue().get("dache: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(); @@ -173,7 +173,7 @@ 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())); + String value = (String) redisTemplate.opsForValue().get("dache: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(); @@ -401,8 +401,9 @@ driver.setSex(registeredWarpper.getSex()); driver.setIdCard(registeredWarpper.getIdCard()); + driver.setArea(registeredWarpper.getArea()); - driver.setAreaCode(registeredWarpper.getAreaCode()); + driver.setAreaCode(registeredWarpper.getPlaceOfEmployment()); driver.setCity(registeredWarpper.getCity()); driver.setCityCode(registeredWarpper.getCityCode()); driver.setProvince(registeredWarpper.getProvince()); @@ -412,7 +413,7 @@ return ResultUtil.error("请选择服务商"); } - String code = registeredWarpper.getAreaCode(); + String code = registeredWarpper.getPlaceOfEmployment(); Company query = companyCityService.query(code); if(null == query){ return ResultUtil.error("选择从业地暂未开通业务"); @@ -1329,7 +1330,7 @@ String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32)); - redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); + redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s); LoginWarpper loginWarpper = new LoginWarpper(); @@ -1425,7 +1426,7 @@ String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32)); - redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); + redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s); LoginWarpper loginWarpper = new LoginWarpper(); @@ -1511,7 +1512,7 @@ String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); redisTemplate.opsForValue().set(driver.getPhone(), s.substring(s.length() - 32)); - redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); + redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s); LoginWarpper loginWarpper = new LoginWarpper(); @@ -1619,9 +1620,9 @@ Driver driver = driverMapper.selectById(id); String key = (String) redisTemplate.opsForValue().get(driver.getPhone()); redisTemplate.delete(key);//删除个人信息数据 - redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 - redisTemplate.delete("DRIVER_" + id);//清除存储的token - redisTemplate.delete("DEVICE_" + id);//清除车载端登录的标识 + redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 + redisTemplate.delete("dache:DRIVER_" + id);//清除存储的token + redisTemplate.delete("dache:DEVICE_" + id);//清除车载端登录的标识 return ResultUtil.success(); } @@ -1629,17 +1630,17 @@ 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", LocalDate.now().toString())); + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); // 跨城订单 - List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); // 出租车订单 - List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().ne("state", 10).eq("driverId", uid).like("insertTime", LocalDate.now().toString())); + List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().in("state", Arrays.asList(7, 8, 9)).eq("driverId", uid).like("insertTime", LocalDate.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(); + double sum2 = orderTaxis.stream().filter(e->e.getOrderMoney()!=null).mapToDouble(OrderTaxi::getOrderMoney).sum(); driverIndexVo.setTodayOrderMoney(new BigDecimal(sum +sum1+sum2)); @@ -1695,33 +1696,37 @@ 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)); +// // 总的订单数 +// 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)); + List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("objectId", uid).eq("objectType", 2).eq("type", 2)); + + +// double sum = orderPrivateCars.stream().mapToDouble(OrderPrivateCar::getOrderMoney).sum(); +// double sum1 = orderCrossCities.stream().mapToDouble(OrderCrossCity::getOrderMoney).sum(); +// double sum2 = orderTaxis.stream().mapToDouble(OrderTaxi::getOrderMoney).sum(); + double sum4 = incomes.stream().mapToDouble(Income::getMoney).sum(); + driverOrderDataVo.setAllOrderMoney(new BigDecimal(sum4)); - double count = orderPrivateCars.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderPrivateCar::getOrderMoney).sum(); - double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum(); - double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum(); - driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count+count1+count2)); + double count = incomes.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(Income::getMoney).sum(); +// double count1 = orderCrossCities.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderCrossCity::getOrderMoney).sum(); +// double count2 = orderTaxis.stream().filter(e -> simpleDateFormat.format(e.getInsertTime()).equals(LocalDate.now().toString())).mapToDouble(OrderTaxi::getOrderMoney).sum(); + driverOrderDataVo.setTodayOrderMoney(new BigDecimal(count)); 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)); + double count3 = incomes.stream().filter(e -> simpleDateFormat1.format(e.getInsertTime()).equals(month)).mapToDouble(Income::getMoney).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)); String sTime=null; String eTime=null; @@ -1743,11 +1748,11 @@ 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<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.selectList(new EntityWrapper<OrderPrivateCar>().in("state",Arrays.asList(8,9)).eq("promotionDriverId", uid).isNotNull("successTime")); // 跨城订单 - List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().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).isNotNull("successTime")); // 出租车订单 - List<OrderTaxi> orderTaxis = orderTaxiMapper.selectList(new EntityWrapper<OrderTaxi>().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).isNotNull("successTime")); BigDecimal sum = orderPrivateCars.stream().map(OrderPrivateCar::getPromotionMoney).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -1794,16 +1799,16 @@ */ private void singlePointLogin(Integer id) { //开始验证当前账号是否在别处登录 - String value = (String) redisTemplate.opsForValue().get("DRIVER_" + id); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + id); if (ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线(如果是车载端不需要下线) //开始清除redis中无效的数据 Driver driver = driverMapper.selectById(id); - String key = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone()); + String key = (String) redisTemplate.opsForValue().get("dache:DRIVER_" + driver.getPhone()); if(ToolUtil.isNotEmpty(key)){ redisTemplate.delete(key);//删除个人信息数据 } - redisTemplate.delete("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 - redisTemplate.delete("DRIVER_" + id);//清除存储的token + redisTemplate.delete("dache:DRIVER_" + driver.getPhone());//删除后台冻结相关缓存 + redisTemplate.delete("dache:DRIVER_" + id);//清除存储的token } } @@ -1830,8 +1835,8 @@ usernamePasswordToken, simpleAuthenticationInfo); String s = JwtTokenUtil.generateToken(String.valueOf(driver.getId())); redisTemplate.opsForValue().set(s.substring(s.length() - 32), String.valueOf(driver.getId()), 7, TimeUnit.DAYS); - redisTemplate.opsForValue().set("DRIVER_" + driver.getPhone(), s.substring(s.length() - 32)); - redisTemplate.opsForValue().set("DRIVER_" + driver.getId(), s); + redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getPhone(), s.substring(s.length() - 32)); + redisTemplate.opsForValue().set("dache:DRIVER_" + driver.getId(), s); return s; } -- Gitblit v1.7.1