——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于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 +
——————————CodeStart——————————
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(); }
@PostMapping("/admin/user/modify_passwd") @ResponseBody public ResponseVo<Boolean> modifyPassword(String prePassword, String newPassword, String reNewPassword){ return userService.updatePassword(prePassword, newPassword, reNewPassword); }
@GetMapping("/admin/user/list") public String list(){ return "admin/user/list"; }
@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); }
@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()); 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, "添加购物车成功!"); }
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=291422292105200fc
https://javayms.pages.dev?id=291422292105200fc