【网站项目】167校园失物招领小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。

  1. 代码可以私聊博主获取。🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《python网站项目》600套

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目演示(需要演示视频可以私信我)

摘  要

身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得到提升,而读书就是人们获得精神享受非常重要的途径。为了满足人们随时随地只要有网络就可以看书的要求,校园失物招领小程序被开发研究了出来。

本文主要描述了该校园失物招领小程序的具体开发过程,在SSM框架的基础上,采用JSP技术和MYSQL数据库,使该校园失物招领小程序具有很好的稳定性和安全性。本设计重点从系统概述、系统分析、系统设计、数据库设计、系统测试和总结这几个方面对该校园失物招领小程序进行阐述,用户通过该校园失物招领小程序可以查询、下载及阅读自己喜欢的书籍。

该校园失物招领小程序不仅能够稳定的运行,快捷方便的操作,界面简洁清晰,而且功能齐全,实用性强。

关键词:校园失物招领小程序,SSM框架,系统分析,数据库设计

  1. 绪论
    1. 课题背景

身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化。目前,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得到提升,而读书就是人们获得精神享受非常重要的途径[1]。纸质版的书籍比较沉重,携带不方便,而由于手机、平板不仅能够储存大量的书籍信息数据,而且重量轻,可随身携带,因此现在的人们更愿意通过手机、平板等来进行在线阅读[2]。由此,开发一款校园失物招领小程序非常符合人们阅读的需求。

过去人们看书需要到书店或者图书馆,而现在只要有网络,人们就可以通过手机、平板或电脑想什么时候看书就可以什么时候看,想看什么样的书就可以看什么样的书,非常的方便,并且人们把平时的闲碎时间全部利用起来进行阅读,使阅读效率大大提高,生活也变得丰富多彩起来。另外,通过校园失物招领小程序,想要阅读哪本书,搜索下就能够快速找到,并且还可以对书籍进行归类、统计和规范管理。该校园失物招领小程序的界面非常清晰,使用简单,识字的人们都可以使用,并且它的功能齐全,能够满足各种各样的人的要求。

本文不仅从需求分析、设计分析、功能分析对该电子书在线系统进行了全面的分析,而且还从开发背景、开发环境、目标、流程、数据库、系统维护对该校园失物招领小程序进行了总体的规划和设计。该校园失物招领小程序利用JSP技术和MYSQL数据库进行开发,具有很好的稳定性和可发展性。

    1. 研究现状

国外信息技术的发展步伐一直没有停止,源源不断的计算机应用软件被研发出来,并且软件技术也在不断迭代,目前世界各国的软件行业都已新兴了起来[3-5]。

与国外相比,我国信息技术的发展相对晚一些,不过后面,经过我们的不断追赶,我国的信息技术已经有了很大的进步,我国对现有的软件开发技术进行了细致的专研,目前我国已经能够独立的开发系统,并且也已经将这些软件系统应用于人们的生活中和各行各业中,目前,软件行业是我国非常受欢迎的行业[6-9]。

信息数字化使人们的各种信息能够快速传播,使人们的各种信息能够得到充分利用,同时,也大大宣传了信息数字化背后的软件系统[10-12]。软件开发团队的能力越来越强,开发技术功能越来越强大,软件系统大大提高了信息处理的效率,节省了处理者的处理时间。在阅读书籍方面,人们阅读纸质版的书籍,现在已经显得有些过时[13-14]。利用目前的软件开发技术开发出一款校园失物招领小程序能够大大的满足人们的阅读需求,人们通过该校园失物招领小程序能够快速查找、在线阅读自己喜欢的书籍,并且也大大提高了人们阅读的效率。

    1. 研究内容

本论文主要阐述了该校园失物招领小程序的开发技术、系统需求分析、系统设计、系统功能实现和系统测试。为了开发该系统,我在下面花费了很多功夫和心思,例如,到图书馆阅读JSP技术、MYSQL数据库等方面的编程书籍,又在网上搜索了很多别人做的相类似的系统,将他们比较好的设计理念应用到自己的设计当中,最后才有了现在的成果。

本论文主要分为7部分,包括:

一、绪论:阐述了该系统的背景技术、研究现状和开发意义;

