提交 b3ca0640 编写于 作者: 玉米子禾's avatar 玉米子禾

完成图书借出

上级 e9e35acd
......@@ -35,6 +35,12 @@
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
<key name="CreateClassDialog.RecentsKey">
<recent name="com.bluerabbit.librarysystem.listener.borrow" />
<recent name="com.bluerabbit.librarysystem.service.borrow" />
</key>
</component>
<component name="RunManager">
<configuration name="BlueRabbitLibrarySystem" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.bluerabbit.librarysystem.BlueRabbitLibrarySystem" />
......@@ -77,7 +83,7 @@
<option name="presentableId" value="Default" />
<updated>1678258258162</updated>
<workItem from="1678258261101" duration="4342000" />
<workItem from="1678263081204" duration="43710000" />
<workItem from="1678263081204" duration="54134000" />
</task>
<servers />
</component>
......
......@@ -23,11 +23,97 @@ public class BorrowBeans {
String status; // 状态:0正常,1破碎,2破损严重,3丢失
String bookNumber; // 借出数量
public BorrowBeans() {
book = new BookInfoBeans();
reader = new ReaderInfoBeans();
}
/**
* 总册数
* @return 总册数
*/
public String getBookTotalNumber() {
return String.valueOf(book.getSumQuantity());
}
/**
* 总册数
* @param bookTotalNumber 总册数
*/
public void setBookTotalNumber(String bookTotalNumber) {
try{
book.setSumQuantity(Integer.parseInt(bookTotalNumber));
}catch (Exception e){
System.out.println("设置总册数时出错:" + e.getMessage());
book.setSumQuantity(0);
}
}
/**
* 剩余册数
* @return 剩余册数
*/
public String getBookSurplusNumber() {
return String.valueOf(book.getQuantity());
}
/**
* 剩余册数
* @param bookSurplusNumber 剩余册数
*/
public void setBookSurplusNumber(String bookSurplusNumber) {
try{
book.setQuantity(Integer.parseInt(bookSurplusNumber));
}catch (Exception e){
System.out.println("设置剩余册数时出错:" + e.getMessage());
book.setQuantity(0);
}
}
/**
* 价格
* @return 价格
*/
public String getBookPrice() {
return String.valueOf(book.getPrice());
}
/**
* 价格
* @param bookPrice 价格
*/
public void setBookPrice(String bookPrice) {
try{
book.setPrice(Double.parseDouble(bookPrice));
}catch (Exception e){
System.out.println("设置价格时出错:" + e.getMessage());
book.setPrice(0);
}
}
/**
* 借出次数
* @return 借出次数
*/
public String getBookLendTime() {
return String.valueOf(book.getLendTime());
}
/**
* 借出次数
* @param bookLendTime 借出次数
*/
public void setBookLendTime(String bookLendTime) {
try{
book.setLendTime(Integer.parseInt(bookLendTime));
}catch (Exception e){
System.out.println("设置借出次数时出错:" + e.getMessage());
book.setLendTime(0);
}
}
/**
* 借出管理员名字
* @return 借出管理员名字
......
......@@ -47,12 +47,12 @@ public class BorrowDao {
" ON " +
" t_borrow.reader_id = reader.ReaderID ";
if(isSearch){
sql = sql + " "+searchSql+" " +
"ORDER BY t_borrow.create_timestamp DESC "+
if (isSearch) {
sql = sql + " " + searchSql + " " +
"ORDER BY t_borrow.create_timestamp DESC " +
"LIMIT " + (PAGE_SIZE * page) + "," + PAGE_SIZE;
}else{
sql = sql + "ORDER BY t_borrow.create_timestamp DESC "+
} else {
sql = sql + "ORDER BY t_borrow.create_timestamp DESC " +
"LIMIT " + (PAGE_SIZE * page) + "," + PAGE_SIZE;
}
......@@ -67,8 +67,8 @@ public class BorrowDao {
try {
//获得操作句柄
statement = conn.prepareStatement(sql);
if(isSearch){
statement.setString(1,keyWord);
if (isSearch) {
statement.setString(1, keyWord);
}
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -109,10 +109,10 @@ public class BorrowDao {
/**
* 获取总数据量
*
* @return 总数据量,获取失败返回 0
* @param searchSql
* @param keyWord
* @param isSearch
* @return 总数据量,获取失败返回 0
*/
public int getAllCount(String searchSql, String keyWord, boolean isSearch) {
String sql = "SELECT " +
......@@ -128,8 +128,8 @@ public class BorrowDao {
" ON " +
" t_borrow.reader_id = reader.ReaderID";
if(isSearch){
sql = sql + " "+searchSql;
if (isSearch) {
sql = sql + " " + searchSql;
}
//获得数据库连接
......@@ -139,8 +139,8 @@ public class BorrowDao {
try {
//获得操作句柄
statement = conn.prepareStatement(sql);
if(isSearch){
statement.setString(1,keyWord);
if (isSearch) {
statement.setString(1, keyWord);
}
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -167,6 +167,7 @@ public class BorrowDao {
/**
* 获取借出的具体情况
*
* @param borrowId 借出ID
* @return BorrowBeans
*/
......@@ -189,6 +190,12 @@ public class BorrowDao {
" book_info.Stack AS book_stack, " +
" book_info.BookShelf AS book_shelf, " +
" book_info.BookBarcode AS book_barcode, " +
" book_info.SumQuantity AS book_total_number, " +
" book_info.Quantity AS book_surplus_number, " +
" book_info.LendTime AS book_lend_time, " +
" book_info.Price AS book_price, " +
" reader_info.ReaderID AS reader_id, " +
" reader_info.ReaderName AS reader_name, " +
" reader_info.Apart AS reader_apart, " +
......@@ -228,7 +235,7 @@ public class BorrowDao {
statement = conn.prepareStatement(sql);
// 传入参数
statement.setString(1,borrowId);
statement.setString(1, borrowId);
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -254,6 +261,14 @@ public class BorrowDao {
String bookBarcode = rs.getString("book_barcode");
String bookStack = rs.getString("book_stack");
String bookShelf = rs.getString("book_shelf");
String bookTotalNumber = rs.getString("book_total_number");//总册数
String bookSurplusNumber = rs.getString("book_surplus_number");//剩余册数
String bookPrice = rs.getString("book_price");//价格
String bookLendTime = rs.getString("book_lend_time");//借出次数
String readerId = rs.getString("reader_id");
String readerName = rs.getString("reader_name");
String readerApart = rs.getString("reader_apart");
......@@ -273,6 +288,12 @@ public class BorrowDao {
beans.setPenalty(penalty);
beans.setStatus(status);
beans.setBookNumber(bookNumber);
beans.setBookTotalNumber(bookTotalNumber);
beans.setBookSurplusNumber(bookSurplusNumber);
beans.setBookLendTime(bookLendTime);
beans.setBookPrice(bookPrice);
beans.setBookName(bookName);
beans.setBookAuthor(bookAuthor);
beans.setBookPublisher(bookPublisher);
......@@ -287,7 +308,7 @@ public class BorrowDao {
beans.setReaderClass(readerClass);
beans.setReaderTel(readerTel);
beans.setReaderSex(readerSex);
}else {
} else {
System.out.println("没有查到数据");
}
} catch (SQLException e) {
......@@ -310,6 +331,7 @@ public class BorrowDao {
/**
* 获取借出的具体情况
*
* @param borrowId 借出ID
* @return BorrowBeans
*/
......@@ -341,7 +363,7 @@ public class BorrowDao {
statement = conn.prepareStatement(sql);
// 传入参数
statement.setString(1,borrowId);
statement.setString(1, borrowId);
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -399,7 +421,7 @@ public class BorrowDao {
" DATE_FORMAT(PublishDate,'%Y-%m-%d') LIKE ? OR " +
" Stack LIKE ? OR " +
" BookShelf LIKE ? " +
"LIMIT "+page+", 1";
"LIMIT " + page + ", 1";
//获得数据库连接
Connection conn = DBUtil.getConn();
......@@ -409,8 +431,8 @@ public class BorrowDao {
//获得操作句柄
statement = conn.prepareStatement(sql);
// 插入数据
for(int i=0;i<8;i++){
statement.setString(i+1,keyword);
for (int i = 0; i < 8; i++) {
statement.setString(i + 1, keyword);
}
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -448,6 +470,7 @@ public class BorrowDao {
/**
* 查询总数
*
* @param keyword 关键词
* @return 总数
*/
......@@ -476,8 +499,8 @@ public class BorrowDao {
//获得操作句柄
statement = conn.prepareStatement(sql);
// 插入数据
for(int i=0;i<8;i++){
statement.setString(i+1,keyword);
for (int i = 0; i < 8; i++) {
statement.setString(i + 1, keyword);
}
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -526,7 +549,7 @@ public class BorrowDao {
" reader.Sex LIKE ? OR " +
" reader.Class LIKE ? OR " +
" reader.TelNo LIKE ? " +
"LIMIT "+page+", 1";
"LIMIT " + page + ", 1";
//获得数据库连接
Connection conn = DBUtil.getConn();
......@@ -536,8 +559,8 @@ public class BorrowDao {
//获得操作句柄
statement = conn.prepareStatement(sql);
// 插入数据
for(int i=0;i<6;i++){
statement.setString(i+1,keyword);
for (int i = 0; i < 6; i++) {
statement.setString(i + 1, keyword);
}
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -571,6 +594,7 @@ public class BorrowDao {
/**
* 查询总数
*
* @param keyword 关键词
* @return 总数
*/
......@@ -597,8 +621,8 @@ public class BorrowDao {
//获得操作句柄
statement = conn.prepareStatement(sql);
// 插入数据
for(int i=0;i<6;i++){
statement.setString(i+1,keyword);
for (int i = 0; i < 6; i++) {
statement.setString(i + 1, keyword);
}
//根据SQL语句获取数据
rs = statement.executeQuery();
......@@ -624,39 +648,86 @@ public class BorrowDao {
}
public String borrowOut(String readerId, String bookId, String duration, String number, String adminID, String time) {
String sql ="INSERT INTO " +
String sql = "INSERT INTO " +
" `t_borrow` " +
" (`reader_id`, `book_id`, `borrow_admin_id`, " +
"`book_number`, `duration`, `create_timestamp`) " +
" VALUES (?, ?, ?," +
" ?, ?, ?) ";
System.out.println("借出数据库操作");
System.out.println("sql" + sql);
System.out.println("readerId" + readerId);
System.out.println("bookId" + bookId);
System.out.println("adminID" + adminID);
System.out.println("number" + number);
System.out.println("duration" + duration);
System.out.println("time" + time);
//获得数据库连接
Connection conn = DBUtil.getConn();
//声明句柄对象
PreparedStatement statement = null;
try {
// 开启事务
conn.setAutoCommit(false);
//获得操作句柄
statement = conn.prepareStatement(sql);
//拼接语句
statement.setString(1,readerId);
statement.setString(2,bookId);
statement.setString(3,adminID);
statement.setString(4,number);
statement.setString(5,duration);
statement.setString(6,time);
statement.setString(1, readerId);
statement.setString(2, bookId);
statement.setString(3, adminID);
statement.setString(4, number);
statement.setString(5, duration);
statement.setString(6, time);
//执行语句
if(statement.executeUpdate() == 1){
System.out.println("数据操作结果:"+1);
return null;
if (statement.executeUpdate() < 1) {
conn.rollback();
return "写入数据失败";
}
return "写入数据失败";
statement.close();
//--------------------------更新图书数据-----------------------------------
sql = "UPDATE " +
"`books_info` " +
"SET `Quantity` = `Quantity` - ?, `LendTime` = `LendTime` + ? " +
"WHERE `BookID` = ?";
statement = conn.prepareStatement(sql);
statement.setString(1, number);
statement.setString(2, number);
statement.setString(3, bookId);
//执行语句
if (statement.executeUpdate() < 1) {
conn.rollback();
return "更新数据失败";
}
// 提交数据
conn.commit();
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException t) {
t.printStackTrace();
return "数据库错误:" + t.getMessage();
}
return "数据库错误:" + e.getMessage();
}finally {
} finally {
try {
conn.setAutoCommit(true);
} catch (SQLException t) {
t.printStackTrace();
}
//一定要做的事,释放连接
DBUtil.free(statement,conn);
DBUtil.free(statement, conn);
}
return null;
}
}
package com.bluerabbit.librarysystem.listener.borrow;
import com.bluerabbit.librarysystem.view.borrow.BorrowInView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @author minuhy
* @date 2023/3/9 21:34
*/
public class BorrowInMouseListener implements ActionListener {
BorrowInView biv;
public BorrowInMouseListener(BorrowInView borrowInView) {
this.biv = borrowInView;
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
......@@ -2,6 +2,7 @@ package com.bluerabbit.librarysystem.listener.borrow;
import com.bluerabbit.librarysystem.view.SetButtonUporDown;
import com.bluerabbit.librarysystem.view.borrow.BorrowBookView;
import com.bluerabbit.librarysystem.view.borrow.BorrowInView;
import com.bluerabbit.librarysystem.view.borrow.BorrowInfoView;
import com.bluerabbit.librarysystem.view.borrow.BorrowOutView;
......@@ -41,7 +42,8 @@ public class BorrowMouseListener implements java.awt.event.MouseListener {
// TODO
}else if(clicked == bv.getBtnReturn()){
System.out.println("归还");
// TODO
new BorrowInView(bv);
bv.updateTableData(1);
}else if(clicked == bv.getBtnNexPage()){
System.out.println("下一页");
if(bv.getServer().getCurrentPage() < bv.getServer().getTotalPage()){
......
package com.bluerabbit.librarysystem.service.borrow;
/**
* @author minuhy
* @date 2023/3/9 21:33
*/
public class BorrowInServer {
}
......@@ -31,16 +31,18 @@ public class BorrowOutServer {
String keywordBook;
public BorrowOutServer(BorrowOutView bov){
public BorrowOutServer(BorrowOutView bov) {
this.bov = bov;
this.dao = new BorrowDao();
keywordBook = null;
keywordReader = null;
}
/**
* 借出
*/
public void out() {
String readerId = bov.getCltReaderId().getText(); // 读者ID
String readerId = bov.getCltReaderId().getText(); // 读者ID
String bookId = bov.getCltBookId().getText(); // 书ID
String surplusNumber = bov.getCltBookNumber().getText(); // 剩余册数
......@@ -48,48 +50,54 @@ public class BorrowOutServer {
String duration = bov.getCltBorrowDuration().getText(); // 借出时长
String number = bov.getCltBorrowNumber().getText(); // 借出册数
try{
try {
int i = Integer.parseInt(duration);
if(i<1){
JOptionPane.showMessageDialog(bov,"借出时长至少一天");
if (i < 1) {
JOptionPane.showMessageDialog(bov, "借出时长至少一天");
return;
} else if (i > 180) {
JOptionPane.showMessageDialog(bov, "借出时长至多180天");
return;
}
duration = (i*24*60*60*1000)+"";
}catch ( NumberFormatException e){
JOptionPane.showMessageDialog(bov,"借出时长格式错误,请只输入数字");
long d = i;
d = d * 24* 60 * 60 * 1000;
duration = String.valueOf(d);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(bov, "借出时长格式错误,请只输入数字");
return;
}
try{
try {
int i = Integer.parseInt(number);
if(i<1){
JOptionPane.showMessageDialog(bov,"借出至少一册");
if (i < 1) {
JOptionPane.showMessageDialog(bov, "借出至少一册");
return;
}
try{
try {
int si = Integer.parseInt(surplusNumber);
if(i>si){
JOptionPane.showMessageDialog(bov,"剩余册数不足");
if (i > si) {
JOptionPane.showMessageDialog(bov, "剩余册数不足");
return;
}
}catch (NumberFormatException e){
JOptionPane.showMessageDialog(bov,"系统数据格式错误");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(bov, "系统数据格式错误");
return;
}
}catch ( NumberFormatException e){
JOptionPane.showMessageDialog(bov,"借出册数格式错误,请只输入数字");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(bov, "借出册数格式错误,请只输入数字");
return;
}
String adminID = String.valueOf(MainView.getAdmin().getAdminID()); // 借出管理员
String time = String.valueOf(System.currentTimeMillis());
String result = dao.borrowOut(readerId,bookId,duration,number,adminID,time);
if(result == null){
JOptionPane.showMessageDialog(bov,"借出成功");
String result = dao.borrowOut(readerId, bookId, duration, number, adminID, time);
if (result == null) {
JOptionPane.showMessageDialog(bov, "借出成功");
bov.resetData();
}else{
JOptionPane.showMessageDialog(bov,"借出时出错:"+result);
} else {
JOptionPane.showMessageDialog(bov, "借出时出错:" + result);
}
}
......@@ -97,46 +105,61 @@ public class BorrowOutServer {
* 上一本书
*/
public void prevBook() {
if (keywordBook == null || keywordBook.equals("")) {
JOptionPane.showMessageDialog(bov, "请输入书籍关键词搜索");
return;
}
if(currentBookPage>1){
currentBookPage-=1;
if (currentBookPage > 1) {
currentBookPage -= 1;
}
BookInfoBeans beans = dao.getBookBySearch(keywordBook,currentBookPage);
if(beans == null){
JOptionPane.showMessageDialog(bov,"无结果");
BookInfoBeans beans = dao.getBookBySearch(keywordBook, currentBookPage);
if (beans == null) {
JOptionPane.showMessageDialog(bov, "无结果");
return;
}
bov.setBookInfo(currentBookPage,totalBookPage,beans);
bov.setBookInfo(currentBookPage, totalBookPage, beans);
}
/**
* 下一本书
*/
public void nextBook() {
if(currentBookPage<totalBookPage){
currentBookPage+=1;
if (keywordBook == null || keywordBook.equals("")) {
JOptionPane.showMessageDialog(bov, "请输入书籍关键词搜索");
return;
}
BookInfoBeans beans = dao.getBookBySearch(keywordBook,currentBookPage);
if(beans == null){
JOptionPane.showMessageDialog(bov,"无结果");
if (currentBookPage < totalBookPage) {
currentBookPage += 1;
}
BookInfoBeans beans = dao.getBookBySearch(keywordBook, currentBookPage);
if (beans == null) {
JOptionPane.showMessageDialog(bov, "无结果");
return;
}
bov.setBookInfo(currentBookPage,totalBookPage,beans);
bov.setBookInfo(currentBookPage, totalBookPage, beans);
}
/**
* 下一个读者
*/
public void nextReader() {
if(currentReaderPage<totalReaderPage){
currentReaderPage+=1;
if (keywordReader == null || keywordReader.equals("")) {
JOptionPane.showMessageDialog(bov, "请输入读者关键词搜索");
return;
}
if (currentReaderPage < totalReaderPage) {
currentReaderPage += 1;
}
ReaderInfoBeans beans = dao.getReaderBySearch(keywordReader,currentReaderPage);
if(beans == null){
JOptionPane.showMessageDialog(bov,"无结果");
ReaderInfoBeans beans = dao.getReaderBySearch(keywordReader, currentReaderPage);
if (beans == null) {
JOptionPane.showMessageDialog(bov, "无结果");
return;
}
bov.setReaderInfo(currentReaderPage,totalReaderPage,beans);
bov.setReaderInfo(currentReaderPage, totalReaderPage, beans);
}
/**
......@@ -144,15 +167,20 @@ public class BorrowOutServer {
*/
public void prevReader() {
if(currentReaderPage>1){
currentReaderPage-=1;
if (keywordReader == null || keywordReader.equals("")) {
JOptionPane.showMessageDialog(bov, "请输入读者关键词搜索");
return;
}
ReaderInfoBeans beans = dao.getReaderBySearch(keywordReader,currentReaderPage);
if(beans == null){
JOptionPane.showMessageDialog(bov,"无结果");
if (currentReaderPage > 1) {
currentReaderPage -= 1;
}
ReaderInfoBeans beans = dao.getReaderBySearch(keywordReader, currentReaderPage);
if (beans == null) {
JOptionPane.showMessageDialog(bov, "无结果");
return;
}
bov.setReaderInfo(currentReaderPage,totalReaderPage,beans);
bov.setReaderInfo(currentReaderPage, totalReaderPage, beans);
}
/**
......@@ -161,25 +189,26 @@ public class BorrowOutServer {
public void searchBook() {
// 拿到关键词
keywordBook = bov.getJtfBookKeyword().getText();
keywordBook = '%' + keywordBook + '%';
if(keywordBook==null||keywordBook.equals("")){
JOptionPane.showMessageDialog(bov,"请输入书籍关键词");
if (keywordBook == null || keywordBook.equals("")) {
JOptionPane.showMessageDialog(bov, "请输入书籍关键词搜索");
return;
}
keywordBook = '%' + keywordBook + '%';
totalBookCount = dao.getBookCountBySearch(keywordBook);
totalBookPage = totalBookCount;
currentBookPage = 1;
BookInfoBeans beans = dao.getBookBySearch(keywordBook,currentBookPage);
BookInfoBeans beans = dao.getBookBySearch(keywordBook, currentBookPage);
if(beans == null){
JOptionPane.showMessageDialog(bov,"无结果");
if (beans == null) {
JOptionPane.showMessageDialog(bov, "无结果");
return;
}
bov.setBookInfo(currentBookPage,totalBookPage,beans);
bov.setBookInfo(currentBookPage, totalBookPage, beans);
}
/**
......@@ -188,24 +217,25 @@ public class BorrowOutServer {
public void searchReader() {
// 拿到关键词
keywordReader = bov.getJtfReaderKeyword().getText();
keywordReader = '%' + keywordReader + '%';
if(keywordReader==null||keywordReader.equals("")){
JOptionPane.showMessageDialog(bov,"请输入读者关键词");
if (keywordReader == null || keywordReader.equals("")) {
JOptionPane.showMessageDialog(bov, "请输入读者关键词搜索");
return;
}
keywordReader = '%' + keywordReader + '%';
totalReaderCount = dao.getReaderCountBySearch(keywordReader);
totalReaderPage = totalReaderCount;
currentReaderPage = 1;
ReaderInfoBeans beans = dao.getReaderBySearch(keywordReader,currentReaderPage);
ReaderInfoBeans beans = dao.getReaderBySearch(keywordReader, currentReaderPage);
if(beans == null){
JOptionPane.showMessageDialog(bov,"无结果");
if (beans == null) {
JOptionPane.showMessageDialog(bov, "无结果");
return;
}
bov.setReaderInfo(currentReaderPage,totalReaderPage,beans);
bov.setReaderInfo(currentReaderPage, totalReaderPage, beans);
}
}
package com.bluerabbit.librarysystem.view.borrow;
import com.bluerabbit.librarysystem.beans.BookInfoBeans;
import com.bluerabbit.librarysystem.beans.ReaderInfoBeans;
import com.bluerabbit.librarysystem.listener.borrow.BorrowInMouseListener;
import com.bluerabbit.librarysystem.service.borrow.BorrowInServer;
import com.bluerabbit.librarysystem.view.CenterView;
import com.bluerabbit.librarysystem.view.ComboJLAndJT;
import com.bluerabbit.librarysystem.view.MyTable;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
/**
* @author minuhy
* @date 2023/3/9 21:06
*/
public class BorrowInView extends JDialog {
private final JPanel mainView;
private final JPanel contentView;
private final JPanel functionView;
private final int windowsHeight;
private final int windowsWidth;
//把界面分成四部分,借阅者搜索、借阅者信息、图书搜索、图书借阅列表
private final JPanel jplReaderSearch;
private final JPanel jplReaderInfo;
private final JPanel jplBookSearch;
private final JPanel bookInfo;
private final JPanel jplBorrowSetting;
// 借出设置
private final ComboJLAndJT cltBorrowDuration; // 借出时长
private final ComboJLAndJT cltBorrowNumber; // 借出数量
JLabel jlbBorrowSetting; //借出设置
// 借阅者搜索
JLabel jlbReader; // 读者搜索
JTextField jtfReaderKeyword; // 搜索输入框
JButton btnSearchReader; // 搜索按钮
JButton btnNextReader; // 下一个结果
JButton btnPrevReader; // 上一个结果
// 借阅书籍搜索
JLabel jlbBook; // 书籍搜索
JTextField jtfBookKeyword; // 搜索输入框
JButton btnSearchBook; // 搜索按钮
JButton btnNextBook; // 下一个结果
JButton btnPrevBook; // 上一个结果
private MyTable tableDataView;
private DefaultTableModel dtmView;
//读者信息
private final ComboJLAndJT cltReaderId; // 学 号
private final ComboJLAndJT cltReaderName; // 姓 名
private final ComboJLAndJT cltReaderApart; // 学 院
private final ComboJLAndJT cltReaderClass; // 班 级
private final ComboJLAndJT cltReaderTel; // 联系方式
private final JPanel jplSex;
private final JComboBox<String> jcbSex;
private final JLabel jlbSex;//性别
private final JButton btnBack;
private final JButton btnCancel;
public BorrowInView biv;
private final String[] select = {"", "男", "女"};//性别框
BorrowInServer server;
public BorrowInView(BorrowBookView bv) {
super(bv, "图书归还", true);
biv = this;
//获得父视图的大小
windowsHeight = bv.getHeight();
windowsWidth = bv.getWidth();
//界面部分
mainView = new JPanel();
functionView = new JPanel();
contentView = new JPanel();
//内容部分
jplReaderSearch = new JPanel();
jplReaderInfo = new JPanel();
jplBookSearch = new JPanel();
bookInfo = new JPanel();
jplSex = new JPanel();
jplBorrowSetting = new JPanel();
//读者信息搜索
jtfReaderKeyword = new JTextField(); // 搜索输入框
jlbReader = new JLabel("读者信息"); // 搜索输入框
btnSearchReader = new JButton("搜索"); // 搜索按钮
btnNextReader = new JButton("下一个"); // 下一个结果
btnPrevReader = new JButton("上一个"); // 上一个结果
//书籍信息搜索
jtfBookKeyword = new JTextField(); // 搜索输入框
jlbBook = new JLabel("已借阅书籍"); // 搜索输入框
btnSearchBook = new JButton("搜索"); // 搜索按钮
btnNextBook = new JButton("下一个"); // 下一个结果
btnPrevBook = new JButton("上一个"); // 上一个结果
tableDataView = new MyTable();
//借出设置
cltBorrowDuration = new ComboJLAndJT("借出时长(天)", 30, true);//学号
cltBorrowNumber = new ComboJLAndJT("借出数量(本)", 30, true);//姓名
jlbBorrowSetting = new JLabel("借出设置");
//个人信息 6
cltReaderId = new ComboJLAndJT("学 号:", 30);//学号
cltReaderName = new ComboJLAndJT("姓 名:", 30);//姓名
cltReaderApart = new ComboJLAndJT("学 院:", 30);//学院
cltReaderClass = new ComboJLAndJT("班 级:", 30);//班级
cltReaderTel = new ComboJLAndJT("联系方式:", 30);//联系方式
jcbSex = new JComboBox<>();
jcbSex.setEnabled(false);
jlbSex = new JLabel("性 别:");
btnBack = new JButton("借出");
btnCancel = new JButton("取消");
Init();
resetData();
}
/**
* 更新书籍信息
*
* @param cp 未还书籍
* @param p 总借次数
* @param list 书籍信息
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public void setBookInfo(int cp, int p, List<BookInfoBeans> list) {
// TODO Auto-generated method stub
//1.设置表格中的标题数据集合
Vector<String> title = new Vector<>();
title.add("书名");
title.add("作者");
title.add("书刊类别");
title.add("出版社");
title.add("出版版次");
title.add("剩余册数");
title.add("所在书室");
title.add("所在书架");
title.add("图书编号");
//2.设置表格中的数据集合
Vector<Vector> data = new Vector<Vector>();
Vector row = null;
for (BookInfoBeans b : list) {
row = new Vector<>();
row.add(b.getBookName());//书名
row.add(b.getAuthor());//作者
row.add(b.getBookClassify());//分类
row.add(b.getPublisher());//出版社
row.add(b.getPublishTime());//出版版次
row.add(b.getQuantity());//剩余册数
row.add(b.getStack());//所在书室
row.add(b.getBookShelf());//所在书架
row.add(b.getBookID());//图书编号
data.add(row);
}
//设置tableModel
this.dtmView = new DefaultTableModel(data, title);
//将tableModel绑定在table上
this.tableDataView.setModel(dtmView);
//设置表格自适应数据
tableDataView.FitTableColumns();
if(p == 0){
jlbBook.setText("暂未借阅书籍");
}else {
jlbBook.setText("未归还书籍(" + cp + "/" + p + ")");
}
}
/**
* 更新读者信息
*
* @param cp 当前页数
* @param p 总页数
* @param beans 读者信息
*/
public void setReaderInfo(int cp, int p, ReaderInfoBeans beans) {
//个人信息 6
cltReaderId.setIText(beans.getReaderID());//学号
cltReaderName.setIText(beans.getReaderName());//姓名
cltReaderApart.setIText(beans.getApart());//学院
cltReaderClass.setIText(beans.getTheClass());//班级
cltReaderTel.setIText(beans.getTelNo());//联系方式
if ("男".equals(beans.getSex())) {
jcbSex.setSelectedIndex(1);
} else if ("女".equals(beans.getSex())) {
jcbSex.setSelectedIndex(2);
}
jlbReader.setText("读者搜索结果(" + cp + "/" + p + ")");
}
/**
* 重置数据
*/
public void resetData() {
// 借阅设置
jlbBook.setText("已借阅书籍");
List<BookInfoBeans> beans = new ArrayList<>();
BookInfoBeans infoBeans = new BookInfoBeans();
beans.add(infoBeans);
setBookInfo(0,0,beans);
//个人信息 6
cltReaderId.setIText("");//学号
cltReaderName.setIText("");//姓名
cltReaderApart.setIText("");//学院
cltReaderClass.setIText("");//班级
cltReaderTel.setIText("");//班级
jcbSex.setSelectedIndex(0);
jlbReader.setText("读者信息");
}
private void Init() {
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
this.setSize(windowsWidth - 200, windowsHeight - 20);
CenterView.CenterByWindow(this);
//不允许用户调整窗口大小
this.setResizable(false);
//设置布局
mainView.setLayout(new BorderLayout());
contentView.setLayout(null);
functionView.setLayout(new FlowLayout(FlowLayout.RIGHT));
//配置内容视图边框
contentView.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
//内容部分,h:wh-219,w:ww-130
int unitH = (windowsHeight - 219 + 80) / 13;
int unitW = (windowsWidth - 154 - 100);
// -------------------------------------------------------------------------------------/
jplReaderSearch.setLayout(null);
jplReaderSearch.setBounds(5, 5, unitW - 10, 50);
createSearchBar(unitW, jplReaderSearch, jlbReader, jtfReaderKeyword, btnSearchReader, btnPrevReader, btnNextReader);
// -------------------------------------------------------------------------------------/
jplReaderInfo.setLayout(new GridLayout(2, 3));
jplReaderInfo.setBounds(10, 60, unitW - 20, unitH * 2);
//个人信息 6
jplReaderInfo.add(cltReaderId);//学号
jplReaderInfo.add(cltReaderName);//姓名
jplReaderInfo.add(cltReaderApart);//学院
jplReaderInfo.add(cltReaderClass);//班级
jplSex.setLayout(new FlowLayout());
jplSex.add(jlbSex);
jplSex.add(jcbSex);
jplReaderInfo.add(jplSex);//性别
jcbSex.setModel(new DefaultComboBoxModel<>(select));
jcbSex.setPreferredSize(new Dimension(187, 27));
jplReaderInfo.add(cltReaderTel);//联系方式
// -------------------------------------------------------------------------------------/
jplBookSearch.setLayout(null);
jplBookSearch.setBounds(5, unitH * 2 + 60 + 10, unitW - 10, 50);
createSearchBar(unitW, jplBookSearch, jlbBook, jtfBookKeyword, btnSearchBook, btnPrevBook, btnNextBook);
// 8
bookInfo.setLayout(new GridLayout(5, 2));
bookInfo.setBounds(10, unitH * 2 + 60 + 10 + 50 + 10, unitW - 20, unitH * 5);
//bookInfo.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
bookInfo.add(tableDataView);
// -------------------------------------------------------------------------------------/
jplBorrowSetting.setLayout(null);
jplBorrowSetting.setBounds(5, unitH * 2 + 60 + 10 + 50 + 10 + unitH * 5 + 10, unitW - 10, 65);
jplBorrowSetting.setBorder(BorderFactory.createEtchedBorder());
Color color = new Color(236, 233, 216);
jplBorrowSetting.setBackground(color);
//借出设置
jlbBorrowSetting.setFont(new Font(Font.SERIF, Font.PLAIN, 20));
jlbBorrowSetting.setBounds(30, 17, 160, 30);
jplBorrowSetting.add(jlbBorrowSetting);//借出设置
cltBorrowDuration.setBounds(unitW - 10 - 200 - 10 - 200 - 10, 1, 200, 60);
cltBorrowDuration.setBackground(color);
cltBorrowDuration.setIText("30");
jplBorrowSetting.add(cltBorrowDuration);//借出时长
cltBorrowNumber.setBounds(unitW - 10 - 200 - 10, 1, 200, 60);
cltBorrowNumber.setBackground(color);
cltBorrowNumber.setIText("1");
jplBorrowSetting.add(cltBorrowNumber);//借出数量
// -------------------------------------------------------------------------------------/
//添加监听事件
btnCancel.addActionListener(e -> biv.dispose());
BorrowInMouseListener listener = new BorrowInMouseListener(this);
btnBack.addActionListener(listener);
btnNextBook.addActionListener(listener);
btnNextReader.addActionListener(listener);
btnPrevBook.addActionListener(listener);
btnPrevReader.addActionListener(listener);
btnSearchBook.addActionListener(listener);
btnSearchReader.addActionListener(listener);
//添加布局
contentView.add(jplReaderSearch);
contentView.add(jplReaderInfo);
contentView.add(jplBookSearch);
contentView.add(bookInfo);
contentView.add(jplBorrowSetting);
functionView.add(btnBack);
functionView.add(btnCancel);
mainView.add(functionView, BorderLayout.SOUTH);
mainView.add(contentView, BorderLayout.CENTER);
this.add(mainView);
this.setVisible(true);
}
/**
* 创建一个搜索栏
*
* @param unitW 宽度
* @param jPanel 面板
* @param jLabel 提示
* @param jtfKeyword 关键词
* @param btnSearch 搜索
* @param btnPrev 上一页
* @param btnNext 下一页
*/
private void createSearchBar(int unitW, JPanel jPanel, JLabel jLabel, JTextField jtfKeyword, JButton btnSearch, JButton btnPrev, JButton btnNext) {
jPanel.setBorder(BorderFactory.createEtchedBorder());
jPanel.setBackground(new Color(236, 233, 216));
jLabel.setFont(new Font(Font.SERIF, Font.PLAIN, 20));
jLabel.setBounds(30, 10, 240, 30);
jPanel.add(jLabel);
jtfKeyword.setBounds(unitW - 10 - 60 - 10 - 60 - 10 - 60 - 10 - 200 - 10, 10, 200, 30);
jPanel.add(jtfKeyword);
btnSearch.setBounds(unitW - 10 - 60 - 10 - 60 - 10 - 60 - 10, 10, 60, 30);
jPanel.add(btnSearch);
btnPrev.setBounds(unitW - 10 - 60 - 10 - 60 - 10, 10, 60, 30);
jPanel.add(btnPrev);
btnNext.setBounds(unitW - 10 - 60 - 10, 10, 60, 30);
jPanel.add(btnNext);
}
public JButton getBtnSearchReader() {
return btnSearchReader;
}
public JButton getBtnNextReader() {
return btnNextReader;
}
public JButton getBtnPrevReader() {
return btnPrevReader;
}
public JButton getBtnSearchBook() {
return btnSearchBook;
}
public JButton getBtnNextBook() {
return btnNextBook;
}
public JButton getBtnPrevBook() {
return btnPrevBook;
}
public JButton getBtnBack() {
return btnBack;
}
public ComboJLAndJT getCltBorrowDuration() {
return cltBorrowDuration;
}
public ComboJLAndJT getCltBorrowNumber() {
return cltBorrowNumber;
}
public JTextField getJtfReaderKeyword() {
return jtfReaderKeyword;
}
public JTextField getJtfBookKeyword() {
return jtfBookKeyword;
}
public BorrowInServer getServer() {
return server;
}
public ComboJLAndJT getCltReaderId() {
return cltReaderId;
}
}
......@@ -43,6 +43,10 @@ public class BorrowInfoView extends JDialog {
private final ComboJLAndJT cltBookBarcode;//书刊条码
private final ComboJLAndJT cltBookStack;//书室
private final ComboJLAndJT cltBookShelf;//书架
private final ComboJLAndJT cltBookTotalNumber;//总册数
private final ComboJLAndJT cltBookNumber;//剩余册数
private final ComboJLAndJT cltBookPrice;//价格
private final ComboJLAndJT cltBookLendTime;//借出次数
//其他信息
private final ComboJLAndJT cltReaderId; // 学 号
......@@ -99,13 +103,17 @@ public class BorrowInfoView extends JDialog {
cltBookBarcode = new ComboJLAndJT("书刊条码:");//书刊条码
cltBookStack = new ComboJLAndJT("书 室:");//书 室
cltBookShelf = new ComboJLAndJT("书 架:");//书 架
cltBookTotalNumber = new ComboJLAndJT("总 册 数:");//总册数
cltBookNumber = new ComboJLAndJT("剩余册数:");//剩余册数
cltBookPrice = new ComboJLAndJT("价 格:");//价格
cltBookLendTime = new ComboJLAndJT("借出次数:");//借出次数
//个人信息 6
cltReaderId = new ComboJLAndJT("学 号:");//学号
cltReaderName = new ComboJLAndJT("姓 名:");//姓名
cltReaderApart = new ComboJLAndJT("学 院:");//学院
cltReaderClass = new ComboJLAndJT("班 级:");//班级
cltReaderTel = new ComboJLAndJT("联系方式:");//联系方式
cltReaderId = new ComboJLAndJT("学 号:", 30);//学号
cltReaderName = new ComboJLAndJT("姓 名:", 30);//姓名
cltReaderApart = new ComboJLAndJT("学 院:", 30);//学院
cltReaderClass = new ComboJLAndJT("班 级:", 30);//班级
cltReaderTel = new ComboJLAndJT("联系方式:", 30);//联系方式
jcbSex = new JComboBox<>();
jcbSex.setEnabled(false);
jlbSex = new JLabel("性 别:");
......@@ -134,15 +142,15 @@ public class BorrowInfoView extends JDialog {
BorrowDao dao = new BorrowDao();
BorrowBeans beans = dao.getBorrowInfoByBorrowID(borrowDataId);
if(beans == null){
JOptionPane.showMessageDialog(this,"没有查到数据");
if (beans == null) {
JOptionPane.showMessageDialog(this, "没有查到数据");
return;
}
// 如果有还回的管理员记录,则查
try{
if(beans.getReturnAdminId()!=null) {
if(!beans.getReturnAdminId().equals("")) {
try {
if (beans.getReturnAdminId() != null) {
if (!beans.getReturnAdminId().equals("")) {
if (Integer.parseInt(beans.getReturnAdminId()) != 0) {
BorrowBeans returnBeans = dao.getBorrowInfoInByBorrowID(borrowDataId);
if (returnBeans != null) {
......@@ -150,15 +158,14 @@ public class BorrowInfoView extends JDialog {
}
}
}
}else{
} else {
beans.setReturnAdminId("未还入");
}
}catch (Exception e){
} catch (Exception e) {
System.out.println("查找归还管理员时出错:" + e.getMessage());
}
//设置借阅信息
//借阅信息
cltBorrowId.setIText(beans.getId());//借阅编号
......@@ -181,6 +188,11 @@ public class BorrowInfoView extends JDialog {
cltBookStack.setIText(beans.getBookStack());//书 室
cltBookShelf.setIText(beans.getBookShelf());//书 架
cltBookTotalNumber.setIText(beans.getBookTotalNumber());//总册数
cltBookNumber.setIText(beans.getBookSurplusNumber());//剩余册数
cltBookPrice.setIText(beans.getBookPrice());//价格
cltBookLendTime.setIText(beans.getBookLendTime());//借出次数
//个人信息
cltReaderId.setIText(beans.getReaderId());//学号
cltReaderName.setIText(beans.getReaderName());//姓名
......@@ -196,7 +208,7 @@ public class BorrowInfoView extends JDialog {
private void Init() {
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
this.setSize(windowsWidth - 100, windowsHeight - 60);
this.setSize(windowsWidth - 200, windowsHeight - 40);
CenterView.CenterByWindow(this);
//不允许用户调整窗口大小
this.setResizable(false);
......@@ -210,20 +222,19 @@ public class BorrowInfoView extends JDialog {
contentView.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
//内容部分,h:wh-219,w:ww-130
int unitH = (windowsHeight - 219 + 40) / 11;
int unitW = (windowsWidth - 154);
int unitH = (windowsHeight - 219 + 60) / 12;
int unitW = (windowsWidth - 154 - 100);
// 8
borrowInfo.setLayout(new GridLayout(4, 2));
borrowInfo.setBounds(0, 0, unitW, unitH * 4);
borrowInfo.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
// 8
bookInfo.setLayout(new GridLayout(4, 2));
bookInfo.setBounds(0, unitH * 4, unitW, unitH * 4);
bookInfo.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
// 6
readerInfo.setLayout(new GridLayout(3, 2));
readerInfo.setBounds(0, unitH * 8, unitW, unitH * 3 - 5);
readerInfo.setLayout(new GridLayout(2, 3));
readerInfo.setBounds(0, unitH * 4, unitW, unitH * 2);
readerInfo.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));
// 8
bookInfo.setLayout(new GridLayout(6, 2));
bookInfo.setBounds(0, unitH * 6 + 1, unitW, unitH * 6 - 4);
//借阅信息 8
borrowInfo.add(cltBorrowId);//借阅编号
......@@ -244,6 +255,10 @@ public class BorrowInfoView extends JDialog {
bookInfo.add(cltBookBarcode);//书刊条码
bookInfo.add(cltBookStack);//书 室
bookInfo.add(cltBookShelf);//书 架
bookInfo.add(cltBookTotalNumber);//总册数
bookInfo.add(cltBookNumber);//剩余册数
bookInfo.add(cltBookPrice);//价格
bookInfo.add(cltBookLendTime);//借出次数
//个人信息 6
readerInfo.add(cltReaderId);//学号
......@@ -258,7 +273,7 @@ public class BorrowInfoView extends JDialog {
jplSex.add(jcbSex);
readerInfo.add(jplSex);//性别
jcbSex.setModel(new DefaultComboBoxModel<>(select));
jcbSex.setPreferredSize(new Dimension(308, 27));
jcbSex.setPreferredSize(new Dimension(187, 27));
//添加监听事件
btnOk.addActionListener(e -> biv.dispose());
......
......@@ -9,7 +9,6 @@ import com.bluerabbit.librarysystem.view.ComboJLAndJT;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
/**
* 借出处理框
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册