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

📄 loanlogic.cs

📁 图书馆信息系统
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using Library.Model;
using Library.Utility;
using System.Collections;

namespace Library.Logic
{
    /// <summary>
    /// LoanLogic 的摘要说明:关于图书借阅的业务处理
    /// </summary>
    public class LoanLogic
    {
        private string errMessage;
        public string ErrMessage
        {
            set { this.errMessage = value; }
            get { return this.errMessage; }
        }
        public LoanLogic()
        {
            this.errMessage = "";
        }
        /*根据图书编号和读者编号加入新的借阅信息*/
        public bool AddNewLoanInfo(int bookId,string readerId)
        {
            /*查询是否存在该图书的信息*/
            if (!BooksLogic.IsExistBook(bookId))
            {
                this.errMessage = "对不起,该图书不存在!";
                return false;
            }
            /*查询该图书的库存是否大于0*/
            if (BooksLogic.GetBookNumById(bookId) <= 0)
            {
                this.errMessage = "对不起,该图书已借完!";
                return false;
            }
            /*查询该读者的信息是否存在*/
            if (!ReaderLogic.IsExistReaderInfo(readerId))
            {
                this.errMessage = "对不起,该读者信息不存在!";
                return false;
            }
            /*判断是否可以继续借阅图书*/
            if (!this.CanLoanBook(readerId))
            {
                this.errMessage = "对不起,你借阅书的数量满了!";
                return false;
            }
            /*判断该读者是否已经借阅了该书*/
            if (this.IsReaderBorrowBook(bookId, readerId))
            {
                this.errMessage = "对不起,该读者已经借阅了该书";
                return false;
            }
            /*将读者的借阅信息加入到借阅信息表*/
            LoanModel loanModel = new LoanModel();
            loanModel.ReaderId = readerId;
            loanModel.BookId = bookId;
            loanModel.BorrowTime = System.DateTime.Now;
            string sqlString = "insert into [loan](readerId,bookId,borrowTime,returnTime,isReturn,continueBorrowTime,isContinue) values('";
            sqlString += loanModel.ReaderId + "',";
            sqlString += loanModel.BookId + ",'";
            sqlString += loanModel.BorrowTime + "','";
            sqlString += loanModel.ReturnTime + "',";
            sqlString += loanModel.IsReturn + ",'";
            sqlString += loanModel.ContinueBorrowTime + "',";
            sqlString += loanModel.IsContinue + ")";
            if (DBOperation.ExecuteNonQuery(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, sqlString, null) < 0)
            {
                this.errMessage = "图书借阅时发生了错误!";
                return false;
            }
            return true;
        }

        /*判断某个读者是否可以继续借阅图书*/
        public bool CanLoanBook(string readerId)
        {
            /*查询该读者可以借多少本书*/
            string queryString = "select loanNum from [readerType],[reader] where [readerType].readerTypeId=[reader].readerTypeId and [reader].readerId='" + readerId + "'";
            int loanNum = Convert.ToInt32(DBOperation.ExecuteScalar(DBOperation.CONN_STRING_NON_DTC,CommandType.Text,queryString,null));
            /*查询该读者已经借阅了多少本书了*/
            queryString = "select count(*) as haveLoanNum from [loan] where isReturn=0 and readerId='" + readerId + "'";
            int haveLoanNum = Convert.ToInt32(DBOperation.ExecuteScalar(DBOperation.CONN_STRING_NON_DTC,CommandType.Text,queryString,null));
            return (loanNum > haveLoanNum);
        }

        /*根据图书编号,读者编号实现图书的归还*/
        public bool ReturnBook(int bookId,string readerId)
        {
            /*查询是否存在该图书的信息*/
            if (!BooksLogic.IsExistBook(bookId))
            {
                this.errMessage = "对不起,该图书不存在!";
                return false;
            }
            /*查询该读者的信息是否存在*/
            if (!ReaderLogic.IsExistReaderInfo(readerId))
            {
                this.errMessage = "对不起,该读者信息不存在!";
                return false;
            }
            /*判断该读者是否已经借阅了该书*/
            if (!this.IsReaderBorrowBook(bookId, readerId))
            {
                this.errMessage = "对不起,该读者并没有借该书!";
                return false;
            }
            /*更新图书借阅信息表实现图书的归还操作*/
            string sqlString = "update [loan] set isReturn=1,returnTime='" + System.DateTime.Now + "' where bookId=" + bookId + " and readerId='" + readerId + "'";
            if (DBOperation.ExecuteNonQuery(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, sqlString, null) < 0)
            {
                this.errMessage = "图书归还时发生了数据错误!";
                return false;
            }
            return true;
        }

