ProductController.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.example.xiaoshiweixinback.controller;
  2. import com.example.xiaoshiweixinback.business.common.Constants;
  3. import com.example.xiaoshiweixinback.business.common.Response;
  4. import com.example.xiaoshiweixinback.business.common.base.Records;
  5. import com.example.xiaoshiweixinback.business.exception.BusinessException;
  6. import com.example.xiaoshiweixinback.checkLogin.checkLogin;
  7. import com.example.xiaoshiweixinback.domain.AssoPersonProduct;
  8. import com.example.xiaoshiweixinback.entity.dto.AssoPersonProductDTO;
  9. import com.example.xiaoshiweixinback.entity.product.ProductAddDTO;
  10. import com.example.xiaoshiweixinback.entity.product.ProductDTO;
  11. import com.example.xiaoshiweixinback.service.AssoPersonProductService;
  12. import com.example.xiaoshiweixinback.service.ProductService;
  13. import io.swagger.v3.oas.annotations.Operation;
  14. import io.swagger.v3.oas.models.security.SecurityScheme;
  15. import lombok.RequiredArgsConstructor;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.springframework.web.bind.annotation.*;
  18. @Slf4j
  19. @RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/product")
  20. @RestController
  21. @RequiredArgsConstructor
  22. public class ProductController {
  23. private final ProductService productService;
  24. private final AssoPersonProductService assoPersonProductService;
  25. @Operation(summary = "查询爆款产品")
  26. @PostMapping("/queryHotProduct")
  27. public Response queryHotProduct(@RequestBody ProductDTO productDTO) {
  28. Records records = productService.queryHotProduct(productDTO);
  29. return Response.success(records);
  30. }
  31. @Operation(summary = "添加或更新产品")
  32. @PostMapping("/addOrUpdateProduct")
  33. public Response addOrUpdateProduct(@RequestBody ProductAddDTO productAddDTO) {
  34. Records records = new Records();
  35. try {
  36. Integer id = productService.addOrUpdateProduct(productAddDTO);
  37. records.setData(id);
  38. }
  39. catch (BusinessException e){
  40. return Response.error(e.getErrorCode(),e.getMessage());
  41. }
  42. return Response.success(records);
  43. }
  44. @checkLogin
  45. @Operation(summary = "关注产品")
  46. @PostMapping("/follow")
  47. public Response follow(@RequestBody AssoPersonProductDTO assoPersonProductDTO){
  48. Records records = new Records();
  49. Integer id = assoPersonProductService.add(assoPersonProductDTO);
  50. if(id ==null){
  51. return Response.noPermissions("已超过可关注数量");
  52. }
  53. if(id.equals(-2)){
  54. return Response.noPermissions("无关注产品的权益");
  55. }
  56. records.setData(id);
  57. return Response.success(records);
  58. }
  59. @Operation(summary = "取消关注产品")
  60. @GetMapping("/unFollow")
  61. public Response unFollow(Integer productId){
  62. Records records = new Records();
  63. Integer id = assoPersonProductService.cancel(productId);
  64. if (id.equals(-1)) {
  65. return Response.error("取消失败");
  66. } else if (id.equals(0)) {
  67. return Response.error("没有权限");
  68. }
  69. records.setData(id);
  70. return Response.success(records);
  71. }
  72. @checkLogin
  73. @Operation(summary = "查询关注的产品")
  74. @PostMapping("/queryConcernProduct")
  75. public Response queryConcernProduct(@RequestBody ProductDTO productDTO) {
  76. Records records = productService.queryConcernProduct(productDTO);
  77. return Response.success(records);
  78. }
  79. }