ProductController.java 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package cn.cslg.pas.controller;
  2. import cn.cslg.pas.common.auth.checkAuth;
  3. import cn.cslg.pas.common.core.base.Constants;
  4. import cn.cslg.pas.common.dto.business.ProductDTO;
  5. import cn.cslg.pas.common.dto.business.UpdateProductDTO;
  6. import cn.cslg.pas.common.model.cronModel.Records;
  7. import cn.cslg.pas.common.model.request.StringRequest;
  8. import cn.cslg.pas.common.utils.Response;
  9. import cn.cslg.pas.domain.business.Product;
  10. import cn.cslg.pas.exception.ConditionException;
  11. import cn.cslg.pas.exception.UnLoginException;
  12. import cn.cslg.pas.exception.XiaoShiException;
  13. import cn.cslg.pas.factorys.businessFactory.Business;
  14. import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
  15. import cn.cslg.pas.service.business.ProductService;
  16. import com.alibaba.fastjson.JSONObject;
  17. import io.swagger.v3.oas.annotations.Operation;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.PostMapping;
  21. import org.springframework.web.bind.annotation.RequestBody;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.RestController;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import java.util.List;
  26. /**
  27. * 产品的controller层
  28. * @Author xiexiang
  29. * @Date 2023/10/27
  30. */
  31. @Slf4j
  32. @RequestMapping(Constants.API_XiaoSHI + "/product")
  33. @RestController
  34. public class ProductController {
  35. @Autowired
  36. private BusinessFactory businessFactory;
  37. @Autowired
  38. private ProductService productService;
  39. @Operation(summary = "查询产品")
  40. @PostMapping("/queryProduct")
  41. public Response queryProduct(@RequestBody StringRequest stringRequest) throws Exception {
  42. Business business = businessFactory.getClass("productService");
  43. Records records = (Records) business.queryMessage(stringRequest);
  44. return Response.success(records);
  45. }
  46. @Operation(summary = "添加产品")
  47. @PostMapping("/addProduct")
  48. public Response addProduct(String product, List<MultipartFile> files) throws Exception {
  49. if (product != null && product != "") {
  50. ProductDTO productDTO = JSONObject.parseObject(product, ProductDTO.class);
  51. Business business = businessFactory.getClass("productService");
  52. Integer id = null;
  53. try {
  54. id = (Integer) business.addMessage(productDTO, files);
  55. } catch (Exception e){
  56. if(e instanceof XiaoShiException){
  57. return Response.error(e.getMessage());
  58. } else if (e instanceof UnLoginException) {
  59. return Response.unLogin(e.getMessage());
  60. } else if (e instanceof ConditionException) {
  61. return Response.conditionError(e.getMessage());
  62. }
  63. }
  64. return Response.success(id);
  65. } else {
  66. return Response.error("网络异常");
  67. }
  68. }
  69. @Operation(summary = "更新产品")
  70. @PostMapping("/updateProduct")
  71. public Response updateProduct(String product, List<MultipartFile> files) throws Exception {
  72. if(product != null){
  73. UpdateProductDTO updateProductDTO = JSONObject.parseObject(product, UpdateProductDTO.class);
  74. Business business = businessFactory.getClass("productService");
  75. business.updateMessage(updateProductDTO, files);
  76. return Response.success(1);
  77. } else {
  78. return Response.error("网络异常");
  79. }
  80. }
  81. @Operation(summary = "删除产品")
  82. @PostMapping("/deleteProduct")
  83. public String deleteProduct(@RequestBody List<Integer> ids) throws Exception {
  84. Business business = businessFactory.getClass("productService");
  85. business.deleteMessage(ids);
  86. return Response.success();
  87. }
  88. }