| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | incomeEntityWrapper.eq("type",2); |
| | | incomeEntityWrapper.isNotNull("money"); |
| | | if (start!=null){ |
| | | start = start + " 00:00:00"; |
| | | end = end + " 23:59:59"; |
| | | incomeEntityWrapper.ge("insertTime", start); |
| | | incomeEntityWrapper.le("insertTime", end); |
| | | } |
| | | |
| | | List<Income> incomes = incomeService.selectList( |
| | | incomeEntityWrapper |
| | | ); |
| | | List<Income> incomes = incomeService.selectList(incomeEntityWrapper); |
| | | EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>(); |
| | | driverEntityWrapper.isNotNull("driverId"); |
| | | if (start!=null){ |
| | |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | /** |
| | | * 司机收益统计 |
| | | * @author yxh |
| | | * @date 2021/4/2 17:35 |
| | | * @return java.lang.Object |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryDriverIncomeDataSum", method = RequestMethod.POST) |
| | | public Object queryDriverIncomeDataSum(String driverName, String time, Integer companyId){ |
| | | try { |
| | | String start = null; |
| | | String end = null; |
| | | if(ToolUtil.isNotEmpty(time)){ |
| | | start = time.split(" - ")[0]; |
| | | end = time.split(" - ")[1]; |
| | | } |
| | | List<Map<String, Object>> maps = driverService.queryDriverIncomeDataNoPage( driverName, start, end, companyId); |
| | | EntityWrapper<Income> incomeEntityWrapper = new EntityWrapper<>(); |
| | | incomeEntityWrapper.eq("type",2); |
| | | incomeEntityWrapper.isNotNull("money"); |
| | | if (start!=null){ |
| | | start = start + " 00:00:00"; |
| | | end = end + " 23:59:59"; |
| | | incomeEntityWrapper.ge("insertTime", start); |
| | | incomeEntityWrapper.le("insertTime", end); |
| | | } |
| | | |
| | | List<Income> incomes = incomeService.selectList(incomeEntityWrapper); |
| | | EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>(); |
| | | driverEntityWrapper.isNotNull("driverId"); |
| | | if (start!=null){ |
| | | driverEntityWrapper.ge("insertTime", start); |
| | | driverEntityWrapper.le("insertTime", end); |
| | | } |
| | | List<TOrderPrivateCar> tOrderPrivateCars = orderPrivateCarService.selectList(driverEntityWrapper); |
| | | |
| | | for (Map<String, Object> map : maps) { |
| | | Double driverMoney = 0.0; |
| | | Double platformMoney = 0.0; |
| | | |
| | | // 司机跑单收入 |
| | | List<Income> driver = incomes.stream().filter(e -> e.getUserType().equals(2) |
| | | &&map.get("id").toString().equals(e.getObjectId().toString())).collect(Collectors.toList()); |
| | | for (Income income : driver) { |
| | | driverMoney+=income.getMoney(); |
| | | } |
| | | String driverId = map.get("id").toString(); |
| | | // 查询司机订单 |
| | | List<Integer> orderIds = tOrderPrivateCars.stream().filter(e -> e.getDriverId().equals(Integer.parseInt(driverId))) |
| | | .map(TOrderPrivateCar::getId).collect(Collectors.toList()); |
| | | // 平台收入 |
| | | List<Income> platform = incomes.stream().filter(e -> e.getUserType().equals(1) |
| | | && orderIds.contains(e.getObjectId())).collect(Collectors.toList()); |
| | | for (Income income : platform) { |
| | | platformMoney+=income.getMoney(); |
| | | } |
| | | // driverMoney保留两位小数 |
| | | driverMoney = new BigDecimal(driverMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
| | | platformMoney = new BigDecimal(platformMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
| | | map.put("driverMoney", driverMoney); |
| | | map.put("platformMoney", platformMoney); |
| | | } |
| | | Map<String, Object> result = new HashMap<>(); |
| | | int totalOrderCount = maps.stream().mapToInt(e -> Integer.parseInt(e.get("privateCarTotalNum").toString())).sum(); |
| | | result.put("totalOrderCount", totalOrderCount); |
| | | double totalPayMoney = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("payMoney").toString())).sum(); |
| | | result.put("totalPayMoney", totalPayMoney); |
| | | double totalIncome = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("driverMoney").toString())).sum(); |
| | | result.put("totalIncome", totalIncome); |
| | | double totalPlatformMoney = maps.stream().mapToDouble(e -> Double.parseDouble(e.get("platformMoney").toString())).sum(); |
| | | result.put("totalPlatformMoney", totalPlatformMoney); |
| | | return result; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 导出司机收益排行 |