Revision: 3152
Author: seba.wagner
Date: Wed Mar 17 12:58:25 2010
Log: Add new function to query just the number of users in a Room
http://code.google.com/p/openmeetings/source/detail?r=3152
Added:
/trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomCountBean.java
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java
/trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomService.java
=======================================
--- /dev/null
+++
/trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomCountBean.java
Wed Mar 17 12:58:25 2010
@@ -0,0 +1,36 @@
+package org.openmeetings.axis.services;
+
+public class RoomCountBean {
+
+ private long roomId;
+ private String roomName;
+ private Integer roomCount;
+ private Integer maxUser;
+
+ public long getRoomId() {
+ return roomId;
+ }
+ public void setRoomId(long roomId) {
+ this.roomId = roomId;
+ }
+ public String getRoomName() {
+ return roomName;
+ }
+ public void setRoomName(String roomName) {
+ this.roomName = roomName;
+ }
+ public Integer getRoomCount() {
+ return roomCount;
+ }
+ public void setRoomCount(Integer roomCount) {
+ this.roomCount = roomCount;
+ }
+ public Integer getMaxUser() {
+ return maxUser;
+ }
+ public void setMaxUser(Integer maxUser) {
+ this.maxUser = maxUser;
+ }
+
+
+}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java
Sun Feb 7 04:21:38 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java
Wed Mar 17 12:58:25 2010
@@ -425,6 +425,55 @@
return null;
}
+ public List<Rooms> getRoomsByIds(List<Integer> roomIds){
+ try {
+ log.error("getRoomsByIds: roomtypes_id "+roomIds);
+
+ if (roomIds == null || roomIds.size() == 0) {
+ return new LinkedList<Rooms>();
+ }
+
+ String queryString = "SELECT r from Rooms r " +
+
"WHERE ";
+
+ queryString += "(";
+
+ int i=0;
+ for (Integer room_id : roomIds) {
+ if (i != 0) {
+ queryString += " OR ";
+ }
+ queryString += " rooms_id = " + room_id;
+ i++;
+ }
+
+ queryString += ")";
+
+ log.error("### getPublicRooms: create Query
"+queryString);
+
+ Object idf = HibernateUtil.createSession();
+ Session session = HibernateUtil.getSession();
+ Transaction tx = session.beginTransaction();
+
+ Query q = session.createQuery(queryString);
+
+ List ll = q.list();
+ tx.commit();
+ HibernateUtil.closeSession(idf);
+
+ log.error("### getPublicRooms: size Room List
"+ll.size());
+
+ return ll;
+
+
+ } catch (HibernateException ex) {
+ log.error("[getRoomsByIds] ", ex);
+ } catch (Exception ex2) {
+ log.error("[getRoomsByIds] ", ex2);
+ }
+ return null;
+ }
+
public List<Rooms> getPublicRoomsWithoutType(long user_level){
try {
if
(AuthLevelmanagement.getInstance().checkUserLevel(user_level)){
=======================================
---
/trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomService.java
Tue Mar 16 15:04:26 2010
+++
/trunk/singlewebapp/src/roomservice/org/openmeetings/axis/services/RoomService.java
Wed Mar 17 12:58:25 2010
@@ -2,6 +2,7 @@
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Iterator;
import java.util.LinkedList;
@@ -25,6 +26,7 @@
import org.openmeetings.app.hibernate.beans.rooms.Rooms;
import org.openmeetings.app.hibernate.beans.rooms.Rooms_Organisation;
import org.openmeetings.app.remote.ConferenceService;
+import org.openmeetings.app.remote.red5.ClientListManager;
import org.openmeetings.utils.math.CalendarPatterns;
public class RoomService {
@@ -191,6 +193,83 @@
throw new AxisFault(err.getMessage());
}
}
+
+ public RoomCountBean[] getRoomCounters(String SID, Integer roomId1,
Integer roomId2, Integer roomId3, Integer roomId4
+ , Integer roomId5, Integer roomId6, Integer roomId7, Integer roomId8,
Integer roomId9, Integer roomId10) throws AxisFault {
+ try {
+ Long users_id =
Sessionmanagement.getInstance().checkSession(SID);
+ Long user_level =
Usermanagement.getInstance().getUserLevelByID(users_id);
+
+ if
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)){
+
+ LinkedList<Integer> roomIds = new
LinkedList<Integer>();
+
+ if (roomId1 != null && roomId1 > 0) {
+ roomIds.push(roomId1);
+ }
+ if (roomId2 != null && roomId2 > 0) {
+ log.debug("roomId2 :: "+roomId2);
+ roomIds.push(roomId2);
+ }
+ if (roomId3 != null && roomId3 > 0) {
+ roomIds.push(roomId3);
+ }
+ if (roomId4 != null && roomId4 > 0) {
+ roomIds.push(roomId4);
+ }
+ if (roomId5 != null && roomId5 > 0) {
+ roomIds.push(roomId5);
+ }
+ if (roomId6 != null && roomId6 > 0) {
+ roomIds.push(roomId6);
+ }
+ if (roomId7 != null && roomId7 > 0) {
+ roomIds.push(roomId7);
+ }
+ if (roomId8 != null && roomId8 > 0) {
+ roomIds.push(roomId8);
+ }
+ if (roomId9 != null && roomId9 > 0) {
+ roomIds.push(roomId9);
+ }
+ if (roomId10 != null && roomId10 > 0) {
+ roomIds.push(roomId10);
+ }
+
+ List<Rooms> rooms =
Roommanagement.getInstance().getRoomsByIds(roomIds);
+
+ RoomCountBean[] roomsArray = new
RoomCountBean[rooms.size()];
+
+ int i = 0;
+ for (Rooms room : rooms) {
+
+ HashMap<String,RoomClient> map =
ClientListManager.getInstance().getClientListByRoom(room.getRooms_id());
+
+ //room.setCurrentusers(new
LinkedList<RoomClient>());
+
+// for (Iterator<String> iter = map.keySet().iterator();
iter.hasNext(); ) {
+//
room.getCurrentusers().add(map.get(iter.next()));
+// }
+
+ RoomCountBean rCountBean = new
RoomCountBean();
+
rCountBean.setRoomId(room.getRooms_id());
+ rCountBean.setRoomName(room.getName());
+
rCountBean.setMaxUser(room.getNumberOfPartizipants().intValue());
+ rCountBean.setRoomCount(map.size());
+
+ roomsArray[i] = rCountBean;
+ i++;
+ }
+
+ return roomsArray;
+ }
+
+ } catch (Exception err) {
+ log.error("[getRoomTypes]",err);
+ throw new AxisFault(err.getMessage());
+ }
+ return null;
+ }
public Rooms getRoomById(String SID, long rooms_id){
return ConferenceService.getInstance().getRoomById(SID,
rooms_id);
--
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en.