一、项目介绍
随着互联网和生活秩序快捷发展,线上购物已成为人们日常生活中不可或缺的一部分。商品作为消费市场的基本需求之一,其在线购物平台的设计与实现对于提升购物便利性和效率具有重要意义。
本项目提出的蜗牛网上购物商城系统利用当下成熟完善的springboot框架,使用跨平台的可开发的成熟的Java语言,以及最受欢迎的的Mysql数据库进行程序开发。还重点关注了用户界面设计、数据库优化以及系统安全性等方面,以确保平台能够提供良好的用户体验和数据保护。最后,通过一系列的测试和评估,验证了系统的稳定性和可用性,并收集了用户反馈以进一步优化和升级系统。通过本研究,我们期望能够为商品市场的电子商务化提供一个有效的解决方案,满足消费者的在线购物需求,同时促进商家的销售增长。蜗牛网上购物商城系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型系统保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
关键词:商品网站;springboot框架;Mysql;自动化
二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————
三、功能介绍
本系统的主要功能分为两个大的部分。一个是面向用户的部分,还有一个是面向管理员的。
面向用户的功能主要有以下几个:
(1)用户注册:对于没有登录的用户,点击首页中的注册按钮会进入注册页面,在注册页面中输入相关信息后点击提交,再进行验证。验证通过后表示注册成功,否则表示注册失败。
(2)用户登录:在首页点击登录按钮后跳转到登录界面,输入用户名和密码进行认证,认证成功跳转到首页,认证失败则显示原因并提示重新登录。
(3)登录用户退出:
(4)进入首页:用户在输入正确的系统网址后就进入系统首页。在系统的首页中会显示出系统的名称,有商品的级别分类,会显示用户的注册和登录,如果是登录成功的用户还会显示个人中心和退出等。
(5)商品类别显示:在首页左侧会显示商品列表,商品类别的列表会以列表的形式显示出来,点击列表中的类别,可以按此类别查询商品
(6)商品查询:用户可以根据商品的分类进行查询。用户还可以搜索关键字对商品进行查询,如果没有对应的商品则会显示无相应的商品。
(7)购买商品:在商品列表页面或者是在商品的详细信息页面上都可以看到加入购物车,点击加入购物车,将该商品加入购物车中。
(8)购物车的简要信息:点击购物车后会显示购物车里面的相关信息,如:购物车中商品的个数,商品的总价格等。也可以对购物车中的商品进行管理。
(9)订单确认:已登录的用户在购物车中点击结算按钮可以对已加入购物车的商品进行付款,付款时需要填写收货人的相关信息。收货人的信息可以由用户自己修改。
面向管理员的功能只要有以下几点:
(1)管理员登录:管理员输入自己的管理员账号和密码,通过验证之后登录。
(2)菜单显示:管理员登录之后进入后台管理页面,在管理页面可以显示菜单。
(3)商品类别管理:管理员登录之后进入商品管理页面,可以在商品管理界面可以对商品进行新增、删除、修改等操作。
(4)用户管理:管理员可进入注册用户管理页面,可以查询所有注册的用户并对他们进行管理。
(5)订单管理:管理员登陆之后进入订单管理页面,在订单管理界面可以查看到所有的订单详细信息。
(6)其他功能:管理员也可以对账号密码进行修改。
当然除了以上的一些功能以外,管理员可会有一些基本的和用户相同或者类似的功能,如进入自己的个人中心,修改自己的资料等功能。
系统性能需求:系统需要满足的一些约束条件。本系统的运行一直使用的我自己的个人电脑,并未出现因为性能问题发生的任何故障,系统能够正常运行。
数据需求:在系统中进行数据的输入和输出的时候,需要对格式和结构进行限制。在系统的数据库中,所有的数据都不是单一的、独立的。每个数据之间都有相互的逻辑关系。
错处理需求:一个系统不可能永远不出错,当系统出现错误时,我们都希望系统可以对发生的错误做出相应的反应。
将来可能提出的需求:一个系统不可能是永远不变的,我们在设计的时候就要考虑到他以后的扩展情况,以及以后对系统的一切的维护和升级。
四、核心代码
部分代码:
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result<Caiwu> detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List<Caiwu>> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
五、效果图
六、文章目录
目 录
摘 要 I
目 录 1
1 绪论 3
1.1 选题背景 3
1.2 研究意义 3
1.3国内外研究现状 4
1.4研究目标 5
1.5研究内容 5
1.6创新点 6
2 相关技术 7
2.1 springboot框架介绍 7
2.2 B/S结构介绍 7
2.3 Mysql数据库介绍 7
2.4技术路线 8
3 系统分析 10
3.1 系统可行性分析 10
3.1.1 技术可行性分析 10
3.1.2 经济可行性分析 10
3.1.3 运行可行性分析 10
3.2系统需求分析 11
4 系统设计 14
4.1 系统概要设计 14
4.2 系统功能结构设计 14
4.3系统流程设计 15
4.3.1 操作流程分析 15
4.3.2 登录流程分析 16
4.3.3 信息添加流程分析 17
4.3.4 信息删除流程分析 18
4.4 数据库设计 18
4.4.1 数据库E-R图设计 18
4.4.2 数据库表结构设计 22
5 系统实现 26
5.1用户信息管理 26
5.2 商品分类管理 26
5.3品牌信息管理 27
5.4商品咨询管理 28
5.5热销商品管理 28
5.6留言板管理 29
5.7订单管理 29
5.8地址页面 30
5.9购物车页面 31
5.10用户收藏页面 31
6 系统测试 33
6.1系统测试的特点 33
6.2系统功能测试 33
6.3 测试结果分析 34
结 论 35
参考文献 36
致 谢 37