首页 > 分享 > 基于Spring Boot的网上购物系统

基于Spring Boot的网上购物系统

作者主页:Selina .a

简介:Java领域优质创作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。

主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

文末获取源码联系  

目录

课题的提出

数据库设计

系统功能设计

关键代码

 专栏推荐

推荐项目

源码获取

课题的提出

随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决生活上的问题,网上购物系统展现了其蓬勃生命力和广阔的前景。与此同时,为解决网上购物系统需求,网上购物系统发展愈发多元化与网络化,与电子信息技术相结合。网上购物系统应运而生。

该系统利用Java语言、MySQL数据库,结合目前流行的 B/S架构,将网上购物系统的各个方面都集中到数据库中,以便于用户的需要。该系统在确保系统稳定的前提下,能够实现多功能模块的设计和应用。该系统由管理员功能模块、商家模块和用户模块组成。不同角色的准入制度是有严格区别的。各功能模块的设计也便于以后的系统升级和维护。该系统采用了软件组件化、精化体系结构、分离逻辑和数据等方法。

数据库设计

网上购物系统的数据以一个个数据表的方式存储在数据库中,这一个个数据表示系统调取数据的基础,在进行系统数据库搭建时,会根据这些设计好的数据表进行优化搭建。系统选用MySQL数据库,对各表进行了详细的说明如下:

表4-1:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-2:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-3:地址

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

address

varchar

200

地址

name

varchar

200

收货人

phone

varchar

200

电话

isdefault

varchar

200

是否默认地址[是/否]

表4-4:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

系统功能设计

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到网上购物系统的导航条和商城商品信息推荐等。系统首页界面如图5-1所示:

 在用户注册页面的输入用户注册信息进行注册操作,用户注册页面如图5-2所示:

 系统登录:在系统登录页面的输入栏中输入用户名和密码进行登录;系统登录页面如图5-3所示:

 在个人中心页面输入个人信息可以进行更新操作,并在我的订单、我的地址和我的收藏页面对商城商品进行操作;如图5-4所示:

 后台用户登录,在登录页面选择需要登录的角色,再正确输入用户名和密码后,进入操作系统进行操作;如图5-5所示。       

 管理员进入主页面,主要功能包括对系统首页、个人中心、商家管理、用户管理、商品种类管理、商城商品管理、系统管理、订单管理等进行操作。管理员主页面如图5-6所示:

 管理员点击商家管理。进入商家页面输入店铺名和店铺地址可以查询,新增或删除商家信息,并进行查看详情,修改和删除等操作。如图5-7所示:

 管理员点击用户管理。进入用户页面输入用户账号可以查询,新增或删除用户详细信息,并进行查看详情,修改和删除等操作。如图5-8所示:

 管理员点击商品种类管理。进入商品种类页面输入商品种类可以查询、新增或删除鲜花详细信息,并进行修改或删除操作。如图5-9所示:

 管理员点击商城商品管理。进入商城商品页面输入商品名称、品牌和价格可以查询或删除商城商品详细信息,并进行详情,修改、查看评论或删除操作。如图5-10所示:

 管理员点击系统管理,进入系统管理页面可以对轮播图管理、官方客服、关于我们、系统简介和商城公告进行详情或修改操作,在关于我们页面输入标题可以查询关于我们列表信息,并进行查看详情和修改等操作。如图5-11所示:

 商家进入系统后台可以对系统首页、个人中心、商家管理、商城商品管理、订单管理等功能进行操作。商家后台管理页面如图5-12所示:

 商家点击商家管理。进入商家页面输入店铺名和店铺地址可以查询商家信息,并进行查看详情和修改等操作。如图5-13所示:

 商家点击订单管理。进入订单管理页面输入订单编号和商品名称可以查询已支付订单详细信息,并进行查看详情和发货等操作;还可以对已退款订单、未支付订单、已发货订单、已完成订单和已取消订单进行操作。如图5-14所示:

 

关键代码

package com.controller;

import java.util.Arrays;

import java.util.Calendar;

import java.util.Date;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;

import com.baomidou.mybatisplus.mapper.EntityWrapper;

import com.entity.TokenEntity;

import com.entity.UserEntity;

import com.service.TokenService;

import com.service.UserService;

import com.utils.CommonUtil;

import com.utils.MPUtil;

import com.utils.PageUtils;

import com.utils.R;

import com.utils.ValidatorUtils;

@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){

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);

}

@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){

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){

UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));

if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {

return R.error("用户名已存在。");

}

userService.updateById(user);

return R.ok();

}

@RequestMapping("/delete")

public R delete(@RequestBody Long[] ids){

userService.deleteBatchIds(Arrays.asList(ids));

return R.ok();

}

}

 专栏推荐

Spring Boot+Vue+CSS+JavaScript+HTML等技术项目专栏推荐

项目汇总专栏推荐

推荐项目

基于Node.js+Vue+MySQL的小型企业工资管理系统

基于SSM+Android+MySQL的校园考研论坛 

基于Spring Boot+Android+MySQL的记录生活管理系统 

基于微信小程序的农业电商服务管理系统 

基于微信小程序的智慧物流小程序的设计与实现 

源码获取

 大家点赞、收藏、关注、评论啦 、查看获取联系方式

相关知识

基于web网上花店销售系统国内外研究现状
基于Spring Boot的高校论坛交流系统的设计与实现(任务书)
基于spring boot 花谷花卉科普系统 毕业设计
基于springboot的“花开富贵”花园管理系统
基于Java网上鲜花销售系统的设计与实现
基于Python+django的花卉商城系统花店系统(源码+lw+部署文档+讲解等)
基于SSM+Vue的鲜花销售系统/网上花店系统
基于asp.net的鲜花销售系统(源码+LW+调试文档+讲解)
基于springboot+vue的花艺烘焙商城系统微信小程序
基于ssm+vue网上花店销售管理系统【开题+程序+论文】

网址: 基于Spring Boot的网上购物系统 https://m.huajiangbk.com/newsview556392.html

所属分类:花卉
上一篇: 订购鲜花上什么网
下一篇: 如何设计一个网上商城系统,使其在