borrowaction.java
来自「实现图书的借阅和管理信息化」· Java 代码 · 共 277 行
JAVA
277 行
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.moonman.libraryManager.control.struts.action;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.MappingDispatchAction;
import org.apache.struts.validator.DynaValidatorForm;
import com.moonman.libraryManager.model.service.BookService;
import com.moonman.libraryManager.model.service.BorrowService;
import com.moonman.libraryManager.model.service.ReaderService;
import com.moonman.libraryManager.model.vo.Books;
import com.moonman.libraryManager.model.vo.Borrow;
import com.moonman.libraryManager.model.vo.Punish;
import com.moonman.libraryManager.model.vo.Reader;
import com.moonman.libraryManager.model.vo.Rules;
import com.moonman.libraryManager.model.vo.Store;
/**
* MyEclipse Struts Creation date: 01-23-2008
*
* XDoclet definition:
*
* @struts.action validate="true"
*/
public class BorrowAction extends MappingDispatchAction {
/*
* Generated Methods
*/
private BorrowService borrowService;
private ReaderService readerService;
private BookService bookService;
private BookAction bookAction;
public void setBookAction(BookAction bookAction) {
this.bookAction = bookAction;
}
public void setBookService(BookService bookService) {
this.bookService = bookService;
}
public void setReaderService(ReaderService readerService) {
this.readerService = readerService;
}
public void setBorrowService(BorrowService borrowService) {
this.borrowService = borrowService;
}
/**
* 处理一次借阅记录的界面
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward borrow(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ActionMessages mess = new ActionMessages();
DynaValidatorForm df = (DynaValidatorForm) form;
String bookNumber = df.getString("bookNumber");
String type = df.getString("type");
String readerCardNo = df.getString("readerCardNo");
// 获得读者信息 根据证件号码
Reader reader = this.readerService.getReaderByZjh(readerCardNo);
if (reader != null) {
byte flag = this.bookAction.judgeBorrow(reader,
request, Integer.parseInt(bookNumber));
switch (flag) {
case 1:
// 可以继续借阅
// 通过图书的 索取号和读者的编号获得读者的交易信息
// 读者已经预定了
Borrow borrow = this.borrowService.getBorrowByReaderIdAndSqh(
reader.getReaderId(), Integer.parseInt(bookNumber));
// 判断预定信息是否存在
if (borrow != null) {
// 更新预约状态为 未归还 状态
borrow.setZt(2);
this.borrowService.modifyBorrowByBorrow(borrow);
} else {
// 读者没有预定直接借阅
Borrow bor = new Borrow();
bor.setBookId(new Integer(bookNumber));
bor.setReaderId(reader.getReaderId());
bor.setJysj(new Date());
Calendar cend = Calendar.getInstance();
// 获得用户规则
Rules rule = reader.getRules();
// 获得可以预约的天数
cend.add(Calendar.DAY_OF_MONTH, rule.getBlts());
bor.setDqsj(cend.getTime());
bor.setGhrq(null);
bor.setZt(2);
bor.setXjcs(0);
// 添加一条新记录
this.borrowService.addBorrow(bor);
}
// 更新官藏表中的信息
this.bookService.modifyStoreBySqh(Integer.parseInt(bookNumber),
"未归还");
mess.add("borrow.book.success", new ActionMessage(
"borrow.book.success"));
this.saveErrors(request, mess);
return mapping.findForward("borrowSuccess");
case 2:
// 违反规则
mess.add("book.bound", new ActionMessage("book.bound", reader
.getRules().getBlts().intValue()));
break;
case 3:
// 图书不存在
mess.add("no.book.sended", new ActionMessage("no.book.sended",
"3"));
break;
}
} else {
mess.add("no.name", new ActionMessage("no.name"));
}
this.saveErrors(request, mess);
return mapping.getInputForward();
}
/**
* 处理一次归还图书的界面
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward 根据模型的结果选择合适的视图
*/
public ActionForward returnTreate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ActionMessages mess = new ActionMessages();
DynaValidatorForm df = (DynaValidatorForm) form;
String bookNumber = df.getString("bookNumber");
String type = df.getString("type");
String readerCardNo = df.getString("readerCardNo");
// 首先判断用户是否存在
Reader reader = this.readerService.getReaderByZjh(readerCardNo);
if (reader != null) {
// 判断图书状态是否正确
Borrow borrow = this.borrowService.getBorrowByReaderIdAndSqh(reader
.getReaderId(), Integer.parseInt(bookNumber));
if (borrow != null) {
if (borrow.getZt() == 1) {
mess.add("book.returned", new ActionMessage(
"book.returned",
(new SimpleDateFormat("yyyy-MM-dd")).format(borrow
.getDqsj())));
} else {
// 设置成为已经归还
borrow.setZt(1);
// 设置归还时间
borrow.setGhrq(new Date());
// 更新借阅表中的信息
this.borrowService.modifyBorrowByBorrow(borrow);
// 根据索取号获得馆藏的信息
Store st = this.bookService.getStoreByStore(borrow
.getBookId(), "未归还");
st.setSkzt("可借");
st.setJycs(st.getJycs() + 1);
// 更新管藏表中的信息
this.bookService.modifyStoreByStore(st);
long timeB = System.currentTimeMillis()
- borrow.getDqsj().getTime();
int day = Math.round(timeB / 60 / 60 / 24 / 1000);
Store store = this.bookService.getStoreByStore(borrow
.getBookId(), "可借");
Books book = store.getBooks();
// 过期天数
request.setAttribute("cgsj", day);
// 保存图书信息
request.setAttribute("book", book);
// 设置借阅信息
request.setAttribute("borrow", borrow);
// 设置罚款金额
request.setAttribute("hkje", book.getPcje());
return mapping.findForward("returnSuccess");
}
} else {
// 没有此图书借阅信息
mess.add("no.info", new ActionMessage("no.info"));
}
} else {
// 用户不存在
mess.add("no.name", new ActionMessage("no.name"));
}
this.saveErrors(request, mess);
return mapping.getInputForward();
}
/**
* 处理罚款界面
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward 根据模型的结果选择合适的视图
*/
public ActionForward punishShow(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String readerId = request.getParameter("readerId");
String bookId = request.getParameter("bookId");
request.setAttribute("readerId", readerId);
request.setAttribute("bookId", bookId);
return mapping.findForward("punishShow");
}
/**
* 进行罚款操作
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward 根据模型的结果选择合适的视图
*/
public ActionForward punish(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String readerId = request.getParameter("readerId");
String bookId = request.getParameter("bookId");
String type = request.getParameter("type");
String result = request.getParameter("result");
String bail = request.getParameter("bail");
Punish pun = new Punish();
pun.setBookId(Integer.parseInt(bookId));
pun.setReaderId(Integer.parseInt(readerId));
pun.setCfyy(type);
pun.setCfjg(result);
pun.setFkje(Float.parseFloat(bail));
this.borrowService.addPunish(pun);
return mapping.findForward("punishSuccess");
}
/**
* 根据索取号删除预定图书的信息
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward 根据模型的结果选择合适的视图
*/
public ActionForward deleteBorrowBySqh(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
String sqh = request.getParameter("id");
// 删除预定图书的信息
this.borrowService.deleteBorrowBySqh(sqh);
// 更新管藏表中图书的信息
this.bookService.modifyStoreBySqh(Integer.parseInt(sqh), "可借");
return mapping.findForward("deleteSuccess");
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?