        /*判断某个读者是否已经借阅了某本书*/
        public bool IsReaderBorrowBook(int bookId, string readerId)
        {
            string queryString = "select * from [loan] where isReturn=0 and bookId=" + bookId + " and readerId='" + readerId + "'";
            return DBOperation.ExecuteReader(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, queryString, null).Read();
        }

        /*得到借阅超期信息*/
        public ArrayList GetOverdueInfo()
        {
            /*
            对不起,此功能被屏蔽,有需要的朋友可以联系作者   
            姓名: 汪建林		生日:1985年1月7日(农历)
            星座: 双鱼座(故名双鱼林) 血型: 0
            毕业学校: 2007年于成都理工大学
            家乡地址: 四川渠县望溪乡包山村5组
            联系QQ: 287307421  联系电话: 13558690869
            联系Email: wangjianlin1985@126.com
            双鱼林电脑工作室淘宝店: http://shop34864101.taobao.com
            双鱼林电脑工作室拍拍店: http://287307421.paipai.com
            如果朋友们觉得我的设计还看得,可以联系我设计,我熟悉ASP,VB,DELPHI,JSP,C,asp,asp.net,access,sqlserver提供技术指导!
             */
            return null;
        }

        /*根据读者编号得到该读者所有的图书借阅信息*/
        public static DataSet GetBookLoanInfo(string readerId)
        {
            string queryString = "select * from [loan] where isReturn=0 and readerId='" + readerId + "'";
            return DBOperation.GetDataSet(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, queryString, null);
        }

        /*根据借阅编号判断某个图书借阅是否已经超期*/
        public static bool IsOverdue(int loanId)
        {
            bool overDueFlag = false;
            string queryString = "select * from [loan] where loanId=" + loanId;
            DataSet ds = new DataSet();
            ds = DBOperation.GetDataSet(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, queryString, null);
            DataRow dr = ds.Tables[0].Rows[0];
            int isContinue = Convert.ToInt32(dr["isContinue"]);
            /*如果没有续借*/
            if (isContinue == 0)
            {
                /*得到借书时间*/
                DateTime borrowTime = Convert.ToDateTime(dr["borrowTime"]).Date;
                /*得到该读者可以借书的天数*/
                int loanDays = ReaderLogic.GetLoanDays(dr["readerId"].ToString());
                /*计算得到应当归还图书的时间*/
                DateTime shouldReturnTime = borrowTime.AddDays(loanDays);
                /*如果今天超过了应当归还的日期*/
                if (DateTime.Now.Date > shouldReturnTime) overDueFlag = true;
            }
            else
            {
                /*得到续借图书时间*/
                DateTime continueBorrowTime = Convert.ToDateTime(dr["continueBorrowTime"]).Date;
                /*得到该读者可以续借的天数*/
                int continueDays = ReaderLogic.GetContinueDays(dr["readerId"].ToString());
                /*计算应当归还图书的时间*/
                DateTime shouldReturnTime = continueBorrowTime.AddDays(continueDays);
                /*如果今天超过了应当归还的日期*/
                if (DateTime.Now.Date > shouldReturnTime) overDueFlag = true;
            }
            return overDueFlag;
        }

        /*根据借阅编号办理续借操作*/
        public bool ContinueBorrowBook(int loanId)
        {
            string sqlString = "update [loan] set isContinue=1 and continueBorrowTime='" + System.DateTime.Now.Date + "' where loanId=" + loanId;
            if (DBOperation.ExecuteNonQuery(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, sqlString, null) < 0)
            {
                this.errMessage = "办理图书续借时发生了错误!";
                return false;
            }
            return true;
        }
    }
}

⌨️ 快捷键说明

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