基于javaweb的SSM+Maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

570023002402

580023002402

590023002402

000023012402

010023012402

020023012402

基于javaweb的SSM+Maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

这个项目涉及到Shiro整合JWT、秒杀功能所具备的基本要求(限流、乐观锁、接口隐藏、JMeter高并发测试等等)、消息中间件RabbitMQ的异步邮件通知和死信队列、沙箱支付宝模拟支付等等技术亮点。

项目功能:该项目分为买家、卖家、管理员三个角色。买家角色的功能:登录、注册、浏览图书、管理购物车、结算订单、支付订单、查看订单、修改个人信息等等功能。

卖家角色的功能:登录、注册、浏览商品、管理自己发布的图书、管理收到的订单、查看自己的收益详情等等。管理员角色的功能:登录、管理所有用户信息、管理权限信息、管理所有卖家发布的图书、管理所有订单信息、管理所有支付信息、查看总共收益详情等等。

应用技术:SSM + Jsp + MySQL + Redis + JWT + Shiro + EasyUI等

运行环境:Eclipse/IntelliJ IDEA + MySQL5.7 + Maven3.6.3+ JDK1.8 + Redis5.0.5+ Tomcat8.5 +

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            //获取本次购买所有的订单详情
List<OrderItem> orderItemList = new ArrayList<>();
for(Order order : orderList){
QueryWrapper<OrderItem> orderItemQueryWrapper = new QueryWrapper<>();
orderItemQueryWrapper.eq("order_id", order.getId());
List<OrderItem> selectedOrderItemList = orderItemDao.selectList(orderItemQueryWrapper);
selectedOrderItemList.forEach(e->{orderItemList.add(e);});
}
Set<Long> bookIdSet = new HashSet<>();
orderItemList.forEach(e->{bookIdSet.add(e.getBookId());});
bookIdSet.forEach(e->{
QueryWrapper<Cart> cartQueryWrapper = new QueryWrapper<>();
cartQueryWrapper.eq("book_id", e);
cartQueryWrapper.eq("user_id", userId);
cartDao.delete(cartQueryWrapper);
});
}
}

}
package com.yjq.programmer.interceptor;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    return userService.logout();
}


/**
* 后台用户修改密码操作处理
* @param prePassword
* @param newPassword
* @param reNewPassword
* @return
*/
@PostMapping("/admin/user/modify_passwd")
@ResponseBody
public ResponseVo<Boolean> modifyPassword(String prePassword, String newPassword, String reNewPassword){
return userService.updatePassword(prePassword, newPassword, reNewPassword);
}

/**
* 后台用户列表页面
* @return
*/
@GetMapping("/admin/user/list")
public String list(){
return "admin/user/list";
}

/**
* 后台用户列表信息获取
* @param page
* @param rows
* @param roleId
* @param username
* @return
*/
@PostMapping("/admin/user/list")
@ResponseBody
public Map<String, Object> list(Integer page, Integer rows, Integer roleId, String username){
return userService.getUserList(page, rows, roleId, username);
}

/**
* 后台添加用户信息操作处理
* @param user
* @return
*/
@PostMapping("/admin/user/add")
@ResponseBody
public ResponseVo<Boolean> add(User user){
return userService.addUser(user);
}

/**
* 后台修改用户信息操作处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    queryMap.put("id", cart.getBookId());
List<Book> selectedBook = bookDao.getBookList(queryMap);
if(selectedBook == null || selectedBook.size() != 1){
return ResponseVo.errorByMsg(CodeMsg.BOOK_NOT_EXIST);
}
if(selectedBook.get(0).getStock() == null){
return ResponseVo.errorByMsg(CodeMsg.STOCK_NOT_EXIST);
}
//判断库存是否满足用户选择购买的数量
if(selectedBook.get(0).getStock().getCount() < cart.getQuantity()){
return ResponseVo.errorByMsg(CodeMsg.STOCK_NOT_ENOUGH);
}
QueryWrapper<Cart> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", user.getId());
//判断该用户的购物车是否小等于100种图书
List<Cart> selectedCartByUser = cartDao.selectList(queryWrapper);
if(selectedCartByUser.size() > 100){
return ResponseVo.errorByMsg(CodeMsg.CART_NUM_OUT_LIMIT);
}
//判断该图书是否是参与秒杀的图书,如果是,判断当前是否已超过秒杀时间
if(BookIsKillEnum.YES.getCode().equals(selectedBook.get(0).getIsKill())){
if(CommonUtil.getTimeStamp(new Date()) > CommonUtil.getTimeStamp(selectedBook.get(0).getKillEnd())){
return ResponseVo.errorByMsg(CodeMsg.KILL_END_EXPIRED);
}
}
//判断购物车中是否已有此图书
queryWrapper.eq("book_id", cart.getBookId());
Cart selectedCart = cartDao.selectOne(queryWrapper);
if(selectedCart != null){
selectedCart.setQuantity(cart.getQuantity() + selectedCart.getQuantity());
//已存在,则加上对应数量
if(cartDao.updateById(selectedCart) < 0){
return ResponseVo.errorByMsg(CodeMsg.CART_ADD_ERROR);
}
}else{
//添加数据库中的购物车信息
if(cartDao.insert(cart) < 0){
return ResponseVo.errorByMsg(CodeMsg.CART_ADD_ERROR);
}
}
return ResponseVo.successByMsg(true, "添加购物车成功!");
}


项目链接:
https://javayms.github.io?id=291422292105200fc
https://javayms.pages.dev?id=291422292105200fc