二、相关技术:介绍了开发该系统所用到的各种技术;

三、系统需求分析:阐述了开发该系统的可行性分析和功能需求分析;

四、系统设计:阐述了该系统的功能模块设计和数据库设计;

五、系统实现:展示了该系统的主要功能模块界面;

六、系统测试:对开发出的该系统进行测试;

七、系统总结:总结开发该系统的整个工作过程。

  1. 系统开发环境
    1. JSP技术

JSP在web技术中的位置也很重要,对于刚进入编程行业的人们来说,编程语言JSP相对比较好学,而且也有很多高级特性[15]。在开发程序的工作中,jsp经常被使用到,例如,收集表单数据、处理字符串信息等,JSP能够快速完成上述处理工作,降低时间成本,节省时间,最近,JSP又发布了新版本,新版本的JSP具有非常优异的兼容性和面向对象[16]。因此,JSP可可任意挑选面向过程的设计、面向对象的设计或者混合方式的设计[17]。

JSP有很多优点,例如:可延展、缩短,很多开发语言都支持,兼容性好,很多平台都可运行,编写一次,始终运行[18]。

    1. JAVA技术

Java编程语言具有跨平台、分布式、可移植等多种特性,很多平台Java都能运行,世界各地都能够运行Java编写的程序。1995年,开发出了JAVA编程语言。JAVA编程语言具有多种特性,例如:简单、安全、可移植、鲁棒性(Robust)、编写能效高、线程多等。在互联网飞速发展的时代,Java编程语言应用也越来越普遍[19]。它的特点具有:

一、面向对象:JAVA适用于分布式环境,JAVA能够完全面向对象,包括对象的设计及联系;

二、分布式:JAVA工作的同时,带动其他计算节点工作,只要有网络,就可以访问其他对象;

三、健壮性:JAVA能够自动处理垃圾和异常,并且机制类型强;

四、安全性:当指针和内存被删除时,非法的内存就可以避免。

    1. MYSQL数据库

数据库在每个网站的开发中都是必不可少的,过去数据库只具有数据的保存和管理功能,但随着后来的不断更新和迭代,目前的数据库不仅能够进行数据的处理,而且还能够储存不计其数的数据[20]。

该校园失物招领小程序所使用的就是MYSQL数据库,当初是微软公司开发出的MYSQL数据库。MYSQL数据库总共建立了十几个相对应的表,它们之间独立联系,数据库和程序是密不可分的[21]。

MYSQL数据库的特点包括:能够应用于多种操作系统中;查询SQL时优化了算法,搜索速度提高的不少;还可以进行数据库的管理、控制、优化等操作;一个数据库可以记录不计其数的数据。

    1. B/S结构

当前比较流行的网络化结构模式是B/S(浏览器/服务器)结构,它能够在服务器上面集中系统的所有核心功能,使系统开发人员的工作变得简单,并且开发出的系统也更容易使用和后期维护。用于比较熟悉的浏览器有360浏览器、谷歌浏览器、QQ浏览器等,用于比较熟悉的数据库有sqlserver、mysql数据库等,上边这些数据库和浏览器都可以安装在客户端上。B/S结构没有什么限制,并且还不需要专门的安装软件,只要笔记本、电脑有网络就能够访问系统。采用B/S结构开发的程序,比较好维护,只需要在客户端就可处理,不需要非得在服务器上处理,并且跟用户的交互性比较好,刷新浏览器就可进行数据信息的实时更新[22]。B/S架构如图2-1所示:

图2-1 B/S模式架构图

    1. SSM框架技术

该校园失物招领小程序是基于Spring、SpringMVC、Mybatis框架开发出来的。

2004年,Spring 框架才第一次亮相,后面也进行了很多次的更新。Spring框架包括SpringCore、Spring AOP、Spring ORM、Spring DAO、Spring Web Flow、Spring Context和Spring Web MVC等七个模块,企业应用程序就是通过这七个模块气筒不同的平台来进行开发的,Spring Web MVC中的各个元素之间形成了松散耦合[23-25]。

  1. 系统分析
    1. 可行性分析

开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。

      1. 技术可行性

开发该校园失物招领小程序所采用的技术是JSP和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识,同时也接触了很多编程软件,所以在技术开发方面还是比较有信心的。

      1. 操作可行性

