【261】springboot网上购书系统java web在线书城图书商城源码
#### 软件架构
后端框架主要采用SSM框架,基于SpringBoot构建开发
模板引擎thymeleaf
前端框架采用Layui
环境 ;idea mysql jdk1.8
package edu.hut.bookshop.controller;
import edu.hut.bookshop.pojo.Order;
import edu.hut.bookshop.pojo.User;
import edu.hut.bookshop.service.OrderHandleService;
import edu.hut.bookshop.service.OrderService;
import edu.hut.bookshop.util.ResultCode;
import edu.hut.bookshop.util.ResultVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.util.List;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
/**
* @Description: 订单管理模块
* @Author: guozongchao
* @Date: 2021/12/2 1:07
*/
@RestController
@RequestMapping("/order")
public class OrderController {
@Autowired
private OrderService orderService;
@Autowired
private OrderHandleService orderHandleService;
/**
* 分页获取订单列表,如果都为空,则获取所有
* @param page 页码
* @param limit 每页的条数
* @return
*/
@GetMapping("/list")
public ResultVO getOrderList(@RequestParam(required = false) Integer page,@RequestParam(required = false) Integer limit) {
List<Order> orders = orderHandleService.getAllOrdersByPage(page, limit);
PageInfo pageInfo = new PageInfo(orders);
return new ResultVO(ResultCode.SUCCESS,(int)pageInfo.getTotal(),orders);
}
/**
* 用户提交订单处理
* @param order
* @param session
* @return
*/
@PostMapping("/submit")
public ResultVO orderSubmit(@RequestBody @Valid Order order, HttpSession session) {
User user = (User) session.getAttribute("user");
try{
order.setUserId(user.getUserId());
orderHandleService.createOrder(order);
}catch (Exception e){
e.printStackTrace();
}
return new ResultVO(ResultCode.SUCCESS,"/"+user.getUserName()+"/orders");
}
/**
* 更新订单信息,比如审核通过
* @param order
* @return
*/
@PutMapping("/list/{orderId}")
public ResultVO updateOrder(@PathVariable("orderId") Integer orderId,@RequestBody Order order) {
Order orders1 = orderService.selectByOrderId(orderId);
if(orders1!=null)
{
order.setOrderId(orderId);
int orders = orderService.updateByOrderId(order);
return new ResultVO(ResultCode.SUCCESS,null);
}
else
return new ResultVO(ResultCode.RECORD_NOT_FOUND,null);
}
/**
* 删除指定orderId的订单
* @param orderId
* @return
*/
@DeleteMapping("/list/{orderId}")
public ResultVO deleteOrder(@PathVariable("orderId") Integer orderId) {
int orders = orderService.deleteByOrderId(orderId);
return new ResultVO(ResultCode.SUCCESS,null);
}
/* @GetMapping("/list/user_order/{userId}")
public ResultVO getOrderByUserId(@PathVariable("userId") Integer userId) {
List<Order> orders = orderService.selectByUserId(userId);
if(orders.size()!=0)
{
return new ResultVO(ResultCode.SUCCESS,orders);
}
else
return new ResultVO(ResultCode.RECORD_NOT_FOUND,null);
}*/
@GetMapping("/list/{orderId}")
public ResultVO getOrderByOrderId(@PathVariable("orderId") Integer orderId) {
Order orders = orderService.selectByOrderId(orderId);
if(orders!=null)
return new ResultVO(ResultCode.SUCCESS,orders);
else
return new ResultVO(ResultCode.RECORD_NOT_FOUND,null);
}
/**
* 多条件搜索订单 ---- by guozongchao
* @param order
* @param page
* @param limit
* @return
*/
@GetMapping("/search")
public ResultVO searchOrders(Order order, Integer page, Integer limit) {
if (order.getConsigneeName().isEmpty()) {
order.setConsigneeName(null);
}
List<Order> orders = orderService.searchOrders(order, page, limit);
PageInfo pageInfo = new PageInfo(orders);
return new ResultVO(ResultCode.SUCCESS, (int) pageInfo.getTotal(), orders);
}
}
package edu.hut.bookshop.controller;
import edu.hut.bookshop.exception.CustomizeException;
import edu.hut.bookshop.pojo.ShoppingCart;
import edu.hut.bookshop.pojo.User;
import edu.hut.bookshop.service.ShoppingCartService;
import edu.hut.bookshop.util.ResultCode;
import edu.hut.bookshop.util.ResultVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 购物城模块控制器
* @Author: guozongchao
* @Date: 2021/12/2 0:43
*/
@RestController
@RequestMapping("/cart")
public class ShoppingCartController {
@Autowired
private ShoppingCartService shoppingCartService;
/**
* 根据用户ID获取该用户的购物车
* @param session
* @return
*/
@GetMapping("/list")
public ResultVO getCartByUserId(HttpSession session) {
User user = (User) session.getAttribute("user");
List<ShoppingCart> carts = shoppingCartService.getShoppingCartsByUserId(user.getUserId());
return new ResultVO(ResultCode.SUCCESS, carts);
}
/**
* 更新购物车的商品数量
* @param cartId 购物车Id
* @param quantity 商品购买数量
* @return
*/
@PutMapping("/list/{cartId}")
public ResultVO updateCartItem(@PathVariable("cartId") Integer cartId,Integer quantity) {
if(quantity<=0){
throw new CustomizeException(ResultCode.FAILED,"购物数量必须大于0");
}
if(quantity>10){
throw new CustomizeException(ResultCode.FAILED,"每件商品限购10件");
}
ShoppingCart cart = new ShoppingCart();
cart.setCartId(cartId);
cart.setQuantity(quantity);
shoppingCartService.updateShoppingCart(cart);
return new ResultVO(ResultCode.SUCCESS);
}
/**
* 添加到购物车请求处理
*
* @param cart 接收前台传来的参数
* @return
*/
@PostMapping("/list")
public ResultVO addToShoppingCart(@Valid ShoppingCart cart, HttpSession session) {
try{
User user = (User) session.getAttribute("user");
cart.setUserId(user.getUserId());
shoppingCartService.addToShoppingCart(cart);
}catch (Exception e){
e.printStackTrace();
}
return new ResultVO(ResultCode.SUCCESS);
}
/**
* 删除前台传来的cartId的购物车项
* @param cartId
* @return
*/
@DeleteMapping("/list/{cartId}")
public ResultVO deleteCartItem(@PathVariable("cartId") Integer cartId) {
shoppingCartService.deleteShoppingCartByCartId(cartId);
return new ResultVO(ResultCode.SUCCESS);
}
/**
* 批量删除购物车
* @param cartIds
* @return
*/
@DeleteMapping("/list")
public ResultVO deleteCartItem(@RequestBody int[] cartIds) {
shoppingCartService.deleteShoppingCarts(cartIds);
return new ResultVO(ResultCode.SUCCESS);
}
}