CartController.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.etotem.cfc.controller.cart;
  2. import com.etotem.cfc.common.Result;
  3. import com.etotem.cfc.dto.CartItemDTO;
  4. import com.etotem.cfc.dto.CartListResultDTO;
  5. import com.etotem.cfc.service.CartService;
  6. import org.springframework.web.bind.annotation.PostMapping;
  7. import org.springframework.web.bind.annotation.RequestAttribute;
  8. import org.springframework.web.bind.annotation.RequestBody;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import javax.annotation.Resource;
  12. import java.util.List;
  13. import java.util.Map;
  14. import com.etotem.cfc.util.ParamUtils;
  15. @RestController
  16. @RequestMapping("/api/cart")
  17. public class CartController {
  18. @Resource
  19. private CartService cartService;
  20. @PostMapping("/add")
  21. public Result<CartItemDTO> add(@RequestBody Map<String, Object> params,
  22. @RequestAttribute("userId") Long userId) {
  23. Long productId = ParamUtils.getLong(params.get("productId"));
  24. Integer quantity = params.containsKey("quantity") ? Integer.valueOf(params.get("quantity").toString()) : 1;
  25. Long skuId = params.containsKey("skuId") ? ParamUtils.getLong(params.get("skuId")) : null;
  26. CartItemDTO dto = cartService.addToCart(userId, productId, quantity, skuId);
  27. if (dto == null) {
  28. return Result.error("商品不存在");
  29. }
  30. return Result.success(dto);
  31. }
  32. @PostMapping("/list")
  33. public Result<CartListResultDTO> list(@RequestAttribute("userId") Long userId) {
  34. CartListResultDTO list = cartService.getCartList(userId);
  35. return Result.success(list);
  36. }
  37. @PostMapping("/update")
  38. public Result<Void> update(@RequestBody Map<String, Object> params,
  39. @RequestAttribute("userId") Long userId) {
  40. Long productId = ParamUtils.getLong(params.get("productId"));
  41. Integer quantity = Integer.valueOf(params.get("quantity").toString());
  42. cartService.updateQuantity(userId, productId, quantity);
  43. return Result.success();
  44. }
  45. @PostMapping("/remove")
  46. public Result<Void> remove(@RequestBody Map<String, Object> params,
  47. @RequestAttribute("userId") Long userId) {
  48. Long productId = ParamUtils.getLong(params.get("productId"));
  49. cartService.removeItem(userId, productId);
  50. return Result.success();
  51. }
  52. @PostMapping("/count")
  53. public Result<Integer> count(@RequestAttribute("userId") Long userId) {
  54. int count = cartService.getCartCount(userId);
  55. return Result.success(count);
  56. }
  57. }