该校园失物招领小程序的界面简洁清楚,操作简单,用户一看就会操作。操作界面上每一步都有提示,用户只要按照提示进行操作就可以了。该校园失物招领小程序具有操作可行性。

      1. 经济可行性

我现在还是一名学生,还没有一份稳定的经济收入,所以我会将开发程序的成本控制在自己所能接受的范围内。我所使用的开发软件、数据库还有设计界面用的photoshop软件都是在网上免费下载的,另外程序编写阶段所用到的源代码也是在网上免费得到的,现在在网上能下载很多有用的、免费的东西,所以开发该系统基本不花钱,具有经济可行性。

      1. 法律可行性

 我是通过图书馆、百度文库、百度网页等获得的开发该校园失物招领小程序所需要用到的资料和软件,都是采用的合法渠道,另外源代码和论文内容都是我自己一字一字写出来的,没有抄袭别人的,具有法律可行性。

通过上述的技术可行性、操作可行性、经济可行性以及法律可行性分析,可以看出,该校园失物招领小程序完全可以进行顺利开发。

    1. 系统性能分析
  • 存储性:该校园失物招领小程序的数据库功能比较强大,能够录入很多纷繁复杂的信息,且能够保证数据的实时性;

二、易学性:该校园失物招领小程序使用起来非常简单,用户一看就会,不需要进行专门的培训,非常好上手,使用个一两次就能够熟练操作;

三、数据要求:录入的数据准确可靠,能够及时进行更新,可以独立保存,删除一些不需要的数据;

四、稳定性:该校园失物招领小程序能够稳定的运行,界面清晰明了;

五、可靠性:该校园失物招领小程序安装有拦截器,可以对病毒等进行拦截,并且还对信息进行了保护措施,用户可以放心使用。

    1. 系统功能分析
      1. 角色需求

该校园失物招领小程序主要为管理员和用户两类用户角色提供需求,管理员在后台可以对系统进行全面管理,用户在前台可以进行查看系统信息,注册登录,查询书籍,评论,下载书籍等操作。

用户静态结构如图3-1所示。

图3-1  用户静态结构图

      1. 功能需求

该校园失物招领小程序具有完善的功能,界面一目了然,用户一看就会操作,管理员功能模块和用户功能模块是该系统的两大主要功能模块,其功能需求具体如下:

管理员的功能需求:

管理员在后台可以全面管理系统,管理员的功能主要包括用户管理、新闻管理、书籍管理和评论管理等。

用户的功能需求:

用户在没有注册之前,进入网站,用户的主要功能包括查看网站首页、公告信息、书籍分类和书籍信息,用户在注册登录后进入网站,用户的主要功能包括书籍评论、加入书架、书籍下载、个人信息管理、我的书架和我的留言。

    1. 系统流程分析
      1. 注册流程

用户注册之后才可以登录系统,用户注册流程如图3-2所示:

图3-2  注册流程图

      1. 登录流程

用户需要登录系统之后,才可以进行书籍评论、书籍下载等操作。而管理员也只有登录系统之后,可以对系统各个方面的内容进行管理,不受任何限制。用户登录流程如图3-3所示。

图3-3  登录流程图

  1. 系统设计
    1. 系统概要设计

本文通过B/S结构(Browser/Server,浏览器/服务器结构)开发的该校园失物招领小程序,B/S结构的优点很多,例如:开发容易、强的共享性、便于维护等,只要有网络,用户可以随时随地进行使用。

系统工作原理如图4-1所示。

图4-1 系统工作原理图

    1. 系统结构设计

系统结构设计就像一个树状结构一样,一个树干有很多分支,大任务相当于树干,小任务相当于树枝,只有需求分析信息弄清楚之后,才能保证每个小任务都能实现目标,对初步设计好的系统再进行不断优化,最终得到一个具体现实的系统结构。

管理员功能模块和用户功能模块是该校园失物招领小程序的两大部分,系统结构如图4-2所示。

图4-2 系统结构图

4.3 数据库设计

开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。

4.3.1 数据库概念设计

这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。

(1)下图是论坛实体和其具备的属性。


图4.1 论坛实体属性图

(2)下图是失物认领实体和其具备的属性。


