作者简介:CSDN特邀作者✌、java领域优质创作者
关注公众号【java李杨勇】 简历模板、学习资料、面试题库等都给你
文末获取源码联系
一、前言介绍:
随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中用户对手办周边商城方面的要求也在不断提高,而漫威系列手办周边商城得到广大用户的青睐,使得漫威系列手办周边商城的开发成为必需而且紧迫的事情。漫威系列手办周边商城主要是借助计算机,通过对漫威系列手办周边商城所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。手办周边商城对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
二、功能设计:
本漫威系列手办周边商城系统主要功能设计为实现管理员;个人中心、系统公告管理、用户管理、商品系列管理、商品信息管理、订单评价管理、论坛管理、系统管理、订单管理,用户;个人中心、订单评价管理、我的收藏管理、订单管理,前台首页;首页、商品信息、论坛信息、我的、跳转到后台、购物车客服等信息管理功能。系统操作流程如下:
三、功能截图:
普通用户登录注册:
首页主要功能介绍:商品信息、论坛信息、我的、跳转到后台、购物车客服等信息管理功能
商品详情:可加入购物车、修改数量、立即购买和收藏商品
商品详情可以配置图文介绍等
添加了论坛帖子系列功能:普通用户可以发布、可以对帖子进行交流讨论等
帖子详情数据查看、可以在底部评论
在我的个人中心可以查看我的发布、我的订单、我的地址修改以及我的收藏模块和个人信息模块
购物车模块:要选择收货地址信息等
我的订单模块:
我的收藏模块:
普通用户后台中心:
订单评价:
收藏管理:
订单信息管理:
后端管理员主要功能:
修改密码:
商品系列管理:
商品信息管理:
商品详情修改:
商品评价管理:
论坛管理:
客服管理:
订单信息管理:
四、数据库设计:
表address (地址)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
3 |
userid |
bigint |
20 |
0 |
N |
N |
4 |
address |
varchar |
200 |
0 |
N |
N |
5 |
name |
varchar |
200 |
0 |
N |
N |
6 |
phone |
varchar |
200 |
0 |
N |
N |
7 |
isdefault |
varchar |
200 |
0 |
N |
N |
表cart (购物车表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
3 |
tablename |
varchar |
200 |
0 |
Y |
N |
4 |
userid |
bigint |
20 |
0 |
N |
N |
5 |
goodid |
bigint |
20 |
0 |
N |
N |
6 |
goodname |
varchar |
200 |
0 |
Y |
N |
7 |
picture |
varchar |
200 |
0 |
Y |
N |
8 |
buynumber |
int |
10 |
0 |
N |
N |
9 |
price |
float |
13 |
0 |
Y |
N |
10 |
discountprice |
float |
13 |
0 |
Y |
N |
表chat (客服聊天表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
4 |
adminid |
bigint |
20 |
0 |
Y |
N |
管理员id |
5 |
ask |
longtext |
2147483647 |
0 |
Y |
N |
提问 |
6 |
reply |
longtext |
2147483647 |
0 |
Y |
N |
回复 |
7 |
isreply |
int |
10 |
0 |
Y |
N |
是否回复 |
表config (配置文件)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
name |
varchar |
100 |
0 |
N |
N |
配置参数名称 |
3 |
value |
varchar |
100 |
0 |
Y |
N |
配置参数值 |
表dingdanpingjia (订单评价)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
dingdanbianhao |
varchar |
200 |
0 |
N |
N |
订单编号 |
4 |
shangpinbianhao |
varchar |
200 |
0 |
Y |
N |
商品编号 |
5 |
shangpinmingcheng |
varchar |
200 |
0 |
N |
N |
商品名称 |
6 |
shangpinxilie |
varchar |
200 |
0 |
Y |
N |
商品系列 |
7 |
pingfen |
varchar |
200 |
0 |
Y |
N |
评分 |
8 |
pingjianeirong |
longtext |
2147483647 |
0 |
Y |
N |
评价内容 |
9 |
tianjiatupian |
varchar |
200 |
0 |
Y |
N |
添加图片 |
10 |
pingjiariqi |
date |
10 |
0 |
Y |
N |
评价日期 |
11 |
yonghuming |
varchar |
200 |
0 |
Y |
N |
用户名 |
12 |
lianxidianhua |
varchar |
200 |
0 |
Y |
N |
联系电话 |
13 |
sfsh |
varchar |
200 |
0 |
Y |
N |
是否审核 |
14 |
shhf |
longtext |
2147483647 |
0 |
Y |
N |
审核回复 |
表discussshangpinxinxi (商品信息评论表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
refid |
bigint |
20 |
0 |
N |
N |
关联表id |
4 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
5 |
content |
longtext |
2147483647 |
0 |
N |
N |
评论内容 |
6 |
reply |
longtext |
2147483647 |
0 |
Y |
N |
回复内容 |
表discussxitonggonggao (系统公告评论表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
refid |
bigint |
20 |
0 |
N |
N |
关联表id |
4 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
5 |
content |
longtext |
2147483647 |
0 |
N |
N |
评论内容 |
6 |
reply |
longtext |
2147483647 |
0 |
Y |
N |
回复内容 |
表forum (论坛表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
title |
varchar |
200 |
0 |
Y |
N |
帖子标题 |
4 |
content |
longtext |
2147483647 |
0 |
N |
N |
帖子内容 |
5 |
parentid |
bigint |
20 |
0 |
Y |
N |
父节点id |
6 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
7 |
username |
varchar |
200 |
0 |
Y |
N |
用户名 |
8 |
isdone |
varchar |
200 |
0 |
Y |
N |
状态 |
表orders (订单)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
orderid |
varchar |
200 |
0 |
N |
N |
订单编号 |
4 |
tablename |
varchar |
200 |
0 |
Y |
N |
商品表名 |
5 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
6 |
goodid |
bigint |
20 |
0 |
N |
N |
商品id |
7 |
goodname |
varchar |
200 |
0 |
Y |
N |
商品名称 |
8 |
picture |
varchar |
200 |
0 |
Y |
N |
商品图片 |
9 |
buynumber |
int |
10 |
0 |
N |
N |
购买数量 |
10 |
price |
float |
13 |
0 |
N |
N |
价格/积分 |
11 |
discountprice |
float |
13 |
0 |
Y |
N |
折扣价格 |
12 |
total |
float |
13 |
0 |
N |
N |
总价格/总积分 |
13 |
discounttotal |
float |
13 |
0 |
Y |
N |
折扣总价格 |
14 |
type |
int |
10 |
0 |
Y |
N |
支付类型 |
15 |
status |
varchar |
200 |
0 |
Y |
N |
状态 |
16 |
address |
varchar |
200 |
0 |
Y |
N |
地址 |
表shangpinxilie (商品系列)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
shangpinxilie |
varchar |
200 |
0 |
N |
N |
商品系列 |
表shangpinxinxi (商品信息)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
shangpinbianhao |
varchar |
200 |
0 |
Y |
N |
商品编号 |
4 |
shangpinmingcheng |
varchar |
200 |
0 |
N |
N |
商品名称 |
5 |
shangpinxilie |
varchar |
200 |
0 |
Y |
N |
商品系列 |
6 |
tupian |
varchar |
200 |
0 |
Y |
N |
图片 |
7 |
guige |
varchar |
200 |
0 |
Y |
N |
规格 |
8 |
shangpinxiangqing |
longtext |
2147483647 |
0 |
Y |
N |
商品详情 |
9 |
clicktime |
datetime |
19 |
0 |
Y |
N |
最近点击时间 |
10 |
clicknum |
int |
10 |
0 |
Y |
N |
点击次数 |
11 |
price |
float |
13 |
0 |
N |
N |
价格 |
表storeup (收藏表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
4 |
refid |
bigint |
20 |
0 |
Y |
N |
收藏id |
5 |
tablename |
varchar |
200 |
0 |
Y |
N |
表名 |
6 |
name |
varchar |
200 |
0 |
N |
N |
收藏名称 |
7 |
picture |
varchar |
200 |
0 |
N |
N |
收藏图片 |
表token (token表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
userid |
bigint |
20 |
0 |
N |
N |
用户id |
3 |
username |
varchar |
100 |
0 |
N |
N |
用户名 |
4 |
tablename |
varchar |
100 |
0 |
Y |
N |
表名 |
5 |
role |
varchar |
100 |
0 |
Y |
N |
角色 |
6 |
token |
varchar |
200 |
0 |
N |
N |
密码 |
7 |
addtime |
timestamp |
19 |
0 |
N |
N |
新增时间 |
8 |
expiratedtime |
timestamp |
19 |
0 |
N |
N |
过期时间 |
表users (用户表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
username |
varchar |
100 |
0 |
N |
N |
用户名 |
3 |
password |
varchar |
100 |
0 |
N |
N |
密码 |
4 |
role |
varchar |
100 |
0 |
Y |
N |
角色 |
5 |
addtime |
timestamp |
19 |
0 |
N |
N |
新增时间 |
表xitonggonggao (系统公告)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
gonggaobiaoti |
varchar |
200 |
0 |
N |
N |
公告标题 |
4 |
gonggaoleixing |
varchar |
200 |
0 |
N |
N |
公告类型 |
5 |
tupian |
varchar |
200 |
0 |
Y |
N |
图片 |
6 |
neirong |
longtext |
2147483647 |
0 |
Y |
N |
内容 |
7 |
faburiqi |
date |
10 |
0 |
Y |
N |
发布日期 |
表yonghu (用户)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
主键 |
2 |
addtime |
timestamp |
19 |
0 |
N |
N |
创建时间 |
3 |
yonghuming |
varchar |
200 |
0 |
N |
N |
用户名 |
4 |
mima |
varchar |
200 |
0 |
N |
N |
密码 |
5 |
xingming |
varchar |
200 |
0 |
N |
N |
姓名 |
6 |
xingbie |
varchar |
200 |
0 |
Y |
N |
性别 |
7 |
touxiang |
varchar |
200 |
0 |
Y |
N |
头像 |
8 |
lianxidianhua |
varchar |
200 |
0 |
Y |
N |
联系电话 |
9 |
money |
float |
13 |
0 |
Y |
N |
余额 |
五、关键代码:
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
// @PostMapping(value = "/login")
@RequestMapping(value = "/login", method ={RequestMethod.GET,RequestMethod.POST} )
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper().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().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().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 params,UserEntity user){
EntityWrapper ew = new EntityWrapper();
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 ew = new EntityWrapper();
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().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();
}
}
论文报告:
六、源码获取:
大家点赞、收藏、关注、评论啦 、查看微信公众号获取联系方式
打卡 文章 更新 200/ 365天
精彩专栏推荐订阅:在下方专栏
Java项目精品实战案例《100套》
web前端期末大作业网页实战《100套》