public static String getActionLog(Connection conn, HttpServletRequest request) throws ServiceException { ResultSet rs = null; String returnStr = ""; PreparedStatement pstmt = null; String searchString = request.getParameter("ss"); String limit = request.getParameter("limit"); String offset = request.getParameter("start"); JSONObject resobj = new JSONObject(); JSONObject tempobj = new JSONObject(); JSONArray jarr = new JSONArray(); String likeClause = ""; try { String companyid = AuthHandler.getCompanyid(request); String loginid = AuthHandler.getUserid(request); String[] searchStrObj = new String[] {"params", "actiontext"}; String myLikeString = StringUtil.getMySearchString(searchString, "and", searchStrObj); String flag = ""; int count1 = 0; String type = request.getParameter("type"); String dateSting = getDateString(conn, request, loginid); if (StringUtil.isNullOrEmpty(type)) { flag = "no"; returnStr = getAllLog(conn, request, companyid, limit, offset, searchString, dateSting); } else { switch (Integer.parseInt(type)) { case 0: flag = "projname"; returnStr = getLog(conn, request, companyid, limit, offset, searchString, dateSting, flag); flag = "no"; break; case 1: String admintype = request.getParameter("admintype"); if (admintype.equals("0")) { likeClause = "and al.actionid like '31%' "; } else if (admintype.equals("1")) { likeClause = "and al.actionid like '32%' "; } else { likeClause = "and al.actionid like '33%' or al.actionid like '40%' "; } flag = "admin"; break; case 2: flag = "doc"; likeClause = "and al.actionid like '21%' "; break; case 3: flag = "all"; likeClause = "and projectid != '' "; break; case 4: flag = "admin"; likeClause = "and (al.actionid like '31%' or al.actionid like '32?' or al.actionid like '33?' or al.actionid like '40%')"; break; case 5: flag = "all"; likeClause = "and (al.actionid like '41%')"; break; } } if (!flag.equals("no")) { count1 = getCountQuery( conn, pstmt, companyid, likeClause, myLikeString, searchStrObj, searchString, dateSting); String query = "select logid, al.actionid, actionby, params, timestamp, projectid from actionlog al inner join actions a on al.actionid = a.actionid where companyid = ? " + likeClause + myLikeString + dateSting + " order by timestamp DESC limit ? offset ?"; pstmt = conn.prepareStatement(query); pstmt.setString(1, companyid); int cnt = StringUtil.insertParamSearchString(2, pstmt, searchString, searchStrObj.length); pstmt.setInt(cnt++, Integer.parseInt(limit)); pstmt.setInt(cnt++, Integer.parseInt(offset)); rs = pstmt.executeQuery(); while (rs.next()) { tempobj = getJsonForAction(conn, pstmt, rs, request, flag); jarr.put(tempobj); } resobj.put("data", jarr); resobj.append("count", count1); returnStr = resobj.toString(); } } catch (ServiceException ex) { Logger.getLogger(AuditTrail.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { throw ServiceException.FAILURE("AuditTrail.getActionLog :" + ex.getMessage(), ex); } finally { return returnStr; } }
public static String getLog( Connection conn, HttpServletRequest request, String companyid, String limit, String offset, String searchString, String dateString, String flag) throws ServiceException { ResultSet rs = null; ResultSet rs1 = null; String returnStr = ""; PreparedStatement pstmt = null; String[] searchStrObj = new String[] {"params", "actiontext"}; String myLikeString = StringUtil.getMySearchString(searchString, "and", searchStrObj); JSONObject resobj = new JSONObject(); JSONObject tempobj = new JSONObject(); JSONArray jarr = new JSONArray(); try { String projectname = request.getParameter("projectname"); String query = "select projectid from project where projectname = ?"; pstmt = conn.prepareStatement(query); pstmt.setString(1, projectname); rs = pstmt.executeQuery(); rs.next(); String projectid = rs.getString("projectid"); pstmt = conn.prepareStatement( "select count(*) AS count from actionlog al inner join actions a on al.actionid = a.actionid where companyid = ? and projectid = ?" + myLikeString + dateString); pstmt.setString(1, companyid); pstmt.setString(2, projectid); StringUtil.insertParamSearchString(3, pstmt, searchString, searchStrObj.length); rs = pstmt.executeQuery(); int count1 = 0; if (rs.next()) { count1 = rs.getInt("count"); } String query1 = "select logid, al.actionid, actionby, params,al.projectid, timestamp from actionlog al inner join actions a on al.actionid = a.actionid where companyid = ? and projectid = ? " + myLikeString + dateString + " order by timestamp DESC limit ? offset ?"; pstmt = conn.prepareStatement(query1); pstmt.setString(1, companyid); pstmt.setString(2, projectid); int cnt = StringUtil.insertParamSearchString(3, pstmt, searchString, searchStrObj.length); pstmt.setInt(cnt++, Integer.parseInt(limit)); pstmt.setInt(cnt++, Integer.parseInt(offset)); rs1 = pstmt.executeQuery(); while (rs1.next()) { tempobj = getJsonForAction(conn, pstmt, rs1, request, flag); jarr.put(tempobj); } resobj.put("data", jarr); resobj.append("count", count1); returnStr = resobj.toString(); } catch (ServiceException ex) { throw ServiceException.FAILURE("AuditTrail.getLog", ex); } finally { return returnStr; } }