图4.2 失物认领实体属性图

(3)下图是用户实体和其具备的属性。


图4.3 用户实体属性图

(4)下图是公告实体和其具备的属性。


图4.4 公告实体属性图

(5)下图是字典表实体和其具备的属性。


图4.5 字典表实体属性图

(6)下图是失物招领实体和其具备的属性。


图4.6 失物招领实体属性图

(7)下图是寻物启事留言实体和其具备的属性。


图4.7 寻物启事留言实体属性图

(8)下图是用户表实体和其具备的属性。


图4.8 用户表实体属性图

(9)下图是失物招领留言实体和其具备的属性。


图4.9 失物招领留言实体属性图

(10)下图是寻物启事实体和其具备的属性。


图4.10 寻物启事实体属性图

      1. 数据库表设计

采用MYSQL数据库对该校园失物招领小程序的数据进行存储,数据库中所包括的各个数据库表的详细信息如下所示:

表4.1字典表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

dic_code

String

字段

3

dic_name

String

字段名

4

code_index

Integer

编码

5

index_name

String

编码名字

6

super_id

Integer

父字段id

7

beizhu

String

备注

8

create_time

Date

创建时间

表4.2论坛表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

forum_name

String

帖子标题

3

yonghu_id

Integer

用户

4

forum_content

String

发布内容

5

super_ids

Integer

父id

6

forum_state_types

Integer

帖子状态

7

insert_time

Date

发帖时间

8

update_time

Date

修改时间

9

create_time

Date

创建时间

表4.3公告表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

news_name

String

公告名称

3

news_types

Integer

公告类型

4

news_photo

String

公告图片

5

insert_time

Date

公告时间

6

news_content

String

公告详情

7

create_time

Date

创建时间

表4.4失物认领表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xiaoyuanshiwuzhaoling_id

Integer

失物id

3

yonghu_id

Integer

认领用户

4

yesno_types

Integer

审核

5

shiwurenling_text

String

详情

6

insert_time

Date

认领时间

7

create_time

Date

创建时间

表4.5失物招领表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xiaoyuanshiwuzhaoling_uuid_number

String

失物编号

3

xiaoyuanshiwuzhaoling_name

String

物品名称

4

shiwuzhaoling_types

Integer

物品类型

5

status_types

Integer

物品状态

6

yonghu_id

Integer

用户

7

xiaoyuanshiwuzhaoling_photo

String

物品图片

8

xiaoyuanshiwuzhaoling_time

Date

拾遗时间

9

xiaoyuanshiwuzhaoling_dizhi

String

拾遗地址

10

xiaoyuanshiwuzhaoling_content

String

详情

11

create_time

Date

创建时间

表4.6失物招领留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xiaoyuanshiwuzhaoling_id

Integer

物品

3

yonghu_id

Integer

用户

4

xiaoyuanshiwuzhaoling_liuyan_text

String

留言内容

5

reply_text

String

回复内容

6

insert_time

Date

留言时间

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.7寻物启事表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xunwuqishi_name

String

物品名称

3

shiwuzhaoling_types

Integer

物品类型

4

status_types

Integer

物品状态

5

xunwuqishi_photo

String

物品图片

6

xunwuqishi_time

Date

丢失时间

7

yonghu_id

Integer

用户

8

xunwuqishi_dizhi

String

丢失地址

9

xunwuqishi_content

String

详情

10

create_time

Date

创建时间

表4.8寻物启事留言表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

xunwuqishi_id

Integer

物品

3

yonghu_id

Integer

用户

4

xunwuqishi_liuyan_text

String

留言内容

5

reply_text

String

回复内容

6

insert_time

Date

留言时间

7

update_time

Date

回复时间

8

create_time

Date

创建时间

表4.9用户表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yonghu_name

String

用户姓名

3

yonghu_id_number

String

身份证号

4

yonghu_phone

String

手机号

5

yonghu_photo

String

照片

6

create_time

Date

创建时间

表4.10用户表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

role

String

角色

3

addtime

Date

新增时间

  1. 系统的实现
    1. 功能模块的实现

5.1用户信息管理

如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,

还进行了对用户名称的模糊查询的条件

图5.1 用户信息管理页面

5.2 失物招领管理

