Commit d9329cab authored by pborate's avatar pborate

Account activity server.

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@178814 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 65522c4a
package ibase.dashboard.common.hibernate.bean;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
import org.json.JSONException;
import org.json.JSONObject;
import ibase.dashboard.common.hibernate.utility.HibernateUtil;
@Indexed
@Entity
@Table(name = "Employee")
@XmlRootElement(name = "employee")
public class Employee implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
@Id
@Column(name="EMP_CODE")
@Field(store = Store.YES, analyze = Analyze.NO)
private String empCode;
@Column(name="EMP_FNAME")
private String empFname;
@Column(name="EMP_LNAME")
private String empLname;
@Column(name="DESIGNATION")
private String designation;
@Column(name="REPORT_TO")
private String reportTo;
public Employee() {
}
public Employee(String empCode, String empFname, String empLname, String designation, String reportTo
) {
this.empCode = empCode;
this.empFname = empFname;
this.empLname = empLname;
this.designation = designation;
this.reportTo = reportTo;
}
public String getEmpCode() {
return empCode;
}
public void setEmpCode(String empCode) {
this.empCode = empCode;
}
public String getEmpFname() {
return empFname;
}
public void setEmpFname(String empFname) {
this.empFname = empFname;
}
public String getEmpLname() {
return empLname;
}
public void setEmpLname(String empLname) {
this.empLname = empLname;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}
public String getReportTo() {
return reportTo;
}
public void setReportTo(String reportTo) {
this.reportTo = reportTo;
}
@Override
public String toString(){
return "\n Employee.toString >> [" + new JSONObject(this).toString() + "]";
}
}
package ibase.dashboard.common.hibernate.bean;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
import org.json.JSONObject;
@Indexed
@Entity
@Table(name = "LOGINTRACE")
@XmlRootElement(name = "LoginTrace")
public class LoginTrace implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
@Id
@Field(store = Store.YES, analyze = Analyze.NO)
@Column(name="USERID")
private String userId;
@Column(name="LOGINTIME")
private Date loginTime;
@Column(name="LOGOUTTIME")
private Date logoutTime;
@Id
@Field(store = Store.YES, analyze = Analyze.NO)
@Column(name="SESSIONID")
private String sessionId;
@Column(name="LOGIN_STATUS")
private String loginStatus;
@Column(name="SESSION_DESTROY")
private String sessionDestroy;
@Column(name="DEVICE_TYPE")
private String deviceType;
@Column(name="HOST_IP")
private String hostIp;
@Column(name="CURRENT_GEO_POS")
private String currentGeoPos;
@Column(name="LOGIN_BATTERY_STAT")
private Integer loginBatteryStat;
@Column(name="LOGOUT_BATTERY_STAT")
private Integer logoutBatteryStat;
@Column(name="OS_NAME")
private String osName;
@Column(name="OS_VERSION")
private String osVersion;
@Column(name="CLIENT_APP")
private String clientApp;
@Column(name="CLIENT_APP_VER")
private String clientAppVer;
public LoginTrace() {
}
public LoginTrace(String userId, Date loginTime, Date logoutTime, String sessionId, String loginStatus,
String sessionDestroy,String deviceType,String hostIp,String currentGeoPos,Integer loginBatteryStat,
Integer logoutBatteryStat,String osName,String osVersion,String clientApp,String clientAppVer
) {
this.userId = userId;
this.loginTime = loginTime;
this.logoutTime = logoutTime;
this.sessionId = sessionId;
this.loginStatus = loginStatus;
this.sessionDestroy = sessionDestroy;
this.deviceType = deviceType;
this.hostIp = hostIp;
this.currentGeoPos = currentGeoPos;
this.loginBatteryStat = loginBatteryStat;
this.logoutBatteryStat=logoutBatteryStat;
this.osName = osName;
this.osVersion=osVersion;
this.clientApp = clientApp;
this.clientAppVer=clientAppVer;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public Date getLoginTime() {
return loginTime;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public Date getLogoutTime() {
return logoutTime;
}
public void setLogoutTime(Date logoutTime) {
this.logoutTime = logoutTime;
}
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public String getLoginStatus() {
return loginStatus;
}
public void setLoginStatus(String loginStatus) {
this.loginStatus = loginStatus;
}
public String getSessionDestroy() {
return sessionDestroy;
}
public void setSessionDestroy(String sessionDestroy) {
this.sessionDestroy = sessionDestroy;
}
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
public String getHostIp() {
return hostIp;
}
public void setHostIp(String hostIp) {
this.hostIp = hostIp;
}
public String getCurrentGeoPos() {
return currentGeoPos;
}
public void setCurrentGeoPos(String currentGeoPos) {
this.currentGeoPos = currentGeoPos;
}
public Integer getLoginBatteryStat() {
return loginBatteryStat;
}
public void setLoginBatteryStat(Integer loginBatteryStat) {
this.loginBatteryStat = loginBatteryStat;
}
public Integer getLogoutBatteryStat() {
return logoutBatteryStat;
}
public void setLogoutBatteryStat(Integer logoutBatteryStat) {
this.logoutBatteryStat = logoutBatteryStat;
}
public String getOsName() {
return osName;
}
public void setOsName(String osName) {
this.osName = osName;
}
public String getOsVersion() {
return osVersion;
}
public void setOsVersion(String osVersion) {
this.osVersion = osVersion;
}
public String getClientApp() {
return clientApp;
}
public void setClientApp(String clientApp) {
this.clientApp = clientApp;
}
public String getClientAppVer() {
return clientAppVer;
}
public void setClientAppVer(String clientAppVer) {
this.clientAppVer = clientAppVer;
}
@Override
public String toString(){
return "\n LoginTrace.toString >> [" + new JSONObject(this).toString() + "]";
}
}
/*
{
"userId": "",
"userName": "",
"designation": "",
"batteryStatus": {
"dayStart": "",
"dayEnd": "",
"loginTime": "",
"logoutTime": ""
},
"activityDetail": [
{
"browserName": "",
"totalTime": "",
"hostIp": "",
"currentGeoPos": "",
"activityData": [
{
"actObjName": "",
"actObjDescr": "",
"accessStartTime": "",
"accessEndTime": ""
},
{
"actObjName": "",
"actObjDescr": "",
"accessStartTime": "",
"accessEndTime": ""
}
]
},
{
"browserName": "",
"totalTime": "",
"hostIp": "",
"currentGeoPos": "",
"activityData": [
{
"actObjName": "",
"actObjDescr": "",
"accessStartTime": "",
"accessEndTime": ""
},
{
"actObjName": "",
"actObjDescr": "",
"accessStartTime": "",
"accessEndTime": ""
}
]
}
]
}
*/
\ No newline at end of file
package ibase.dashboard.common.hibernate.bean;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
import org.json.JSONObject;
import oracle.sql.DATE;
@Indexed
@Entity
@Table(name = "USER_DEVICE")
@XmlRootElement(name = "UserDevice")
public class UserDevice implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
@Id
@Field(store = Store.YES, analyze = Analyze.NO)
@Column(name="USER_ID")
private String userId;
@Column(name="DEVICE_ID__PUSH")
private String deviceIdPush;
@Column(name="DEVICE_OS")
private String deviceOs;
@Column(name="DEVICE_TYPE")
private String deviceType;
@Column(name="EFF_FROM")
private Date effFrom;
@Column(name="VALID_UPTO")
private Date validUpto;
@Column(name="ACTIVE")
private String active;
@Column(name="DEVICE_MAKE")
private String deviceMake;
@Column(name="DEVICE_MAC_ADDR")
private String deviceMacAddr;
public UserDevice() {
}
public UserDevice(String userId,String deviceIdPush,String deviceOs,String deviceType,
Date effFrom, Date validUpto, String active, String deviceMake, String deviceMacAddr
) {
this.userId = userId;
this.deviceIdPush = deviceIdPush;
this.deviceOs = deviceOs;
this.deviceType = deviceType;
this.effFrom = effFrom;
this.validUpto = validUpto;
this.active = active;
this.deviceMake = deviceMake;
this.deviceMacAddr = deviceMacAddr;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getDeviceIdPush() {
return deviceIdPush;
}
public void setDeviceIdPush(String deviceIdPush) {
this.deviceIdPush = deviceIdPush;
}
public String getDeviceOs() {
return deviceOs;
}
public void setDeviceOs(String deviceOs) {
this.deviceOs = deviceOs;
}
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
public Date getEffFrom() {
return effFrom;
}
public void setEffFrom(Date effFrom) {
this.effFrom = effFrom;
}
public Date getValidUpto() {
return validUpto;
}
public void setValidUpto(Date validUpto) {
this.validUpto = validUpto;
}
public String getActive() {
return active;
}
public void setActive(String active) {
this.active = active;
}
public String getDeviceMake() {
return deviceMake;
}
public void setDeviceMake(String deviceMake) {
this.deviceMake = deviceMake;
}
public String getDeviceMacAddr() {
return deviceMacAddr;
}
public void setDeviceMacAddr(String deviceMacAddr) {
this.deviceMacAddr = deviceMacAddr;
}
@Override
public String toString(){
return "\n UserDevice.toString >> [" + new JSONObject(this).toString() + "]";
}
}
package ibase.dashboard.common.hibernate.bean;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
import org.json.JSONException;
import org.json.JSONObject;
import ibase.dashboard.common.hibernate.utility.HibernateUtil;
@Indexed
@Entity
@Table(name = "USERS")
@XmlRootElement(name = "UserProfile")
public class UserProfile implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
@Id
@Column(name="CODE")
@Field(store = Store.YES, analyze = Analyze.NO)
private String userCode;
@Column(name="BIRTH_DATE")
private Date birthDate;
@Column(name="GENDER")
private String gender;
@Column(name="NAME")
private String userName;
@Transient
private String firstName;
@Transient
private String lastName;
@Column(name="EMAIL_ID")
private String emailId;
@Column(name="MOBILE_NO")
private String contactNo;
@Column(name="EMP_CODE")
private String empCode;
public UserProfile() {
}
public UserProfile(String userCode, Date birthDate, String gender, String userName, String emailId,
String contactNo,String empCode) {
this.userCode = userCode;
this.birthDate = birthDate;
this.gender = gender;
this.userName = userName;
this.emailId = emailId;
this.contactNo = contactNo;
this.empCode=empCode;
}
public String getEmpCode() {
return empCode;
}
public void setEmpCode(String empCode) {
this.empCode = empCode;
}
public String getUserCode() {
return userCode;
}
@XmlElement
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public Date getBirthDate() {
return birthDate;
}
@XmlElement
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
public String getGender() {
return gender;
}
@XmlElement
public void setGender(String gender) {
this.gender = gender;
}
public String getUserName() {
return userName;
}
@XmlElement
public void setUserName(String userName) {
this.userName = userName;
}
public String getFirstName() {
return firstName;
}
@XmlElement
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
@XmlElement
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailId() {
return emailId;
}
@XmlElement
public void setEmailId(String emailId) {
this.emailId = emailId;
}
public String getContactNo() {
return contactNo;
}
@XmlElement
public void setContactNo(String contactNo) {
this.contactNo = contactNo;
}
@Override
public String toString(){
return "\n UserProfile.toString >> [" + new JSONObject(this).toString() + "]";
}
}
package ibase.dashboard.common.hibernate.utility;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
//import org.hibernate.cfg.Configuration;
//import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
//private static final SessionFactory sessionFactory = buildSessionFactory();
private static final SessionFactory sessionFactory;
//private static SessionFactory buildSessionFactory()
static
{
try
{
/*
// For Hibernate 4.x
// 1. configuring hibernate
Configuration configuration = new Configuration().configure("resource/hibernate.cfg.xml");
// 2. create sessionfactory
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
// Create the SessionFactory from hibernate.cfg.xml
return sessionFactory;
*/
// For Hibernate 5.x
// 1. configuring hibernate
StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure("resource/hibernate.cfg.xml").build();
// 2. create sessionfactory
Metadata metaData = new MetadataSources(standardRegistry).getMetadataBuilder().build();
sessionFactory = metaData.getSessionFactoryBuilder().build();
}
catch (Throwable ex)
{
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
public static void shutdown()
{
// Close caches and connection pools
getSessionFactory().close();
}
private static final Map<String, SessionFactory> sessionFactories = new HashMap<String, SessionFactory>();
private static SessionFactory buildSessionFactory(String dbName)
{
try
{
/*
// For Hibernate 4.x
// 1. configuring hibernate
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
// 2. create sessionfactory
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
*/
// For Hibernate 5.x
// 1. configuring hibernate
StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure("resource/hibernate.cfg.xml").build();
// 2. create sessionfactory
Metadata metaData = new MetadataSources(standardRegistry).getMetadataBuilder().build();
SessionFactory sessionFactory = metaData.getSessionFactoryBuilder().build();
sessionFactories.put(dbName,sessionFactory);
// Create the SessionFactory from hibernate.cfg.xml
return sessionFactory;
}
catch (final HibernateException e)
{
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + e);
e.printStackTrace();
throw new ExceptionInInitializerError(e);
}
catch (Throwable ex)
{
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
ex.printStackTrace();
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory(String dbName)
{
if( "DEFAULT".equalsIgnoreCase(dbName) )
{
return getSessionFactory();
}
else
{
SessionFactory _sessionFactory = sessionFactories.get(dbName);
if( _sessionFactory == null )
{
_sessionFactory = buildSessionFactory(dbName);
}
return _sessionFactory;
}
}
public static void shutdown(String dbName)
{
// Close caches and connection pools
getSessionFactory(dbName).close();
}
public static String DB_DATE_FORMAT = "yyyy-MM-dd";
public static String APPL_DATE_FORMAT = "dd/MM/yyyy";
//Get Date object in Provided Format
public static Date getDateObject(String dateStr, String dateFormat)
{
Date dateObj = null;
SimpleDateFormat simpleDateFormat = null;
try
{
simpleDateFormat = new SimpleDateFormat(dateFormat);
dateObj = simpleDateFormat.parse(dateStr);
}
catch(Exception e)
{
System.out.println("Exception :GenericUtility :getDateObject :==>\n"+e.getMessage());
e.printStackTrace();
}
return dateObj;
}
//While Sending date to Client End
//Get formatted Date String DB to APPL format
public static String getValidDB2APPLDate(String dateStr)
{
return getValidDateString(dateStr, DB_DATE_FORMAT, APPL_DATE_FORMAT);
}
//While inserting / updating date to Database
//Get formatted Date String APPL to DB format
public static String getValidAPPL2DBDate(String dateStr)
{
return getValidDateString(dateStr, APPL_DATE_FORMAT, DB_DATE_FORMAT);
}
private static String getValidDateString(String dateStr, String sourceDateFormat, String targetDateFormat)
{
Object date = null;
SimpleDateFormat sdfOutput = null;
String retDateStr = "";
try
{
if (!(sourceDateFormat.equalsIgnoreCase(targetDateFormat)))
{
if (sourceDateFormat.indexOf("/") != -1)
{
dateStr.replace('/', '-');
}
else if (sourceDateFormat.indexOf(".") != -1)
{
dateStr.replace('.', '-');
}
date = new SimpleDateFormat(sourceDateFormat).parse(dateStr);
sdfOutput = new SimpleDateFormat(targetDateFormat);
retDateStr = sdfOutput.format(date);
}
else
{
retDateStr = dateStr;
}
}
catch (Exception e)
{
System.out.println("Exception :GenericUtility :getValidDateString :==>"+e.getMessage());
e.printStackTrace();
}
return retDateStr;
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- Datasource for Hibernate Connection -->
<property name="hibernate.connection.datasource">java:/OracleDS</property>
<property name="hibernate.cache.use_query_cache">false</property>
<!-- Echo all executed SQL to sysout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<!-- <property name="hibernate.hbm2ddl.auto">update</property> -->
<!-- Map Entity Class -->
<mapping class="ibase.dashboard.hibernate.bean.DocContents"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.DocTransLink"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.RefSer"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.UserDocContent"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.Task"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.LoginTrace"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.Employee"></mapping>
<mapping class="ibase.dashboard.hibernate.bean.UserProfile"></mapping>
</session-factory>
</hibernate-configuration>
package ibase.dashboard.common.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONException;
import org.json.JSONObject;
public class BBAccountActivityPluginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
try
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("bbAccountActivityPluginTag", "<bb-account-activity-plugin></bb-account-activity-plugin>");
resp.setContentType( "application/json" );
PrintWriter pw = resp.getWriter();
pw.write(jsonObject.toString());
pw.flush();
}
catch (JSONException e)
{
System.out.println("BBAccountActivityPluginServlet JSONException [" + e.getMessage() + "]");
e.printStackTrace();
}
catch (Exception e)
{
System.out.println("BBAccountActivityPluginServlet Exception [" + e.getMessage() + "]");
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
doPost(req, resp);
}
}
package ibase.dashboard.common.webService;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import ibase.dashboard.common.hibernate.dao.AccountActivityDao;
import ibase.utility.BaseException;
import ibase.utility.UserInfoBean;
@Path("/accountActivity")
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 {
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() );
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);
return logDetails;
}
}
\ 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