基于Java的保险商城设计与实现.docx
《基于Java的保险商城设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Java的保险商城设计与实现.docx(23页珍藏版)》请在冰点文库上搜索。
![基于Java的保险商城设计与实现.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/1b909626-6fe7-41c9-b1be-e3a05c09763b/1b909626-6fe7-41c9-b1be-e3a05c09763b1.gif)
基于Java的保险商城设计与实现
摘 要:
随着时代的发展,人们的生活水平不断,对于保障自己的健康的要求也逐渐提高。
自然对保险的需求也加大了。
所以本系统是围绕着保险类的商城的系统,人们在这个系统里面可以了解各种保险,因此有了更多的选择,在上面会看到各种保险的利处所在。
本系统使用基于Java的Spring+SpringMVC+Mybatis框架和MySQL数据库,实现了注册用户、登陆用户、用户联系人、用户保单、商品分块展示、购买商品、订单模板、签约等功能。
测试效果较好。
关键词:
保险商城;MySQL;Java
Abstract:
Withthedevelopmentofthetimes,people'slivingstandardsareconstantlyincreasing,andtheirrequirementsforensuringtheirownhealtharegraduallyincreasing.Naturally,thedemandforinsurancehasalsoincreased.Therefore,thissystemisasystemthatsurroundsinsurance-typemalls.Peoplecanlearnaboutvarioustypesofinsuranceinthissystem.Therefore,withmorechoices,theadvantagesofvariousinsuranceswillbeseenabove.ThissystemusestheSpring+SpringMVC+MyBatisframeworkandMySQLdatabasebasedonJavatorealizethefunctionsofregisteredusers,loginusers,usercontacts,userpolicies,productblockdisplay,purchaseofgoods,ordertemplates,andcontracts.Thetestisbetter.
Keywords:
InsuranceMall;MySQL;Java
II
目 录
摘 要 I
ABSTRACT. I
目 录 II
1绪论 1
1.1研究背景 1
1.2开发技术 1
1.1.1Java简介 1
1.1.2JSP简介 1
1.1.2 MySQL简介 1
1.3运行环境 2
2系统可行性与需求分析 2
2.1系统可行性分析 2
2.2系统需求分析 2
2.3系统业务流程图 3
3系统整体设计 3
3.1系统目标 3
3.2系统功能结构设计 3
3.3系统实体属性图 4
3.4系统E-R图 7
3.5数据库表设计 7
4系统功能实现 11
4.1用户激活 11
4.2主页的设计 12
4.3用户登录界面 13
4.4用户注册 14
4.5修改用户信息 15
4.6购买商品 15
4.7查看我的保险 17
4.8联系人 17
4.9消息中心 18
4.10优惠券 19
5系统测试 19
5.1测试目的 19
5.2测试用例 20
5.3测试结论 20
6 总结 20
参考文献 错误!
未定义书签。
致 谢 错误!
未定义书签。
1绪论
1.1研究背景
“保险商城”,顾名思义就是一个用于专门卖保险的的商城。
它是一个类似于商城的网站,主要的业务便是为客户保险服务,保险的种类不同。
客户可以在该商城清楚的了解每个保险的作用,而且客户可以自行消费,这样既减少了销售人员进行介绍的时间,也避免了客户对销售人员进行的促销的反感,这样一来双方的时间都将被大大节省,销售质量也得到了大大的提升,以此达到双赢的效果。
当客户下单的时候也可以清楚看到自己所签订的保险合同,达到了透明的效果。
这将会给客户带来良好的消费体验。
1.2开发技术
1.1.1Java简介
Java[1]最大的特点是跨平台性,因为java虚拟机,使它不会受到环境的影响,只要编译为.class文件后,可以放在其他机子上运行。
Java[1]语言是目前使用最为普遍的服务器语言,它设计的领域比较广,如游戏,网站,电子产品等等。
Java的语言特征[9]:
(1)安全性;
(2)简单性;(3)分布性;(4)面向对象;(5)强壮性;(6)体系结构中立;(7)可以移植性;(8)解释执行;(9)高性能;(10)多线程。
1.1.2JSP简介
JSP全称JavaServerPages,是一种动态网页开发技术[2]。
它使用JSP标签在
HTML网页中插入Java代码。
标签通常以<%开头以%>结束。
JSP是一种JavaServlet[10],主要用于实现JavaWeb应用程序的用户界面部分。
网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作
和命令来编写JSP。
1.1.2 MySQL简介
MySQL一般特制完整的MySQLRDBMS,是一个开源的关系型数据库管理系统(RelationalDatabaseManagementSystem),现在属于Oracle公司。
随着MySQL
第21页(共22页)
功能的不断完善,性能不断提高,又有开源免费的优势[3],越来越多的企业选择使用MySQL,而放弃商用收费的Oracle。
1.3运行环境
操作系统:
Windows7以上版本。
服务器软件:
Tomcat7.0以上的版本。
浏览器:
FireFox、Chrome,360安全浏览器等主流浏览器。
2系统可行性与需求分析
2.1系统可行性分析
本系统采用良好的切简介的界面设计,功能操作简单[1],而且也是创新的一种思想,把原本需要的人力简化了,让用户在网上都能享受到保险,把我们的保险当一个电商网站来对待,而且操作起来很简单[7],让用户看着清晰。
本系统是严格按照国家法律规来进行研究的,并且没有法律和政治方面的限定。
2.2系统需求分析
保险商城网站是一个小型的购物系统,功能和正常的购物商城差不多,所以设计的时候一定要注意,不然可以能网站都支持不了太多人,网站的主要是下单的流程,那个流程一定要清晰[9],因为购物商城主要都是在那里,网站的开发一定要采用高复用,因为这样有利于后期代码的维护和修改。
本项目是一个围绕着商城做的项目[8],简单说它就是客户与卖家的关系,只是卖家买的商品不是那种实实在在的,就不用发货这些,当客户购买后我们只需要生成一份合同即可,如果有需要的话,会当面签合同。
这样本网站都会抽象为以下几个部分:
(1)商品的浏览:
客户可以浏览各种保险,通过自己的需求选择保险。
(2)商品的选择:
客户可以通过自己不同的需求选择不同的保险进行下单。
(3)购买商品:
当客户把保险选好后会生成订单,然后支付。
2.3系统业务流程图
图2-1系统业务流程图
3系统整体设计
3.1系统目标
本系统的处理对象:
客户与商品。
系统处理功能要求:
1用户登录;2用注册邮箱验证;3用户浏览商品;4用户下单;5用户购买。
3.2系统功能模块设计
针对以上的需求,包括用户注册、浏览、下单、购买、登陆等功能模块具体如下;
(1)用户管理:
包括用户的登陆注册,用户的激活,用户的修改等基本操作。
(2)商品管理:
通过不同的分类把保险展示出来,商品详情,下单等操作。
(3)查看保险:
查看自己已经购买的保单,可以查看保单的状态。
(4)联系人管理:
查看到自己添加的联系人,并对联系人进行增删改查。
(5)消息中心:
消息中心是管理员,或者活动发出来的群消息,可以对消息进行管理。
(6)优惠券:
优惠券的发放与使用。
(7)我的积分:
积分管理,对积分的使用。
(8)订单管理:
用户可以看到自己的所有订单,对其进行管理。
(9)其他功能:
通过手动在后台添加商品,添加优惠券,验证邮箱,然后通过加载页面的时候把所有的商品通过不同的分类加载出来,展现给用户。
3.3系统实体属性图
(1)用户模块的实体属性图如图:
生日
手机号
码
性别
邮箱
验证码
密码
姓名
用户
图3-1用户实体属性图
(2)商品模块的实体属性图,如图
图片
保额
描述
最大年
最小年
商品价
格产品名
字
商品
图3-2商品实体属性图x
(3)订单模块的实体属性图,如图
被保人性
别
被保人
生日
被保人证
件号码
投保人
姓名
受益人姓名
被保人姓名
订单价
格字
购买的
天数 订单
图3-3订单实体属性图
(4)消息模块的实体属性图,如图
消息生
成时间
消息内容
消息标题字
消息
图3-5消息实体属性图
(5)菜单模块的实体属性图,如图
菜单名字
菜单
图3-5菜单实体属性图
(6)联系人模块的实体属性图,如图
联系人手机号
地址
联系人证
件号码
邮编
联系人
姓名
邮箱
性别
联系人
图3-6联系人实体属性图
(7)优惠券模块的实体属性图,如图
优惠券
兑换码
所属用户
邮编
领取时
间
邮箱
联系人
图3-7联系人实体属性图
3.4系统E-R图
图3-8系统整体E-R图
3.5数据库表设计
(1)tb_user用户表
用户表主要用来存储用户的登陆信息。
表3.1
tb_user用户表
字段名
注释
类型
长度
是否主键
是否不为空
uid
用户id
int
11
是
是
uname
姓名
Varchar
11
否
否
upwd
密码
Varchar
15
否
否
uemail
邮箱
Varchar
20
否
否
utel
utel
Varchar
20
否
否
ubirthday
生日
Date
20
否
否
ugender
性别
Varchar
11
否
否
code
Code
Varchar
20
否
否
uflag
状态
Int
20
否
否
(2)tb_order订单表
用户订单表,主要用来存储用户的订单。
表3.2tb_order订单表
字段名
注释
类型
长度
是否主键
是否不为空
oid
Id
Varchar
255
是
是
oflag
状态
Int
11
否
否
Pid
关联id
bigint
15
否
否
uid
用户id
bigint
20
否
否
ocreatetime
订单时间
datetime
20
否
否
rname
保人
varchar
20
否
否
rcid
保人id
bigint
11
否
否
rcardnum
证件
varchar
20
否
否
rbirthday
生日
Date
20
否
否
rgenderanameacid
acardnum
性别保人姓名证件id投保人
varcharvarcharbigint
varchar
20
20
否否否否
否否否否
atel
投保手机
varchar
11
否
否
Favoree
受益人
Varchar
255
否
否
numday
paydate
天数日期
Int
date
255
否否
否否
(3)tb_menu导航栏表
主页的导航栏。
表3.3
tb_menu导航栏表
字段名 注释
类型
长度
是否主键
是否不为空
mnid 菜单id
bigint
11
是
是
mname 菜单名字
varchar
11
否
否
(4)tb_message消息表
系统给用户发的消息。
表3.4 tb_message消息表
字段名
注释
类型
长度
是否主键
是否不为空
mid
Id消息id
bigint
11
是
是
mtitle
消息标题
varchar
255
否
否
mdetail
消息内容
varchar
255
否
否
mcreatetime
消息时间
datetime
20
否
否
ocreatetime
订单时间
datetime
20
否
否
msendid
关联id
bigint
20
否
否
(5)tb_product消息表
用于存储所有的产品。
表3.5tb_product产品表
字段名
注释
类型
长度
是否主键
是否不为空
pid
产品id
bigint
20
是
是
pname
产品名
varchar
255
否
否
pprice
价格
decimal
15
否
否
pdetail
产品描述
varchar
255
否
否
pimage
商品图片
varchar
255
否
否
coverage
保额
varchar
25
否
否
maxage
最大年龄
int
11
否
否
minage
最低年龄
int
20
否
否
ptid
产品id
bigint
20
否
否
ptrait
特点
varchar
255
否
否
(6)tb_linkman联系人表用于存储用户的联系人。
表3.6tb_linkman联系人表
字段名
注释
类型
长度
是否主键
是否不为空
lid
id
bigint
20
是
是
lgender
性别
varchar
255
否
否
lname
名字
varchar
15
否
否
lcardnum
号码
varchar
255
否
否
cid
证件id
bigint
20
否
否
address
地址
varchar
25
否
否
lpostcode
邮编
varchar
11
否
否
lemail
邮箱
Varchar
20
否
否
uid
用户id
bigint
20
否
否
birthday
生日
Date
255
否
否
(7)tb_coupons_type优惠类型
用于存储用户优惠类型。
表3.7tb_coupons_type优惠券表
字段名
注释
类型
长度
是否主键
是否不为空
cpid
优惠类型
bigint
20
是
是
Cpvalue
优惠券价值
bigint
255
否
否
cpname
优惠名字
varchar
15
否
否
cpnum
所需积分
bigint
255
否
否
cpvaliditydate
有效天数
bigint
20
否
否
condition
使用条件
decimal
25
否
否
(8)tb_integral积分型用于存储用户积分。
表3.8tb_integral积分表
字段名
注释
类型
长度
是否主键
是否不为空
iidicreatetime
uid
积分id
获取时间用户id
bigintdatetime
bigint
20
15
是否
否
是否
否
itid
积分类型
bigint
255
否
否
(9)tb_combo产品套餐
用于存储产品套餐。
表3.9 tb_combo套餐表
字段名
注释
类型
长度
是否主键
是否不为空
cbid
套餐id
bigint
20
是
是
cbname
套餐名
varchar
255
否
否
Pid
产品id
bigint
15
否
否
cbdiscount
产品折扣
double
255
否
否
(10)tb_comment评论
用于用户的评论。
表3.10tb_comment评论表
字段名
注释
类型
长度
是否主键
是否不为空
cmid
套餐id
bigint
20
是
是
cmdetail
评论内容
varchar
255
否
否
cmcreatetime
创建时间
datetime
15
否
否
uid
用户id
bigint
20
否
否
pid
产品id
bigint
20
否
否
(11)tb_card证件类型表
证件的类型。
表3.11tb_card证件类型表
字段名
注释
类型
长度
是否主键
是否不为空
cid
id
bigint
20
是
是
cname
证件名
varchar
255
否
否
(12)tb_message_rel消息接收表
消息接受表。
表
3.12
tb_message_rel消息表
字段名
注释
类型 长度
是否主键
是否不为空
iduidmid
mflag
id
接收人id
消息id
状态
bigint 20
bigint 255
bigint 15
Int 20
是否否
否
是否否
否
(13)tb_coupons优惠券表
优惠券表,用于存储所有优惠券。
表3.13tb_coupons优惠券表
字段名
注释
类型
长度
是否主键
是否不为空
csid
优惠券id
bigint
20
是
是
cpid
优惠券类型
bigint
25
否
否
createtime
领取时间
datetime
15
否
否
uid
所属用户
bigint
255
否
否
csflag
状态
int
20
否
否
cscode
优惠券兑换
Varchar
25
否
否
(14)tb_product_type产品类型用于存储所有产品的类型。
表3.14tb_product_type产品类型
字段名
ptidmnid
ptname
注释
二级菜单id一级菜单名字
类型
bigintbigint
varchar
长度
20
20
255
是否主键 是否不为空
是 是
否 否
否 否
4系统功能实现
4.1用户激活
当用户注册完成时会跳转到激活页面,只有用户在自己的邮箱里面点击激活才能正常的使用该用户。
图4-1用户激活图
主要实现代码:
if(u!
=null&&u.getCode().equals(user.getCode())){u.setUflag
(2);
u.setCode(null);
intcount=userMapper.updateUser(u);Integralintegral=newIntegral();integral.setIcreatetime(newDate());integral.setItid(2L);integral.setUid(u.getUid());integralMapper.insertIntegral(integral);returncount>0?
true:
false;
}
returnfalse;
4.2主页的设计
主页是用户不管在登陆还是未登陆都见到的第一个页面,也是网页的第一映像,作为一个商城,一定要让用于觉得简介,而且搭配合理。
运行界面如图所示。
图4-2主页面设计图
主要实现代码:
Mapmap=newHashMap<>();List>list=newArrayList<>();for(Longi=1L;i<=7L;i++){
list.add(productMapper.selectProductByMnid(i));
}
map.put("list",list);
returnmap;
4.3用户登录界面
本界面是要是用户需要购买东西的时候,如果没有登陆就会跳转到登陆界面,用户做登陆。
图4-3用户登陆界面
主要实现代码:
if(u!
=null){
/**
*用户登录成功之后,获取积分总数
*/
IntegerintegralCount=couponsService.queryIntegralCount(u.getUid());System.out.println("UserintegralCount:
"+integralCount);u.setIntegralCount(integralCount);
session.setAttribute("user",u);
if(autoLogin!
=null){
//将用户名和密码存进cookie
Cookiecookie=newCookie("uname",u.getUemail());
//有效期一周cookie.setMaxAge(7*60*24);cookie.setPath("/");
Cookiecookie2=newCookie("upwd",u.getUpwd());cookie2.setMaxAge(7*60*24);
cookie2.setPath("/");
resp.addCookie(cookie);resp.addCookie(cookie2);
}
return"redirect:
index.jsp";
}
session.setAttribute("loginmsg",1);
return"redirect:
login.jsp";
}
4.4用户注册
当一个观光者没有想进入更深层的操作,就必须有自己