如图5.2显示的就是失物招领管理页面,此页面提供给管理员的功能有:查看已发布的失物招领数据,修改失物招领,失物招领作废,即可删除,还进行了对失物招领名称的模糊查询 失物招领信息的类型查询等等一些条件。

图5.2 失物招领管理页面

5.3寻物启事管理

如图5.3显示的就是寻物启事管理页面,此页面提供给管理员的功能有:根据寻物启事进行条件查询,还可以对寻物启事进行新增、修改、查询操作等等。

图5.3 寻物启事管理页面

5.1公告信息管理

如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。

图5.4 公告信息管理页面

  1. 系统测试
    1. 测试定义

系统能否进行正常工作,功能模块能否实现,程序代码是否有错误,这些都需要通过系统测试来进行判断,测试是程序开发中必不可少的步骤,就算系统一步不差的被开发出来了,但进行测试时总能发现一个之前从没遇到过的问题[26]。

在系统开发的整个过程当中都需要不断进行系统测试,根据经验发现,前期的一个小问题,将会酿成后期的一个大问题,所以越早发现,越早解决,才能保证后续的编码、测试和设计能够顺利进行。目前,系统测试所使用的方法主要是黑盒测试,系统测试的目的包括:根据客户的需求来设计用户界面;在满足设计标准的同时,对设计接口不断创新,形成独特的审美特征[27]。

    1. 测试目的

系统测试的目的重点放于系统的稳定和可操作性,系统测试是开发软件过程中必不可少的步骤。在开发软件的整个过程中,对于每一个小的单独的功能都要进行测试,确保前边的每一步都是没问题的,这样在进行后续的融合工作过程中,才能保证软件的正确性,即使出现问题,也能够很可快速的发现并解决。

每一个系统发开完成之后,都需要进行测试,该校园失物招领小程序也不例外,进行系统测试是为了发现该系统是否还存在问题,保障该系统的质量是过关的,让用户使用起来比较安心。在进行测试过程中,需要测试的内容有:系统界面是否清晰明了,颜色搭配是否顺眼,功能布局是否合理,一旦发现上述内容不达标,开发人员就需要及时进行修改,以达到满足用户的需求。系统测试的方法有很多,但是该校园失物招领小程序所使用的测试方法是黑盒测试方法[28]。

    1. 测试方法

在开发软件过程中,黑盒测试和白盒测试是比较常用的两种测试方法。

白盒测试的大概思路是:将程序当做一个透明盒子,程序中的各个结构都需要弄清楚,之后对程序内部的逻辑结构进行测试,对程序中的每条通路都进行检查,看下每条通路是否能够按预期进行工作[29]。

黑盒测试是需要在测试程序接口之前,对程序的功能和需求进行检查,对程序的输入输出数据进行检查,对整个系统结构的完整性进行检查[30]。

    1. 测试分析

对系统进行测试是测试系统是否还存在问题,并对问题进行解决,让用户能够用的放心,当然测试也不能把系统当中的所有问题都暴露完全,但测试能够将问题降到最低,所以进行系统测试还是非常必要的[31]。

该校园失物招领小程序经过上述的一系列测试之后,得出的测试结果是:各项要求都达标,基本功能均可实现,容易操作,运行流畅[32]。

  1. 结论

该校园失物招领小程序的开发已经到了最后阶段,在开发该校园失物招领小程序的整个过程中,我学习到了很多东西,论文中的每一部分,我都花费了很多的心血去完成,期间遇到了很多的困难,我是先通过自己的努力去解决,自己实在解决不了的问题,再去请教同学和老师,问题很快得到了解决,问题解决的那一刻还是非常开心的,在开发的过程中,有的时候是由于自己的大意造成的问题,这样也会督促自己做事情要细心一点,在系统开发的整个过程中,最难的部分就是系统编码,经常会出很多错误,弄得自己的心情很差,最后在同学和老师的帮助下,还是顺利的完成了系统的开发,并且该系统所需要的功能也都具备了。

自己在开发该校园失物招领小程序的整个过程中,也有很多考虑不周全的地方,但整体还是过关的,通过毕设的整个制作过程,自己不仅学到了很多知识,提供了独立学习能力,而且也交到了很多好朋友,这次的毕设完成的还算比较圆满,觉得很骄傲。

