Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceItemVisitDAO.java =================================================================== diff -u -r7086ae4ff560703d2a2859eed9d3b4c25dfdc44e -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceItemVisitDAO.java (.../ResourceItemVisitDAO.java) (revision 7086ae4ff560703d2a2859eed9d3b4c25dfdc44e) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/ResourceItemVisitDAO.java (.../ResourceItemVisitDAO.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.tool.rsrc.dao; import java.util.List; +import java.util.Map; import org.lamsfoundation.lams.tool.rsrc.dto.Summary; import org.lamsfoundation.lams.tool.rsrc.model.ResourceItemVisitLog; @@ -35,22 +36,12 @@ public int getUserViewLogCount(Long sessionId, Long userUid); /** - * Return list which contains following element:
+ * Return list which contains key pair which key is resource item uid, value is number view. * - *
  • session_id
  • - *
  • session_name
  • - *
  • ResourceItem.uid
  • - *
  • ResourceItem.item_type
  • - *
  • ResourceItem.create_by_author
  • - *
  • ResourceItem.is_hide
  • - *
  • ResourceItem.title
  • - *
  • User.login_name
  • - *
  • count(resource_item_uid)
  • - * * @param contentId * @return */ - public List getSummary(Long contentId); + public Map getSummary(Long contentId); public List getResourceItemLogBySession(Long sessionId,Long itemUid); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceItemVisitDAOHibernate.java =================================================================== diff -u -r6c690985b6e09c8097ee965deaac72752fd3c97f -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceItemVisitDAOHibernate.java (.../ResourceItemVisitDAOHibernate.java) (revision 6c690985b6e09c8097ee965deaac72752fd3c97f) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceItemVisitDAOHibernate.java (.../ResourceItemVisitDAOHibernate.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -24,7 +24,9 @@ package org.lamsfoundation.lams.tool.rsrc.dao.hibernate; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.lamsfoundation.lams.tool.rsrc.dao.ResourceItemVisitDAO; import org.lamsfoundation.lams.tool.rsrc.dto.Summary; @@ -45,14 +47,11 @@ private static final String FIND_VIEW_COUNT_BY_USER = "select count(*) from " + ResourceItemVisitLog.class.getName() + " as r where r.sessionId=? and r.user.userId =?"; - private static final String FIND_SUMMARY = "select v.sessionId, s.sessionName,i.uid,i.type ,i.createByAuthor" + - ", i.hide, i.title, u.loginName, count(v.resourceItem) from " + private static final String FIND_SUMMARY = "select v.resourceItem.uid, count(v.resourceItem) from " + ResourceItemVisitLog.class.getName() + " as v , " - + ResourceItem.class.getName() + " as i, " - + ResourceUser.class.getName() + " as u, " + ResourceSession.class.getName() + " as s, " + Resource.class.getName() + " as r " - +" where i.uid = v.resourceItem.uid and i.createBy.uid = u.uid and v.sessionId = s.sessionId " + +" where v.sessionId = s.sessionId " +" and s.resource.uid = r.uid " +" and r.contentId =? " +" group by v.sessionId, v.resourceItem.uid "; @@ -71,24 +70,12 @@ return ((Integer) list.get(0)).intValue(); } - public List getSummary(Long contentId) { + public Map getSummary(Long contentId) { List result = getHibernateTemplate().find(FIND_SUMMARY,contentId); - List summaryList = new ArrayList(result.size()); - int idx=0; + Map summaryList = new HashMap (result.size()); for(Object[] list : result){ - Summary sum = new Summary(); - idx=0; - sum.setSessionId((Long) list[idx++]); - sum.setSessionName((String) list[idx++]); - sum.setItemUid((Long) list[idx++]); - sum.setItemType((Short) list[idx++]); - sum.setItemCreateByAuthor((Boolean) list[idx++]); - sum.setItemHide((Boolean) list[idx++]); - sum.setItemTitle((String) list[idx++]); - sum.setUsername((String) list[idx++]); - sum.setViewNumber((Integer) list[idx++]); - summaryList.add(sum); + summaryList.put((Long)list[0],(Integer)list[1]); } return summaryList; Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java =================================================================== diff -u -ra7fe4acafd3937e08142a8066b573d4fc9752a0b -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java (.../ResourceSessionDAOHibernate.java) (revision a7fe4acafd3937e08142a8066b573d4fc9752a0b) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dao/hibernate/ResourceSessionDAOHibernate.java (.../ResourceSessionDAOHibernate.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -32,7 +32,7 @@ public class ResourceSessionDAOHibernate extends BaseDAOHibernate implements ResourceSessionDAO{ private static final String FIND_BY_SESSION_ID = "from " + ResourceSession.class.getName() + " as p where p.sessionId=?"; - private static final String FIND_BY_CONTENT_ID = "from " + ResourceSession.class.getName() + " as p where p.resource.uid=?"; + private static final String FIND_BY_CONTENT_ID = "from " + ResourceSession.class.getName() + " as p where p.resource.contentId=?"; public ResourceSession getSessionBySessionId(Long sessionId) { List list = getHibernateTemplate().find(FIND_BY_SESSION_ID,sessionId); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java =================================================================== diff -u -r4cf31b82e939a11c1f054a96ff07a650300b289f -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java (.../Summary.java) (revision 4cf31b82e939a11c1f054a96ff07a650300b289f) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/dto/Summary.java (.../Summary.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -61,7 +61,35 @@ //true: initial group item, false, belong to some group. private boolean isInitGroup; public Summary(){} - + /** + * Contruction method for monitoring summary function. + * + * Don't not set isInitGroup and viewNumber fields + * @param sessionName + * @param item + * @param isInitGroup + */ + public Summary(Long sessionId, String sessionName, ResourceItem item){ + this.sessionId = sessionId; + this.sessionName = sessionName; + this.itemUid = item.getUid(); + this.itemType = item.getType(); + this.itemCreateByAuthor = item.isCreateByAuthor(); + this.itemHide = item.isHide(); + this.itemTitle = item.getTitle(); + this.username = item.getCreateBy() == null?"":item.getCreateBy().getLoginName(); + this.url = item.getUrl(); + this.fileUuid = item.getFileUuid(); + this.fileVersionId = item.getFileVersionId(); + } + /** + * Contruction method for export profolio function. + * + * Don't not set sessionId and viewNumber fields + * @param sessionName + * @param item + * @param isInitGroup + */ public Summary(String sessionName, ResourceItem item,boolean isInitGroup){ this.sessionName = sessionName; this.itemUid = item.getUid(); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java =================================================================== diff -u -r4cf31b82e939a11c1f054a96ff07a650300b289f -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 4cf31b82e939a11c1f054a96ff07a650300b289f) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java (.../IResourceService.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -98,7 +98,7 @@ ResourceItem getResourceItemByUid(Long itemUid); - List getSummary(Long contentId); + List getSummary(Long contentId); List getUserListBySessionItem(Long sessionId, Long itemUid); Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java =================================================================== diff -u -r4cf31b82e939a11c1f054a96ff07a650300b289f -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 4cf31b82e939a11c1f054a96ff07a650300b289f) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -32,6 +32,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; import org.apache.commons.lang.StringUtils; @@ -300,12 +301,20 @@ log.error("Failed get ResourceSession by ID [" +sessionId + "]"); return null; } - - //add resource items from ResourceSession + //initial resource items list List itemList = new ArrayList(); - //get this session's all resource items - Set resList =session.getResourceItems(); + Set resList = session.getResource().getResourceItems(); for(ResourceItem item:resList){ + if(item.isCreateByAuthor()){ + Summary sum = new Summary(session.getSessionName(),item,false); + itemList.add(sum); + } + } + + //get this session's all resource items + Set sessList =session.getResourceItems(); + for(ResourceItem item:sessList){ + //to skip all item create by author if(!item.isCreateByAuthor()){ Summary sum = new Summary(session.getSessionName(),item,false); itemList.add(sum); @@ -433,8 +442,47 @@ public ResourceItem getResourceItemByUid(Long itemUid) { return resourceItemDao.getByUid(itemUid); } - public List getSummary(Long contentId) { - return resourceItemVisitDao.getSummary(contentId); + public List getSummary(Long contentId) { + List groupList = new ArrayList(); + List group = new ArrayList(); + + //get all item which is accessed by user + Map visitCountMap = resourceItemVisitDao.getSummary(contentId); + + Resource resource = resourceDao.getByContentId(contentId); + Set resItemList = resource.getResourceItems(); + + //get all sessions in a resource and retrieve all resource items under this session + //plus initial resource items by author creating (resItemList) + List sessionList = resourceSessionDao.getByContentId(contentId); + for(ResourceSession session:sessionList){ + //one new group for one session. + group = new ArrayList(); + //firstly, put all initial resource item into this group. + for(ResourceItem item:resItemList){ + Summary sum = new Summary(session.getSessionId(),session.getSessionName(),item); + //set viewNumber according visit log + if(visitCountMap.containsKey(item.getUid())) + sum.setViewNumber(visitCountMap.get(item.getUid()).intValue()); + group.add(sum); + } + //get this session's all resource items + Set sessItemList =session.getResourceItems(); + for(ResourceItem item : sessItemList){ + //to skip all item create by author + if(!item.isCreateByAuthor()){ + Summary sum = new Summary(session.getSessionId(),session.getSessionName(),item); + //set viewNumber according visit log + if(visitCountMap.containsKey(item.getUid())) + sum.setViewNumber(visitCountMap.get(item.getUid()).intValue()); + group.add(sum); + } + } + groupList.add(group); + } + + return groupList; + } public List getUserListBySessionItem(Long sessionId, Long itemUid) { Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java =================================================================== diff -u -r6c690985b6e09c8097ee965deaac72752fd3c97f -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 6c690985b6e09c8097ee965deaac72752fd3c97f) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -115,20 +115,7 @@ HttpServletResponse response) { Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); IResourceService service = getResourceService(); - List list = service.getSummary(contentId); - - // grouping the all item according to different group - List groupList = new ArrayList(); - Long sId = new Long(-1); - List group = new ArrayList(); - for (Summary sum : list) { - if (!sId.equals(sum.getSessionId())) { - group = new ArrayList(); - groupList.add(group); - sId = sum.getSessionId(); - } - group.add(sum); - } + List groupList = service.getSummary(contentId); //put it into HTTPSession request.getSession().setAttribute(ResourceConstants.ATTR_SUMMARY_LIST, groupList); Index: lams_tool_larsrc/web/pages/monitoring/statistic.jsp =================================================================== diff -u -ra7fe4acafd3937e08142a8066b573d4fc9752a0b -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/web/pages/monitoring/statistic.jsp (.../statistic.jsp) (revision a7fe4acafd3937e08142a8066b573d4fc9752a0b) +++ lams_tool_larsrc/web/pages/monitoring/statistic.jsp (.../statistic.jsp) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -56,10 +56,17 @@ - - - - ${item.viewNumber} + + + + + + ${item.viewNumber} + + + 0 + + Index: lams_tool_larsrc/web/pages/monitoring/summary.jsp =================================================================== diff -u -ra7fe4acafd3937e08142a8066b573d4fc9752a0b -r6f9ce8030c9939df344a3aa7f5894116491a90d8 --- lams_tool_larsrc/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision a7fe4acafd3937e08142a8066b573d4fc9752a0b) +++ lams_tool_larsrc/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 6f9ce8030c9939df344a3aa7f5894116491a90d8) @@ -64,10 +64,17 @@ - - - - ${item.viewNumber} + + + + + + ${item.viewNumber} + + + 0 + +