欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 文档与手册 / 文章 28

点击:14161[回复顶层] [树状] [详细]
[回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 27
dp2流通系统业务逻辑概述

作者: xietao


这里是一组文章,介绍了dp2流通系统的软件内部运作原理,重点讲解数据和业务流程的关系。

了解这些知识,可以帮助系统管理员熟悉dp2流通系统,对软件安装维护、排错很有好处。



发表时间: 2006-08-28 21:08:46



[回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 28
借阅操作

作者: xietao


借阅操作是通过dp2libraryws的一个WebService API Borrow()来实现的。

        public Result Borrow(
            bool bRenew,
            string strReaderBarcode,
            string strItemBarcode,
            bool bForce,
            string [] saBorrowedItemBarcode,
            string strStyle,
            string strItemFormat,
            out string strItemRecord,
            string strReaderFormat,
            out string strReaderRecord)

功能:借书
参数:

bRenew: 是否为续借。true表示为续借。

strReaderBarcode: 读者证条码

strItemBarcode: 册条码

bForce: 是否忽略某些故障强制进行借阅

saBorrowedItemBarcode:  同一读者先前已经借阅成功的册条码集合。仅仅用于在返回的读者html中显示出特定的颜色而已。

strStyle:  操作风格。这是一个逗号间隔的字符值列表。"item"表示将返回册记录;"reader"表示将返回读者记录。两个值可以组合使用。

strItemFormat:  规定strItemRecord参数所返回的数据格式。为html或者xml。

strItemRecord: 返回册记录

strReaderFormat: 规定strReaderRecord参数所返回的数据格式。为html或者xml。

strReaderRecord: 返回读者记录。

权限要求:无论工作人员还是读者,首先应具备borrow或renew权限。

对于读者,还需要他进行的借阅(续借)操作是针对自己的,即strReaderBarcode必须和账户信息中的证条码一致。

也就是说,读者不允许替他人借阅(续借)图书,这样规定是为了防止读者利用本功能捣乱。

===
整个操作期间,将处于一个写锁定范围内,利用读者证条码参数作为锁定依据。

利用读者证条码参数,从读者库中读出读者XML记录。

利用册条码参数,从实体库中读出实体XML记录。目前的版本,对于命中多条实体记录的,简单针对第一条进行处理,并且不会警告。即将改进这里,改进为警告、需要前端进一步选择。

---

检查借阅权限。

检查册记录中,<barcode>元素内容是否为空,如果为空,就报错。

如果不是续借,检查册记录中,是否已经有borrows/borrow元素并满足barcode内容等于欲借阅的册条码,如果有,就表示以前已经借阅过了此册,报错。

检查是否借阅证是否超期,借阅证是否有停借标志。超期通过读者记录中的<expireDate>元素内容和当前时间进行判断。停借标志是读者记录中的<state>元素内容,如果有这个内容,就表示停借,而元素的内容仅仅起到提示作用。

检查是否有已还超期记录。通过检查读者记录中overdues/overdue元素是否存在。如果存在,就表示有超期记录,读者需要先交罚款后,才能进行借阅。

检查是否有潜在的超期册。通过检查读者记录中borrows/borrow元素,通过联合borrowDate属性、borrowPeriod属性和当前时间进行判断,如果发现有已经超期的册,就报错。读者应当先还回这些已经超期的册,才能进行借阅。

如果不是续借,则检查借阅权限。从读者记录的<readerType>中获得读者类型;从册记录的<bookType>中获得册类型。从借阅权限参数表中,查出当前读者类型针对此册类型的“可借册数”和“可借总册数”两个参数。

从borrows/borrow元素中,统计出type属性值等于当前要借的册的册类型字符串的总数。看看这个已经借阅的总数加一,是否已经超过此类的可借册数参数值。如果超过,则报错。

统计borrows/borrow元素总数,看看是否超过上面获得的可借总册数参数值。如果超过,则报错。

---

在读者记录和册记录中添加借阅信息。



发表时间: 2006-08-28 21:18:29
最后修改时间: 2006-08-28 22:11:13



页 1 / 1
 

在线用户
(无) 
当前栏目在线用户数 0, 总在线用户数 0