Commit f8460770 authored by pborate's avatar pborate

Updated account activity component.

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@180599 ce508802-f39f-4f6c-b175-0d175dae99d5
parent f06fe833
...@@ -3,32 +3,23 @@ package ibase.dashboard.common.hibernate.dao; ...@@ -3,32 +3,23 @@ package ibase.dashboard.common.hibernate.dao;
import java.io.File; import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Array;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.security.Timestamp; import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.ListIterator;
import java.util.Set;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.hibernate.HibernateException; import org.hibernate.HibernateException;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.hql.ast.origin.hql.parse.HQLParser.new_key_return;
import org.hibernate.hql.ast.origin.hql.parse.HQLParser.set_key_return;
import org.hibernate.query.Query; import org.hibernate.query.Query;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.omg.CORBA.CODESET_INCOMPATIBLE;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
...@@ -39,212 +30,340 @@ import ibase.dashboard.common.hibernate.bean.UserProfile; ...@@ -39,212 +30,340 @@ import ibase.dashboard.common.hibernate.bean.UserProfile;
import ibase.dashboard.common.hibernate.utility.HibernateUtil; import ibase.dashboard.common.hibernate.utility.HibernateUtil;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
import ibase.dashboard.common.hibernate.utility.*;
//import jersey.repackaged.com.google.common.collect.Lists; //import jersey.repackaged.com.google.common.collect.Lists;
//6DBC5A495F0F2C5371D59DC89EB06F41 //6DBC5A495F0F2C5371D59DC89EB06F41
public class AccountActivityDao public class AccountActivityDao
{ {
private static String siteTranDB = "DEFAULT"; private static String siteTranDB = "DEFAULT";
private GenericUtil genUtil = new GenericUtil();
/**
public String getUserActivityData(String loginCode, String profileId)throws Exception * @param loginCode - user logged in code.
* @param profileId -fetch from UserInfoBean
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate -till date user Data shown (which can not greater than todays date)
* @param startBattery-
* @return the method returns Final user Activity data Depends on profile_id.
*/
public JSONObject getUserActivityData(String loginCode, String profileId,String fromDate,String toDate, int startBattery)throws Exception
{ {
System.out.println("getUserActivityData>>>");
System.out.println("fromDate ["+fromDate+"] toDate ["+toDate+"]");
JSONObject activityDataFinal = new JSONObject(); JSONObject activityDataFinal = new JSONObject();
JSONArray activityDataFinalArray = new JSONArray(); JSONArray activityDataFinalArray = new JSONArray();
System.out.println("getUserActivityData>>>");
profileId=profileId.trim(); profileId=profileId.trim();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYYMMdd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYYMMdd");
String today = LocalDate.now().format(formatter); String today = LocalDate.now().format(formatter);
System.out.println("today date ["+today+"]"); System.out.println("today date ["+today+"]");
String format="dd-MM-yy";
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd-MM-YY"); String format1="YYYYMMdd";
String todayFormat = LocalDate.now().format(formatter1); List<String> dateListQuery= genUtil.getDateList(fromDate,toDate,format);
System.out.println("today1 date ["+todayFormat+"]"); System.out.println("dateListQuery::::"+dateListQuery);
List<String> dateListFile= genUtil.getDateList(fromDate,toDate,format1);
System.out.println("dateListFile::::"+dateListFile);
/* For ADMIN and ADM user all users data read */ /* For ADMIN and ADM user all users data read */
if( "ADMIN".equalsIgnoreCase(profileId) || "ADM".equalsIgnoreCase(profileId) ) if( "ADMIN".equalsIgnoreCase(profileId) || "ADM".equalsIgnoreCase(profileId) )
{ {
List<JSONObject> fileDataList= getUserActivityFileData(null,today); System.out.println("Account activity for Admin");
System.out.println("getUserActivityData>>>"+ fileDataList); activityDataFinal=prepareAdminUserData(activityDataFinal,activityDataFinalArray,fromDate,toDate);
HashMap<String, JSONObject> minMaxTimeList= getMinMaxTime(todayFormat,null); }
HashMap<String, JSONObject> minMaxBatteryStatus = getBatteryStatus(todayFormat); /* For Profile Ids except ADMIN and ADM */
List<String> loginUserList = getLoginUsers(todayFormat); else
System.out.println("loginUserList in Admin case:::::"+loginUserList); {
System.out.println("Account activity for user");
JSONObject activityData = new JSONObject(); activityDataFinal=prepareUserData(activityDataFinal,activityDataFinalArray,fromDate,toDate,loginCode,profileId,dateListFile);
JSONArray deviceTypeList= getDeviceType(loginUserList, todayFormat); }
return activityDataFinal;
JSONObject clientAppList= getClientApp(activityData,loginUserList, todayFormat); }
JSONObject osNameList= getOsName(activityData,loginUserList, todayFormat); /**
* @param minMaxTimeList - minimum login and maximum logout time on the basis of date and user
System.out.println(" activityData Device data object::::"+activityData); * @param minMaxBatteryStatus -minimum login battery status and maximum logout battery status on the basis of date and user
activityDataFinal.put("ACTIVITY_GRAPH_DATA",activityData); * @param usersId - userId with date.
* @return If user activity file not Present
if(fileDataList.isEmpty()) //No User perform userActivity. */
{ private JSONObject fileNotFoundUsers(JSONObject selfActivityData,HashMap<String, JSONObject> minMaxTimeList,HashMap<String, JSONObject> minMaxBatteryStatus,String usersId) throws JSONException {
if(loginUserList != null){ selfActivityData = getUserDetail(new JSONObject(), usersId);
for(String usersId : loginUserList){ selfActivityData = checkUserForMinMaxTime(selfActivityData, minMaxTimeList,usersId) ;
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,usersId); selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,usersId) ;
activityDataFinalArray.put(activityData); return selfActivityData;
} }
/**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate -till date user Data shown (which can not greater than todays date)
* @param userDataList - user list in non admin case.(In admin user list will null)
* @return the method returns Client app list, devicetype lis and os name list.
*/
private JSONObject prepareDataForGraph(JSONObject activityData,String fromDate,String toDate,List<String> userDataList) throws JSONException {
JSONArray deviceTypeList= getDeviceType(fromDate,toDate,userDataList);
JSONObject clientAppList= getClientApp(activityData, fromDate,toDate,userDataList);
JSONObject osNameList= getOsName(activityData, fromDate,toDate,userDataList);
return activityData;
}
/**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate -till date user Data shown (which can not greater than todays date)
* @return the method return fromDate to toDate user data form logintrace user.
* If logintrace user done some userActivity then session data read otherwise
* only user data will be read.
*/
private JSONObject prepareAdminUserData(JSONObject activityDataFinal,JSONArray activityDataFinalArray, String fromDate,String toDate) throws JSONException, IOException
{
HashMap<String, JSONObject> minMaxTimeList= getMinMaxTime(fromDate,toDate,null);
HashMap<String, JSONObject> minMaxBatteryStatus = getBatteryStatus(fromDate,toDate,null);
System.out.println("minmax time battery ["+minMaxTimeList+"] minMaxBatteryStatus ["+minMaxBatteryStatus+"]");
List<JSONObject> loginUserList = getLoginUsers(fromDate,toDate);
System.out.println("loginUserList in Admin case:::::"+loginUserList);
List<String> loginlist=new ArrayList<String>();
for(JSONObject list : loginUserList){
SimpleDateFormat newFormat = new SimpleDateFormat("YYYYMMdd");
Timestamp loginDate=(Timestamp) list.get("LOGINDATE");
String loginDateFormat =newFormat.format(loginDate);
String userid=list.getString("USERID");
String fileName=userid+"_"+loginDateFormat;
System.out.println("fileName in Admin case>>>>"+fileName);
loginlist.add(fileName);
}
System.out.println("loginlist in Admin case>>>>"+loginlist);
JSONObject activityData = new JSONObject();
activityData=prepareDataForGraph(activityData,fromDate,toDate,null);
System.out.println(" activityData Device data object::::"+activityData);
activityDataFinal.put("ACTIVITY_GRAPH_DATA",activityData);
List<JSONObject> fileDataList= getUserActivityFileData(loginlist);
System.out.println("getUserActivityData>>>"+ fileDataList);
if(fileDataList.isEmpty()) //No User perform userActivity.
{
if(loginlist != null){
for(String loginId : loginlist){
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,loginId);
activityDataFinalArray.put(activityData);
} }
System.out.println("activityDataFinal for if"+activityDataFinal);
} }
else //User perform userActivity System.out.println("activityDataFinal for if"+activityDataFinal);
}
else //User perform userActivity
{
List<String> fileUsersList = new ArrayList<String>();
for(JSONObject fileDataObj : fileDataList )
{ {
List<String> fileUsersList = new ArrayList<String>(); String userId = fileDataObj.optString("userId");
for(JSONObject fileDataObj : fileDataList ) String activityDate = fileDataObj.optString("activityDate");
{ String fileContents = fileDataObj.optString("fileContents");
String userId = fileDataObj.optString("userId"); String loginIdFormated=userId+"_"+activityDate;
String activityDate = fileDataObj.optString("activityDate"); fileUsersList.add(loginIdFormated);
String fileContents = fileDataObj.optString("fileContents"); System.out.println("fileUsersList in Admin case::::::::: "+fileUsersList);
fileUsersList.add(userId); System.out.println("fileName::::::::: ["+loginIdFormated+"]");
System.out.println("fileUsersList in Admin case::::::::: "+fileUsersList); activityData = createActivityData(loginIdFormated, fileContents);
System.out.println("fileName::::::::: ["+userId+"]["+activityDate+"]"); activityData = updateMinMaxTime(activityData, minMaxTimeList.get(loginIdFormated)) ;
activityData = createActivityData(userId, fileContents); activityData = checkUserForBatteryStatus(activityData, minMaxBatteryStatus,loginIdFormated) ;
activityData = updateMinMaxTime(activityData, minMaxTimeList.get(userId)) ; activityDataFinalArray.put(activityData);
activityData = checkUserForBatteryStatus(activityData, minMaxBatteryStatus,userId) ; }
activityDataFinalArray.put(activityData); loginlist.removeAll(fileUsersList); //For some user who didn't perform userActivity
} System.out.println("loginUserList after:::"+loginlist);
loginUserList.removeAll(fileUsersList); //For some user who didn't perform userActivity if(loginlist != null){
System.out.println("loginUserList after:::"+loginUserList); for(String loginId : loginlist)
for(String usersId : loginUserList)
{ {
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,usersId); activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,loginId);
activityDataFinalArray.put(activityData); activityDataFinalArray.put(activityData);
} }
} }
activityDataFinalArray = prepareAllUsersData(activityDataFinalArray);
activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
} }
/* For Profile Ids except ADMIN and ADM */ activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
else //TO GET All Login User Data
{ return activityDataFinal;
List<String> userDataList = getUserDetails(loginCode,profileId); // For User who have team }
System.out.println("userDataList AFTER>>>"+userDataList);
HashMap<String, JSONObject> minMaxTimeList= getMinMaxTime(todayFormat,userDataList); /**
HashMap<String, JSONObject> minMaxBatteryStatus = getBatteryStatus(todayFormat); * @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate -till date user Data shown (which can not greater than todays date)
JSONObject selfActivityData = new JSONObject(); * @param dateListFile -till date user Data shown (which can not greater than todays date)
JSONArray deviceTypeList= getDeviceType(userDataList, todayFormat); * @return the method return fromDate to toDate login user and reporting to login user.
JSONObject clientAppList= getClientApp(selfActivityData,userDataList, todayFormat); * If users done some userActivity then session data read Otherwise
JSONObject osNameList= getOsName(selfActivityData,userDataList, todayFormat); * only user data will be read on the basis of date and user id.
activityDataFinal.put("ACTIVITY_GRAPH_DATA",selfActivityData); */
private JSONObject prepareUserData(JSONObject activityDataFinal,JSONArray activityDataFinalArray, String fromDate,String toDate,String loginCode,String profileId,List<String> dateListFile) throws JSONException, IOException
List<JSONObject> fileDataList= getUserActivityFileData(userDataList, today); {
System.out.println("fileDataList AFTER>>>"+fileDataList); List<String> userDataList = getUserDetails(loginCode,profileId); // For User who have team
System.out.println("userDataList AFTER>>>"+userDataList);
List<String> userList=new ArrayList<String>();
for(String userId : userDataList){
for(String date : dateListFile){
String fileName = userId+"_"+date;
userList.add(fileName);
}
}
System.out.println("userList AFTER>>>"+userList);
HashMap<String, JSONObject> minMaxTimeList= getMinMaxTime(fromDate,toDate,userDataList);
HashMap<String, JSONObject> minMaxBatteryStatus = getBatteryStatus(fromDate,toDate,userDataList);
JSONObject teamMemberActivityData = new JSONObject(); JSONObject selfActivityData = new JSONObject();
JSONArray teamActivityData = new JSONArray(); selfActivityData=prepareDataForGraph(selfActivityData,fromDate,toDate,userDataList);
activityDataFinal.put("ACTIVITY_GRAPH_DATA",selfActivityData);
if(fileDataList.isEmpty()) // For users which is in userDataList didn't perform any userActivity . List<JSONObject> fileDataList= getUserActivityFileData( userList);
System.out.println("fileDataList AFTER>>>"+fileDataList);
if(fileDataList.isEmpty()) // For users which is in userDataList didn't perform any userActivity .
{
for(String date : dateListFile)
{ {
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,loginCode); JSONArray teamActivityData = new JSONArray();
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,loginCode+"_"+date);
userDataList.remove(loginCode); userDataList.remove(loginCode);
System.out.println("userDataList in After removing logincode:::"+userDataList); System.out.println("userDataList in After removing logincode:::"+userDataList);
if(userDataList != null){ if(userDataList != null){
for(String usersId : userDataList){ for(String usersId : userDataList)
teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId); {
System.out.println("Inside userDataList in After removing logincode:::["+usersId+"] DATE ["+date+"]");
JSONObject teamMemberActivityData = new JSONObject();
teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId+"_"+date);
teamActivityData.put(teamMemberActivityData); teamActivityData.put(teamMemberActivityData);
} }
if(teamActivityData.length()>0){ System.out.println("teamActivityData::::: ["+teamActivityData+"]");
if(teamActivityData.length()>0)
{
selfActivityData.put("TEAM", teamActivityData); selfActivityData.put("TEAM", teamActivityData);
} }
} }
activityDataFinalArray.put(selfActivityData); activityDataFinalArray.put(selfActivityData);
activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
System.out.println("activityDataFinal for if"+activityDataFinal);
} }
else //For users which is in userDataList perform userActivity. activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
{ System.out.println("activityDataFinal for if"+activityDataFinal);
List<String> fileUsersList = new ArrayList<String>();
for(JSONObject fileDataObj : fileDataList ) }
else //For users which is in userDataList perform userActivity.
{
for(String date : dateListFile){
List<String> userListNew=new ArrayList<String>();
for(String userId : userDataList){
String fileName = userId+"_"+date;
userListNew.add(fileName);
}
System.out.println("userlist New"+userListNew);
List<JSONObject> fileDataListNew= getUserActivityFileData( userListNew); //Fetch file data on the basis of Date.
System.out.println("fileDataListNew ::::::"+fileDataListNew);
if(fileDataListNew.isEmpty())
{ {
System.out.println("Inside file else:::"+userDataList); System.out.println("Inside file data list is null ::::");
String userId = fileDataObj.optString("userId"); JSONArray teamActivityData = new JSONArray();
String activityDate = fileDataObj.optString("activityDate"); for(String usersId : userListNew) // For users which is in userDataList if some user didn't perform user Activity
String fileContents = fileDataObj.optString("fileContents"); {
System.out.println("fileName::::::::: ["+userId+"]["+activityDate+"]"); String[] fileArr = usersId.split("_");
fileUsersList.add(userId); String userCode = fileArr[0];
if( userId.equalsIgnoreCase(loginCode)) if( userCode.equalsIgnoreCase(loginCode))
{ {
selfActivityData = createActivityData(userId, fileContents); selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
selfActivityData = checkUserForMinMaxTime(selfActivityData, minMaxTimeList,userId) ; System.out.println("selfActivityData after:::"+selfActivityData);
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,userId) ;
} }
else else
{ {
teamMemberActivityData = createActivityData(userId, fileContents); JSONObject teamMemberActivityData = new JSONObject();
teamMemberActivityData = checkUserForMinMaxTime(teamMemberActivityData,minMaxTimeList,userId) ;
teamMemberActivityData = checkUserForBatteryStatus(teamMemberActivityData, minMaxBatteryStatus,userId) ; teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
teamActivityData.put(teamMemberActivityData); teamActivityData.put(teamMemberActivityData);
System.out.println("teamActivityData after:::"+teamActivityData);
} }
System.out.println("fileUsersList in else::::::::: ["+fileUsersList+"]");
}
userDataList.removeAll(fileUsersList);
System.out.println("userDataList after:::"+userDataList);
for(String usersId : userDataList) // For users which is in userDataList if some user didn't perform user Activity
{
if( usersId.equalsIgnoreCase(loginCode))
{
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
System.out.println("selfActivityData after:::"+selfActivityData);
} }
else { if(teamActivityData.length()>0)
teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId); {
teamActivityData.put(teamMemberActivityData); selfActivityData.put("TEAM", teamActivityData);
System.out.println("teamActivityData after:::"+teamActivityData);
} }
} }
if(fileDataList != null && fileDataList.size() > 0 ) if(fileDataListNew !=null)
{ {
if( selfActivityData == null ) JSONArray teamActivityData = new JSONArray();
List<String> fileUsersListNew = new ArrayList<String>();
for(JSONObject fileData:fileDataListNew){
System.out.println("Inside file else:::"+userDataList);
String userId = fileData.optString("userId");
String activityDate = fileData.optString("activityDate");
String fileContents = fileData.optString("fileContents");
System.out.println("fileName::::::::: ["+userId+"]["+activityDate+"]");
fileUsersListNew.add(userId+"_"+activityDate);
if( userId.equalsIgnoreCase(loginCode))
{
selfActivityData = createActivityData(userId+"_"+activityDate, fileContents);
selfActivityData = checkUserForMinMaxTime(selfActivityData, minMaxTimeList,userId+"_"+activityDate) ;
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,userId+"_"+activityDate) ;
}
else
{
JSONObject teamMemberActivityData = new JSONObject();
teamMemberActivityData = createActivityData(userId+"_"+activityDate, fileContents);
teamMemberActivityData = checkUserForMinMaxTime(teamMemberActivityData,minMaxTimeList,userId+"_"+activityDate) ;
teamMemberActivityData = checkUserForBatteryStatus(teamMemberActivityData, minMaxBatteryStatus,userId+"_"+activityDate) ;
teamActivityData.put(teamMemberActivityData);
}
System.out.println("fileUsersListNew in else::::::::: ["+fileUsersListNew+"]");
}
userListNew.removeAll(fileUsersListNew);
System.out.println("userListNew after:::"+userListNew);
for(String usersId : userListNew) // For users which is in userDataList if some user didn't perform user Activity
{ {
selfActivityData = getUserDetail(new JSONObject(), loginCode); String[] fileArr = usersId.split("_");
selfActivityData = updateMinMaxTime(selfActivityData, minMaxTimeList.get(loginCode)) ; String userCode = fileArr[0];
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,loginCode) ; if( userCode.equalsIgnoreCase(loginCode))
{
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
System.out.println("selfActivityData after:::"+selfActivityData);
}
else
{
JSONObject teamMemberActivityData = new JSONObject();
teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
teamActivityData.put(teamMemberActivityData);
System.out.println("teamActivityData after:::"+teamActivityData);
}
} }
if(teamActivityData.length()>0) if(teamActivityData.length()>0)
{ {
selfActivityData.put("TEAM", teamActivityData); selfActivityData.put("TEAM", teamActivityData);
} }
activityDataFinalArray.put(selfActivityData); activityDataFinalArray.put(selfActivityData);
} }
} }
activityDataFinalArray = prepareTeamUsersData(activityDataFinalArray);
activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
} }
System.out.println("activityDataFinal data " + activityDataFinal.toString());
return activityDataFinal.toString();
}
/*If user activity file not Present*/ activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
private JSONObject fileNotFoundUsers(JSONObject selfActivityData,HashMap<String, JSONObject> minMaxTimeList,HashMap<String, JSONObject> minMaxBatteryStatus,String usersId) throws JSONException {
selfActivityData = getUserDetail(new JSONObject(), usersId);
selfActivityData = checkUserForMinMaxTime(selfActivityData, minMaxTimeList,usersId) ;
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,usersId) ;
return selfActivityData;
}
private JSONArray prepareAllUsersData(JSONArray activityDataFinal) {
//TO GET All Login User Data
return activityDataFinal;
}
private JSONArray prepareTeamUsersData(JSONArray activityDataFinal) {
//TO GET Team Login User Data
return activityDataFinal; return activityDataFinal;
} }
/**
* @param minMaxTimeObj - Minimum and maximum login and logout time is store in this.(with reffernce to userid and date)
* @return the method return if minimum login and maximum logout time for particular userid + date is present
* IF not then login logout time will be 'NA'
*/
private JSONObject updateMinMaxTime(JSONObject activityData, JSONObject minMaxTimeObj) throws JSONException private JSONObject updateMinMaxTime(JSONObject activityData, JSONObject minMaxTimeObj) throws JSONException
{ {
if(minMaxTimeObj !=null) if(minMaxTimeObj !=null)
{ {
activityData.put("LOGIN_TIME", checkNull(minMaxTimeObj.opt("loginTime"))); activityData.put("LOGIN_TIME", genUtil.checkNull(minMaxTimeObj.opt("loginTime")));
activityData.put("LOGOUT_TIME", checkNull(minMaxTimeObj.opt("logoutTime"))); activityData.put("LOGOUT_TIME", genUtil.checkNull(minMaxTimeObj.opt("logoutTime")));
System.out.println("minMaxTimeList query result:::::::"+minMaxTimeObj); System.out.println("minMaxTimeList query result:::::::"+minMaxTimeObj);
return activityData; return activityData;
} }
...@@ -256,6 +375,10 @@ public class AccountActivityDao ...@@ -256,6 +375,10 @@ public class AccountActivityDao
} }
} }
/**
* @param minMaxTimeObj - Minimum and maximum login and logout time is store in this for all users.(with reffernce to userid and date)
* @return the method call updateMinMaxTime method by for perticular user id.
*/
private JSONObject checkUserForMinMaxTime(JSONObject activityData,HashMap<String, JSONObject> minMaxTimeObj,String userId) throws JSONException private JSONObject checkUserForMinMaxTime(JSONObject activityData,HashMap<String, JSONObject> minMaxTimeObj,String userId) throws JSONException
{ {
System.out.println("checkUserForMinMaxTime activity data::::"+activityData); System.out.println("checkUserForMinMaxTime activity data::::"+activityData);
...@@ -273,12 +396,17 @@ public class AccountActivityDao ...@@ -273,12 +396,17 @@ public class AccountActivityDao
} }
/**
* @param minMaxBatteryStatus - Minimum and maximum login and logout battery status is store in this.(with reffernce to userid and date)
* @return the method return if minimum login and maximum logout battery status for particular userid + date is present
* IF not then login logout battery status will be 'NA'
*/
private JSONObject updateMinMaxBatteryStatus(JSONObject activityData, JSONObject minMaxBatteryStatus) throws JSONException private JSONObject updateMinMaxBatteryStatus(JSONObject activityData, JSONObject minMaxBatteryStatus) throws JSONException
{ {
if(minMaxBatteryStatus !=null) if(minMaxBatteryStatus !=null)
{ {
activityData.put("LOGIN_BATTERY_STATUS", checkNull(minMaxBatteryStatus.opt("loginBatteryStatus"))); activityData.put("LOGIN_BATTERY_STATUS", genUtil.checkNull(minMaxBatteryStatus.opt("loginBatteryStatus")));
activityData.put("LOGOUT_BATTERY_STATUS",checkNull(minMaxBatteryStatus.opt("logoutBatteryStatus"))); activityData.put("LOGOUT_BATTERY_STATUS",genUtil.checkNull(minMaxBatteryStatus.opt("logoutBatteryStatus")));
System.out.println("minMaxBatteryStatus query result:::::::"+minMaxBatteryStatus); System.out.println("minMaxBatteryStatus query result:::::::"+minMaxBatteryStatus);
return activityData; return activityData;
} }
...@@ -291,6 +419,10 @@ public class AccountActivityDao ...@@ -291,6 +419,10 @@ public class AccountActivityDao
} }
} }
/**
* @param minMaxBatteryStatus - Minimum and maximum login and logout battery status is store in this for all users.(with reffernce to userid and date)
* @return the method call updateMinMaxBatteryStatus method by for particular user id.
*/
private JSONObject checkUserForBatteryStatus(JSONObject activityData,HashMap<String, JSONObject> minMaxBatteryStatus,String userId) throws JSONException private JSONObject checkUserForBatteryStatus(JSONObject activityData,HashMap<String, JSONObject> minMaxBatteryStatus,String userId) throws JSONException
{ {
System.out.println("checkUser:::::::userId ["+userId+"] minMaxBatteryStatus"+minMaxBatteryStatus); System.out.println("checkUser:::::::userId ["+userId+"] minMaxBatteryStatus"+minMaxBatteryStatus);
...@@ -307,21 +439,36 @@ public class AccountActivityDao ...@@ -307,21 +439,36 @@ public class AccountActivityDao
} }
/**
* @param userCode - userCode with date.
* @return call getEmployeeDetail method with user code
* the method return Name, designation and userid which is coming from employee table
*/
private JSONObject getUserDetail(JSONObject activityData, String userCode) throws JSONException private JSONObject getUserDetail(JSONObject activityData, String userCode) throws JSONException
{ {
Employee employee= getEmployeeDetail(userCode); String[] fileArr = userCode.split("_");
String userId = fileArr[0] ;
System.out.println("getUserDetail>>>> file name ["+userCode+"] userId ["+userId+"]");
Employee employee= getEmployeeDetail(userId);
if( employee != null ) if( employee != null )
{ {
activityData.put("NAME", employee.getEmpFname()); activityData.put("NAME", employee.getEmpFname());
activityData.put("DESIGNATION", employee.getDesignation()); activityData.put("DESIGNATION", employee.getDesignation());
activityData.put("USER_ID", userCode); activityData.put("USER_ID", userId);
} }
return activityData; return activityData;
} }
/* Read user activity file */ /**
* @param userCode - userCode with date.
* @param activityLogXml - activity log file will is store in this.
* @return the method return read activity xml on the basis of node.
*/
private JSONObject createActivityData(String userCode, String activityLogXml) private JSONObject createActivityData(String userCode, String activityLogXml)
{ {
String[] fileArr = userCode.split("_");
String userId = fileArr[0] ;
E12GenericUtility e12GenericUtility = new E12GenericUtility(); E12GenericUtility e12GenericUtility = new E12GenericUtility();
ArrayList<String> objNameList = new ArrayList<String>(); ArrayList<String> objNameList = new ArrayList<String>();
JSONObject activityData = new JSONObject(); JSONObject activityData = new JSONObject();
...@@ -332,7 +479,7 @@ public class AccountActivityDao ...@@ -332,7 +479,7 @@ public class AccountActivityDao
NodeList activitySessIdNL = activityDoc.getElementsByTagName("ACTIVITY_SESSION_ID"); NodeList activitySessIdNL = activityDoc.getElementsByTagName("ACTIVITY_SESSION_ID");
activityData = processSessionIds( userCode, activitySessIdNL ); activityData = processSessionIds( userId, activitySessIdNL );
JSONArray sessionArray = activityData.optJSONArray("ALL_SESSIONS"); JSONArray sessionArray = activityData.optJSONArray("ALL_SESSIONS");
System.out.println("sessionArrayList"+sessionArray); System.out.println("sessionArrayList"+sessionArray);
...@@ -515,6 +662,10 @@ public class AccountActivityDao ...@@ -515,6 +662,10 @@ public class AccountActivityDao
} }
/**
* @param prevArray - Array which contain object data.
* @return the method return differcen between ACCESS_START_TIME and ACCESS_END_TIME.
*/
private ActivityTime calcTotalTime(JSONArray prevArray) throws JSONException private ActivityTime calcTotalTime(JSONArray prevArray) throws JSONException
{ {
String startTime, endTime=""; String startTime, endTime="";
...@@ -536,7 +687,12 @@ public class AccountActivityDao ...@@ -536,7 +687,12 @@ public class AccountActivityDao
System.out.println( "ActivityTime calcTotalTime >> " + actTime ); System.out.println( "ActivityTime calcTotalTime >> " + actTime );
return actTime; return actTime;
} }
/**
* @param userCode -
* @param activitySessIdNL - Store the session id
* @return the method return session id data which is coming from logintrace table.
*/
public JSONObject processSessionIds(String userCode, NodeList activitySessIdNL) throws JSONException public JSONObject processSessionIds(String userCode, NodeList activitySessIdNL) throws JSONException
{ {
JSONObject activityData = new JSONObject(); JSONObject activityData = new JSONObject();
...@@ -578,17 +734,17 @@ public class AccountActivityDao ...@@ -578,17 +734,17 @@ public class AccountActivityDao
String activitySeesionId = loginTrace.getSessionId(); String activitySeesionId = loginTrace.getSessionId();
activityObjData.put("SESSION_ID", activitySeesionId); activityObjData.put("SESSION_ID", activitySeesionId);
activityObjData.put("DEVICE_TYPE", checkNull(loginTrace.getDeviceType())); activityObjData.put("DEVICE_TYPE", genUtil.checkNull(loginTrace.getDeviceType()));
activityObjData.put("OS_NAME", checkNull(loginTrace.getOsName())); activityObjData.put("OS_NAME", genUtil.checkNull(loginTrace.getOsName()));
activityObjData.put("HOST_IP", checkNull(loginTrace.getHostIp())); activityObjData.put("HOST_IP", genUtil.checkNull(loginTrace.getHostIp()));
activityObjData.put("CURRENT_GEO_POS", checkNull(loginTrace.getCurrentGeoPos())); activityObjData.put("CURRENT_GEO_POS", genUtil.checkNull(loginTrace.getCurrentGeoPos()));
activityObjData.put("OS_VERSION", checkNull(loginTrace.getOsVersion())); activityObjData.put("OS_VERSION", genUtil.checkNull(loginTrace.getOsVersion()));
activityObjData.put("CLIENT_APP", checkNull(loginTrace.getClientApp())); activityObjData.put("CLIENT_APP", genUtil.checkNull(loginTrace.getClientApp()));
activityObjData.put("CLIENT_APP_VER",checkNull(loginTrace.getClientAppVer())); activityObjData.put("CLIENT_APP_VER",genUtil.checkNull(loginTrace.getClientAppVer()));
activityObjData.put("LOGIN_TIME", checkNullDate(loginTrace.getLoginTime())); activityObjData.put("LOGIN_TIME", genUtil.checkNullDate(loginTrace.getLoginTime()));
activityObjData.put("LOGOUT_TIME", checkNullDate(loginTrace.getLogoutTime())); activityObjData.put("LOGOUT_TIME", genUtil.checkNullDate(loginTrace.getLogoutTime()));
activityObjData.put("LOGIN_BATTERY_STAT", checkNull(loginTrace.getLoginBatteryStat())); activityObjData.put("LOGIN_BATTERY_STAT", genUtil.checkNull(loginTrace.getLoginBatteryStat()));
activityObjData.put("LOGOUT_BATTERY_STAT",checkNull(loginTrace.getLogoutBatteryStat())); activityObjData.put("LOGOUT_BATTERY_STAT",genUtil.checkNull(loginTrace.getLogoutBatteryStat()));
ActivityTime loginTime = new ActivityTime(loginTrace.getLoginTime(), loginTrace.getLogoutTime()); ActivityTime loginTime = new ActivityTime(loginTrace.getLoginTime(), loginTrace.getLogoutTime());
...@@ -605,26 +761,12 @@ public class AccountActivityDao ...@@ -605,26 +761,12 @@ public class AccountActivityDao
return activityData; return activityData;
} }
private Object checkNull(Object data) {
if(data==null){
return "NA";
}
else
{
return data;
}
}
private Object checkNullDate(Object data) {
System.out.println("Inside checkNull"+data);
if(data==null){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}
else
{
return data;
}
}
/**
* @param userCode - userCode from user activity file
* @param sessionIds - session id from user activity file
* @return the method return logintrace data on the basis of session id and user code.
*/
public List<LoginTrace> getLogDetails(String userCode, String sessionIds) public List<LoginTrace> getLogDetails(String userCode, String sessionIds)
{ {
List<LoginTrace> loginTraceList = null; List<LoginTrace> loginTraceList = null;
...@@ -651,6 +793,10 @@ public class AccountActivityDao ...@@ -651,6 +793,10 @@ public class AccountActivityDao
return loginTraceList; return loginTraceList;
} }
/**
* @param userCode -
* @return the method return Employee table data on the basis of user code.
*/
private Employee getEmployeeDetail(String userCode) private Employee getEmployeeDetail(String userCode)
{ {
System.out.println("Inside getUserDesignation"); System.out.println("Inside getUserDesignation");
...@@ -683,6 +829,11 @@ public class AccountActivityDao ...@@ -683,6 +829,11 @@ public class AccountActivityDao
return employee; return employee;
} }
/**
* @param userCode - login id
* @param profileId - getting from userInfoBean.
* @return the method return code from users table which reported to login id.
*/
public List<String> getUserDetails(String userId, String profileId) public List<String> getUserDetails(String userId, String profileId)
{ {
List<String> userDetailList = null; List<String> userDetailList = null;
...@@ -711,23 +862,36 @@ public class AccountActivityDao ...@@ -711,23 +862,36 @@ public class AccountActivityDao
System.out.println("userDetailList >>>>>>>>>"+userDetailList); System.out.println("userDetailList >>>>>>>>>"+userDetailList);
return userDetailList; return userDetailList;
} }
public JSONArray getDeviceType(List<String> loginUserList,String today) throws JSONException /**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate - till date user Data shown (which can not greater than todays date)
* @param userDataList - code from users table which reported to login id(getUserDetails method result).
* @return the method return device_type name and it's count on the basis of fromDate , toDate and
* userDataList if not null from logintrace table.
*/
public JSONArray getDeviceType(String fromDate, String toDate,List<String> userDataList) throws JSONException
{ {
HashMap<String, JSONObject> deviceTypeList = new HashMap<String, JSONObject> (); HashMap<String, JSONObject> deviceTypeList = new HashMap<String, JSONObject> ();
JSONArray device=new JSONArray(); JSONArray device=new JSONArray();
try try
{ {
// 1. Get Session object // 1. Get Session object
String userList = getEnclosedString(loginUserList); String whereClausePart = "";
System.out.println("Inside getUserDetails userId: [" + loginUserList + "]"); if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession(); Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query // 2. Create Query
Query query = session.createSQLQuery("select count(1), DEVICE_TYPE " Query query = session.createSQLQuery("select count(1), DEVICE_TYPE"
+ "from logintrace where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"'" + " from logintrace"
+ " and userid in ("+userList+")" + " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'" + " and LOGIN_STATUS = 'T' "
+ " group by DEVICE_TYPE " + whereClausePart
+ " and device_type is not null group by DEVICE_TYPE "
+ ""); + "");
System.out.println("query result>>>>>"+query); System.out.println("query result>>>>>"+query);
...@@ -755,24 +919,35 @@ public class AccountActivityDao ...@@ -755,24 +919,35 @@ public class AccountActivityDao
System.out.println("deviceTypeList >>>>>>>>>"+deviceTypeList); System.out.println("deviceTypeList >>>>>>>>>"+deviceTypeList);
return device; return device;
} }
public JSONObject getClientApp(JSONObject activityData,List<String> loginUserList,String today) throws JSONException /**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate - till date user Data shown (which can not greater than todays date)
* @param userDataList - code from users table which reported to login id(getUserDetails method result).
* @return the method return client_app name and it's count on the basis of fromDate , toDate and
* userDataList if not null from logintrace table.
*/
public JSONObject getClientApp(JSONObject activityData,String fromDate,String toDate,List<String> userDataList) throws JSONException
{ {
try try
{ {
String whereClausePart = "";
if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
// 1. Get Session object // 1. Get Session object
String userList = getEnclosedString(loginUserList);
System.out.println("Inside getClientApp userId: [" + loginUserList + "]");
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession(); Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query // 2. Create Query
Query query = session.createSQLQuery("select count(1), CLIENT_APP " Query query = session.createSQLQuery("select count(1), CLIENT_APP"
+ " from logintrace " + " from logintrace"
+ " where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"' " + " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T' " + " and LOGIN_STATUS = 'T'"
+ " and userid in ("+userList+")" + whereClausePart
+ " and DEVICE_TYPE = 'Browser'" + " and DEVICE_TYPE = 'Browser'"
+ " group by (CLIENT_APP)"); + " group by (CLIENT_APP)"
+ " ");
System.out.println("getClientApp query >>>>>"+query); System.out.println("getClientApp query >>>>>"+query);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
...@@ -785,27 +960,28 @@ public class AccountActivityDao ...@@ -785,27 +960,28 @@ public class AccountActivityDao
List<Object[]> clientAppList= (List<Object[]>)query.list(); List<Object[]> clientAppList= (List<Object[]>)query.list();
for(Object[] clientapplist: clientAppList){ for(Object[] clientapplist: clientAppList){
BigDecimal clientAppCount = (BigDecimal)clientapplist[0]; BigDecimal clientAppCount = (BigDecimal)clientapplist[0];
String clientAppName = (String) clientapplist[1]; if(clientapplist[1] != null)
if("CHROME".equalsIgnoreCase(clientAppName))
{
jsonObject.put( "CHROME",clientAppCount);
}
else if("INTEXP".equalsIgnoreCase(clientAppName))
{
jsonObject.put( "INTEXP",clientAppCount);
}
else if("FIREFOX".equalsIgnoreCase(clientAppName))
{
jsonObject.put( "FIREFOX",clientAppCount);
}
else
{ {
jsonObject.put( "OTHER",clientAppCount); String clientAppName = (String) clientapplist[1];
if("CHROME".equalsIgnoreCase(clientAppName))
{
jsonObject.put( "CHROME",clientAppCount);
}
else if("INTEXP".equalsIgnoreCase(clientAppName))
{
jsonObject.put( "INTEXP",clientAppCount);
}
else if("FIREFOX".equalsIgnoreCase(clientAppName))
{
jsonObject.put( "FIREFOX",clientAppCount);
}
else
{
jsonObject.put( "OTHER",clientAppCount);
}
total=total.add(clientAppCount);
System.out.println("getClientApp query id::::::: jsonObject ["+jsonObject+"]");
} }
total=total.add(clientAppCount);
System.out.println("getClientApp query id::::::: jsonObject ["+jsonObject+"]");
} }
jsonObject.put("TOTAL", total); jsonObject.put("TOTAL", total);
activityData.put("BROWSER", jsonObject); activityData.put("BROWSER", jsonObject);
...@@ -820,22 +996,33 @@ public class AccountActivityDao ...@@ -820,22 +996,33 @@ public class AccountActivityDao
return activityData; return activityData;
} }
public JSONObject getOsName(JSONObject activityData,List<String> loginUserList,String today) throws JSONException /**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate - till date user Data shown (which can not greater than todays date)
* @param userDataList - code from users table which reported to login id(getUserDetails method result).
* @return the method return os name and it's count on the basis of fromDate , toDate and
* userDataList if not null from logintrace table.
*/
public JSONObject getOsName(JSONObject activityData,String fromDate,String toDate,List<String> userDataList) throws JSONException
{ {
try try
{ {
String userList = getEnclosedString(loginUserList);
// 1. Get Session object // 1. Get Session object
System.out.println("Inside getOsName userId: [" + loginUserList + "]"); String whereClausePart = "";
if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession(); Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query // 2. Create Query
Query query = session.createSQLQuery("select count(1), OS_NAME " Query query = session.createSQLQuery("select count(1), OS_NAME"
+ "from logintrace " + " from logintrace"
+ "where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"' " + " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'" + " and LOGIN_STATUS = 'T'"
+ " and userid in ("+userList+")" + whereClausePart
+ " and DEVICE_TYPE in ( 'Android Mobile' , 'Android Tablet', 'iOS Mobile' , 'iOS Tablet' ) " + " and DEVICE_TYPE in ( 'Android Mobile' ,'Android Tablet','iOS Mobile' , 'iOS Tablet' )"
+ " group by (OS_NAME)"); + " group by (OS_NAME)");
System.out.println("getOsName query >>>>>"+query); System.out.println("getOsName query >>>>>"+query);
...@@ -848,23 +1035,27 @@ public class AccountActivityDao ...@@ -848,23 +1035,27 @@ public class AccountActivityDao
List<Object[]> osNameList= (List<Object[]>)query.list(); List<Object[]> osNameList= (List<Object[]>)query.list();
for(Object[] osnamelist: osNameList){ for(Object[] osnamelist: osNameList){
BigDecimal osNameCount = (BigDecimal)osnamelist[0]; BigDecimal osNameCount = (BigDecimal)osnamelist[0];
String osname = (String) osnamelist[1]; if(osnamelist[1] != null){
//String deviceType = (String) osnamelist[2];
if("ANDROID".equalsIgnoreCase(osname)){ String osname = (String) osnamelist[1];
jsonObject.put( "ANDROID",osNameCount); //String deviceType = (String) osnamelist[2];
} if("ANDROID".equalsIgnoreCase(osname)){
else if("IOS".equalsIgnoreCase(osname) || osname.startsWith("Mac")) jsonObject.put( "ANDROID",osNameCount);
{ }
jsonObject.put( "IOS",osNameCount); else if("IOS".equalsIgnoreCase(osname) || osname.startsWith("Mac"))
} {
else { jsonObject.put( "IOS",osNameCount);
jsonObject.put( "OTHER",osNameCount); }
else {
jsonObject.put( "OTHER",osNameCount);
}
total=total.add(osNameCount);
System.out.println("getOsName query id::::::: TOTAL"+total+"jsonObject ["+jsonObject+"]");
} }
total=total.add(osNameCount);
System.out.println("getOsName query id::::::: TOTAL"+total+"jsonObject ["+jsonObject+"]");
} }
jsonObject.put("TOTAL", total); jsonObject.put("TOTAL", total);
activityData.put("MOBILE", jsonObject); activityData.put("MOBILE", jsonObject);
session.close(); session.close();
} }
catch (HibernateException e) catch (HibernateException e)
...@@ -876,22 +1067,40 @@ public class AccountActivityDao ...@@ -876,22 +1067,40 @@ public class AccountActivityDao
} }
public List<String> getLoginUsers(String today) /**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate - till date user Data shown (which can not greater than todays date)
* @return the method return os user id ,logintime and logout time on the basis of fromDate , toDate
* from logintrace table.
*/
public List<JSONObject> getLoginUsers(String fromDate,String toDate) throws JSONException
{ {
List<String> allLoginUsers = null; List<JSONObject> allLoginUsers = new ArrayList<JSONObject>();
try try
{ {
// 1. Get Session object // 1. Get Session object
System.out.println("Inside getUserDetails userId: [" + today + "]"); System.out.println("Inside getLoginUsers userId: [" + fromDate + "] toDate ["+toDate+"]");
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession(); Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query // 2. Create Query
Query query = session.createSQLQuery("select distinct userid from logintrace" Query query = session.createSQLQuery("select userid ,to_date(LOGINTIME, 'dd-MM-yy') logintime"
+ " where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"'" + " from logintrace"
+ "and LOGIN_STATUS = 'T'"); + " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'"
+ " group by userid, to_date(LOGINTIME, 'dd-MM-yy') "
+ " order by userid");
System.out.println("query result>>>>>"+query); System.out.println("getLoginUsers query >>>>>"+query);
allLoginUsers = query.getResultList();
System.out.println("getLoginUsers result:::::::"+allLoginUsers+"size::::"+allLoginUsers.size()); List<Object[]> loginUser= (List<Object[]>)query.list();
for(Object[] userData: loginUser){
String userId = (String)userData[0];
Timestamp loginTime = (Timestamp) userData[1];
JSONObject jsonObject = new JSONObject();
jsonObject.put("USERID", userId);
jsonObject.put("LOGINDATE", loginTime);
allLoginUsers.add(jsonObject);
}
session.close(); session.close();
} }
...@@ -903,8 +1112,15 @@ public class AccountActivityDao ...@@ -903,8 +1112,15 @@ public class AccountActivityDao
System.out.println("getLoginUsers >>>>>>>>>"+allLoginUsers); System.out.println("getLoginUsers >>>>>>>>>"+allLoginUsers);
return allLoginUsers; return allLoginUsers;
} }
public HashMap<String, JSONObject> getMinMaxTime(String today, List<String> userDataList ) /**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate - till date user Data shown (which can not greater than todays date)
* @param userDataList - code from users table which reported to login id(getUserDetails method result).
* @return the method return userid,minimum login and maximum logout time on the basis of fromDate , toDate and
* userDataList if not null from logintrace table.
*/
public HashMap<String,JSONObject> getMinMaxTime(String fromDate,String toDate,List<String> userDataList)
{ {
HashMap<String, JSONObject> minMaxTimeMap = new HashMap<String, JSONObject>(); HashMap<String, JSONObject> minMaxTimeMap = new HashMap<String, JSONObject>();
try try
...@@ -913,30 +1129,34 @@ public class AccountActivityDao ...@@ -913,30 +1129,34 @@ public class AccountActivityDao
String whereClausePart = ""; String whereClausePart = "";
if(userDataList != null) if(userDataList != null)
{ {
String userList = getEnclosedString(userDataList); String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")"; whereClausePart = " and userid in("+ userList +")";
} }
System.out.println("Inside getMinMaxTime today: [" + today + "]"); System.out.println("Inside getMinMaxTime fromDate: [" + fromDate + "] toDate"+toDate+"]");
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession(); Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query // 2. Create Query
Query query = session.createSQLQuery("select userid, min(LOGINTIME) as LOGINTIME , max(LOGOUTTIME)as LOGOUTTIME" Query query = session.createSQLQuery("select userid, min(LOGINTIME) as LOGINTIME , max(LOGOUTTIME)as LOGOUTTIME"
+ " from logintrace" + " from logintrace "
+ " where to_char(LOGINTIME,'dd-MM-yy') = '"+today+"'" + " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'" + " and LOGIN_STATUS = 'T' "
+ whereClausePart + whereClausePart
+ " group by userid"); + "group by userid, to_date(LOGINTIME, 'dd-MM-yy') "
+ "order by userid");
System.out.println("query result>>>>>"+query); System.out.println("query result>>>>>"+query);
SimpleDateFormat newFormat = new SimpleDateFormat("YYYYMMdd");
List<Object[]> minMaxTimeList= (List<Object[]>)query.list(); List<Object[]> minMaxTimeList= (List<Object[]>)query.list();
for(Object[] minMaxTime: minMaxTimeList){ for(Object[] minMaxTime: minMaxTimeList){
String userId = (String)minMaxTime[0]; String userId = (String)minMaxTime[0];
Date loginTime = (Date) minMaxTime[1]; Date loginTime = (Date) minMaxTime[1];
Date logoutTime = (Date) minMaxTime[2]; Date logoutTime = (Date) minMaxTime[2];
String loginDateFormat =newFormat.format(loginTime);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("loginTime", loginTime); jsonObject.put("loginTime", loginTime);
jsonObject.put("logoutTime", logoutTime); jsonObject.put("logoutTime", logoutTime);
minMaxTimeMap.put(userId, jsonObject); minMaxTimeMap.put(userId+"_"+loginDateFormat, jsonObject);
System.out.println("minMaxTimeList query id::::::: ["+userId+"] jsonObject ["+jsonObject+"]"); System.out.println("minMaxTimeList query id::::::: ["+userId+"_"+loginDateFormat+"] jsonObject ["+jsonObject+"]");
} }
session.close(); session.close();
} }
...@@ -951,38 +1171,53 @@ public class AccountActivityDao ...@@ -951,38 +1171,53 @@ public class AccountActivityDao
System.out.println("minMaxTimeMap >>>>>>>>>"+minMaxTimeMap); System.out.println("minMaxTimeMap >>>>>>>>>"+minMaxTimeMap);
return minMaxTimeMap; return minMaxTimeMap;
} }
public HashMap<String, JSONObject> getBatteryStatus(String todayFormat) throws JSONException /**
* @param fromDate - from date user data shown(which can not be greater than to date)
* @param toDate - till date user Data shown (which can not greater than todays date)
* @return the method return userid,minimum login and maximum logout battery status on the basis of fromDate , toDate and
* userDataList if not null from logintrace table.
*/
public HashMap<String, JSONObject> getBatteryStatus(String fromDate,String toDate,List<String> userDataList) throws JSONException
{ {
HashMap<String, JSONObject> minMaxBatteryStatus = new HashMap<String, JSONObject>(); HashMap<String, JSONObject> minMaxBatteryStatus = new HashMap<String, JSONObject>();
try try
{ {
// 1. Get Session object // 1. Get Session object
String whereClausePart = "";
if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
System.out.println("Inside getBatteryStatus todayFormat: [" + todayFormat + "]"); System.out.println("Inside getBatteryStatus fromDate: [" + fromDate + "] toDate ["+toDate+"]");
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession(); Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query // 2. Create Query
Query query = session.createSQLQuery("select A.userid, to_char(A.LOGINTIME,'dd-MM-yy hh24:mi:ss') IN_TIME, " Query query = session.createSQLQuery("select A.userid, to_date(A.LOGINTIME,'dd-MM-yy hh24:mi:ss') IN_TIME, "
+ " to_char(A.LOGOUTTIME,'dd-MM-yy hh24:mi:ss') OUT_TIME, " + " to_date(A.LOGOUTTIME,'dd-MM-yy hh24:mi:ss') OUT_TIME, "
+ " A.LOGIN_BATTERY_STAT, " + " A.LOGIN_BATTERY_STAT, "
+ " A.LOGOUT_BATTERY_STAT" + " A.LOGOUT_BATTERY_STAT"
+ " from logintrace A," + " from logintrace A,"
+ " (" + "("
+ " select userid, min(LOGINTIME) as LOGINTIME , max(LOGOUTTIME)as LOGOUTTIME" + " select userid, min(LOGINTIME) as LOGINTIME , max(LOGOUTTIME)as LOGOUTTIME"
+ " from logintrace" + " from logintrace"
+ " where to_char(LOGINTIME,'dd-MM-yy') = '"+todayFormat+"'" + " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'"
+ " and LOGIN_BATTERY_STAT is not null " + " and LOGIN_BATTERY_STAT is not null "
+ " and LOGOUT_BATTERY_STAT is not null" + " and LOGOUT_BATTERY_STAT is not null"
+ " group by userid" + whereClausePart
+ " group by userid, to_date(LOGINTIME, 'dd-MM-yy') "
+ " )B" + " )B"
+ " where A.userid= B.userid" + " where A.userid= B.userid"
+ " and ( A.LOGINTIME = B.LOGINTIME" + " and ( A.LOGINTIME = B.LOGINTIME"
+ " or A.LOGOUTTIME = B.LOGOUTTIME )" + " or A.LOGOUTTIME = B.LOGOUTTIME )"
+ " order by A.userid, A.LOGINTIME" + " order by A.userid, A.LOGINTIME"
+ ""); + "");
List<Object[]> batteryStatusList= (List<Object[]>)query.list(); List<Object[]> batteryStatusList= (List<Object[]>)query.list();
SimpleDateFormat newFormat = new SimpleDateFormat("YYYYMMdd");
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
List userList = new ArrayList<>(); List userList = new ArrayList<>();
for(Object[] batteryStatus: batteryStatusList){ for(Object[] batteryStatus: batteryStatusList){
...@@ -990,17 +1225,18 @@ public class AccountActivityDao ...@@ -990,17 +1225,18 @@ public class AccountActivityDao
if(!userList.contains(userId)){ if(!userList.contains(userId)){
jsonObject=new JSONObject(); jsonObject=new JSONObject();
userList.add(userId); userList.add(userId);
String loginTime = (String) batteryStatus[1]; Date loginTime = (Date) batteryStatus[1];
BigDecimal loginBatteryStatus = (BigDecimal) batteryStatus[3]; BigDecimal loginBatteryStatus = (BigDecimal) batteryStatus[3];
jsonObject.put("loginTime", loginTime); jsonObject.put("loginTime", loginTime);
jsonObject.put("loginBatteryStatus", loginBatteryStatus); jsonObject.put("loginBatteryStatus", loginBatteryStatus);
} }
String logoutTime = (String) batteryStatus[2]; Date logoutTime = (Date) batteryStatus[2];
BigDecimal logoutBatteryStatus = (BigDecimal) batteryStatus[4]; BigDecimal logoutBatteryStatus = (BigDecimal) batteryStatus[4];
jsonObject.put("logoutTime", logoutTime); jsonObject.put("logoutTime", logoutTime);
String logoutDateFormat =newFormat.format(logoutTime);
jsonObject.put("logoutBatteryStatus", logoutBatteryStatus); jsonObject.put("logoutBatteryStatus", logoutBatteryStatus);
minMaxBatteryStatus.put(userId, jsonObject); minMaxBatteryStatus.put(userId+"_"+logoutDateFormat, jsonObject);
System.out.println("minMaxBatteryStatus query result userId ["+userId+"] jsonObject ["+jsonObject+"]"); System.out.println("minMaxBatteryStatus query result userId ["+userId+"_"+logoutDateFormat+"] jsonObject ["+jsonObject+"]");
} }
session.close(); session.close();
} }
...@@ -1013,6 +1249,8 @@ public class AccountActivityDao ...@@ -1013,6 +1249,8 @@ public class AccountActivityDao
return minMaxBatteryStatus; return minMaxBatteryStatus;
} }
public JSONArray processActivityAction(Node activityChildNode, JSONArray eventArray) throws JSONException public JSONArray processActivityAction(Node activityChildNode, JSONArray eventArray) throws JSONException
{ {
if( activityChildNode != null ) if( activityChildNode != null )
...@@ -1036,7 +1274,12 @@ public class AccountActivityDao ...@@ -1036,7 +1274,12 @@ public class AccountActivityDao
} }
return eventArray; return eventArray;
} }
/**
* @param activityActionNode - contain data which is in "EVENT_ID" node
* @return the method return userid,minimum login and maximum logout battery status on the basis of fromDate , toDate and
* userDataList if not null from logintrace table.
*/
public JSONObject processEvent(Node activityActionNode) throws JSONException public JSONObject processEvent(Node activityActionNode) throws JSONException
{ {
JSONObject eventObj = new JSONObject(); JSONObject eventObj = new JSONObject();
...@@ -1070,21 +1313,24 @@ public class AccountActivityDao ...@@ -1070,21 +1313,24 @@ public class AccountActivityDao
return eventObj; return eventObj;
} }
// public List<JSONObject> getUserActivityFileData(List<String> users, String fromDate, String toDate) throws IOException, JSONException /**
// { * @param loginFilelist - Users list (it can be login user list from date to toDate)
public List<JSONObject> getUserActivityFileData(List<String> users, String today) throws IOException, JSONException * @return the method return file name which is present in user activity folder.
*/
public List<JSONObject> getUserActivityFileData(List<String> loginFilelist) throws IOException, JSONException
{ {
List<JSONObject> filesArrayList = new ArrayList<JSONObject>(); List<JSONObject> filesArrayList = new ArrayList<JSONObject>();
String jbossPath=CommonConstants.JBOSSHOME; String jbossPath=CommonConstants.JBOSSHOME;
System.out.println("CommonConstants.JBOSSHOME ["+CommonConstants.JBOSSHOME+"]"); System.out.println("CommonConstants.JBOSSHOME ["+CommonConstants.JBOSSHOME+"]");
File userActivityFolder = new File(jbossPath+"/server/default/UserActivity"); File userActivityFolder = new File(jbossPath+"/server/default/UserActivity");
System.out.println("userActivityFolder ["+userActivityFolder+"] Users "+users+"]"); System.out.println("userActivityFolder ["+userActivityFolder+"] ");
if( userActivityFolder.isDirectory() ) if( userActivityFolder.isDirectory() )
{ {
File[] userActivityFiles = userActivityFolder.listFiles(new FileFilter() { File[] userActivityFiles = userActivityFolder.listFiles(new FileFilter() {
@Override @Override
public boolean accept(File pathname) { public boolean accept(File pathname) {
return pathname.getName().endsWith(today+".txt");
return pathname.getName().endsWith(".txt");
} }
}); });
...@@ -1092,31 +1338,36 @@ public class AccountActivityDao ...@@ -1092,31 +1338,36 @@ public class AccountActivityDao
{ {
String fileName = userActivityFile.getName(); String fileName = userActivityFile.getName();
//System.out.println("userActivityFile[" + fileName + "]"); //System.out.println("userActivityFile[" + fileName + "]");
fileName = fileName.replace(".txt", ""); fileName = fileName.replace(".txt", "");
//System.out.println("userActivityFile[" + fileName + "]");
if( loginFilelist.indexOf(fileName) == -1 )
{
continue;
}
System.out.println("userActivityFile[" + fileName + "]");
String[] fileArr = fileName.split("_"); String[] fileArr = fileName.split("_");
String userId = ( fileArr.length > 0 ) ? fileArr[0] : "SYSTEM"; String userId = ( fileArr.length > 0 ) ? fileArr[0] : "SYSTEM";
String activityDate = ( fileArr.length > 1 ) ? fileArr[1] : today; String activityDate =fileName.substring(fileName.lastIndexOf("_") + 1);
System.out.println("userActivityFile[" + userId + "]["+activityDate+"]");
// activityDate = ( fileArr.length > 1 ) ? fileArr[1] : date;
System.out.println("userActivityFile READ[" + userId + "]["+activityDate+"]");
JSONObject fileData = new JSONObject(); JSONObject fileData = new JSONObject();
fileData.put("userId", userId); fileData.put("userId", userId);
fileData.put("activityDate", activityDate); fileData.put("activityDate", activityDate);
String fileContents = FileUtils.readFileToString(userActivityFile);
StringBuffer fileContentsBuff = new StringBuffer();
fileContentsBuff.append("<ROOT>");
fileContentsBuff.append(fileContents);
fileContentsBuff.append("</ROOT>");
fileData.put("fileContents", fileContentsBuff.toString());
if( users == null || ( users != null && users.contains(userId) ) ) filesArrayList.add(fileData);
{
String fileContents = FileUtils.readFileToString(userActivityFile);
StringBuffer fileContentsBuff = new StringBuffer();
fileContentsBuff.append("<ROOT>");
fileContentsBuff.append(fileContents);
fileContentsBuff.append("</ROOT>");
fileData.put("fileContents", fileContentsBuff.toString());
filesArrayList.add(fileData);
}
System.out.println(fileData.toString().length() + "\n"); System.out.println(fileData.toString().length() + "\n");
} }
...@@ -1124,140 +1375,6 @@ public class AccountActivityDao ...@@ -1124,140 +1375,6 @@ public class AccountActivityDao
return filesArrayList; return filesArrayList;
} }
private String getEnclosedString(List<String> docIdList)
{
StringBuffer buffer = new StringBuffer();
int len = 0;
for(String docId : docIdList)
{
buffer.append("'").append(docId.trim()).append("'");
len++;
if( len < docIdList.size() )
{
buffer.append(",");
}
}
if( buffer.length() == 0 )
{
buffer.append("''");
}
System.out.println("Inside getEnclosedString buffer: [" + buffer +"]");
return buffer.toString();
}
} }
class ActivityTime implements java.io.Serializable //http://192.168.0.220:9090/ibase/plugin/api/accountActivity?fromDate=10-02-18
{
private static final long serialVersionUID = 1L;
long seconds = 0;
long minutes = 0;
long hours = 0;
public ActivityTime()
{
}
public ActivityTime(String startTime, String endTime)
{
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.");
Date d1 = null;
Date d2 = null;
try
{
d1 = format.parse(startTime);
d2 = format.parse(endTime);
long diff = d2.getTime() - d1.getTime();
this.seconds = diff / 1000 % 60;
this.minutes = diff / (60 * 1000) % 60;
this.hours = diff / (60 * 60 * 1000);
//System.out.println("diff: " + diff );
}
catch (ParseException e)
{
e.printStackTrace();
}
//System.out.println("Time in : " + this.seconds + " seconds.");
//System.out.println("Time in : " + this.minutes + " minutes.");
//System.out.println("Time in : " + this.hours + " hours.");
}
public ActivityTime(Date startTime, Date endTime)
{
try
{
long diff = endTime.getTime() - startTime.getTime();
this.seconds = diff / 1000 % 60;
this.minutes = diff / (60 * 1000) % 60;
this.hours = diff / (60 * 60 * 1000);
//System.out.println("diff: " + diff );
}
catch (Exception e)
{
e.printStackTrace();
}
//System.out.println("Time in : " + this.seconds + " seconds.");
//System.out.println("Time in : " + this.minutes + " minutes.");
//System.out.println("Time in : " + this.hours + " hours.");
}
public void addTime(ActivityTime time)
{
System.out.println("addTime :1:time[" + time + "]this[" + this + "]" );
this.seconds = this.seconds + time.seconds;
if(this.seconds > 59)
{
this.seconds = this.seconds % 60;
long mins = this.seconds / 60;
this.minutes = this.minutes + mins;
System.out.println("this.seconds > 59 ::" + this.seconds );
}
this.minutes = this.minutes + time.minutes;
if(this.minutes > 59)
{
this.minutes = this.minutes % 60;
long hrs = this.minutes / 60;
this.hours = this.hours + hrs;
System.out.println("this.minutes > 59 ::" + this.minutes );
}
this.hours = this.hours + time.hours;
if(this.hours >= 23) //Should not come here
{
System.out.println("this.hours >= 23 ::" + this.hours );
}
System.out.println("addTime :2:time[" + time + "]this[" + this + "]" );
}
public JSONObject toJSON()
{
JSONObject jObj = new JSONObject();
try
{
jObj.put("hours", this.hours);
jObj.put("minutes", this.minutes);
jObj.put("seconds", this.seconds);
}
catch (JSONException e)
{
e.printStackTrace();
}
return jObj;
}
public String toString()
{
return this.toJSON().toString();
}
}
package ibase.dashboard.hibernate.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;
public class ActivityTime {
private static final long serialVersionUID = 1L;
long seconds = 0;
long minutes = 0;
long hours = 0;
public ActivityTime()
{
}
public ActivityTime(String startTime, String endTime)
{
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.");
Date d1 = null;
Date d2 = null;
try
{
d1 = format.parse(startTime);
d2 = format.parse(endTime);
long diff = d2.getTime() - d1.getTime();
this.seconds = diff / 1000 % 60;
this.minutes = diff / (60 * 1000) % 60;
this.hours = diff / (60 * 60 * 1000);
//System.out.println("diff: " + diff );
}
catch (ParseException e)
{
e.printStackTrace();
}
//System.out.println("Time in : " + this.seconds + " seconds.");
//System.out.println("Time in : " + this.minutes + " minutes.");
//System.out.println("Time in : " + this.hours + " hours.");
}
public ActivityTime(Date startTime, Date endTime)
{
try
{
long diff = endTime.getTime() - startTime.getTime();
this.seconds = diff / 1000 % 60;
this.minutes = diff / (60 * 1000) % 60;
this.hours = diff / (60 * 60 * 1000);
//System.out.println("diff: " + diff );
}
catch (Exception e)
{
e.printStackTrace();
}
//System.out.println("Time in : " + this.seconds + " seconds.");
//System.out.println("Time in : " + this.minutes + " minutes.");
//System.out.println("Time in : " + this.hours + " hours.");
}
public void addTime(ActivityTime time)
{
System.out.println("addTime :1:time[" + time + "]this[" + this + "]" );
this.seconds = this.seconds + time.seconds;
if(this.seconds > 59)
{
this.seconds = this.seconds % 60;
long mins = this.seconds / 60;
this.minutes = this.minutes + mins;
System.out.println("this.seconds > 59 ::" + this.seconds );
}
this.minutes = this.minutes + time.minutes;
if(this.minutes > 59)
{
this.minutes = this.minutes % 60;
long hrs = this.minutes / 60;
this.hours = this.hours + hrs;
System.out.println("this.minutes > 59 ::" + this.minutes );
}
this.hours = this.hours + time.hours;
if(this.hours >= 23) //Should not come here
{
System.out.println("this.hours >= 23 ::" + this.hours );
}
System.out.println("addTime :2:time[" + time + "]this[" + this + "]" );
}
public JSONObject toJSON()
{
JSONObject jObj = new JSONObject();
try
{
jObj.put("hours", this.hours);
jObj.put("minutes", this.minutes);
jObj.put("seconds", this.seconds);
}
catch (JSONException e)
{
e.printStackTrace();
}
return jObj;
}
public String toString()
{
return this.toJSON().toString();
}
}
package ibase.dashboard.hibernate.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
public class GenericUtil
{
public List<String> getDateList(String fromDate, String toDate, String format) throws ParseException
{
SimpleDateFormat newFormat = new SimpleDateFormat(format);
DateFormat formatter = new SimpleDateFormat("dd-MM-yy");
Date startDate = (Date) formatter.parse(fromDate);
Date endDate = (Date) formatter.parse(toDate);
List<String> formattedDateRange = new ArrayList<String>();
Calendar calendar = new GregorianCalendar();
calendar.setTime(startDate);
while (calendar.getTime().before(endDate))
{
Date currentDate = calendar.getTime();
calendar.add(Calendar.DATE, 1);
formattedDateRange.add( newFormat.format(currentDate) );
}
formattedDateRange.add(newFormat.format(endDate));
System.out.println(" getDateList formattedDateRange::::" + formattedDateRange);
return formattedDateRange;
}
public String getEnclosedString(List<String> valueList)
{
StringBuffer enclosedStringBuffer = new StringBuffer();
int len = 0;
for(String value : valueList)
{
enclosedStringBuffer.append("'").append(value.trim()).append("'");
len++;
if( len < valueList.size() )
{
enclosedStringBuffer.append(",");
}
}
if( enclosedStringBuffer.length() == 0 )
{
enclosedStringBuffer.append("''");
}
System.out.println("Inside getEnclosedString enclosedStringBuffer: [" + enclosedStringBuffer +"]");
return enclosedStringBuffer.toString();
}
public Object checkNull(Object data)
{
if(data==null)
{
return "NA";
}
else
{
return data;
}
}
public Object checkNullDate(Object data)
{
System.out.println("Inside checkNull"+data);
if(data==null)
{
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}
else
{
return data;
}
}
}
package ibase.dashboard.common.webService; package ibase.dashboard.common.webService;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context; import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import ibase.dashboard.common.hibernate.dao.AccountActivityDao; import org.json.JSONObject;
import ibase.dashboard.hibernate.dao.AccountActivityDao;
import ibase.utility.BaseException; import ibase.utility.BaseException;
import ibase.utility.UserInfoBean; import ibase.utility.UserInfoBean;
@Path("/accountActivity") @Path("/accountActivity")
public class AccountActivityService { public class AccountActivityService {
@Context @Context
HttpServletRequest request; // The proxy of Request will be injected into this singleton HttpServletRequest request; // The proxy of Request will be injected into this singleton
@GET
private AccountActivityDao accountActivityDao = new AccountActivityDao(); @Path("/")
@Produces(MediaType.APPLICATION_JSON)
@GET public String getAccountActivityData(@QueryParam("fromDate") String fromDate,
@Path("/") @QueryParam("toDate") String toDate,
@Produces(MediaType.APPLICATION_JSON) @QueryParam("date") String date,
public String getLog() throws Exception { @QueryParam("startBattery") int startBattery,
HttpSession session = request.getSession(); @QueryParam("USER_INFO") String userInfoString) throws Exception
Object userObj = session.getAttribute( "USER_INFO" ); {
String userId = "" ; JSONObject accountActivityData = new JSONObject();
String profileId=""; System.out.println("getAccountActivityData fromDate date [" + fromDate + "]");
System.out.println(" userObj >>[" + userObj + "]" ); System.out.println("getAccountActivityData toDate date [" + toDate + "]");
if(userObj != null) System.out.println("getAccountActivityData date [" + date + "]");
System.out.println("getAccountActivityData startBattery [" + startBattery + "]");
if(date != null){
fromDate = date;
toDate = date;
System.out.println("getAccountActivityData date not null [" + fromDate + "] toDate ["+toDate+"]");
}
if (fromDate == null)
{
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd-MM-YY");
fromDate = LocalDate.now().format(formatter1);
System.out.println("getAccountActivityData fromDate is null [" + fromDate + "]");
}
if (toDate == null)
{
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd-MM-YY");
toDate = LocalDate.now().format(formatter1);
System.out.println("getAccountActivityData toDate is null [" + toDate + "]");
}
if (startBattery == 0)
{
startBattery = 100;
System.out.println("getAccountActivityData startBattery is null [" + startBattery + "]");
}
if( userInfoString == null )
{
HttpSession session = request.getSession();
Object userObj = session.getAttribute("USER_INFO");
System.out.println("getAccountActivityData userObj [" + userObj + "]");
if (userObj != null)
{
userInfoString = userObj.toString();
}
else
{
userInfoString = null;
}
}
String userId = "";
String profileId = "";
System.out.println("getAccountActivityData userInfoString [" + userInfoString + "]");
if (userInfoString != null)
{
try
{
AccountActivityDao accountActivityDao = new AccountActivityDao();
UserInfoBean userInfo = new UserInfoBean( userInfoString );
userId = userInfo.getLoginCode();
profileId = userInfo.getProfileId();
System.out.println(" userInfo >>[" + userId + "] profile Id [" + profileId + "]");
accountActivityData = accountActivityDao.getUserActivityData(userId, profileId, fromDate, toDate, startBattery);
}
catch (BaseException e)
{ {
UserInfoBean userInfo; e.printStackTrace();
try {
userInfo = new UserInfoBean( userObj.toString() );
userId = userInfo.getLoginCode();
profileId = userInfo.getProfileId();
System.out.println(" userInfo >>[" + userId + "] profile Id ["+profileId+"]" );
} catch (BaseException e) {
e.printStackTrace();
}
} }
}
String logDetails = accountActivityDao. getUserActivityData(userId,profileId); System.out.println("getAccountActivityData accountActivityData : " + accountActivityData.toString());
return logDetails; return accountActivityData.toString();
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment