一、前言介绍:
随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中用户对手办周边商城方面的要求也在不断提高,而漫威系列手办周边商城得到广大用户的青睐,使得漫威系列手办周边商城的开发成为必需而且紧迫的事情。漫威系列手办周边商城主要是借助计算机,通过对漫威系列手办周边商城所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。手办周边商城对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
🍅文末获取源码联系🍅
二、功能设计:
主要功能设计:个人中心、系统公告管理、用户管理、商品系列管理、商品信息管理、订单评价管理、论坛管理、系统管理、订单管理,用户;个人中心、订单评价管理、我的收藏管理、订单管理,前台首页;首页、商品信息、论坛信息、我的、跳转到后台、购物车客服等信息管理功能。
系统操作流程如下:
三、论文报告:
四、功能截图:
普通用户登录注册:
首页主要功能介绍:商品信息、论坛信息、我的、跳转到后台、购物车客服等信息管理功能
商品详情:可加入购物车、修改数量、立即购买和收藏商品
商品详情可以配置图文介绍等
商品评论交流模块
添加了论坛帖子系列功能:普通用户可以发布、可以对帖子进行交流讨论等
帖子详情数据查看、可以在底部评论
在我的个人中心可以查看我的发布、我的订单、我的地址修改以及我的收藏模块和个人信息模块
购物车模块:要选择收货地址信息等
我的订单模块:
我的收藏模块:
普通用户后台中心:
订单评价:
收藏管理:
订单信息管理:
五、后端管理员主要功能:
修改密码:
用户管理:
商品系列管理:
商品信息管理:
商品详情修改:
商品评价管理:
论坛管理:
客服管理:
首页轮播图管理:
订单信息管理:
六、数据库设计:
表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<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();
}
}
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号获取联系方式👇🏻👇🏻👇🏻
打卡 文章 更新 200/ 365天
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