ssm基于JavaEE的电脑销售管理系统设计与实现毕业设计源码021143
在信息飞速发展的今天,网络已成为人们重要的信息交流平台。门店每天都有大量的电脑信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的电脑销售管理系统。
Keywords:Computer sales management system; MySQL目 录
1.1 课题研究背景
1.2 课题研究意义
1.3系统开发技术的特色
2 电脑销售管理系统分析
2.1可行性分析
2.1.1技术可行性分析
2.1.2经济可行性分析
2.1.3操作可行性分析
2.2需求分析
2.3用例分析
3电脑销售管理系统总体设计
3.1系统功能模块设计
3.3数据库设计
3.3.1 数据库E-R模型
3.3.2 数据库表设计
4 电脑销售管理系统实现
4.1 用户端
4.1.1 用户注册界面
4.1.2 用户登录界面
4.1.3 搜索房源界面
4.1.4 论坛界面
4.1.5 商品详情界面
4.1.6我的购物车界面
4.1.7电脑推荐房界面
4.2 后台端
4.2.1 管理员登录界面
4.2.2 用户管理界面
4.2.3 站点管理界面
4.2.4 内容管理管理界面
4.2.5商城管理界面
4.2.6更多管理界面
5 电脑销售管理系统测试
5.1系统测试
5.2测试结果
总结与展望
参考文献
致谢
(1)方便快捷。网上购物可全天24小时营业,人们不需要奔赴到商店就可进行购物,购买的商品也可以直接送达到家。这样就使得消费者即使足不出户,也能买到来自世界各地得喜爱商品。
(2)信息量大。相比于传统的购物的方式,电子商务所能容纳的信息量非常大,既包括现实产品也包括虚拟产品。另外,还可以提供一些比较特殊的产品,既能保护消费者的个人隐私,又能满足消费者不同的心理需求。
(3)私密性强。消费者有时候在购买一些不愿意让别人知道的商品时,利用网上购物,卖家和快递物流都可以保护好用户的隐私,这样就可以避免一些不必要的麻烦。
(2)电脑销售管理系统中的web后台管理中的前端使用的是bootstrap[7]框架,它配合ajax[8]和jquery[9]可以美化页面设计。
(3)电脑销售管理系统中数据库用的mysql5.7[10],它执行效率高。
SSM框架
SSM即SpringMVVM+Spring+MySQL,这三个框架有各自最独有的优势,那么将它们组合在一起能够碰撞出很强的火花。设计者在不需消耗大量功夫,能做出Web应用程序,而且这个程序还具有层次清晰、升级更新操作不影响正常使用的、允许多次使用的特点。这个复合框架形成一个有着结构完整、功能强大和结构良好的体系:SpringMVVM使各板块分离,Spring使开发更灵活方便,让开发者直接对对象进行操纵,各层次分工明细,并实现各个层次间的解耦,让代码更加的灵活精简。这个框架使程序员能够规避在开发时期避免个别错误导致整体被破坏,也能在后期应对客户对产品提出的新需求。
ssm框架各层关系:
DAO层、Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势。
Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。
2.1可行性分析
此次项目设计参考了几个该模式下网站的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。
2.2需求分析
电脑销售管理系统中的web后台管理端采用了IntelliJ IDEA 2019.3.4 开发工具,配合了java开发语言中SSM开发框架以及tomcat8.0服务器[14]、jdk1.8,微信端采用了微信开发者工具稳定版1.05.2111300,页面使用wxss和wxml进行布局[15],微信端和web后台管理端采用json接口通信。
用户管理模块:
(1)用户注册登录:用户注册为会员并登录电脑销售管理系统;用户对个人信息的增删改查,比如个人资料,密码修改。
(2)用户查看商品:用户进行商品信息的阅览,通过发现喜欢的商品后可以购买+评论+收藏。
(3)电脑资讯:用户进行资讯的阅览,查看管理者发布的电脑资讯信息。
(4)论坛:用户在论坛这一菜单下对用户提交的查看、同时也可以发布、评论。
(5)商品购买:用户对喜欢的商品可以加购,在购物车里面,当用户确定提交完毕后,将其提交给服务器后台系统,并生成订单。
(6)我的订单:用户在提交订单后,可以对提交的订单进行管理。
管理员管理模块:
(1)用户管理:管理员可以对前台上注册过的用户信息进行管控,也可以对管理员信息进行管控。
(2)电脑资讯管理:管理员在后台可以对电脑销售管理系统中显示的电脑资讯信息进行增删改查。
(3)论坛列表管理:管理员可以对电脑销售管理系统中用户提交的留言以及留言的分类进行增删改查。
(4)分类管理:管理员对电脑销售管理系统中商品的分类进行管控。
(5)商城管理:管理员对卖家提交的商品订单进行管控。
(6)系统管理:管理员可以对电脑销售管理系统中首页显示的轮播图以及系统中的一些公告发布到系统当中,让用户及时的查看到系统信息,进行合理安排。
2.3用例分析
电脑销售管理系统的完整UML用例图分别是图2-1,图2-2河图2-3。在参与者上包括用户、发布者以及管理员。
用户角色的用例包括登录注册、首页、论坛、公告消息、电脑资讯、购物车、电脑推荐、我的。
图2-1 电脑销售管理系统用户角色用例图
管理员角色的用例包括轮播图、公告栏、用户管理、论坛列表、论坛分类列表、电脑资讯、电脑资讯分类、电脑商城、分类列表、订单列表、电脑推荐。
图2-3 电脑销售管理系统管理员角色用例图
3电脑销售管理系统总体设计
在上一章节中分析了电脑销售管理系统的功能性需求,并且根据需求分析了电脑销售管理系统中的用例。那么接下来就要开始对电脑销售管理系统架构、主要功能和数据库开始进行设计。
3.1系统功能模块设计
通过对电脑销售管理系统的功能需求分析以及用例分析,得出了电脑销售管理系统的功能模块图如图3-1所示。
图3-1电脑销售管理系统功能模块图
下面是整个电脑销售管理系统的数据库表的E-R实体关系图,如图3-2所示:
3.3.2 数据库表设计
通过前面E-R关系图一共需要创建很多个数据表。在此罗列这7个主要数据库表的关系模型如下:
user_registration表:
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
user_registration_id |
int |
11 |
是 |
是 |
用户注册ID |
gender |
varchar |
64 |
否 |
否 |
性别 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
user_id |
int |
11 |
是 |
否 |
用户ID |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
computer_recommendation表 |
|||||
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
computer_recommendation_id |
int |
11 |
是 |
是 |
电脑推荐ID |
recommendation_number |
varchar |
64 |
否 |
否 |
推荐编号 |
computer_type |
varchar |
64 |
否 |
否 |
电脑类型 |
computer_brand |
varchar |
64 |
否 |
否 |
电脑品牌 |
computer_model |
varchar |
64 |
否 |
否 |
电脑型号 |
computer_pictures |
varchar |
255 |
否 |
否 |
电脑图片 |
recommendation_index |
varchar |
64 |
否 |
否 |
推荐指数 |
introduction_to_computer |
text |
0 |
否 |
否 |
电脑简介 |
hits |
int |
11 |
是 |
否 |
点击数 |
praise_len |
int |
11 |
是 |
否 |
点赞数 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
computer_mall表: |
|||||
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
computer_mall_id |
int |
11 |
是 |
是 |
电脑商城ID |
remarks |
text |
0 |
否 |
否 |
备注 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
cart_title |
varchar |
125 |
否 |
否 |
标题签中 |
cart_img |
text |
0 |
否 |
否 |
封面图 |
cart_description |
varchar |
255 |
否 |
否 |
描述 |
cart_price_ago |
double |
8 |
是 |
否 |
原价 |
cart_price |
double |
8 |
是 |
否 |
卖价 |
cart_inventory |
int |
11 |
是 |
否 |
商品库存 |
cart_type |
varchar |
64 |
是 |
否 |
商品分类 |
cart_content |
longtext |
0 |
否 |
否 |
正文 |
cart_img_1 |
text |
0 |
否 |
否 |
主图1 |
cart_img_2 |
text |
0 |
否 |
否 |
主图2 |
cart_img_3 |
text |
0 |
否 |
否 |
主图3 |
cart_img_4 |
text |
0 |
否 |
否 |
主图4 |
cart_img_5 |
text |
0 |
否 |
否 |
主图5 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
Type表; |
|||||
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
type_id |
smallint |
5 |
是 |
是 |
分类ID |
name |
varchar |
16 |
是 |
否 |
分类名称 |
description |
varchar |
255 |
否 |
否 |
描述 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
father_id |
smallint |
5 |
是 |
否 |
上级分类ID |
icon |
varchar |
255 |
否 |
否 |
分类图标 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
Order表: |
|||||
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
order_id |
int |
11 |
是 |
是 |
订单ID |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
goods_id |
mediumint |
8 |
是 |
否 |
商品id |
title |
varchar |
32 |
否 |
否 |
商品标题: |
img |
varchar |
255 |
否 |
否 |
商品图片 |
price |
double |
10 |
是 |
否 |
价格 |
price_ago |
double |
10 |
是 |
否 |
原价 |
num |
int |
8 |
是 |
否 |
数量 |
price_count |
double |
8 |
是 |
否 |
总价 |
norms |
varchar |
255 |
否 |
否 |
规格 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
contact_name |
varchar |
32 |
否 |
否 |
联系人姓名 |
contact_email |
varchar |
125 |
否 |
否 |
联系人邮箱 |
contact_phone |
varchar |
11 |
否 |
否 |
联系人手机 |
contact_address |
varchar |
255 |
否 |
否 |
收件地址 |
postal_code |
varchar |
9 |
否 |
否 |
邮政编码 |
user_id |
int |
10 |
是 |
否 |
买家ID |
merchant_id |
mediumint |
8 |
是 |
否 |
商家ID |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
description |
varchar |
255 |
否 |
否 |
描述 |
state |
varchar |
16 |
是 |
否 |
订单状态 |
Forum表: |
|||||
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
forum_id |
mediumint |
8 |
是 |
是 |
论坛id |
display |
smallint |
5 |
是 |
否 |
排序 |
user_id |
mediumint |
8 |
是 |
否 |
用户ID |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
praise_len |
int |
10 |
否 |
否 |
点赞数 |
hits |
int |
10 |
是 |
否 |
访问数 |
title |
varchar |
125 |
是 |
否 |
标题 |
keywords |
varchar |
125 |
否 |
否 |
关键词 |
description |
varchar |
255 |
否 |
否 |
描述 |
url |
varchar |
255 |
否 |
否 |
来源地址 |
tag |
varchar |
255 |
否 |
否 |
标签 |
img |
text |
0 |
否 |
否 |
封面图 |
content |
longtext |
0 |
否 |
否 |
正文 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
avatar |
varchar |
255 |
否 |
否 |
发帖人头像 |
type |
varchar |
64 |
是 |
否 |
论坛分类 |
4 电脑销售管理系统实现
电脑销售管理系统的详细设计与实现主要是根据前面的电脑销售管理系统的需求分析和电脑销售管理系统的总体设计来设计页面并实现业务逻辑。主要从电脑销售管理系统界面实现、业务逻辑实现这两部分进行介绍。
4.1 用户端
4.1.1 用户注册界面
不是电脑销售管理系统的会员可以通过用户进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了用户注册和发布者注册两部分,其用户注册界面展示如下图4-1所示。
图4-1用户注册界面图
用户注册关键代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
4.1.2 用户登录界面
用户注册后的会员可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。
图4-2用户登录界面图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。
图4-3首页界面图
首页逻辑代码如下所示。
package com.project.demo.constant;
/**
*/
public class FindConfig {
public static String PAGE = "page";
public static String SIZE = "size";
public static String LIKE = "like";
public static String ORDER_BY = "orderby";
public static String FIELD = "field";
public static String GROUP_BY = "groupby";
public static String MIN_ = "_min";
public static String MAX_ = "_max";
}
4.1.3论坛界面
用户在点击导航栏上面的论坛后,就可以搜索查看留言信息,用户根据自己的喜好可以进行交流,论坛界面如下图4-4所示。
图4-4论坛界面图
4.1.4收货地址界面
当用户点击“收货地址”右后,就回去显示出目前现有的地址,也可以添加新的地址,界面如下图4-5所示。
图4-5收货地址界面图
4.1.5商品详情界面
当访客点击了任意商品后将会进入该款商品的详情界面,可以了解到该商品的图片信息、商品信息、价钱信息等,同时可以对该商品进行加购+立即购买+收藏+点赞+评论,商品详情展示页面如图4-6所示。
图4-6商品详情界面图
4.1.6我的购物车界面
当用户点击“我的购物车”链接后就进入自己购买的收入购物车的界面展示,界面如下图4-7所示。
图4-7购物车界面图
4.1.7电脑推荐房界面
用户在“电脑”界面选择自己提交的电脑信息,可以点击“电脑消息”,然后输入电脑信息进行提交后,在电脑界面就可以查看到自己提交的电脑信息了,可以进行支付操作,界面如下图4-8所示。
图4-8电脑推荐界面图
电脑推荐关键代码如下所示。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
4.2 后台端
4.2.1 管理员登录界面
管理员可以从浏览器上输入后台登录的网址后输入自己的用户名,密码图片验证后点击“登录”按钮后将会验证是否有非空数据,其次再验证是否和数据库中保存的一致,都验证成功后将登录成功,管理员登录界面如下图4-9所示。
图4-9管理员登录界面图
4.2.2用户管理界面
电脑销售管理系统中的管理人员是可以对前台注册的用户进行管理的,也可以对管理员进行管控。界面如下图4-10所示。
图4-10用户管理界面图
用户管理关键代码如下所示。
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
4.2.3站点管理界面
电脑销售管理系统中的管理人员在“站点管理”这一菜单中是可以对前台显示的轮播图以及公告栏进行管控。界面如下图4-11所示。
图4-11站点管理界面图
站点管理关键代码如下所示。
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
4.2.4内容管理管理界面
电脑销售管理系统中的管理人员在“内容管理”这一菜单中是可以对电脑销售管理系统内的论坛列表、论坛分类列表、电脑资讯、电脑资讯分类进行维护和管理的,界面如下图4-12所示。
图4-12内容管理界面图
内容管理关键代码如下:
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
}
4.2.5商城管理界面
电脑销售管理系统管理系统中的管理人员在“商城管理”这一菜单下是可以对电脑销售管理系统管理系统内的电脑商城、分类列表、订单列表进行管控的,其管理界面如下图4-13所示。
图4-13商城管理界面图
商城管理关键代码如下所示。
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
4.2.6更多管理界面
电脑销售管理系统中的管理人员在“更多管理”这一菜单下是可以对电脑销售管理系统内的电脑推荐进行管控的,其管理界面如下图4-14所示。
图4-14更多管理界面图
更多管理关键代码如下所示。
public Map<String, Object> success(Object o) {
Map<String, Object> map = new HashMap<>();
if (o == null) {
map.put("result", null);
return map;
}
if (o instanceof List) {
if (((List) o).size() == 1) {
o = ((List) o).get(0);
map.put("result", o);
}else {
String jsonString = JSONObject.toJSONString(o);
JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
map.put("result", objects);
}
} else if (o instanceof Integer || o instanceof String) {
map.put("result", o);
} else {
String jsonString = JSONObject.toJSONString(o);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JSONObject j = service.covertObject(jsonObject);
map.put("result", j);
}
return map;
}
5 电脑销售管理系统测试
系统测试的目的
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、商品展示功能测试、商品添加、商品搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
用户登录功能测试:
表5-1 用户登录功能测试表
用例名称 |
用户登录系统 |
目的 |
测试用户通过正确的用户名和密码可否登录功能 |
前提 |
未登录的情况下 |
测试流程 |
1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 |
用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 |
实际结果与预期结果一致 |
商品查看功能测试:
表5-2 商品查看功能测试表
用例名称 |
商品查看 |
目的 |
测试商品查看功能 |
前提 |
用户登录 |
测试流程 |
点击商品列表 |
预期结果 |
可以查看到所有商品信息 |
实际结果 |
实际结果与预期结果一致 |
管理员添加商品界面测试:
表5-3 管理员添加商品界面测试表
用例名称 |
商品发布测试用例 |
目的 |
测试商品发布功能 |
前提 |
卖家用户正常登录情况下 |
测试流程 |
1)卖家点击商品信息管理就,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 |
提交以后,页面首页会显示新的商品信息 |
实际结果 |
实际结果与预期结果一致 |
商品搜索功能测试:
表5-4商品搜索功能测试表
用例名称 |
商品搜索测试 |
目的 |
测试商品搜索功能 |
前提 |
无 |
测试流程 |
1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 |
页面显示包含有搜索关键字的商品 |
实际结果 |
实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 |
密码修改测试用例 |
目的 |
测试管理员密码修改功能 |
前提 |
管理员用户正常登录情况下 |
测试流程 |
1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 |
使用新的密码可以登录 |
实际结果 |
实际结果与预期结果一致 |
5.3 系统测试结果
通过编写电脑销售管理系统的测试用例,已经检测完毕用户登录模块、商品查看模块、商品添加模块、商品搜索模块、密码修改功能测试,通过这5大模块为电脑销售管理系统的后期推广运营提供了强力的技术支撑。
总结与展望
[2]王月红,蒋冀萍.基于Java的煤矿风险预警与防控系统设计[J].煤炭技术,2022,41(03):173-175.
[3]黄子扬,祝奕炜,沈信宇,慕京生,焦俊.基于SSM的水质在线监测与数据分析[J].现代农业科技,2022(05):129-135.
[4]朱珍珠,段华斌,邓永清,杜丹蕾.基于Java的增值平台的设计与实现[J].办公自动化,2022,27(05):55-58.
[5]魏瑾.Java多线程技术在网络通信系统中的应用[J].山西电子技术,2022(01):66-68.
[6]李双,郭晨晨,李佳虎,张慧娥.基于SSM框架的智能驾校系统的设计与开发[J].电脑知识与技术,2022,18(03):62-63+65.
[7]郭静.基于SSM框架的高校新生预报到系统的设计与实现[J].电子技术与软件工程,2022(02):232-235.
[8]张烈超,胡迎九.典型Java Web开发框架模型的研究[J].武汉交通职业学院学报,2021,23(04):122-127.
[9]徐旭,李明明,夏辉,陈曦,王天宇,肖硕,雍旭.基于SSM框架的互联网+多元监管下构建医疗设备质量控制管理服务平台研究[J].中国医学装备,2021,18(12):106-110.
[11]王晨. 基于JAVA的教室查询系统研究[C]//.第三十五届中国(天津)2021’IT、网络、信息技术、电子、仪器仪表创新学术会议论文集.,2021:16-19.
[12]田青海. 面向Java应用的性能监控系统的设计与实现[D].浙江大学,2021.
[13]丁明月. 基于SSM的化工技术电子商务平台的研究与实现[D].淮阴工学院,2021.
[14]王冯涛. 基于SSM的地铁站智慧管理系统的设计与实现[D].北京交通大学,2021.
[17]陈志忠. 带图形网页界面的电脑显示屏交互界面(销售管理)[P]. 广东省:CN305356398S,2019-09-20.
[18]王栋,方翔,吴鹰,俞向平,李东森,祁霖,李斌. 用于电脑的销售管理可视化系统界面[P]. 北京市:CN305216794S,2019-06-14.
[19]陈烁,张来卿,庞严冬. 带有药店管理系统用户界面的电脑(销售报表)[P]. 广东省:CN305130018S,2019-04-26.
[20]张锋. 带图形用户界面的电脑(商品销售管理系统)[P]. 广东省:CN305098344S,2019-04-05.
[21]孔丽.电脑销售与汽车销售的成本控制管理[J].中外企业家,2014(35):72.
[22]张彦青.基于VB技术的电脑销售管理系统设计与开发[J].电脑知识与技术,2008(03):472-474+477.
[23]张波. 亚思晟科技向贫困生免费提供JAVA培训[N]. 大众科技报,2007-06-05(A07).DOI:10.28215/n.cnki.ndzkj.2007.001547.
至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。
此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!
免费领取本源代码,请关注点赞+私信
ssm基于JavaEE的电脑销售管理系统设计与实现毕业设计源码021143相关推荐
- ssm基于JavaEE的电脑销售管理系统设计与实现毕业设计源码
摘要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台.门店每天都有大量的电脑信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的电脑销售管理系统. 该系统以SSM技术. ...
- (附源码)ssm基于JavaEE的电脑销售管理系统设计与实现 毕业设计021143
摘要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台.门店每天都有大量的电脑信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的电脑销售管理系统. 该系统以SSM技术. ...
- ssm基于JavaEE的电脑销售管理系统设计与实现 毕业设计-附源码021143
摘要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台.门店每天都有大量的电脑信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的电脑销售管理系统. 该系统以SSM技术. ...
- 基于JavaWeb的汽车销售管理系统设计与实现 项目源码及数据库文件+论文
项目介绍: 基于JavaWeb的汽车销售管理系统设计与实现 项目源码及数据库文件+论文 系统说明: 摘 要 在当今这个新经济时代,企业面临着新的竞争模式和消费结构,为了维持企业的盈利能力,企业必须去 ...
- SSM基于区块链的物联网数据交易 计算机毕业设计源码46193
摘 要 物联网技术作为继互联网技术后新一代的通信信息集成应用的典范,其巨大的应用前景受到了学术界和政商界的广泛关注.物联网技术在一些传统行业已经有了很深入的应用,例如,其在商品生产信息溯源.环境监测 ...
- ssm基于小程序的医院预约挂号系统毕业设计源码260839
SSM医院预约挂号小程序的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以 ...
- ssm基于SSM的南昌旅游网站管理系统设计与实现 毕业设计源码101407
南昌旅游网站管理系统 摘要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 南昌旅游网站管理系统设计,主要的模块包括查看首页.公告内容(轮播 ...
- 基于SSM的南昌旅游网站管理系统设计与实现 毕业设计源码101407
南昌旅游网站管理系统 摘要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 南昌旅游网站管理系统设计,主要的模块包括查看首页.公告内容(轮播 ...
- ssm基于Java web 的人人影视网站管理系统毕业设计源码290915
目 录 摘 要 Abstract 第1章 前 言 1.1 研究背景 1.2 研究现状 1.3 系统开发目标 第2章 技术与原理 2.1 开发技术 2.2 JAVA技术 2.3 M ...
最新文章
- 设计RPC接口时,你有考虑过这些吗?
- 机器学习中的MLE、MAP和贝叶斯估计
- PHP 分布式集群中session共享问题以及session有效期的设置
- Android Studio1.4.x JNI开发基础 - 简单实例
- SQL Server 2000优化SELECT语句方法
- 埃斯顿三轴机器人编程_一文了解Estun Studio机器人仿真与离线编程软件
- svn server 搭建
- python二元函数拟合_Python拟合二元一次函数
- java毕业设计幼儿园管理系统Mybatis+系统+数据库+调试部署
- 得物(毒)app测试开发工程师面经
- vnc远程控制软件,五款良心推荐的vnc远程控制软件
- 辐射光电流测试软件,资深工程师告诉你如何使用示波器测试EMI辐射干扰
- 网卡基本配置2(主机名修改、网卡绑定)
- android js 双指事件,移动端touch事件--点击、双指与拖拽
- 改变人生的100句箴言
- 【巨杉数据库SequoiaDB】影像平台分布式最佳实践 内容管理平台分布式实践
- 从零开始的Android:Android应用程序开发概述
- Idea搭建VUE+elementUi前端项目
- Java 输入一个正整数的字符串,输出与它最接近的对称数字(不包括它自己)的字符串
- Java、JSP网上音像管理销售系统毕业设计