⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 topicaction.java

📁 一个运行成功的论坛
💻 JAVA
字号:
package mybbs;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.sql.*;

import java.util.*;
import javax.servlet.http.HttpSession;

/**
 * <p>Title发贴的管理 </p>
 *
 * <p>Description:用于论坛管理人员对论坛发贴,诸锁定、
 * 置顶等管理。 </p>
 *
 * <p>Company: </p>
 * @author caxton
 * @version 1.0
 */
public class TopicAction
    extends Action {
  public ActionForward execute(ActionMapping actionMapping,
                               ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) {

    PostForm postform = (PostForm) form;
    DBConn conn = new DBConn();
    CAEncode ncode = new CAEncode();
    HttpSession session = request.getSession();
    int forumid=0,userid=0;
    String PageForward = "global";
    boolean flag=true;
    if(session.getAttribute("nickname")==null){
      PageForward = "NotLogin";
      flag = false;
    }
  else{
    String nickname = (String) session.getAttribute("nickname");
    String uid = (String) session.getAttribute("userid");
    if ( (new CheckUser()).UserLocked(uid)) {
      request.setAttribute("throw", new String("用户被锁定,发贴失败!"));
      flag = false;
    }
    else {
      userid = Integer.parseInt(uid);
      String fid = ncode.htmlEncode(postform.getForumsid());
      forumid = Integer.parseInt(fid);

      String tid = ncode.htmlEncode(postform.getTopicid());
      int topicid = 0;
      try {
        topicid = Integer.parseInt(tid);
      }
      catch (Exception ex) {
        topicid = 0;
      }

      String c_title = ncode._conv(ncode.htmlEncode(postform.getC_title()));
      String c_content = ncode._conv(ncode.htmlEncode(postform.getC_content()));
      String action = postform.getAction();
      String IP = request.getRemoteAddr();
      String items = postform.getItems();
      String model = postform.getModel();
      if (action.equals("3")) {
        System.out.print(items + "-" + model);
        items = ncode._conv(ncode.repItem(items));
        model = ncode.htmlEncode(model);
      }

      String postid = ncode.htmlEncode(postform.getPostid());
      try {
        java.util.Date dd = new java.util.Date();
        String dtime = dd.toLocaleString();
        java.sql.Date sd = new java.sql.Date(dd.getTime());
        PreparedStatement pstmt;
        Operate OP = new Operate();
        int uu = 0;
        ResultSet rs = null;
        if (action.equals("3")) {
          // String AllItem = ncode.str_replace(items,"<br>","#");
          ResultSet rsn = conn.query("SELECT * FROM posts");
          rsn.last();
          int postt = rsn.getInt("id") + 1;
          rsn.close();
          VoteAct votat = new VoteAct();
          String postdd = String.valueOf(postt);
          votat.upvote(items, postdd, c_title, model);
          ResultSet rsm = conn.query(
              "SELECT * FROM posts WHERE istopic>0 AND forumid=" + forumid);
          rsm.last();
          int lastN = rsm.getRow() + 1;
          rsm.close();

          String psql =
              "INSERT INTO posts (forumid,groupid,istopic,topic_id,title,content,author," +
              "author_id,post_ip,post_time,last_postor,last_time)VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
          pstmt = conn.getPstmt(psql);
          pstmt.setInt(1, forumid);
          pstmt.setInt(2, 0);
          pstmt.setInt(3, 2);
          pstmt.setInt(4, lastN);
          pstmt.setString(5, c_title);
          pstmt.setString(6, c_content);
          pstmt.setString(7, nickname);
          pstmt.setInt(8, userid);
          pstmt.setString(9, IP);
          pstmt.setString(10, dtime);
          pstmt.setString(11, nickname);
          pstmt.setString(12, dtime);
          uu = pstmt.executeUpdate();
          if (uu > 0) {
            OP.UpdateTotalTopic(forumid);
            OP.UserTotalPost(userid);
            PageForward = "postsuccessed";
            request.setAttribute("topicid", String.valueOf(lastN));
          }
          else {
            PageForward = "global";
            request.setAttribute("throw", new String("发贴失败!"));
          }

        }

        if (action.equals("1")) {
          rs = conn.query("SELECT * FROM posts WHERE istopic>0 AND forumid=" +
                          forumid);
          rs.last();
          int lastNo = rs.getRow() + 1;
          rs.close();
          String psql2 =
              "INSERT INTO posts (forumid,groupid,istopic,topic_id,title,content,author," +
              "author_id,post_ip,post_time,last_postor,last_time)VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
          pstmt = conn.getPstmt(psql2);
          pstmt.setInt(1, forumid);
          pstmt.setInt(2, 0);
          pstmt.setInt(3, 1);
          pstmt.setInt(4, lastNo);
          pstmt.setString(5, c_title);
          pstmt.setString(6, c_content);
          pstmt.setString(7, nickname);
          pstmt.setInt(8, userid);
          pstmt.setString(9, IP);
          pstmt.setString(10, dtime);
          pstmt.setString(11, nickname);
          pstmt.setString(12, dtime);
          uu = pstmt.executeUpdate();
          if (uu > 0) {
            OP.UpdateTotalTopic(forumid);
            OP.UserTotalPost(userid);
            PageForward = "postsuccessed";
            request.setAttribute("topicid", String.valueOf(lastNo));
          }
          else {
            PageForward = "global";
            request.setAttribute("throw", new String("发贴失败!"));
          }

        }

        if (action.equals("2")) {
          String psql3 =
              "INSERT INTO posts (forumid,groupid,istopic,topic_id,title,content,author," +
              "author_id,post_ip,post_time) VALUES(?,?,?,?,?,?,?,?,?,?)";
          pstmt = conn.getPstmt(psql3);
          pstmt.setInt(1, forumid);
          pstmt.setInt(2, 0);
          pstmt.setInt(3, 0);
          pstmt.setInt(4, topicid);
          pstmt.setString(5, c_title);
          pstmt.setString(6, c_content);
          pstmt.setString(7, nickname);
          pstmt.setInt(8, userid);
          pstmt.setString(9, IP);
          pstmt.setString(10, dtime);
          uu = pstmt.executeUpdate();

          if (uu > 0) {
            OP.UpdateTotalPost(forumid);
            OP.UserTotalPost(userid);
            String sql3 = "UPDATE posts SET click_times=click_times+1,reply_times=reply_times+1,last_postor='" +
                nickname + "',last_time=SYSDATE() WHERE topic_id=" + topicid
                + " AND forumid=" + forumid + " AND istopic>0";
            if (conn.update(sql3) > 0) {
              request.setAttribute("topicid", String.valueOf(topicid));
              PageForward = "postsuccessed";
            }
          }
          else {
            PageForward = "global";
            request.setAttribute("throw", new String("发贴失败!"));
          }
        }
        if (action.equals("4")) {
          c_content = c_content + "<FONT color=red>Editted</FONT>";
          String sql4 = "UPDATE posts SET title='" + c_title + "',content='" +
              c_content
              + "' WHERE id=" + postid + " AND author='" + nickname + "'";
          //System.out.print(sql4);
          if (conn.update(sql4) > 0) {
            request.setAttribute("topicid", String.valueOf(topicid));
            PageForward = "postsuccessed";
          }
          else {
            PageForward = "global";
            request.setAttribute("throw", new String("发贴失败!"));
          }
        }

      }
      catch (Exception e) {
        PageForward = "global";
        request.setAttribute("throw", e.toString());
      }
    }
  }
  try{
    conn.DBclose();
  }catch (Exception e) {}
    request.setAttribute("forumsid", String.valueOf(forumid));
    return actionMapping.findForward(PageForward);

  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -