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

点击:15873[回复顶层] [树状] [简明]


头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 27
dp2流通系统业务逻辑概述

作者: xietao


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

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



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





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复(需要先登录)] [引用(需要先登录)]普通文章第 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
 

在线用户
访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
当前栏目在线用户数 33, 总在线用户数 59