| | |
| | | @Autowired |
| | | private IAccountChangeDetailService accountChangeDetailService; |
| | | |
| | | @Autowired |
| | | private IRevenueService revenueService; |
| | | |
| | | private Map<String, Timer> timerMap = new HashMap<>(); |
| | | |
| | | |
| | |
| | | city = null != weatherCity ? weatherCity.getId().toString() : ""; |
| | | } |
| | | order = getOrderPrice(1, d, 0, order, city); |
| | | order.setHallOrder(0); |
| | | order.setState(null == order.getDriverId() ? 101 : 102); |
| | | order.setStatus(1); |
| | | order.setCreateTime(new Date()); |
| | |
| | | pageNum = (pageNum - 1) * pageSize; |
| | | List<HallOrderList> hallOrderLists = this.baseMapper.queryOrderHall(pageNum, pageSize); |
| | | hallOrderLists.forEach(hallOrderList -> { |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(hallOrderList.getStartLng() + "," + hallOrderList.getStartLat(), hallOrderList.getEndLng() + "," + hallOrderList.getEndLat()); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | hallOrderList.setCurrentDistance(wgs84); |
| | | hallOrderList.setCurrentDistance(0D); |
| | | if(ToolUtil.isNotEmpty(hallOrderList.getEndLng())){ |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(hallOrderList.getStartLng() + "," + hallOrderList.getStartLat(), hallOrderList.getEndLng() + "," + hallOrderList.getEndLat()); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | hallOrderList.setCurrentDistance(wgs84); |
| | | } |
| | | }); |
| | | return hallOrderLists; |
| | | } |
| | |
| | | Integer num10 = JSON.parseObject(systemConfig.getContent()).getInteger("num10"); |
| | | if (num10 > 0) { |
| | | AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); |
| | | accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); |
| | | accountChangeDetail.setUserType(2); |
| | | accountChangeDetail.setUserId(order.getDriverId()); |
| | | accountChangeDetail.setType(2); |
| | |
| | | orderInfoWarpper.setBalance(appUser.getAccountBalance()); |
| | | orderInfoWarpper.setCurrentDistance(0D); |
| | | String value = redisUtil.getValue("DRIVER" + uid); |
| | | orderInfoWarpper.setPickUpTime(0); |
| | | if(ToolUtil.isNotEmpty(value)){ |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | orderInfoWarpper.setCurrentDistance(wgs84); |
| | | orderInfoWarpper.setCurrentDistance(null == wgs84 ? 0d : wgs84); |
| | | Map<String, String> distance1 = MapUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value, 0); |
| | | orderInfoWarpper.setPickUpTime(Integer.valueOf(distance1.get("duration")) / 60); |
| | | } |
| | | return orderInfoWarpper; |
| | | } |
| | |
| | | Integer num5 = JSON.parseObject(systemConfig.getContent()).getInteger("num5"); |
| | | if(num5 > 0){ |
| | | AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); |
| | | accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); |
| | | accountChangeDetail.setUserType(2); |
| | | accountChangeDetail.setUserId(order.getDriverId()); |
| | | accountChangeDetail.setType(2); |
| | |
| | | Integer num8 = JSON.parseObject(systemConfig.getContent()).getInteger("num8"); |
| | | if(num8 > 0){ |
| | | AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); |
| | | accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); |
| | | accountChangeDetail.setUserType(2); |
| | | accountChangeDetail.setUserId(order.getDriverId()); |
| | | accountChangeDetail.setType(2); |
| | |
| | | } |
| | | Driver driver1 = driverService.selectById(appUser.getInviterId()); |
| | | AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); |
| | | accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); |
| | | accountChangeDetail.setUserType(2); |
| | | accountChangeDetail.setUserId(driver1.getId()); |
| | | accountChangeDetail.setType(2); |
| | |
| | | pageNum = (pageNum - 1) * pageSize; |
| | | return this.baseMapper.queryInviteList(driverId, time, pageNum, pageSize); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取业绩汇总数据 |
| | | * @param driverId |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public PerformanceSummaryWarpper queryPerformanceSummary(Integer driverId, Integer type, String time, Integer dayType) throws Exception { |
| | | Driver driver = driverService.selectById(driverId); |
| | | PerformanceSummaryWarpper performanceSummaryWarpper = new PerformanceSummaryWarpper(); |
| | | BeanUtils.copyProperties(driver, performanceSummaryWarpper); |
| | | Double amount = revenueService.queryTotalAmount(driverId); |
| | | performanceSummaryWarpper.setGrossIncome(amount); |
| | | List<Integer> state = Arrays.asList(107, 108, 109); |
| | | int count = this.selectCount(new EntityWrapper<Order>().eq("driverId", driverId).in("state", state).eq("status", 1)); |
| | | performanceSummaryWarpper.setTotalOrder(count); |
| | | List<PerformanceRankingWarpper> list = new ArrayList<>(); |
| | | int position = 0; |
| | | Double d = 0D; |
| | | List<PerformanceRankingWarpper> performanceRankingWarppers = null; |
| | | if(type == 1){//订单量 |
| | | performanceRankingWarppers = this.baseMapper.queryDriverRank(time, dayType); |
| | | } |
| | | if(type == 2){//佣金 |
| | | performanceRankingWarppers = revenueService.queryDriverRank(2, time, dayType); |
| | | } |
| | | if(type == 3){//收入 |
| | | performanceRankingWarppers = revenueService.queryDriverRank(null, time, dayType); |
| | | } |
| | | for (int i = 0; i < performanceRankingWarppers.size(); i++) { |
| | | PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i); |
| | | Double amountOfData = performanceRankingWarpper.getAmountOfData(); |
| | | if(amountOfData.compareTo(d) != 0){ |
| | | position++; |
| | | d = amountOfData; |
| | | } |
| | | if(position <= 10){ |
| | | list.add(performanceRankingWarpper); |
| | | } |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | } |
| | | performanceSummaryWarpper.setPosition(position); |
| | | performanceSummaryWarpper.setList(list); |
| | | return performanceSummaryWarpper; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取我的业绩 |
| | | * @param driverId |
| | | * @param time |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public List<MyAchievementWarpper> queryMyAchievement(Integer driverId, String time) throws Exception { |
| | | List<MyAchievementWarpper> list = new ArrayList<>(); |
| | | time = time.replaceAll("-", "年") + "月"; |
| | | //订单量 |
| | | List<PerformanceRankingWarpper> performanceRankingWarppers = performanceRankingWarppers = this.baseMapper.queryDriverRank(time, 2); |
| | | int position = 0; |
| | | Double d = 0D; |
| | | for (int i = 0; i < performanceRankingWarppers.size(); i++) { |
| | | PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i); |
| | | Double amountOfData = performanceRankingWarpper.getAmountOfData(); |
| | | if(amountOfData.compareTo(d) != 0){ |
| | | position++; |
| | | d = amountOfData; |
| | | } |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | } |
| | | MyAchievementWarpper myAchievementWarpper = new MyAchievementWarpper(); |
| | | myAchievementWarpper.setType("订单"); |
| | | myAchievementWarpper.setTime(time); |
| | | myAchievementWarpper.setRank(position); |
| | | myAchievementWarpper.setAmountOfData(d); |
| | | list.add(myAchievementWarpper); |
| | | |
| | | //收入 |
| | | performanceRankingWarppers = revenueService.queryDriverRank(null, time, 2); |
| | | position = 0; |
| | | d = 0D; |
| | | for (int i = 0; i < performanceRankingWarppers.size(); i++) { |
| | | PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i); |
| | | Double amountOfData = performanceRankingWarpper.getAmountOfData(); |
| | | if(amountOfData.compareTo(d) != 0){ |
| | | position++; |
| | | d = amountOfData; |
| | | } |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | } |
| | | myAchievementWarpper = new MyAchievementWarpper(); |
| | | myAchievementWarpper.setType("收入"); |
| | | myAchievementWarpper.setTime(time); |
| | | myAchievementWarpper.setRank(position); |
| | | myAchievementWarpper.setAmountOfData(d); |
| | | list.add(myAchievementWarpper); |
| | | |
| | | //佣金 |
| | | performanceRankingWarppers = revenueService.queryDriverRank(2, time, 2); |
| | | position = 0; |
| | | d = 0D; |
| | | for (int i = 0; i < performanceRankingWarppers.size(); i++) { |
| | | PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i); |
| | | Double amountOfData = performanceRankingWarpper.getAmountOfData(); |
| | | if(amountOfData.compareTo(d) != 0){ |
| | | position++; |
| | | d = amountOfData; |
| | | } |
| | | if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ |
| | | break; |
| | | } |
| | | } |
| | | myAchievementWarpper = new MyAchievementWarpper(); |
| | | myAchievementWarpper.setType("佣金"); |
| | | myAchievementWarpper.setTime(time); |
| | | myAchievementWarpper.setRank(position); |
| | | myAchievementWarpper.setAmountOfData(d); |
| | | list.add(myAchievementWarpper); |
| | | return list; |
| | | } |
| | | } |