网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
二、系统详细设计与实现
(一)系统详细设计
保险业务管理系统设计共有3个数据字典,分别为:用户信息表(user_list),反馈评价信息表(product_list),软件信息表(order_list)。三个表底下分别有着不同的结构。
在普通用户的角度看起来,数据的逻辑关系模型就是一张简单的二维表,每一个表里面都保存着保险企业中涉及总体的业务的逻辑。该管理系统涉及到的主要实体及其属性如下:
1.数据库结构设计
用户信息表:user_list(主键、帐号、密码、姓名、性别、年龄、电话、地址、类型)
反馈评价信息表:product_list(主键、产品名称、产品内容、产品费用、发布时间)
软件信息表:order_list(主键、订单名称、订单金额、下单时间、下单人、下单人ID、订单状态、产品ID)
2.数据字典
数据字典是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。这个过程称为数据建模,结果产生一个对象关系图。当每个数据对象和项目都给出了一个描述性的名字之后,它的关系再进行描述(或者是成为潜在描述关系的结构中的一部分),然后再描述数据的类型(例如文本还是图像,或者是二进制数值),列出所有可能预先定义的数值,以及提供简单的文字性描述。
保险业务管理系统设计共有3个数据字典,分别为:
表 1 user_list表
属性名 存储代码 数据类型 长度 备注
主键 user_id int 11 主键,唯一性
用户名 username varchar 45
密码 password varchar 45
姓名 name varchar 45
性别 sex varchar 45
年龄 age varchar 45
电话 phone varchar 45
地址 address varchar 45
类型 type varchar 45
用户信息表主要包括用户的个人信息,其中包含用户名(username),密码(password),姓名(name),性别(sex),年龄(age),电话(phone),地址(address)和类型(type)几大部分。
表 2 product_list表
属性名 存储代码 数据类型 长度 备注
主键 product_id int 11 主键,唯一性
产品名称 product_name varchar 100
产品内容 product_desc varchar 2000
产品费用 product_cost varchar 45
发布时间 product_time varchar 45
反馈评价信息表包含了险种的详细描述信息,主要是保险单号。其中产品名称(product_name),产品内容(product_desc),产品费用(product_cost),发布时间(product_time)。主要是用来反馈产品的信息。这个表里包含的是所有的保险业务的信息,是用来保存保险产品的。里面所含的各项信息是保险产品的各个内容。
表 3 order_list表
属性名 存储代码 数据类型 长度 备注
主键 order_id int 11 主键,唯一性
订单名称 order_name varchar 100
订单金额 order_cost varchar 45
下单时间 order_time varchar 45
下单人 order_uname varchar 45
下单人ID order_uid varchar 45
订单状态 order_state varchar 45
产品ID product_id varchar 45
软件信息表主要是包括用户的订单信息,其中包含了订单名称(order_name),订单金额(order_cost),下单时间(order_time),下单人(order_uname),下单人ID(order_uid),订单状态(order_state),产品ID(product_id)。这些信息都是和用户有着紧要关系的。用户下了订单之后的状态都是显示在这个表里。这个表示整个系统的核心,所有的业务实现基本都在这个表里面,所以这个表很重要。
(二)模块实现
1.登录模块
所有用户输入帐号、密码后,即可凭正确的信息登录系统。如图5-1所示
5-1 登陆界面
如通过管理员账号进入管理员界面,如图5-2所示
5-2 管理员界面
由用户账号登录进入用户界面,如图5-3所示
5-3用户界面
不同身份,功能的权限也不同。
登录所需代码:
public String login(){
UserList ul = userListService.login(userlist.getUsername(), userlist.getPassword(), “”);
if (ul.getUser_id() != 0) {
session.put(“login”, ul);
return SUCCESS;
}else{
response.setContentType(“text/html;charset=UTF-8”);
response.setCharacterEncoding(“UTF-8”);//防止弹出的信息出现乱码
try {
PrintWriter out = response.getWriter();
out.print(“”);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
2.保险信息模块
管理员登录进去所显示的界面,如图5-4所示
5-4管理员界面
管理员可以在保险信息管理中查询、新增或者删除保险产品信息。如图5-5所示
5-5 增加保险界面
客户可以在保险列表中查看所有保险产品。如图5-6所示
5-6 用户查看保险信息
客户选择需要购买的保险后,加入订单信息中,用户可以在订单中确认或取消订单。如图5-7所示
5-7 用户个人订单列表
public List<ProductList> selProductList() {
Session session = sessionFactory.openSession();
String sql="select * from product_list";
Transaction tran = session.beginTransaction();
SQLQuery sq = session.createSQLQuery(sql);
List<Object[]> list = sq.list();
List<ProductList> plist = new ArrayList<ProductList>();
for(Object[] obj : list){
ProductList pl = new ProductList();
pl.setProduct_id((Integer)obj[0]);
pl.setProduct_name((String)obj[1]);
pl.setProduct_desc((String)obj[2]);
pl.setProduct_cost((String)obj[3]);
pl.setProduct_time((String)obj[4]);
plist.add(pl);
}
tran.commit();
session.close();
return plist;
}
}
3.赔偿模块
客户确认购买保险后,可以申请赔偿。如图5-8所示
5-8 个人用户赔偿列表
管理员可以根据实际情况同意或者否决用户的赔偿申请,如图5-9所示。
5-9管理员赔偿管理列表
public List selOrderList(String uid, String state) {
Session session = sessionFactory.openSession();
String sql=“select * from order_list where order_uid = '”+uid+“’ and order_state in (”+state+“)”;
Transaction tran = session.beginTransaction();
SQLQuery sq = session.createSQLQuery(sql);
List<Object[]> list = sq.list();
List olist = new ArrayList();
for(Object[] obj : list){
OrderList ol = new OrderList();
ol.setOrder_id((Integer)obj[0]);
ol.setOrder_name((String)obj[1]);
ol.setOrder_cost((String)obj[2]);
ol.setOrder_time((String)obj[3]);
ol.setOrder_uname((String)obj[4]);
ol.setOrder_uid((String)obj[5]);
ol.setOrder_state((String)obj[6]);
ol.setProduct_id((String)obj[7]);
olist.add(ol);
}
tran.commit();
session.close();
return olist;
}
public String selCompensateListByMe(){
UserList ul = (UserList)session.get(“login”);
List clist = orderListService.selOrderList(String.valueOf(ul.getUser_id()), “‘1’,‘2’,‘n’,‘9’”);
session.put(“clist”, clist);
return SUCCESS;
}
4.用户信息模块
管理员登录管理员账号后,用户管理界面,如图5-10所示。
5-10管理员用户管理界面
管理员可以修改用户的个人信息,如图5-11所示
5-11管理员修改用户信息界面
客户可以在个人信息管理中修改自己的信息,如图5-12所示
5-12客户修改个人信息界面
增加更新用户
public UserList selUser(String uid) {
Session session = sessionFactory.openSession();
String sql=“select * from user_list where user_id = '”+uid+“'”;
Transaction tran = session.beginTransaction();
SQLQuery sq = session.createSQLQuery(sql);
List<Object[]> list = sq.list();
UserList ul = new UserList();
for(Object[] obj : list){
ul.setUser_id((Integer)obj[0]);
ul.setUsername((String)obj[1]);
ul.setPassword((String)obj[2]);
ul.setName((String)obj[3]);
ul.setSex((String)obj[4]);
ul.setAge((String)obj[5]);
ul.setPhone((String)obj[6]);
ul.setAddress((String)obj[7]);
ul.setType((String)obj[8]);
}
tran.commit();
session.close();
return ul;
}
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!