基于SpringBoot+MybatisPlus+Vue+MySQL的体育用品商城设计

发布于:2022-12-15 ⋅ 阅读:(477) ⋅ 点赞:(0)

目录
1.项目简介 1
1.1背景分析 1
1.2功能概述 2
2.需求分析 4
前台页面的功能主要包括: 4
后台管理页面的功能主要包括: 5
3.数据库分析与设计 6
3.1 数据库需求分析 6
3.2 数据库逻辑结构设计 6
3.3 数据库概念结构设计 9
4.项目实现 10
5.项目开发 11
5.1首页功能 11
5.2JWT工具类 13
5.3实体映射工具类 15
5.4后台功能开发 16
6.项目展示 17
普通用户 18
管理员 22

1.项目简介
1.1背景分析
如今我们生活在一个互联网时代,随着智能手机与网络技术的日益发达,电子商务空前发展,许多商品的销售也逐渐从有形的市场转向虚拟的网络,为了满足人们购买体育用品的需求,网上体育商城应运而生,目的是在体育商城与消费者之间建立一座高速、便捷的网上信息桥梁,从而可以节省用户的时间、方便他们购买,使其永远走在时代的前沿。
本系统的设计严格遵循软件开发流程,使用MVC模式,采用开源框架SpringBoot+MybatisPlus+Vue进行开发,使用java语言编写,后端的数据库采用MySQL,Jpa自动创表,通过Spring配置文件与数据库进行无缝连接,应用可以跨平台的Web应用技术与Spring boot结合开发的网上购物系统—网上体育商城,通过使用这些框架,使开发过程中的逻辑更加清晰,更有层次,也简化了代码的书写,更好的了解了Web应用程序和这些开源的框架技术,熟练了使用框架开发的流程。
该体育商城网站的前台页面非常简单明了,当用户第一次访问该商城时,可以清晰的看到商城中的新款商品与销量排行,可以非常方便的挑选到自己需要的商品,后台的管理也很方便,管理员可以对商品、订单等进行管理,所以该网上体育商城的创建可以更好地解决人们因没有时间到实体店而不能买到自己需要的体育用品的问题,商家使用该系统,也可以方便管理,提高工作效率。
1.2功能概述
根据对该网上体育商城的功能进行分析,为了满足用户的需求,该系统应该满足以下功能,接下来从前台的客户端界面和后台管理界面分别对该系统的功能加以描述。
前台页面的功能主要包括:
1.体育商品分类:当用户第一次访问该商城时,可以按照商品分类快速查找到自己所需商品是属于哪一类型。
2.所售商品描述:当用户看到某一商品时,可以很快看到这件商品的详细介绍。
3.商品销量排行:在该商城的客户端界面,用户可以清晰的看到该商城畅销的前五件商品。
4.商品的搜索栏:当用户不想逐一类别的查找自己需要的商品时,可以在搜索栏进行查找,该搜索栏必须支持模糊查询,用户只输入关键字,就可以快速查找到自己需要的。
5.会员留言:该功能是用来专门给用户提供反馈意见的机会,用户对在该商城买的商品有某些意见,可以进行留言,或者对该商城有某些建设性的建议,也可以进行留言,总之,就是为用户提供一个与商家交流的窗口。
6.会员的注册登录:该功能是一个购物网站不可缺少的主要功能,用户只有注册登录成功后,才可以进行后续的一系列操作,不然就只能浏览商品,不能进行购买。
7.购物车:该功能也是一个购物网站必须的功能,用户不可能看中一件商品就去付一次款,这样对商家和用户都不是很方便,用户可以先将看中的商品加入购物车中,等挑选结束后,再进行统一付款。
8.查看订单:该功能主要是方便用户查看自己的订单,当用户下一次单时,商家可以受理此订单并进行发货,用户收到货后,可以确认收货并评价商品。
9.查看个人信息:当用户在该商城进行注册时,需要填写自己的个人信息,如姓名、性别、地址、邮箱、电话、QQ等信息,注册成功后,该商城会把每一位注册成功的用户信息保存下来,用户登录成功后,可以查看并修改个人信息。
10.联系我们:该功能主要是给用户提供商家的联系方式,当用户有某些需求时,可以直接跟商家电话联系。
11.网站公告:该功能主要是方便商家对顾客发布一些公告,如商城搞活动或有新商品上架等。
12.后台登录:在前台页面的下方提供一个管理员登录后台的按钮,管理员点击该按钮,可以进入后台登录界面,方便管理员进行管理。
后台管理页面的功能主要包括:
1.系统参数:该功能可以使管理员看到该商城系统的版本号和作者及作者的邮箱,有需要改进的地方可以直接和作者联系。
2.管理员维护:该功能可以让管理员对自己的密码进行修改。
3.注册会员的管理:管理员可以对前台已经注册的一些会员用户进行管理,当某些会员用户有非法操作时可以进行删除,防止对该商城系统造成大的损害。
4.商品管理:该功能使管理员对该商品的类别和具体商品进行管理,对商城所售商品的类别进行增加、修改和删除,本文转载自http://www.biyezuopin.vip/onews.asp?id=15083对具体某一件商品进行添加和删除。
5.订单管理:当某一用户在前台下单后,管理员在后台可以查看订单明细,受理此订单或删除该订单,方便管理员对订单的管理。
6.销量管理:管理员在后台可以对该商城所售商品的销量进行管理,商品的销量按从高到低进行排列。
7.留言公告管理:管理员在后台可以查看或删除用户的留言,发布最新的公告或删除过期的公告。
8.退出后台:该功能主要是方便管理员的退出,当管理员想退出后台管理页面时,点击此按钮,可以迅速返回到后台的登录页面。

