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;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.security.Timestamp;
import java.text.ParseException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
import org.apache.commons.io.FileUtils;
import org.hibernate.HibernateException;
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.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.omg.CORBA.CODESET_INCOMPATIBLE;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
......@@ -39,53 +30,126 @@ import ibase.dashboard.common.hibernate.bean.UserProfile;
import ibase.dashboard.common.hibernate.utility.HibernateUtil;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.dashboard.common.hibernate.utility.*;
//import jersey.repackaged.com.google.common.collect.Lists;
//6DBC5A495F0F2C5371D59DC89EB06F41
public class AccountActivityDao
{
private static String siteTranDB = "DEFAULT";
public String getUserActivityData(String loginCode, String profileId)throws Exception
private GenericUtil genUtil = new GenericUtil();
/**
* @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();
JSONArray activityDataFinalArray = new JSONArray();
System.out.println("getUserActivityData>>>");
profileId=profileId.trim();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYYMMdd");
String today = LocalDate.now().format(formatter);
System.out.println("today date ["+today+"]");
String format="dd-MM-yy";
String format1="YYYYMMdd";
List<String> dateListQuery= genUtil.getDateList(fromDate,toDate,format);
System.out.println("dateListQuery::::"+dateListQuery);
List<String> dateListFile= genUtil.getDateList(fromDate,toDate,format1);
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd-MM-YY");
String todayFormat = LocalDate.now().format(formatter1);
System.out.println("today1 date ["+todayFormat+"]");
System.out.println("dateListFile::::"+dateListFile);
/* For ADMIN and ADM user all users data read */
if( "ADMIN".equalsIgnoreCase(profileId) || "ADM".equalsIgnoreCase(profileId) )
{
List<JSONObject> fileDataList= getUserActivityFileData(null,today);
System.out.println("getUserActivityData>>>"+ fileDataList);
HashMap<String, JSONObject> minMaxTimeList= getMinMaxTime(todayFormat,null);
HashMap<String, JSONObject> minMaxBatteryStatus = getBatteryStatus(todayFormat);
List<String> loginUserList = getLoginUsers(todayFormat);
System.out.println("loginUserList in Admin case:::::"+loginUserList);
System.out.println("Account activity for Admin");
activityDataFinal=prepareAdminUserData(activityDataFinal,activityDataFinalArray,fromDate,toDate);
}
/* For Profile Ids except ADMIN and ADM */
else
{
System.out.println("Account activity for user");
activityDataFinal=prepareUserData(activityDataFinal,activityDataFinalArray,fromDate,toDate,loginCode,profileId,dateListFile);
}
return activityDataFinal;
}
JSONObject activityData = new JSONObject();
JSONArray deviceTypeList= getDeviceType(loginUserList, todayFormat);
/**
* @param minMaxTimeList - minimum login and maximum logout time on the basis of date and user
* @param minMaxBatteryStatus -minimum login battery status and maximum logout battery status on the basis of date and user
* @param usersId - userId with date.
* @return If user activity file not Present
*/
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;
}
/**
* @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);
JSONObject clientAppList= getClientApp(activityData,loginUserList, todayFormat);
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>();
JSONObject osNameList= getOsName(activityData,loginUserList, todayFormat);
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(loginUserList != null){
for(String usersId : loginUserList){
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,usersId);
if(loginlist != null){
for(String loginId : loginlist){
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,loginId);
activityDataFinalArray.put(activityData);
}
}
......@@ -99,152 +163,207 @@ public class AccountActivityDao
String userId = fileDataObj.optString("userId");
String activityDate = fileDataObj.optString("activityDate");
String fileContents = fileDataObj.optString("fileContents");
fileUsersList.add(userId);
String loginIdFormated=userId+"_"+activityDate;
fileUsersList.add(loginIdFormated);
System.out.println("fileUsersList in Admin case::::::::: "+fileUsersList);
System.out.println("fileName::::::::: ["+userId+"]["+activityDate+"]");
activityData = createActivityData(userId, fileContents);
activityData = updateMinMaxTime(activityData, minMaxTimeList.get(userId)) ;
activityData = checkUserForBatteryStatus(activityData, minMaxBatteryStatus,userId) ;
System.out.println("fileName::::::::: ["+loginIdFormated+"]");
activityData = createActivityData(loginIdFormated, fileContents);
activityData = updateMinMaxTime(activityData, minMaxTimeList.get(loginIdFormated)) ;
activityData = checkUserForBatteryStatus(activityData, minMaxBatteryStatus,loginIdFormated) ;
activityDataFinalArray.put(activityData);
}
loginUserList.removeAll(fileUsersList); //For some user who didn't perform userActivity
System.out.println("loginUserList after:::"+loginUserList);
for(String usersId : loginUserList)
loginlist.removeAll(fileUsersList); //For some user who didn't perform userActivity
System.out.println("loginUserList after:::"+loginlist);
if(loginlist != null){
for(String loginId : loginlist)
{
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,usersId);
activityData=fileNotFoundUsers(activityData,minMaxTimeList,minMaxBatteryStatus,loginId);
activityDataFinalArray.put(activityData);
}
}
activityDataFinalArray = prepareAllUsersData(activityDataFinalArray);
}
activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
//TO GET All Login User Data
return activityDataFinal;
}
/* For Profile Ids except ADMIN and ADM */
else
/**
* @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 dateListFile -till date user Data shown (which can not greater than todays date)
* @return the method return fromDate to toDate login user and reporting to login user.
* If users done some userActivity then session data read Otherwise
* only user data will be read on the basis of date and user id.
*/
private JSONObject prepareUserData(JSONObject activityDataFinal,JSONArray activityDataFinalArray, String fromDate,String toDate,String loginCode,String profileId,List<String> dateListFile) throws JSONException, IOException
{
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);
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 selfActivityData = new JSONObject();
JSONArray deviceTypeList= getDeviceType(userDataList, todayFormat);
JSONObject clientAppList= getClientApp(selfActivityData,userDataList, todayFormat);
JSONObject osNameList= getOsName(selfActivityData,userDataList, todayFormat);
selfActivityData=prepareDataForGraph(selfActivityData,fromDate,toDate,userDataList);
activityDataFinal.put("ACTIVITY_GRAPH_DATA",selfActivityData);
List<JSONObject> fileDataList= getUserActivityFileData(userDataList, today);
List<JSONObject> fileDataList= getUserActivityFileData( userList);
System.out.println("fileDataList AFTER>>>"+fileDataList);
JSONObject teamMemberActivityData = new JSONObject();
JSONArray teamActivityData = new JSONArray();
if(fileDataList.isEmpty()) // For users which is in userDataList didn't perform any userActivity .
{
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,loginCode);
for(String date : dateListFile)
{
JSONArray teamActivityData = new JSONArray();
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,loginCode+"_"+date);
userDataList.remove(loginCode);
System.out.println("userDataList in After removing logincode:::"+userDataList);
if(userDataList != null){
for(String usersId : userDataList){
teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
for(String usersId : userDataList)
{
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);
}
if(teamActivityData.length()>0){
System.out.println("teamActivityData::::: ["+teamActivityData+"]");
if(teamActivityData.length()>0)
{
selfActivityData.put("TEAM", teamActivityData);
}
}
activityDataFinalArray.put(selfActivityData);
}
activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
System.out.println("activityDataFinal for if"+activityDataFinal);
}
else //For users which is in userDataList perform userActivity.
{
List<String> fileUsersList = new ArrayList<String>();
for(JSONObject fileDataObj : fileDataList )
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 data list is null ::::");
JSONArray teamActivityData = new JSONArray();
for(String usersId : userListNew) // For users which is in userDataList if some user didn't perform user Activity
{
String[] fileArr = usersId.split("_");
String userCode = fileArr[0];
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)
{
selfActivityData.put("TEAM", teamActivityData);
}
}
if(fileDataListNew !=null)
{
JSONArray teamActivityData = new JSONArray();
List<String> fileUsersListNew = new ArrayList<String>();
for(JSONObject fileData:fileDataListNew){
System.out.println("Inside file else:::"+userDataList);
String userId = fileDataObj.optString("userId");
String activityDate = fileDataObj.optString("activityDate");
String fileContents = fileDataObj.optString("fileContents");
String userId = fileData.optString("userId");
String activityDate = fileData.optString("activityDate");
String fileContents = fileData.optString("fileContents");
System.out.println("fileName::::::::: ["+userId+"]["+activityDate+"]");
fileUsersList.add(userId);
fileUsersListNew.add(userId+"_"+activityDate);
if( userId.equalsIgnoreCase(loginCode))
{
selfActivityData = createActivityData(userId, fileContents);
selfActivityData = checkUserForMinMaxTime(selfActivityData, minMaxTimeList,userId) ;
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,userId) ;
selfActivityData = createActivityData(userId+"_"+activityDate, fileContents);
selfActivityData = checkUserForMinMaxTime(selfActivityData, minMaxTimeList,userId+"_"+activityDate) ;
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,userId+"_"+activityDate) ;
}
else
{
teamMemberActivityData = createActivityData(userId, fileContents);
teamMemberActivityData = checkUserForMinMaxTime(teamMemberActivityData,minMaxTimeList,userId) ;
teamMemberActivityData = checkUserForBatteryStatus(teamMemberActivityData, minMaxBatteryStatus,userId) ;
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("fileUsersList in else::::::::: ["+fileUsersList+"]");
System.out.println("fileUsersListNew in else::::::::: ["+fileUsersListNew+"]");
}
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
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
{
if( usersId.equalsIgnoreCase(loginCode))
String[] fileArr = usersId.split("_");
String userCode = fileArr[0];
if( userCode.equalsIgnoreCase(loginCode))
{
selfActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
System.out.println("selfActivityData after:::"+selfActivityData);
}
else {
else
{
JSONObject teamMemberActivityData = new JSONObject();
teamMemberActivityData=fileNotFoundUsers(selfActivityData,minMaxTimeList,minMaxBatteryStatus,usersId);
teamActivityData.put(teamMemberActivityData);
System.out.println("teamActivityData after:::"+teamActivityData);
}
}
if(fileDataList != null && fileDataList.size() > 0 )
{
if( selfActivityData == null )
{
selfActivityData = getUserDetail(new JSONObject(), loginCode);
selfActivityData = updateMinMaxTime(selfActivityData, minMaxTimeList.get(loginCode)) ;
selfActivityData = checkUserForBatteryStatus(selfActivityData, minMaxBatteryStatus,loginCode) ;
}
if(teamActivityData.length()>0)
{
selfActivityData.put("TEAM", teamActivityData);
}
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*/
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;
}
activityDataFinal.put("ACTIVITY_DATA", activityDataFinalArray);
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;
}
/**
* @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
{
if(minMaxTimeObj !=null)
{
activityData.put("LOGIN_TIME", checkNull(minMaxTimeObj.opt("loginTime")));
activityData.put("LOGOUT_TIME", checkNull(minMaxTimeObj.opt("logoutTime")));
activityData.put("LOGIN_TIME", genUtil.checkNull(minMaxTimeObj.opt("loginTime")));
activityData.put("LOGOUT_TIME", genUtil.checkNull(minMaxTimeObj.opt("logoutTime")));
System.out.println("minMaxTimeList query result:::::::"+minMaxTimeObj);
return activityData;
}
......@@ -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
{
System.out.println("checkUserForMinMaxTime activity data::::"+activityData);
......@@ -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
{
if(minMaxBatteryStatus !=null)
{
activityData.put("LOGIN_BATTERY_STATUS", checkNull(minMaxBatteryStatus.opt("loginBatteryStatus")));
activityData.put("LOGOUT_BATTERY_STATUS",checkNull(minMaxBatteryStatus.opt("logoutBatteryStatus")));
activityData.put("LOGIN_BATTERY_STATUS", genUtil.checkNull(minMaxBatteryStatus.opt("loginBatteryStatus")));
activityData.put("LOGOUT_BATTERY_STATUS",genUtil.checkNull(minMaxBatteryStatus.opt("logoutBatteryStatus")));
System.out.println("minMaxBatteryStatus query result:::::::"+minMaxBatteryStatus);
return activityData;
}
......@@ -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
{
System.out.println("checkUser:::::::userId ["+userId+"] minMaxBatteryStatus"+minMaxBatteryStatus);
......@@ -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
{
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 )
{
activityData.put("NAME", employee.getEmpFname());
activityData.put("DESIGNATION", employee.getDesignation());
activityData.put("USER_ID", userCode);
activityData.put("USER_ID", userId);
}
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)
{
String[] fileArr = userCode.split("_");
String userId = fileArr[0] ;
E12GenericUtility e12GenericUtility = new E12GenericUtility();
ArrayList<String> objNameList = new ArrayList<String>();
JSONObject activityData = new JSONObject();
......@@ -332,7 +479,7 @@ public class AccountActivityDao
NodeList activitySessIdNL = activityDoc.getElementsByTagName("ACTIVITY_SESSION_ID");
activityData = processSessionIds( userCode, activitySessIdNL );
activityData = processSessionIds( userId, activitySessIdNL );
JSONArray sessionArray = activityData.optJSONArray("ALL_SESSIONS");
System.out.println("sessionArrayList"+sessionArray);
......@@ -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
{
String startTime, endTime="";
......@@ -537,6 +688,11 @@ public class AccountActivityDao
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
{
JSONObject activityData = new JSONObject();
......@@ -578,17 +734,17 @@ public class AccountActivityDao
String activitySeesionId = loginTrace.getSessionId();
activityObjData.put("SESSION_ID", activitySeesionId);
activityObjData.put("DEVICE_TYPE", checkNull(loginTrace.getDeviceType()));
activityObjData.put("OS_NAME", checkNull(loginTrace.getOsName()));
activityObjData.put("HOST_IP", checkNull(loginTrace.getHostIp()));
activityObjData.put("CURRENT_GEO_POS", checkNull(loginTrace.getCurrentGeoPos()));
activityObjData.put("OS_VERSION", checkNull(loginTrace.getOsVersion()));
activityObjData.put("CLIENT_APP", checkNull(loginTrace.getClientApp()));
activityObjData.put("CLIENT_APP_VER",checkNull(loginTrace.getClientAppVer()));
activityObjData.put("LOGIN_TIME", checkNullDate(loginTrace.getLoginTime()));
activityObjData.put("LOGOUT_TIME", checkNullDate(loginTrace.getLogoutTime()));
activityObjData.put("LOGIN_BATTERY_STAT", checkNull(loginTrace.getLoginBatteryStat()));
activityObjData.put("LOGOUT_BATTERY_STAT",checkNull(loginTrace.getLogoutBatteryStat()));
activityObjData.put("DEVICE_TYPE", genUtil.checkNull(loginTrace.getDeviceType()));
activityObjData.put("OS_NAME", genUtil.checkNull(loginTrace.getOsName()));
activityObjData.put("HOST_IP", genUtil.checkNull(loginTrace.getHostIp()));
activityObjData.put("CURRENT_GEO_POS", genUtil.checkNull(loginTrace.getCurrentGeoPos()));
activityObjData.put("OS_VERSION", genUtil.checkNull(loginTrace.getOsVersion()));
activityObjData.put("CLIENT_APP", genUtil.checkNull(loginTrace.getClientApp()));
activityObjData.put("CLIENT_APP_VER",genUtil.checkNull(loginTrace.getClientAppVer()));
activityObjData.put("LOGIN_TIME", genUtil.checkNullDate(loginTrace.getLoginTime()));
activityObjData.put("LOGOUT_TIME", genUtil.checkNullDate(loginTrace.getLogoutTime()));
activityObjData.put("LOGIN_BATTERY_STAT", genUtil.checkNull(loginTrace.getLoginBatteryStat()));
activityObjData.put("LOGOUT_BATTERY_STAT",genUtil.checkNull(loginTrace.getLogoutBatteryStat()));
ActivityTime loginTime = new ActivityTime(loginTrace.getLoginTime(), loginTrace.getLogoutTime());
......@@ -605,26 +761,12 @@ public class AccountActivityDao
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)
{
List<LoginTrace> loginTraceList = null;
......@@ -651,6 +793,10 @@ public class AccountActivityDao
return loginTraceList;
}
/**
* @param userCode -
* @return the method return Employee table data on the basis of user code.
*/
private Employee getEmployeeDetail(String userCode)
{
System.out.println("Inside getUserDesignation");
......@@ -683,6 +829,11 @@ public class AccountActivityDao
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)
{
List<String> userDetailList = null;
......@@ -712,22 +863,35 @@ public class AccountActivityDao
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> ();
JSONArray device=new JSONArray();
try
{
// 1. Get Session object
String userList = getEnclosedString(loginUserList);
System.out.println("Inside getUserDetails userId: [" + loginUserList + "]");
String whereClausePart = "";
if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query
Query query = session.createSQLQuery("select count(1), DEVICE_TYPE "
+ "from logintrace where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"'"
+ " and userid in ("+userList+")"
+ " and LOGIN_STATUS = 'T'"
+ " group by DEVICE_TYPE "
Query query = session.createSQLQuery("select count(1), DEVICE_TYPE"
+ " from logintrace"
+ " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T' "
+ whereClausePart
+ " and device_type is not null group by DEVICE_TYPE "
+ "");
System.out.println("query result>>>>>"+query);
......@@ -756,23 +920,34 @@ public class AccountActivityDao
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
{
String whereClausePart = "";
if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
// 1. Get Session object
String userList = getEnclosedString(loginUserList);
System.out.println("Inside getClientApp userId: [" + loginUserList + "]");
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query
Query query = session.createSQLQuery("select count(1), CLIENT_APP "
+ " from logintrace "
+ " where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"' "
+ " and LOGIN_STATUS = 'T' "
+ " and userid in ("+userList+")"
Query query = session.createSQLQuery("select count(1), CLIENT_APP"
+ " from logintrace"
+ " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'"
+ whereClausePart
+ " and DEVICE_TYPE = 'Browser'"
+ " group by (CLIENT_APP)");
+ " group by (CLIENT_APP)"
+ " ");
System.out.println("getClientApp query >>>>>"+query);
JSONObject jsonObject = new JSONObject();
......@@ -785,6 +960,8 @@ public class AccountActivityDao
List<Object[]> clientAppList= (List<Object[]>)query.list();
for(Object[] clientapplist: clientAppList){
BigDecimal clientAppCount = (BigDecimal)clientapplist[0];
if(clientapplist[1] != null)
{
String clientAppName = (String) clientapplist[1];
if("CHROME".equalsIgnoreCase(clientAppName))
{
......@@ -802,10 +979,9 @@ public class AccountActivityDao
{
jsonObject.put( "OTHER",clientAppCount);
}
total=total.add(clientAppCount);
System.out.println("getClientApp query id::::::: jsonObject ["+jsonObject+"]");
}
}
jsonObject.put("TOTAL", total);
activityData.put("BROWSER", jsonObject);
......@@ -820,22 +996,33 @@ public class AccountActivityDao
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
{
String userList = getEnclosedString(loginUserList);
// 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();
// 2. Create Query
Query query = session.createSQLQuery("select count(1), OS_NAME "
+ "from logintrace "
+ "where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"' "
Query query = session.createSQLQuery("select count(1), OS_NAME"
+ " from logintrace"
+ " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T'"
+ " and userid in ("+userList+")"
+ " and DEVICE_TYPE in ( 'Android Mobile' , 'Android Tablet', 'iOS Mobile' , 'iOS Tablet' ) "
+ whereClausePart
+ " and DEVICE_TYPE in ( 'Android Mobile' ,'Android Tablet','iOS Mobile' , 'iOS Tablet' )"
+ " group by (OS_NAME)");
System.out.println("getOsName query >>>>>"+query);
......@@ -848,6 +1035,8 @@ public class AccountActivityDao
List<Object[]> osNameList= (List<Object[]>)query.list();
for(Object[] osnamelist: osNameList){
BigDecimal osNameCount = (BigDecimal)osnamelist[0];
if(osnamelist[1] != null){
String osname = (String) osnamelist[1];
//String deviceType = (String) osnamelist[2];
if("ANDROID".equalsIgnoreCase(osname)){
......@@ -863,8 +1052,10 @@ public class AccountActivityDao
total=total.add(osNameCount);
System.out.println("getOsName query id::::::: TOTAL"+total+"jsonObject ["+jsonObject+"]");
}
}
jsonObject.put("TOTAL", total);
activityData.put("MOBILE", jsonObject);
session.close();
}
catch (HibernateException e)
......@@ -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
{
// 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();
// 2. Create Query
Query query = session.createSQLQuery("select distinct userid from logintrace"
+ " where to_char(LOGINTIME, 'dd-MM-yy')= '"+today+"'"
+ "and LOGIN_STATUS = 'T'");
Query query = session.createSQLQuery("select userid ,to_date(LOGINTIME, 'dd-MM-yy') logintime"
+ " from logintrace"
+ " 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);
allLoginUsers = query.getResultList();
System.out.println("getLoginUsers result:::::::"+allLoginUsers+"size::::"+allLoginUsers.size());
System.out.println("getLoginUsers query >>>>>"+query);
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();
}
......@@ -904,7 +1113,14 @@ public class AccountActivityDao
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>();
try
......@@ -913,30 +1129,34 @@ public class AccountActivityDao
String whereClausePart = "";
if(userDataList != null)
{
String userList = getEnclosedString(userDataList);
String userList = genUtil.getEnclosedString(userDataList);
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();
// 2. Create Query
Query query = session.createSQLQuery("select userid, min(LOGINTIME) as LOGINTIME , max(LOGOUTTIME)as LOGOUTTIME"
+ " from logintrace"
+ " where to_char(LOGINTIME,'dd-MM-yy') = '"+today+"'"
+ " and LOGIN_STATUS = 'T'"
+ " from logintrace "
+ " where to_date(LOGINTIME, 'dd-MM-yy') between '"+fromDate+"' and '"+toDate+"'"
+ " and LOGIN_STATUS = 'T' "
+ whereClausePart
+ " group by userid");
+ "group by userid, to_date(LOGINTIME, 'dd-MM-yy') "
+ "order by userid");
System.out.println("query result>>>>>"+query);
SimpleDateFormat newFormat = new SimpleDateFormat("YYYYMMdd");
List<Object[]> minMaxTimeList= (List<Object[]>)query.list();
for(Object[] minMaxTime: minMaxTimeList){
String userId = (String)minMaxTime[0];
Date loginTime = (Date) minMaxTime[1];
Date logoutTime = (Date) minMaxTime[2];
String loginDateFormat =newFormat.format(loginTime);
JSONObject jsonObject = new JSONObject();
jsonObject.put("loginTime", loginTime);
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();
}
......@@ -952,28 +1172,43 @@ public class AccountActivityDao
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>();
try
{
// 1. Get Session object
System.out.println("Inside getBatteryStatus todayFormat: [" + todayFormat + "]");
String whereClausePart = "";
if(userDataList != null)
{
String userList = genUtil.getEnclosedString(userDataList);
whereClausePart = " and userid in("+ userList +")";
}
System.out.println("Inside getBatteryStatus fromDate: [" + fromDate + "] toDate ["+toDate+"]");
Session session = HibernateUtil.getSessionFactory(siteTranDB).openSession();
// 2. Create Query
Query query = session.createSQLQuery("select A.userid, to_char(A.LOGINTIME,'dd-MM-yy hh24:mi:ss') IN_TIME, "
+ " to_char(A.LOGOUTTIME,'dd-MM-yy hh24:mi:ss') OUT_TIME, "
Query query = session.createSQLQuery("select A.userid, to_date(A.LOGINTIME,'dd-MM-yy hh24:mi:ss') IN_TIME, "
+ " to_date(A.LOGOUTTIME,'dd-MM-yy hh24:mi:ss') OUT_TIME, "
+ " A.LOGIN_BATTERY_STAT, "
+ " A.LOGOUT_BATTERY_STAT"
+ " from logintrace A,"
+ " ("
+ "("
+ " select userid, min(LOGINTIME) as LOGINTIME , max(LOGOUTTIME)as LOGOUTTIME"
+ " 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 LOGOUT_BATTERY_STAT is not null"
+ " group by userid"
+ whereClausePart
+ " group by userid, to_date(LOGINTIME, 'dd-MM-yy') "
+ " )B"
+ " where A.userid= B.userid"
+ " and ( A.LOGINTIME = B.LOGINTIME"
......@@ -982,7 +1217,7 @@ public class AccountActivityDao
+ "");
List<Object[]> batteryStatusList= (List<Object[]>)query.list();
SimpleDateFormat newFormat = new SimpleDateFormat("YYYYMMdd");
JSONObject jsonObject = new JSONObject();
List userList = new ArrayList<>();
for(Object[] batteryStatus: batteryStatusList){
......@@ -990,17 +1225,18 @@ public class AccountActivityDao
if(!userList.contains(userId)){
jsonObject=new JSONObject();
userList.add(userId);
String loginTime = (String) batteryStatus[1];
Date loginTime = (Date) batteryStatus[1];
BigDecimal loginBatteryStatus = (BigDecimal) batteryStatus[3];
jsonObject.put("loginTime", loginTime);
jsonObject.put("loginBatteryStatus", loginBatteryStatus);
}
String logoutTime = (String) batteryStatus[2];
Date logoutTime = (Date) batteryStatus[2];
BigDecimal logoutBatteryStatus = (BigDecimal) batteryStatus[4];
jsonObject.put("logoutTime", logoutTime);
String logoutDateFormat =newFormat.format(logoutTime);
jsonObject.put("logoutBatteryStatus", logoutBatteryStatus);
minMaxBatteryStatus.put(userId, jsonObject);
System.out.println("minMaxBatteryStatus query result userId ["+userId+"] jsonObject ["+jsonObject+"]");
minMaxBatteryStatus.put(userId+"_"+logoutDateFormat, jsonObject);
System.out.println("minMaxBatteryStatus query result userId ["+userId+"_"+logoutDateFormat+"] jsonObject ["+jsonObject+"]");
}
session.close();
}
......@@ -1013,6 +1249,8 @@ public class AccountActivityDao
return minMaxBatteryStatus;
}
public JSONArray processActivityAction(Node activityChildNode, JSONArray eventArray) throws JSONException
{
if( activityChildNode != null )
......@@ -1037,6 +1275,11 @@ public class AccountActivityDao
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
{
JSONObject eventObj = new JSONObject();
......@@ -1070,21 +1313,24 @@ public class AccountActivityDao
return eventObj;
}
// public List<JSONObject> getUserActivityFileData(List<String> users, String fromDate, String toDate) throws IOException, JSONException
// {
public List<JSONObject> getUserActivityFileData(List<String> users, String today) throws IOException, JSONException
/**
* @param loginFilelist - Users list (it can be login user list from date to toDate)
* @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>();
String jbossPath=CommonConstants.JBOSSHOME;
System.out.println("CommonConstants.JBOSSHOME ["+CommonConstants.JBOSSHOME+"]");
File userActivityFolder = new File(jbossPath+"/server/default/UserActivity");
System.out.println("userActivityFolder ["+userActivityFolder+"] Users "+users+"]");
System.out.println("userActivityFolder ["+userActivityFolder+"] ");
if( userActivityFolder.isDirectory() )
{
File[] userActivityFiles = userActivityFolder.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(today+".txt");
return pathname.getName().endsWith(".txt");
}
});
......@@ -1092,22 +1338,27 @@ public class AccountActivityDao
{
String fileName = userActivityFile.getName();
//System.out.println("userActivityFile[" + fileName + "]");
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 userId = ( fileArr.length > 0 ) ? fileArr[0] : "SYSTEM";
String activityDate = ( fileArr.length > 1 ) ? fileArr[1] : today;
System.out.println("userActivityFile[" + userId + "]["+activityDate+"]");
String activityDate =fileName.substring(fileName.lastIndexOf("_") + 1);
// activityDate = ( fileArr.length > 1 ) ? fileArr[1] : date;
System.out.println("userActivityFile READ[" + userId + "]["+activityDate+"]");
JSONObject fileData = new JSONObject();
fileData.put("userId", userId);
fileData.put("activityDate", activityDate);
if( users == null || ( users != null && users.contains(userId) ) )
{
String fileContents = FileUtils.readFileToString(userActivityFile);
StringBuffer fileContentsBuff = new StringBuffer();
fileContentsBuff.append("<ROOT>");
......@@ -1116,7 +1367,7 @@ public class AccountActivityDao
fileData.put("fileContents", fileContentsBuff.toString());
filesArrayList.add(fileData);
}
System.out.println(fileData.toString().length() + "\n");
}
......@@ -1124,140 +1375,6 @@ public class AccountActivityDao
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
{
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();
}
}
//http://192.168.0.220:9090/ibase/plugin/api/accountActivity?fromDate=10-02-18
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;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
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.UserInfoBean;
......@@ -17,32 +23,79 @@ public class AccountActivityService {
@Context
HttpServletRequest request; // The proxy of Request will be injected into this singleton
private AccountActivityDao accountActivityDao = new AccountActivityDao();
@GET
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
public String getLog() throws Exception {
public String getAccountActivityData(@QueryParam("fromDate") String fromDate,
@QueryParam("toDate") String toDate,
@QueryParam("date") String date,
@QueryParam("startBattery") int startBattery,
@QueryParam("USER_INFO") String userInfoString) throws Exception
{
JSONObject accountActivityData = new JSONObject();
System.out.println("getAccountActivityData fromDate date [" + fromDate + "]");
System.out.println("getAccountActivityData toDate date [" + toDate + "]");
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" );
String userId = "" ;
String profileId="";
System.out.println(" userObj >>[" + userObj + "]" );
if(userObj != null)
{
UserInfoBean userInfo;
try {
userInfo = new UserInfoBean( userObj.toString() );
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+"]" );
} catch (BaseException e) {
System.out.println(" userInfo >>[" + userId + "] profile Id [" + profileId + "]");
accountActivityData = accountActivityDao.getUserActivityData(userId, profileId, fromDate, toDate, startBattery);
}
catch (BaseException e)
{
e.printStackTrace();
}
}
String logDetails = accountActivityDao. getUserActivityData(userId,profileId);
return logDetails;
System.out.println("getAccountActivityData accountActivityData : " + accountActivityData.toString());
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