致谢

该校园失物招领小程序的开发过程经历了好几个月,在这几个月当中,我把之前几年所学到的东西都用到了程序开发过程中,真正体验到了什么叫学以致用,并且对之前自己学的不是很明白的知识,经过这次的实践,我现在也能够理解透彻了,很开心。

在我做毕设的过程中,我的老师、同学、家人都给予了我很大的支持、鼓励和帮助,我也在他们的支持鼓励和帮助下顺利完成了自己的毕设,我非常感谢他们。

指导老师对我制作毕设帮助最大,他能够及时指出我毕设中问题,并给出建议,才使我的设计能够顺利完成。我的指导老师在我程序的设计、代码的完善等方面都提出了很多宝贵建议,并且还给我推荐一些对我毕设很有帮助的资料,我在这个过程当中学习了很多有用的知识,获益匪浅。

参考文献

[1]张春玮. 在线阅读方法及系统,客户端,服务器:, 2014.

[2]孟小华. 用Java实现手机上网在线阅读电子书[J]. 微计算机应用, 2004.

[3]李阳. 基于微服务架构的双语阅读平台的设计与实现[D].  2019.

[4]邹进波. 基于CEBX的跨终端在线阅读系统的设计与实现[D].  2011.

[5]滑斌. 基于聚类理论的图书电子商务的研究与应用[D]. 厦门大学, 2011.

[6]陈曼曼. 数字出版应用服务平台的设计与实现[D].  2016.

[7]马鸣, 钱鸽. 基于Android的电子书阅读器的设计与实现[J]. 电脑知识与技术:学术交流, 2012.

[8]杨慧, 吉建勋. 一种基于区块链的电子书收费方法及系统:, 2019.

[9]杜先金, 陈晖, 李红兵. 一种互联网电子书的管理系统及方法:, 2019.

[10]孙庆玲. 具有联网预约借购的大型图书馆系统:, 2018.

[11]陈飞飞 潘章晟 王海. IPAD IPHONE必装发烧软件200+(附光盘)[M]. 电脑报出版社, 2011.

[12]邹进波. 基于CEBX的跨终端在线阅读系统的设计与实现[D]. 北京邮电大学.

[13]孙庆玲. 具有票务系统的列车专用小型图书馆及使用方法:, 2018.

[14]C·莱恩. 基于因特网的电子书:, 2009.

[15]郭宇. 电子书阅读方法,装置,系统和存储介质:, 2019.

[16]李少明, 文伟龙. 电子书加密和离线阅读方法及装置,电子书版权保护系统:, 2018.

[17]郭海伟, 王东, 喻向东,等. 一种电子书阅读权限保护方法及系统:, 2017.

[18]徐宇雷. 电子书的存储检索方法,电子书管理系统,阅读系统:, 2017.

[19]孟小华. 用Java实现手机上网在线阅读电子书[J]. 微计算机应用, 2004, 25(3).

[20]李阳. 基于微服务架构的双语阅读平台的设计与实现[D].

[21]李健. 实现多设备无缝阅读的电子书阅读系统及设备间切换方法:, 2015.

[22]褚晶辉, 卢莉莉, 邓为贤,等. 一种纸质书与电子书阅读进度同步系统及同步方法:, 2016.

[23]张喜亮, 熊健南, 莫文. 提高用户阅读电子书体验的方法,装置及系统:, 2016.

[24]韩晓煜. 一种动态电子书阅读系统:, 2014.

[25]冯威, 叶立飞, 陈德辉,等. 电子书阅读系统及电子书阅读器互联和输入方法:, 2010.

[26]陆海龙. Linux平台嵌入式epub电子书阅读与管理系统[D].  2010.

[27]陈大年. 通过电子书阅读器进行用户行为模式分析的系统和方法:, 2012.

[28]宫姜男. 嵌入式PDF电子书阅读与管理系统的设计与实现[D].  2010.

[29]马鸣, 钱鸽. 基于Android的电子书阅读器的设计与实现[J]. 电脑知识与技术, 2012, 000(027):6533-6537.

[30]朱岸青, 高河福. 基于B/S架构的电子书阅读发布系统的实现及关键技术研究[J]. 韩山师范学院学报, 2011, 032(006):54-59.

