示例#1
0
  public ArrayList<com.application.baatna.bean.Session> getUsersNotEquals(int userId) {

    ArrayList<com.application.baatna.bean.Session> users = null;

    Session session = null;
    User user;
    boolean shouldAdd = true;
    UserDAO dao = new UserDAO();
    User currentUser = new User();
    currentUser = dao.getUserDetails(userId);
    try {

      session = DBUtil.getSessionFactory().openSession();
      Transaction transaction = session.beginTransaction();
      users = new ArrayList<com.application.baatna.bean.Session>();

      com.application.baatna.bean.Session userSession = dao.getAllSessions(userId).get(0);
      StringBuilder sql = new StringBuilder();
      sql.append("Select * from SESSION");
      boolean locationEnabled = false;
      if (userSession != null
          && userSession.getLocation() != null
          && userSession.getLocation().getLatitude() != 0
          && userSession.getLocation().getLatitude() != 0) {
        locationEnabled = true;
        sql.append(" order by");
        sql.append(
            " 3956 * 2 * ASIN(SQRT(POWER(SIN((:latitude - SESSION.LATITUDE) * pi()/180 / 2), 2) + COS(:latitude * pi()/180) * COS(SESSION.LATITUDE * pi()/180) * POWER(SIN((:longitude - SESSION.LONGITUDE) * pi()/180 / 2), 2)))");
      }
      sql.append(" limit 500");
      SQLQuery query = session.createSQLQuery(sql.toString());
      query.addEntity(com.application.baatna.bean.Session.class);
      if (locationEnabled) {
        query.setParameter("latitude", userSession.getLocation().getLatitude());
        query.setParameter("longitude", userSession.getLocation().getLongitude());
      }
      java.util.List results2 = (java.util.List) query.list();

      for (Iterator iterator = ((java.util.List) results2).iterator(); iterator.hasNext(); ) {
        com.application.baatna.bean.Session currentSesion =
            (com.application.baatna.bean.Session) iterator.next();
        if (CommonLib.isFacebookCheckValid) {
          // get the current user.
          String userSql = "Select * from USER Where USERID = :user_id";
          SQLQuery userQuery = session.createSQLQuery(userSql.toString());
          userQuery.addEntity(User.class);
          userQuery.setParameter("user", userSession.getUserId());
          java.util.List userResults = (java.util.List) userQuery.list();

          if (userResults != null && !userResults.isEmpty()) {
            user = (User) userResults.get(0);
            if (user != null) {
              shouldAdd =
                  Friends.isFriendOnFacebook(
                      user.getFacebookId(), currentUser.getFacebookId(), user.getFacebookToken());
            }
          }
        }
        if (shouldAdd) {
          users.add(currentSesion);
        }

        // users.add(currentSesion);
      }

      transaction.commit();
      session.close();

    } catch (HibernateException e) {
      System.out.println(e.getMessage());
      System.out.println("error");
    } finally {
      if (session != null && session.isOpen()) session.close();
    }
    return users;
  }