| | |
| | | */ |
| | | @Override |
| | | public Map<String, Object> queryPhone(Double lat, Double lnt) throws Exception { |
| | | ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt); |
| | | ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, null); |
| | | if(null == reverseGeocode){ |
| | | System.err.println("获取地址异常"); |
| | | return null; |
| | |
| | | driver.setQrCode(QrCodeUtil.getQrCode(uid)); |
| | | driverMapper.updateById(driver); |
| | | } |
| | | //减去本周的收入 |
| | | return map; |
| | | } |
| | | |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<ActivityWarpper> queryHistoryList(Integer uid, Date time, Integer language) throws Exception { |
| | | List<ActivityWarpper> list = new ArrayList<>(); |
| | | Map<String, Date> date = dateUtil.getStartAndEndDate(time); |
| | | List<DriverActivityHistory> driverActivityHistories = driverActivityHistoryMapper.queryHistoryList(uid, null, null, date.get("startTime"), date.get("endTime")); |
| | | |
| | | SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | for(DriverActivityHistory dah : driverActivityHistories){ |
| | | ActivityWarpper activityWarpper = new ActivityWarpper(); |
| | | switch (dah.getType()){ |
| | | case 1://邀请司机注册 |
| | | DriverActivityRegistered driverActivityRegistered = driverActivityRegisteredMapper.selectById(dah.getActivityId()); |
| | | activityWarpper.setId(driverActivityRegistered.getId()); |
| | | activityWarpper.setContent(language == 1 ? "邀请司机注册奖励GHS" + driverActivityRegistered.getMoney() : |
| | | language == 2 ? " Invite drivers to register for a reward of GHS" + driverActivityRegistered.getMoney(): |
| | | "Invitez les chauffeurs à s’inscrire pour une récompense de GHS" + driverActivityRegistered.getMoney()); |
| | | break; |
| | | case 2://邀请用户注册 |
| | | DriverActivityRegistered driverActivityRegistered1 = driverActivityRegisteredMapper.selectById(dah.getActivityId()); |
| | | activityWarpper.setId(driverActivityRegistered1.getId()); |
| | | activityWarpper.setContent(language == 1 ? "邀请用户注册奖励GHS" + driverActivityRegistered1.getMoney() : |
| | | language == 2 ? "Invite users to register for a reward of GHS" + driverActivityRegistered1.getMoney(): |
| | | "Invitez les utilisateurs à s’inscrire pour une récompense de GHS" + driverActivityRegistered1.getMoney()); |
| | | break; |
| | | case 3://累计在线 |
| | | DriverActivityOnline driverActivityOnline = driverActivityOnlineMapper.selectById(dah.getActivityId()); |
| | | activityWarpper.setId(driverActivityOnline.getId()); |
| | | StringBuffer sb = new StringBuffer(language == 1 ? "今日" : |
| | | language == 2 ? "Today, stay online receiving orders of " : "Aujourd’hui, reste en ligne à recevoir des commandes "); |
| | | DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), driverActivityOnline.getType(), 0); |
| | | Integer hour = 0; |
| | | if(null != query){ |
| | | hour = Long.valueOf(query.getDuration() / 3600).intValue(); |
| | | } |
| | | switch (driverActivityOnline.getType()){ |
| | | case 1: |
| | | sb.append(language == 1 ? "打车" : language == 2 ? "ride" : "de course"); |
| | | break; |
| | | case 2: |
| | | sb.append("出租车"); |
| | | continue; |
| | | case 3: |
| | | sb.append("城际出行"); |
| | | continue; |
| | | case 4: |
| | | sb.append(language == 1 ? "包裹" : language == 2 ? "delivery" : "de livraison"); |
| | | break; |
| | | } |
| | | String str = language == 1 ? "累计在线" +driverActivityOnline.getOnline() + "小时奖励GHS" +driverActivityOnline.getMoney(): |
| | | language == 2 ? " for " + driverActivityOnline.getOnline() + " hours to get a reward of GHS" + driverActivityOnline.getMoney(): |
| | | " pendant " + driverActivityOnline.getOnline() + " heures afin d'obtenir une récompense de GHS" + driverActivityOnline.getMoney(); |
| | | activityWarpper.setContent(sb.append(str).toString()); |
| | | activityWarpper.setCarryOut((dah.getCarryOut() == 2 || hour > driverActivityOnline.getOnline()) ? driverActivityOnline.getOnline() + "/" +driverActivityOnline.getOnline() : hour + "/" + driverActivityOnline.getOnline()); |
| | | break; |
| | | case 4://订单量 |
| | | DriverActivityOrder driverActivityOrder = driverActivityOrderMapper.selectById(dah.getActivityId()); |
| | | activityWarpper.setId(driverActivityOrder.getId()); |
| | | activityWarpper.setContent(language == 1 ? "今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励GHS" + driverActivityOrder.getMoney(): |
| | | language == 2 ? "Today " + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + ", complete " + driverActivityOrder.getOrderNum() + " orders for a reward of GHS" + driverActivityOrder.getMoney() : |
| | | "Aujourd’hui de " + driverActivityOrder.getStart() + " à " + driverActivityOrder.getEnd() + ", complétez " + driverActivityOrder.getOrderNum() + " commandes pour une récompense de GHS" + driverActivityOrder.getMoney()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date start = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getStart() + ":00"); |
| | | Date end = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getEnd() + ":59"); |
| | | Integer integer = orderService.queryOrderNum(uid, start, end); |
| | | activityWarpper.setCarryOut(integer.compareTo(driverActivityOrder.getOrderNum()) > 0 ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum()); |
| | | break; |
| | | } |
| | | list.add(activityWarpper); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception { |
| | | public List<Driver> queryIdleDriver(Integer userId, Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception { |
| | | List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); |
| | | String tripId = redisUtil.getValue("trip" + userId); |
| | | List<Driver> list = new ArrayList<>(); |
| | | for(Driver driver : drivers){ |
| | | String value = redisUtil.getValue("DRIVER" + driver.getId()); |
| | | if(ToolUtil.isNotEmpty(value)){ |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0])); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]), tripId); |
| | | if(null != distancematrix){ |
| | | if(distancematrix.getDistance() < (distance * 1000)){ |
| | | list.add(driver); |