借阅伴侣概要设计文档

PC端管理员账号:10000 密码:123456

管理员PC端概要设计

1. 系统架构

系统采用开放式设计,架构清晰,结构层次如下所示:

  1. 终端用户:PC端、手机微信端
  2. 网络接入:移动运营商提供的接入承载。
  3. 移动办公系统:服务器系统内部架构。
  4. 内部IT系统:已有的信息管理平台。
Paste_Image.png

借阅伴侣概要设计文档_第1张图片
image.png

借阅伴侣概要设计文档_第2张图片

2. 逻辑架构

通过移动服务器来实现对业务数据的衔接,响应智能客户端程序,主要依靠网络传输方式,通过安全连接将客户应用服务器上的内容请求推送到PC端。

3. 功能架构及关键技术

应用由于功能并不复杂未采用MVP架构(会导致接口数剧增),而采用常用的MVC,业务逻辑、数据、界面显示分离,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。同时加入WebAPI为个前台数据做接口,系统管理前端UI框架采用LayUI,整体风格简约唯美。管理系统采用局部加载页面的形式管理多个页面,所有表单采用ajax提交到API接口,然后用js加载html代码,整体操作简便。在微信端,采用了Bootstrap的栅格系统进行排版,加上多个CSS动画让交互更生动。微信端整体UI风格为偏平、清新、大量使用Web安全色,向互联网主流的UI风格靠近。

![mvc][1]

  1. M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理
  2. V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。
  3. C层:控制器控制页面的加载,将Model层的数据传输到视图层,并接受View层的数据输入,并向Model添加数据

4. 关键业务模块

整体结构

以LayUI为后台管理框架,运用LayUI.js进行form表单的ajax提交,动态局部加载html内容。

借阅伴侣概要设计文档_第3张图片
Paste_Image.png

每个页面都用js来进行局部加载内容,通过ajax请求,反应速度快。

    layui.config({   //相关js配置文件
    dir:'/Content/layui/',
    version: false //一般用于更新模块缓存,默认不开启。设为true即让浏览器不缓存。也可以设为一个固定的值,如:201610
    , debug: false //用于开启调试模式,默认false,如果设为true,则JS模块的节点会保留在页面
    , base: '/Content/layui/lay/modules/' //设定扩展的Layui模块的所在目录,一般用于外部模块扩展
});

layui.use(['element', 'layer', 'util', 'pagesize', 'form'], function () {
    var $ = layui.jquery;
    var element = layui.element();
    var layer = layui.layer;
    var util = layui.util;
    var form = layui.form();
    form.render();
    var index = layer.load(1);
    $.post("/api/ConsoleApi/GetSiteStatistics", {}, function (data) {
        layer.close(index);
        $("#canBorrowCount").html(data.canBorrowCount);
        $("#borrowCount").html(data.borrowCount);
        $("#todayBorrowCount").html(data.todayBorrowCount);
        $("#todayReserveCount").html(data.todayReserveCount);
        $("#userTotalCount").html(data.userTotalCount);
        $("#todayRegisterCount").html(data.todayRegisterCount);
    });

微信端主要以UserController、LibraryController、RegisterController进行管理所有页面,用Model 层

5. 使用的第三方包

  • [Newton.json]
    Newton.json是一个可用于将.NET对象转换为JSON表示形式的类库。它也可以用于将JSON字符串转换为等效的对象。可以使用任意.NET对象,包括没有源代码的预先存在的对象。从而避免手动解析接口请求返回数据,以及向服务器发生JSON数据的繁琐工作。

  • [LayUI]
    丰富的UI让整体页面更加美观,其对应的layui.js对用ajax进行form表单提交同时加载html的支持非常好。


    借阅伴侣概要设计文档_第4张图片
    Paste_Image.png
  • [Entity Framework]
    微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事。

  • [NPinyin]
    将中文转换成拼音全文和首字母的.net 组件,方便实现模糊搜索功能,即通过拼音首字母、拼音全拼进行搜索书籍

-[ThoyghtWorks.QRCode]
将字符串信息生成对应大小的二维码,实现生成用户借书还书二维码。

以下是Model层代码:

借阅伴侣概要设计文档_第5张图片
image.png
借阅伴侣概要设计文档_第6张图片
image.png

下面是数据库关系图 共21张表 涵盖用户、图书、图书馆之间的关系

借阅伴侣概要设计文档_第7张图片
2017-07-10_17h09_19.png
借阅伴侣概要设计文档_第8张图片
qrcode_for_gh_c9ad1f05fe42_860.jpg

以下是所有Controller,以及每个Controller中的方法:
所有控制器:


借阅伴侣概要设计文档_第9张图片
image.png

Admin控制器,管理员登陆PC后台的登陆验证、存Session等


借阅伴侣概要设计文档_第10张图片
image.png

Android控制器 ,包含安卓管理员APP端所需要的所有功能接口,继承自WebAPI类


借阅伴侣概要设计文档_第11张图片
image.png

ConsoleAPI控制器 包含PC端的所有ajax所调用的API接口


借阅伴侣概要设计文档_第12张图片
image.png

Console控制器 包含所有PC端视图对应的逻辑层


借阅伴侣概要设计文档_第13张图片
image.png

Library控制器 包含所有跟Library相关的视图的逻辑层


借阅伴侣概要设计文档_第14张图片
image.png

Register控制器 包含所有注册步骤的逻辑调用


借阅伴侣概要设计文档_第15张图片
image.png

User控制器 包含所有有关用户的视图方法、以及数据层的逻辑方法


借阅伴侣概要设计文档_第16张图片
image.png

Wechat控制器 包含所有接入微信需要的验证方法 如获取AccessToken、智能回复机器人消息等


借阅伴侣概要设计文档_第17张图片
image.png

下面是所有页面对应引用到的JavaScript文件,大部分用来对前端页面进行DOM操作


借阅伴侣概要设计文档_第18张图片
image.png
借阅伴侣概要设计文档_第19张图片
image.png

下面是所有的页面的视图 即.NET编译前的cshtml,用户访问时看到的html,


借阅伴侣概要设计文档_第20张图片
image.png
借阅伴侣概要设计文档_第21张图片
a

以下是所有页面的CSS文件 用于美化页面的布局


借阅伴侣概要设计文档_第22张图片
image.png
借阅伴侣概要设计文档_第23张图片
image.png

以下是管理系统截图:

借阅伴侣概要设计文档_第24张图片
2017-07-10_14h31_56.png
借阅伴侣概要设计文档_第25张图片
2017-07-10_14h32_23.png
借阅伴侣概要设计文档_第26张图片
2017-07-10_14h32_45.png
借阅伴侣概要设计文档_第27张图片
2017-07-10_14h32_53.png
借阅伴侣概要设计文档_第28张图片
2017-07-10_14h33_09.png
借阅伴侣概要设计文档_第29张图片
2017-07-10_14h33_34.png

你可能感兴趣的:(借阅伴侣概要设计文档)