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

📄 renewbook.java

📁 图书管理系统,B/S,C/S都有,附有源代码
💻 JAVA
字号:
package book;

import database.DataBase;
import database.DateTime;
import java.sql.ResultSet;
import reader.Readers;
import admin.admin;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * <p>Title: library</p>
 * <p>Description: library</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: </p>
 * @author nino
 * @version 0.1
 */

public class renewBook {

  private String errMsg;
  private String readerSN;
  private String bookSN;
  private javax.servlet.http.HttpServletRequest request; //建立页面请求
  private javax.servlet.http.HttpSession session; //接收页面SESSION

  public String getErrMsg() {
    return errMsg;
  }

  public String getBookSN() {
    return bookSN;
  }

  public String getReaderSN() {
    return readerSN;
  }

  public boolean renewBook(HttpServletRequest res, HttpSession ses) throws
      Exception {

    DataBase db = new DataBase();

    //获取页面请求信息
    request = res;
    String newBookSN = db.toSql(request.getParameter("bookSN"));

    //从SESSION中获取管理员ID
    session = ses;
    String supervisor = db.toSql( (String) session.getAttribute("supervisor"));

    //关闭数据库连接
    db.close();

    admin admin = new admin();
    if (admin.isAdminRB(supervisor)) {
      Books book = new Books();
      if (book.isBorrow(newBookSN)) {
        if (!book.isBookExp(newBookSN)) {
          if (!book.isCBRL(newBookSN)) {
            return true;
          }
          else {
            errMsg = "编号为" + newBookSN + "的图书续借次数已满,无法续借!";
            return false;
          }
        }
        else {
          errMsg = "编号为" + newBookSN + "逾期未还,无法进行续借手续!";
          return false;
        }
      }
      else {
        errMsg = "没有编号为" + newBookSN + "的借阅信息!";
        return false;
      }
    }
    else {
      errMsg = "编号为" + supervisor + "的管理员没有权限进行续借图书的操作!";
      return false;
    }

  }

  public boolean exeRenew(HttpServletRequest res) throws Exception {

    //获取页面请求信息
    request = res;
    DataBase db = new DataBase();
    DateTime dt = new DateTime();
    Readers reader = new Readers();
    Books book = new Books();

    String newBookSN = db.toSql(request.getParameter("bookSN"));

    try {
      //获取图书借阅信息
      db.prepareStatement("select 读者编号,还书日期,续借 from Borrow where 图书编号 = ?");
      db.setString(1, newBookSN);
      ResultSet rs = db.executeQuery();
      rs.next();
      String newReaderSN = rs.getString(1);
      String RD = rs.getString(2);
      int CB = Integer.parseInt(rs.getString(3));
      rs.close();

      //获取续借次数和续借期限
      reader.getReaderPower(newReaderSN);
      int RPCT = reader.getRPCT(); //续借期限

      //更新还书日期和续借次数
      String newRD = dt.gainMonth(RD, RPCT);
      CB += 1;
      String newCB = Integer.toString(CB);

      //写入还书日期和续借次数
      db.prepareStatement("update Borrow set 还书日期 = ? ,续借 = ? where 图书编号 = ?");
      db.setString(1, newRD);
      db.setString(2, newCB);
      db.setString(3, newBookSN);
      db.executeUpdate();

      return true;
    }
    catch (Exception e) {
      errMsg = "编号为" + newBookSN + "的图书续借失败!";
      return false;
    }
    finally {
      //关闭数据库连接
      db.close();
    }

  }

  public boolean autoRenewBook(HttpServletRequest res) throws
      Exception {

    DataBase db = new DataBase();
    Books book = new Books();

    //获取页面请求信息
    request = res;
    String newBookSN = request.getParameter("bookSN");
    String newReaderSN = request.getParameter("readerSN");
    String newReaderName = request.getParameter("readerName");

    //查询是否有借阅信息
    db.prepareStatement(
        "select * from Borrow where 图书编号 = ? and 读者编号 = ? and 读者姓名 = ? ");
    db.setString(1, newBookSN);
    db.setString(2, newReaderSN);
    db.setString(3, newReaderName);
    ResultSet rs = db.executeQuery();
    if (rs.next()) {
      //有图书借阅信息
      //图书是否逾期未还,逾期未还书不予续借
      if (!book.isBookExp(newBookSN)) {
        //图书的续借次数是否已满,如已满不予续借
        if (!book.isCBRL(newBookSN)) {
          //执行续借图书
          if (exeRenew(newBookSN)) {
            return true;
          }
          errMsg = "未知错误,编号为" + newBookSN + "无法网上续借,请到图书馆办理人工续借手续!";
          return false;
        }
        else {
          errMsg = "编号为" + newBookSN + "的图书续借次数已满,无法续借!";
          return false;
        }
      }
      else {
        errMsg = "编号为" + newBookSN + "逾期未还,无法进行续借手续!";
        return false;
      }
    }
    else {
      errMsg = "图书编号,读者编号,读者姓名不相符,请确认无误后再尝试自动续借!";
      return false;
    }
  }

  public boolean exeRenew(String newBookSN) throws Exception {

    //获取页面请求信息
    DataBase db = new DataBase();
    DateTime dt = new DateTime();
    Readers reader = new Readers();
    Books book = new Books();

    try {
      //获取图书借阅信息
      db.prepareStatement("select 读者编号,还书日期,续借 from Borrow where 图书编号 = ?");
      db.setString(1, newBookSN);
      ResultSet rs = db.executeQuery();
      rs.next();
      String newReaderSN = rs.getString(1);
      String RD = rs.getString(2);
      int CB = Integer.parseInt(rs.getString(3));
      rs.close();

      //获取续借次数和续借期限
      reader.getReaderPower(newReaderSN);
      int RPCT = reader.getRPCT(); //续借期限

      //更新还书日期和续借次数
      String newRD = dt.gainMonth(RD, RPCT);
      CB += 1;
      String newCB = Integer.toString(CB);

      //写入还书日期和续借次数
      db.prepareStatement("update Borrow set 还书日期 = ? ,续借 = ? where 图书编号 = ?");
      db.setString(1, newRD);
      db.setString(2, newCB);
      db.setString(3, newBookSN);
      db.executeUpdate();

      return true;
    }
    catch (Exception e) {
      errMsg = "编号为" + newBookSN + "的图书续借失败!";
      return false;
    }
    finally {
      //关闭数据库连接
      db.close();
    }

  }

}

⌨️ 快捷键说明

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