@Override public Comment getComment(String commentId) { String sql = "SELECT CM.*, V.videoname, U.username, U.userimageurl " + "FROM TBLCOMMENT CM " + "INNER JOIN TBLVIDEO V ON CM.videoid=V.videoid " + "INNER JOIN TBLUSER U ON CM.userid=U.userid " + "WHERE CM.commentid=?"; Comment comment = null; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setInt(1, Integer.parseInt(Encryption.decode(commentId))); ResultSet rs = ps.executeQuery(); while (rs.next()) { comment = new Comment(); comment.setCommentId(Encryption.encode(rs.getString("commentid"))); comment.setCommentDate(rs.getDate("commentdate")); comment.setCommentText(rs.getString("commenttext")); comment.setVideoId(Encryption.encode(rs.getString("videoid"))); comment.setUserId(Encryption.encode(rs.getString("userid"))); comment.setVideoName(rs.getString("videoname")); comment.setUsername(rs.getString("username")); comment.setUserImageUrl(rs.getString("userimageurl")); comment.setReplyId(Encryption.encode(rs.getString("replycomid"))); } return comment; } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println("Error"); return null; } return null; }
@Override public List<Comment> listComment(Pagination page) { String sql = "SELECT CM.*, V.videoname, U.username, U.userimageurl " + "FROM TBLCOMMENT CM " + "INNER JOIN TBLVIDEO V ON CM.videoid=V.videoid " + "INNER JOIN TBLUSER U ON CM.userid=U.userid " + "ORDER BY commentdate DESC OFFSET ? LIMIT ?"; List<Comment> list = new ArrayList<Comment>(); Comment comment = null; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setInt(1, page.offset()); ps.setInt(2, page.getItem()); ResultSet rs = ps.executeQuery(); while (rs.next()) { comment = new Comment(); comment.setCommentId(Encryption.encode(rs.getString("commentid"))); comment.setCommentDate(rs.getDate("commentdate")); comment.setCommentText(rs.getString("commenttext")); comment.setVideoId(Encryption.encode(rs.getString("videoid"))); comment.setUserId(Encryption.encode(rs.getString("userid"))); comment.setVideoName(rs.getString("videoname")); comment.setUsername(rs.getString("username")); comment.setUserImageUrl(rs.getString("userimageurl")); comment.setReplyId(Encryption.encode(rs.getString("replycomid"))); list.add(comment); } return list; } catch (SQLException e) { e.printStackTrace(); } return null; }
@Override public boolean insert(Comment comment) { String sql = "INSERT INTO TBLCOMMENT VALUES(nextval('seq_comment'), NOW(), ?, ?, ?,0)"; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setString(1, comment.getCommentText()); ps.setInt(2, Integer.parseInt(Encryption.decode(comment.getVideoId()))); ps.setInt(3, Integer.parseInt(Encryption.decode(comment.getUserId()))); if (ps.executeUpdate() > 0) { return true; } } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println(e1.getMessage()); return false; } return false; }
@Override public int countReplyComment(String videoId, String replyId) { String sql = "SELECT COUNT(CM.commentid) " + "FROM TBLCOMMENT CM " + "WHERE CM.videoid=? and CM.replycomid=?"; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setInt(1, Integer.parseInt(Encryption.decode(videoId))); ps.setInt(2, Integer.parseInt(Encryption.decode(replyId))); ResultSet rs = ps.executeQuery(); if (rs.next()) return rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println(e1.getMessage()); return 0; } return 0; }
@Override public int insertReturnId(Comment comment) { String sql = "INSERT INTO TBLCOMMENT VALUES(nextval('seq_comment'), NOW(), ?, ?, ?,0)"; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); ) { ps.setString(1, comment.getCommentText()); ps.setInt(2, Integer.parseInt(Encryption.decode(comment.getVideoId()))); ps.setInt(3, Integer.parseInt(Encryption.decode(comment.getUserId()))); if (ps.executeUpdate() > 0) { ResultSet rs = ps.getGeneratedKeys(); rs.next(); return rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println(e1.getMessage()); return 0; } return 0; }
@Override public boolean update(Comment comment) { String sql = "UPDATE TBLCOMMENT SET commenttext=?, videoid=?, userid=?, replycomid=? WHERE commentid=?"; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setString(1, comment.getCommentText()); ps.setInt(2, Integer.parseInt(Encryption.decode(comment.getVideoId()))); ps.setInt(3, Integer.parseInt(Encryption.decode(comment.getUserId()))); ps.setInt(4, Integer.parseInt(Encryption.decode(comment.getReplyId()))); ps.setInt(5, Integer.parseInt(Encryption.decode(comment.getCommentId()))); if (ps.executeUpdate() > 0) { return true; } } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println(e1.getMessage()); return false; } return false; }
@Override public List<Comment> listReplyCommentOnVideo(String videoId) { String sql = "SELECT CM.*, V.videoname, U.username, U.userimageurl " + "FROM TBLCOMMENT CM " + "INNER JOIN TBLVIDEO V ON CM.videoid=V.videoid " + "INNER JOIN TBLUSER U ON CM.userid=U.userid " + "WHERE CM.videoid=? AND CM.replycomid is not null AND CM.replycomid <> 0 " + "ORDER BY commentdate DESC"; List<Comment> list = new ArrayList<Comment>(); Comment comment = null; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setInt(1, Integer.parseInt(Encryption.decode(videoId))); ResultSet rs = ps.executeQuery(); while (rs.next()) { comment = new Comment(); comment.setCommentId(Encryption.encode(rs.getString("commentid"))); comment.setCommentDate(rs.getDate("commentdate")); comment.setCommentText(rs.getString("commenttext")); comment.setVideoId(Encryption.encode(rs.getString("videoid"))); comment.setUserId(Encryption.encode(rs.getString("userid"))); comment.setUsername(rs.getString("username")); comment.setUserImageUrl(rs.getString("userimageurl")); comment.setReplyId(Encryption.encode(rs.getString("replycomid"))); list.add(comment); } return list; } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println("ERROR covert"); return null; } return null; }
@Override public int countCommentOnVideo(String videoId) { String sql = "SELECT COUNT(videoid) FROM TBLCOMMENT WHERE videoid=?"; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setInt(1, Integer.parseInt(Encryption.decode(videoId))); ResultSet rs = ps.executeQuery(); if (rs.next()) return rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println("Error"); return 0; } return 0; }
@Override public boolean delete(String commentId) { String sql = "DELETE FROM TBLCOMMENT WHERE commentid=?"; try (Connection cnn = dataSource.getConnection(); PreparedStatement ps = cnn.prepareStatement(sql); ) { ps.setInt(1, Integer.parseInt(Encryption.decode(commentId))); if (ps.executeUpdate() > 0) { return true; } } catch (SQLException e) { e.printStackTrace(); } catch (NumberFormatException e1) { System.out.println("Error"); return false; } return false; }
@RequestMapping( method = RequestMethod.POST, value = "/comment/reply/returnid", headers = "Accept=application/json") public ResponseEntity<Map<String, Object>> replyCommentReturnId(@RequestBody Comment comment) { Map<String, Object> map = new HashMap<String, Object>(); try { int commentid = commentService.replyReturnId(comment); if (commentid > 0) { map.put("STATUS", true); map.put("COMMENTID", Encryption.encode(commentid + "")); map.put("MESSAGE", "RECORD HAS BEEN REPLYED"); } else { map.put("STATUS", false); map.put("MESSAGE", "RECORD HAS NOT BEEN REPLYED"); } } catch (Exception e) { map.put("MESSAGE", "OPERATION FAIL"); map.put("STATUS", false); } return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK); }