[31]单慧琳, 张银胜, 唐慧强. 多功能电子书阅读器的设计[J]. 武汉理工大学学报(信息与管理工程版), 2013(03):320-323.

[32]庄子龙, 李传威, 许意梅. 电子书阅读装置的资料下载方法,资料传送方法及其系统:, 2013.

核心代码展示

/**
 * 公告通知
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-09 11:33:59
 */
@RestController
@RequestMapping("/news")
public class NewsController {
    @Autowired
    private NewsService newsService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NewsEntity news){
       	EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
      	ew.allEq(MPUtil.allEQMapPre( news, "news")); 
        return R.ok().put("data", newsService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NewsEntity news){
        EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
 		ew.allEq(MPUtil.allEQMapPre( news, "news")); 
		NewsView newsView =  newsService.selectView(ew);
		return R.ok("查询公告通知成功").put("data", newsView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request){
        //ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = newsService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT在数据分析OKR计划中的应用

ChatGPT在数据分析OKR计划中的应用 ​ 现在大多数公司引入了OKR&#xff08;objective & key result&#xff09;计划&#xff0c;数据分析师也需要定期制定和检查自己的OKR计划。我们不仅可以利用ChatGPT辅助制定OKR计划&#xff0c;也可以让其对OKR计划内容进行调整、优…

探索Go语言中的HTTP路由和中间件

在Go语言中&#xff0c;HTTP路由和中间件是实现Web应用程序核心功能的关键组件。路由负责将传入的HTTP请求分发到适当的处理函数&#xff0c;而中间件则提供了一种在请求处理过程中插入额外逻辑的机制。 HTTP路由 在Go中&#xff0c;net/http标准库提供了基本的路由功能&…

01 Linux简介

Linux背景 发展史 linux从哪来的&#xff1f;怎么发展的&#xff1f;得从UNIX说起 1968年&#xff0c;一些来自通用电气公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念1969-1970年&am…

Sora--首个大型视频生成模型

Sora--首个大型视频生成模型 胡锡进于2024年2月20日认为&#xff1a;台当局怂了 新的改变世界模拟器视觉数据转换视频压缩时空补丁&#xff08;Spacetime Laten Patches&#xff09;视频生成扩展变压器算法和模型架构结语 胡锡进于2024年2月20日认为&#xff1a;台当局怂了 **T…

《深入浅出 Spring Boot 3.x》预计3月份发版

各位&#xff0c;目前本来新书《深入浅出 Spring Boot 3.x》已经到了最后编辑排版阶段&#xff0c;即将在3月份发布。 目录&#xff1a; 现在把目录截取给大家&#xff1a; 主要内容&#xff1a; 本书内容安排如下。 ● 第 1 章和第 2 章讲解 Spring Boot 和传统 Spri…

C语言菜鸟入门·数组简介

目录 1. 简介 2. 声明数组 3. 初始化数组 3. 访问数组元素 4. 获取数组长度 5. 数组名 1. 简介 在 C 语言中&#xff0c;数组是一种用来存储相同类型数据元素的集合。数组提供了一种便捷的方式来管理一系列相同类型的数据&#xff0c;可以按照索引来访问和操作数组…

【免费雾锁王国】2024年新手搭建雾锁王国服务器教程

免费自建雾锁王国Enshrouded服务器&#xff0c;先领取阿里云300元无门槛代金券&#xff0c;然后在雾锁王国Enshrouded专题页一键部署&#xff0c;不需要基础&#xff0c;鼠标点选即可10秒钟创建一台雾锁王国游戏服务器&#xff0c;超简单&#xff0c;阿里云服务器网aliyunfuwuq…

Wireshark过滤DNS协议包语法实战

背景 现网DNS服务器发现CPU突增&#xff0c;发现有可能是客户恶意发起的随机子域名扫描&#xff0c;对服务器进行抓包分析&#xff0c;记录下当时的操作。 抓包 执行命令 tcpdump -iany port 53 and host $ip -nnv -w $ip.pcap进行抓包导出到本地&#xff0c;使用Wireshark进…

vue3中使用 tui-image-editor进行图片处理,并上传

效果图 下载包 pnpm i tui-image-editor pnpm i tui-color-picker调用组件 //html部分 <el-dialog v-model"imgshow" destroy-on-close width"40%" draggable align-center :show-close"true":close-on-click-modal"false">&l…

“成像光谱遥感技术中的AI革命:ChatGPT应用指南“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本课程重点介绍ChatGPT在遥感中的应用&#xff0c;人工智…

Redis篇----第六篇

系列文章目录 文章目录 系列文章目录前言一、Redis 的持久化机制是什么?各自的优缺点?二、Redis 常见性能问题和解决方案:三、redis 过期键的删除策略?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

h5网页和 Android APP联调,webview嵌入网页,网页中window.open打开新页面,网页只在webview中打开,没有重开一个app窗口

我是h5网页开发&#xff0c;客户app通过webview嵌入我的页面 点击标题window.open跳转到长图页面&#xff0c;客户的需求是在app里新开一个窗口展示长图页面&#xff0c;window.open打开&#xff0c;ios端是符合客户需求的&#xff0c;但是在安卓端他会在当前webview打开 这…

消息队列-RabbitMQ:死信队列

十五、死信队列 1、死信的概念 先从概念解释上搞清楚这个定义&#xff0c;死信&#xff0c;顾名思义就是无法被消费的消息&#xff0c;字面意思可以这样理解&#xff0c;一般来说&#xff0c;producer 将消息投递到 broker 或者直接到 queue 里了&#xff0c;consumer 从 que…

【Chrono Engine学习总结】4-vehicle-4.3-两个vehicle碰撞测试

由于Chrono的官方教程在一些细节方面解释的并不清楚&#xff0c;自己做了一些尝试&#xff0c;做学习总结。 今天突发奇想&#xff0c;想试一下&#xff0c;是否可以实现两个vehicle的碰撞&#xff1f; 1、两辆vehicle的仿真 官方提供了demo_VEH_TwoCars这个demo&#xff0c…

【更新公告】AirtestIDE更新至1.2.17版本

1. 前言 本次更新为AirtestIDE、Airtest-Selenium库更新。 AirtestIDE更新至1.2.17版本&#xff0c;AirtestIDE内置库Airtest更新为1.3.3.1版本&#xff0c;Poco更新为1.0.94版本&#xff0c;主要支持了selenium4.0以上版本&#xff0c;ADB更换为41版本&#xff0c;Airtest新…

数据驱动决策:掌握高效数据分析的七大步骤

在这个数据驱动的时代&#xff0c;无论是企业决策还是个人发展&#xff0c;数据分析都扮演着至关重要的角色。然而&#xff0c;想要从海量数据中提炼出有价值的信息&#xff0c;并不是一件容易的事情。本文为你详细解读高效数据分析&#xff0c;让你的数据开口说话&#xff0c;…

GIS技术在灾后重建中的空间规划与决策支持

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下&#xff0c;地质灾害在世界范围内频繁发生。我国除滑坡灾害外&#xff0c;还包括崩塌、泥石流、地面沉…

单体微服务K8S笔记

单体微服务K8S笔记 https://blog.csdn.net/m0_48341969/article/details/126063832思路参考以上博客 //测试 https://gitee.com/yangbuyi/yi项目组织参考以上git 单体&#xff1a; 不特地介绍 微服务&#xff1a; rpc:远程过程调用 拆分&#xff0c;分别部署&#xff0…

Day04-流程控制语句_循环结构(while,do...while,关键字continue,关键字break,循环嵌套)

文章目录 Day04- 循环结构学习目标1 while循环2 do...while循环4 循环语句的区别5 关键字continue6 关键字break7 循环嵌套案例1&#xff1a;打印5行直角三角形案例2&#xff1a;break结束当层循环 Day04- 循环结构 学习目标 理解for语句的格式和执行流程 随机数公式 理解…

Linux中安装Nginx及日常配置使用

高性能的http服务器/反向代理服务器。官方测试支持5万并发&#xff0c;CPU、内存等消耗较低且运行稳定 使用场景 Http服务器。 Nginx可以单独提供Http服务&#xff0c;做为静态网页的服务器。虚拟主机。 可以在一台服务器虚拟出多个网站。反向代理与负载均衡。 Nginx做反向代理…