基于Java+MySQL礼品代理平台的研究开发
2021-11-01梁锟邓璞陈子杨周宇龙尚雪徐鉴
梁锟, 邓璞, 陈子杨, 周宇龙, 尚雪, 徐鉴
(哈尔滨商业大学 计算机与信息工程学院, 黑龙江 哈尔滨 150028)
0 引言
随着互联网技术的迅速发展,礼仪文化也逐渐网络化,人们挑选购买礼品也逐渐从线下购买转向线上购买,但普通的电商平台却逐渐不能满足人们挑选礼品的需求。而赠送礼品又是生活中比较重要的事情,人们常担心送礼品不及时、不合适会影响感情,造成尴尬的局面,甚至引起损失。所以基于此情况,本研究应用Java+MySQL开发技术设计了一个礼品代理平台,以解决从挑选到赠送的一系列问题。用户使用Web访问服务器的方式,按照年龄、职业、性别、与用户关系等筛选条件,通过大数据分析,挑选出合适的礼品,然后通过在线提交订单,线下配送的方式送到收件人手中,从而解决挑选礼品难的问题。同时,礼品代理平台会推出纪念日提醒服务,用户只需要输入需要提醒的日期,在纪念日前系统将会通过发送短信、推送消息等形式进行通知,以保证用户在繁忙的生活中不会忘记纪念日。此外,礼品代理平台还设置定制服务,方便私人订制或者企业定制。使收到礼品的人或者公司感受到送礼者的用心,以此满足用户的需求[1]。
1 国内外此类平台运营现状
国内有很多礼品公司,发展到目前阶段,礼品公司可以分为3种不同类型:第一种只做礼品的传统形式的礼品公司;第二种是第一种的升级版,有积分及礼品册,这种方式适合于员工福利类需求;第三种是由广告公司牵头所做的策划、营销、礼品的一条龙服务,不适合日常生活需求。
国外网络购物普遍运送费较高且用时较长,最优选择通常是自己在实体店购买。
国内外礼品公司都普遍存在着以下几点不足之处。
(1) 礼品价格过高,超出送礼者的预算。
(2) 运送不及时,容易造成一些损失。
(3) 运送过程中造成损坏,收礼者收到感观不太好,而送礼者不知情,容易造成尴尬的局面。
(4) 没有合适的送礼时间提醒,送礼者容易在忙碌的生活中忘记送礼。
(5) 匹配度不高且价格较昂贵,不适合日常送礼需求。
2 系统功能需求分析
该系统的角色主要由管理员和用户组成。管理员负责用户的信息管理,如信息的更新删除记录等工作,用户则按照自己的需求使用该系统。
2.1 用户功能的用例分析
用户在注册登录后,填写自己的相关信息。使用时将会对送礼对象的性别、年龄、职业、关系等进行选择。如果有特殊需求也可以进行设置。系统则会根据其选择进行礼物的推荐和提供礼物的购买链接。其用例图如图1所示。
图1 用户用例图
2.2 管理员功能的用例分析
管理员有管理权限,能对用户信息和礼品信息进行更新、删除、修改、管理第三方支付、进行数据的统计和审核等。其用例图如图2所示。
图2 管理员用例图
3 系统的设计与实现
3.1 系统设计原则
(1) 易用性原则。方便客户上网浏览和操作,最大限度地减轻后台管理人员的负担,实现部分业务的自动化处理[2]。
(2) 安全性原则。系统采取全面的安全保护措施,具有防病毒感染、防黑客攻击措施,同时在防雷击、过载、断电和人为破坏方面进行加强,具有高度的安全性和保密性。对接入系统的设备和用户,进行严格的接入认证,以保证接入的安全性。系统支持对关键设备、关键数据、关键程序模块采取备份、冗余措施,有较强的容错和系统恢复能力,确保系统长期正常运行。
(3) 业务完整性原则。对于业务进行中的特殊情况能够做出及时、正确的响应,保证业务数据的完整性。
(4) 业务规范化原则。在系统设计的同时,也为将来的业务流程制定了较为完善的规范,具有较强的实际操作性。
(5) 可扩展性原则。系统设计要考虑到业务未来发展的需要,要尽可能设计得简明,各个功能模块间的耦合度小,便于系统的扩展。如果存在旧有的数据库系统,则需要充分考虑兼容性。
(6) 开放性原则。系统设计遵循开放性原则,能够支持多种硬件设备和网络系统,软硬件支持二次开发。各系统采用标准数据接口,具有与其他信息系统进行数据交换和数据共享的能力。
3.2 系统主要功能设计与介绍
该系统完成了用户注册登录模块、商品检索模块、购物车模块、个人信息模块、订单模块、支付模块和管理员模块。
(1) 用户注册登录模块:当用户首次使用该系统时,为了更好地满足用户的需求,用户需要注册自己的信息。例如用户名、密码、性别、年龄等个人信息。
(2) 商品检索模块:当用户需要挑选礼物时,可根据平台提供的年龄、关系、职业、性别、价格等选项,进行商品检索,挑选合适的礼品。
(3) 购物车模块:当用户挑选出合适的礼品之后,可以将礼品放入购物车中,在购物车模块进行再次选择或直接填写相关要求下单购买。
(4) 个人信息模块:在该模块中,用户可以查看、修改和删除自己的个人信息。例如用户名、密码、性别、年龄、收货地址等信息。
(5) 订单模块:在该模块中,用户可以查看所有的订单信息。包括商品的价格、是否发货情况和物流状况等。
(6) 支付模块:当用户决定下单购买礼品后,会出现该模块。用户可以选择自己习惯的支付方式进行支付。例如支付宝支付、微信支付或银行卡支付等。
(7) 管理员模块:在该模块中,管理员可以对用户和商家的信息进行管理,例如更新、增加和修改信息等。同时也会对商品的信息进行及时的管理,例如会对商品进行上架、下架、修改。管理员也可以对首页的广告页进行操作,对订单信息进行查询和修改等。
3.3 系统体系结构设计
该系统采用B/S体系结构。在软件的通用性上,B/S 架构的客户端具有更好的通用性,对应用环境的依赖性较小,同时因为客户端使用浏览器,在开发维护上更加便利,可以减少系统开发和维护的成本,同时对系统的安全性更好[3]。采用C/S体系结构方便管理员对服务器进行维护和修改,形成“内外有别”结构,如图3所示。
图3 系统体系结构设计图
3.4 网页前端设计和后台开发
3.4.1 前端设计
该平台网页前端使用HTML+CSS+JS技术,礼品平台页面和管理系统页面的样式不一致,使用了Rapid-framework框架和多次使用include标签来实现页面继承(书写模板页),以减轻开发,减少重复代码。该平台使用了表达式语言EL来简化JSP表达。该项目中使用的是JSP标准标签库(JavaScript Pages Standard Tag Library,JSTL),以解决遍历Map或者集合。前台逻辑是基于Jquer,编写了许多Ajax逻辑。管理员后台页面是基于Bootstrap布局的,直接使用了Font-awesome的符号字体。
礼品查找时的分类界面,如图4所示。
图4 礼品查找时分类界面
3.4.2 后台开发概要
该系统后台是基于Java的SSM框架实现的,即Spring、SpringMVC、MyBatis。Spring是一个开源的框架,是由Apache公司开发的,Spring是为了简化企业级应用开发而生的。而SpringMVC是在Spring基础上的MVC框架,支持注解,大大提高了易用性,对于Model层,分为POJO层和Mapper层。并且使用MBG(MyBatis Generator)配置生成,控制器分为Controller层和Service层。
3.5 数据库设计
该系统使用了MySQL数据库进行存储。MySQL 是一种高性能、快速运行、非常易用、多线程、多用户、开放源码的关系数据库管理系统,建立在 B/S 架构之上。MySQL 是一个关系数据库管理系统。关系数据库将数据存储在不同的表中,类似于数据仓库环境下的操作性数据存储,这样可以提高报表的抽取速度,提高系统的反应时间[4]。一个礼品代理购买系统,首先需要确认的两个实体是商品和用户。一个用户可以选择多个商品,而一个商品也可以被多个用户选择购买,所以这就是多对多的关系。对于用户的属性可以模拟出用户编码、姓名、电话、邮箱等属性,方便用户、管理员管理信息。其中用户编码适合作为用户关系的唯一标识符。为了更好地方便用户挑选商品,对于商品这个实体,通过不同的筛选条件进行不断的分类。方便用户对不同的职业、年龄、关系、性别、价格、用途的商品进行挑选,因此关系模式的设置需要设置这些选择属性。同时为了方便用户使用,还有商品订单、对应图片、地区表等设置。
3.5.1 数据库配置
该系统采用MyBatis进行和数据库交互。MyBatis 是一个基于 Java 的持久层框架。MyBatis 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAO),它消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。它的优势是小巧、方便、高效、简单、直接、半自动化。非常适合在此应用,以下是部分代码。
1.maven引入mybatis依赖 (pom.xml)
2. 数据库连接池配置
3.配置mapper接口。
3.5.2 数据库模型结构
满足项目需求而设计的数据库实体关系图,如图5所示。
图5 数据库实体关系图
整个数据库的表大致分为产品(礼品)类、账户类和其他类。
产品类是由Product表为源头衍生出的几个相关表,诸如表示属性的Property表,表示分类的Category表,表示属性标签的Label表,表示订单的Order表,表示购物车的Product_item表,表示收藏夹的Collection_item表。
账户类包括普通用户User表和管理员账户Administrator表。
其他类包括了前台广告Scroll_ad表和表示地理位置的Administrator_area表。一般和数据库内其他表的联系不大(无引用关系)。
3.5.3 数据库特点
(1) 数据库安全性。通过用户权限定义和合法权检查确保只有合法权限的管理员才能访问数据库,例如创建新的表和视图、查看表中信息、删除无效信息等。而普通用户只能查询修改自己的个人信息。系统提供一定的方式让用户标记自己的身份信息,每次用户进入系统时,由系统进行核对后才能进入系统。对存储和传输的数据进行加密处理,从而使不知道解密算法的人无法获取数据的内容[5]。
(2) 数据库完整性。数据库完整性是指数据在逻辑上的一致性、正确性、有效性和相容性。该系统数据库的数据是符合现实世界语义、反映实际情况的,且有数据库完整性约束的设计[6]。
(3) 数据库规范性。实现了更好、更快、更强的搜索功能,通过数据库规范化,数据完整性也可以改善,因为它把所有数据分成单独的实体,并用关联数据在实体间建立强连接[7]。
4 平台实践
平台在测试阶段,在某学院随机选取150名同学进行测试使用。在使用过程中,同学们对其感观良好,认为较为方便,解决了他们日常挑选礼物的烦恼。
经过6月份到11月份的测试阶段,平台的电子产品销量件数分别为13,7,14,12,8,9;实用商品销量件数分别为19,13,21,22,16,19;装饰品销量件数分别为23,10,26,28,10,12;食品销量件数分别为20,11,22,26,10,11。每个月份综合评价分为4.0,4.1,3.9,4.3,4.1,4.2。图6是它们的直方图表示。
由此可见,该平台测试阶段的反应较为良好,在节假日时期销量呈逐步上升的趋势。
根据系统的后台数据表明,该平台测试阶段的各项指标如表1所示,该平台得到了测试用户的广泛关注和应用。
表1 测试阶段平台的各项指标
同时通过问卷调查的方式,得出数据表明,80%的同学对该平台推荐的礼物表示满意;76%的同学表示如果平台上线,将继续在此平台进行购买;90%的同学表示会对此平台持续关注。由此发现,大家对此平台比较感兴趣,并且希望其作用范围更大。
5 总结
本研究组通过对社会礼物购买者的研究分析,研究了由Java和MySQL开发的礼品代理平台,根据筛选条件和大数据分析,挑选出合适的礼品,有效解决了挑选礼品难的问题,推动了礼品代理平台的实现发展。与此同时,在经过测试阶段后,筛选和推荐礼品的算法尚存在检索速度慢,方案不合理的情况。此外,礼品代理平台如何进行推广应用,如何应对在大流量冲击下的系统安全保护是一个问题。在平台的运行过程中,将继续完善该平台,以更完善的功能服务于当代消费者。