/**
 * 用户登录
 *
 * @param username 用户名
 * @param password 密码
 * @return ResponseEntity
 * @throws JsonProcessingException See {@link UserService#login(String, String)}
 */
@PostMapping("/login")
public ResponseEntity<?> login(@RequestParam String username,
                               @RequestParam String password) throws JsonProcessingException {
    return RestModel.ok(userService.login(username, password));
}




@Override
    public String login(String username, String password) throws JsonProcessingException {
        if (StringUtils.isAnyBlank(username, password)) {
            throw new NullFiledException("用户名/密码不能为空");
        }
        User user = userRepository.findById(username).orElseThrow(() -> new IdNotFoundException("用户名不存在"));
        if (!password.equals(user.getPassword())) {
            throw new SecurityServerException("密码错误", HttpStatus.BAD_REQUEST);
        }
        LoginUser loginUser = OrikaUtils.a2b(user, LoginUser.class);
        return JwtUtils.buildJwt(loginUser);
    }
其他功能
/**
 * 修改用户信息(不包括密码)
 *
 * @param loginUser 登录用户
 * @param user      新用户信息
 * @return ResponseEntity
 */
@PatchMapping("/user")
public ResponseEntity<?> modifyUserInfo(@MustUserLogin LoginUser loginUser,
                                        @RequestBody User user) {
    userService.modifyUser(loginUser, user);
    return RestModel.noContent();
}

/**
 * 用户注册
 *
 * @param username 用户名
 * @param email    邮箱
 * @param phone    手机号
 * @param password 密码
 * @return ResponseEntity
 */
@PostMapping("/reg")
public ResponseEntity<?> regUser(@RequestParam String username,
                                 @RequestParam String email,
                                 @RequestParam String phone,
                                 @RequestParam String password) {
    return RestModel.created(userService.reg(username, email, phone, password));
}

/**
 * 更改密码
 *
 * @param loginUser 登录用户
 * @param oldPwd    旧密码
 * @param newPwd    新密码
 * @return ResponseEntity
 */
@PostMapping("/pwd")
public ResponseEntity<?> changePwd(@MustUserLogin LoginUser loginUser,
                                   @RequestParam String oldPwd,
                                   @RequestParam String newPwd) {
    userService.changePwd(loginUser, oldPwd, newPwd);
    return RestModel.ok("success");
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到