随着信息科技的发展,电子商务已经存在了我们生活的每一个角落,通过网络购物可以给人们的生活带来极大的便利,人们只需通过PC或者手机下单自己所需的商品,物流就会将购买的商品送到客户的手上,这极大的方便了人们的生活,为此我们通过Spring boot框架开发了本次的电商平台网站。
本系统从用户的角度出发,结合当前的电子商务环境而开发的,在开发语言上是使用的Java语言,在框架上我们是使用的Spring boot框架,数据库方面使用的是MySQL数据库,开发工具为IDEA。
基于Spring boot的B2C电商平台根据实际情况分为前后台两部分,前台部分主要是让用户购物使用的,包括用户的注册登录,查看商品咨询,查看和搜索商品信息,根据分类定位不同类型的商品,将喜欢的商品加入购物车,对购物车内的商品进行结算生成订单,对订单进行管理,对个人注册信息进行管理等功能;后台部分主要是给电商平台的管理人员使用的,主要包括添加商品咨询信息,对商品进行分类管理,对商品进行管理方便前台用户购物使用,对用户的订单信息进行发货等操作,对用户的购物评价内容进行管理等操作。通过这些功能基本可以满足一个电商平台的需求。
SPRING BOOT是Spring + SpringMVC + MyBatis的缩写,它是Spring全家桶中的一个重要成员,Spring是一个基于Java的轻量级框架,它的主要特点就是实现了反转控制,这样在调用的时候直接调用控制层中的方法即可。SpringMVC是一个基于Spring的MVC开发框架,它将程序进行了分解,方便了开发时的协同开发,它通过不同的层来对程序进行构造,这样当多人协同的时候就还可以每个人负责一分部,从而提高了开发的效率。MyBatis是一个一款非常优秀的基于Java的持久层框架,通过MyBatis开发者可以将对应对应的SQL语句都写到对应的XML文档中,而不是再将SQL写死在程序里面,这样极大的提高了程序的二次开发效率,一旦当数据库发生变化的时候,只需要修改对应的MyBatis内容即可。
本系统是一个电子商务网站,为了能够尽量满足用户的操作习惯,我们在首页的设计的时候参考了天猫,京东等一些比较成熟的电子商务网站的布局,首先是在顶部加入用户注册登录的功能,然后是在下面加入了一个搜索栏方便用户快速的查找所需的商品,在首页部门我们还加入了图片轮播的动态效果,在首页的左侧我们对商品的类型进行了展示,这样可以方便用户快速的定位不同类型的商品。首页整体设计以减价大方为主,并且兼顾了用户的操作习惯。基于Spring boot的B2C电商平台首页部分具体效果如图
用户通过本电商平台网站的商品展示模块,首页的搜索模块,商品分类模块等都可以快速的看到商品的展示信息,在商品展示模块中我们通商品的图片+商品的名称+商品的价格三要素对商品进行了展示,这样可以让用户快速的定位和筛选出自己所需的商品,当对某个商品感兴趣的时候还通过点击商品的图片和名称来查看商品的详细内容,基于Spring boot的B2C电商平台商品信息效果如图5-4所示
当用户在购物车中对商品进行了结算之后系统会自动的生成订单信息,在订单信息中可以看到订单的编号+收货信息+商品信息等内容,并且我们根据订单的不同状态对不同状态下的订单进行了设置,用户只需点击订单的状态即可看到不同状态下的订单内容,基于Spring boot的B2C电商平台订单信息界面如图
基于Spring boot的B2C电商平台是为了方便人们购物而开发的,本系统根据实际情况分为前台和后台两部分,前台部分主要是让用户查看和购物使用的,同时用户还可以在前台对商品进行收藏和评价等操作;后台部分主要是给基于Spring boot的B2C电商平台的管理人员使用的,主要包括对商品分类信息的管理,对商品进行管理,对用户购买商品的订单信息进行管理,以及对用户的评价等内容进行管理,基于Spring boot的B2C电商平台具体功能如下图所示
基于Spring boot的B2C电商平台中的管理员需要通过登录后台才可以对系统内的商品信息和订单信息进行管理,在电商平台管理人员登录界面中我们加入了另个input控件来存储用户名+密码,当管理人员输入了这些内容并点击 [登录]按钮之后系统会判断用户名和密码是否正确,如果正确就正常登录,否则给出提示,登录失败。基于Spring boot的B2C电商平台管理员登陆界面如图
为了方便顾客查看和购买商品,基于Spring boot的B2C电商平台的管理员要可以对不同的商品进行管理,主要包括对商品的添加,修改和删除等操作,当有新的商品需要发布的时候管理人员要可以对商品进行添加,在添加界面中输入商品基本信息,并上传商品的图片之后即可完成对商品的添加工作,这里要说明的是商品类型是通过上一步的商品类型管理中的内容进行动态读取的,基于Spring boot的B2C电商平台商品管理界面如图
基于Spring boot的B2C电商平台的用户在提交了自己的订单之后,管理人员要可以对订单进行管理,并且管理人员很好的控制订单的状态,当订单是没有发货的时候在订单管理中是显示发货操作按钮的,这个情况下管理人员可以进行发货处理,当订单是已发货或者其他状态下的时候发货按钮是不显示的,通过这种方式还可以起到提醒管理人员发货的作用。此外电商平台网站的管理人员还可以查看订单的详情和删除一些过期的订单内容。基于Spring boot的B2C电商平台订单信息管理界面如图
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
目 录
1 绪 论 1
1.1 研究背景 1
1.2 研究意义 1
1.3研究内容 1
2系统开发环境 3
2.1 Java语言介绍 3
2.2 SPRING BOOT介绍 3
2.3 MySQL数据库介绍 3
2.4 IDEA介绍 4
3 需求分析 5
3.1基于Spring boot的B2C电商平台需求分析 5
3.2 可行性分析 5
3.2.1技术可行性 5
3.2.2时间可行性 5
3.2.3经济可行性 6
3.2.4社会可行性 6
4系统概要设计 7
4.1系统结构 7
4.2 数据库设计 7
5系统详细设计 13
5.1 基于Spring boot的B2C电商平台前台部分设计 13
5.1.1 系统首页 13
5.1.2用户注册登录 13
5.1.3商品信息 15
5.1.4我的购物车 17
5.1.5订单信息管理 18
5.2 基于Spring boot的B2C电商平台后台部分设计 19
5.2.1管理员登录模块的实现 19
5.2.2商品类型信息管理 20
5.2.3商品管理 21
5.2.4订单管理 22
6 系统测试 24
6.1 基于Spring boot的B2C电商平台的测试目的 24
6.2 基于Spring boot的B2C电商平台的测试方法 24
6.3 基于Spring boot的B2C电商平台测试用例 24
总结 27
致谢语 28
参考文献 29