ソースを参照

feat: 完成了创建商品的功能

DingXiaoYu 2 年 前
コミット
492d9c2c8d

+ 23 - 0
src/main/java/com/seecoder/BlueWhale/Controller/ProductController.java

@@ -0,0 +1,23 @@
+package com.seecoder.BlueWhale.Controller;
+
+import com.seecoder.BlueWhale.Service.ProductService;
+import com.seecoder.BlueWhale.VO.ProductVO;
+import com.seecoder.BlueWhale.VO.ResultVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api/product")
+public class ProductController {
+
+    @Autowired
+    ProductService productService;
+
+    @PostMapping("/create")
+    public ResultVO<Boolean> create(@RequestBody ProductVO productVO){
+        return ResultVO.buildSuccess(productService.create(productVO));
+    }
+}

+ 5 - 0
src/main/java/com/seecoder/BlueWhale/Enums/CategoryEnum.java

@@ -0,0 +1,5 @@
+package com.seecoder.BlueWhale.Enums;
+
+public enum CategoryEnum {
+    FOOD,CLOTHES,FURNITURE,ELECTRONICS,ENTERTAINMENT,SPORTS,LUXURY;
+}

+ 7 - 0
src/main/java/com/seecoder/BlueWhale/Mapper/ProductMapper.java

@@ -0,0 +1,7 @@
+package com.seecoder.BlueWhale.Mapper;
+
+import com.seecoder.BlueWhale.PO.Product;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface ProductMapper extends JpaRepository<Product, Integer> {
+}

+ 73 - 0
src/main/java/com/seecoder/BlueWhale/PO/Product.java

@@ -0,0 +1,73 @@
+package com.seecoder.BlueWhale.PO;
+
+import com.seecoder.BlueWhale.Enums.CategoryEnum;
+import com.seecoder.BlueWhale.VO.ProductVO;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@Entity
+public class Product {
+
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Id
+    @Column(name = "id")
+    private Integer id;
+
+    @Basic
+    @Column(name = "store_id")
+    private Integer storeId;
+
+    @Basic
+    @Column(name = "rating")
+    private Double rating;
+
+    @Basic
+    @Column(name = "number")
+    private Integer number;
+
+    @ElementCollection(fetch = FetchType.EAGER)
+    private List<String> photoUrlList;
+
+    @Basic
+    @Column(name = "name")
+    private String name;
+
+    @Basic
+    @Column(name = "sales_amount")
+    private Integer salesAmount;
+
+    @Basic
+    @Column(name = "stock")
+    private Integer stock;
+
+    @Basic
+    @Column(name = "price")
+    private Double price;
+
+    @Basic
+    @Column(name = "category")
+    @Enumerated(EnumType.STRING)
+    private CategoryEnum category;
+
+    public ProductVO toVO(){
+        ProductVO productVO=new ProductVO();
+        productVO.setCategory(this.category);
+        productVO.setName(this.name);
+        productVO.setId(this.id);
+        productVO.setPrice(this.price);
+        productVO.setNumber(this.number);
+        productVO.setRating(this.rating);
+        productVO.setStock(this.stock);
+        productVO.setStoreId(this.storeId);
+        productVO.setSalesAmount(this.salesAmount);
+        productVO.setPhotoUrlList(this.photoUrlList);
+        return productVO;
+    }
+}

+ 2 - 0
src/main/java/com/seecoder/BlueWhale/PO/User.java

@@ -52,12 +52,14 @@ public class User {
 
     public UserVO toVO(){
         UserVO userVO=new UserVO();
+        userVO.setId(this.id);
         userVO.setAddress(this.address);
         userVO.setName(this.name);
         userVO.setRole(this.role);
         userVO.setStoreId(this.storeId);
         userVO.setPhone(this.phone);
         userVO.setPassword(this.password);
+        userVO.setCreateTime(this.createTime);
         return userVO;
     }
 }

+ 7 - 0
src/main/java/com/seecoder/BlueWhale/Service/ProductService.java

@@ -0,0 +1,7 @@
+package com.seecoder.BlueWhale.Service;
+
+import com.seecoder.BlueWhale.VO.ProductVO;
+
+public interface ProductService {
+    Boolean create(ProductVO productVO);
+}

+ 24 - 0
src/main/java/com/seecoder/BlueWhale/ServiceImpl/ProductServiceImpl.java

@@ -0,0 +1,24 @@
+package com.seecoder.BlueWhale.ServiceImpl;
+
+import com.seecoder.BlueWhale.Mapper.ProductMapper;
+import com.seecoder.BlueWhale.PO.Product;
+import com.seecoder.BlueWhale.Service.ProductService;
+import com.seecoder.BlueWhale.VO.ProductVO;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class ProductServiceImpl implements ProductService {
+
+    @Autowired
+    ProductMapper productMapper;
+
+    @Override
+    public Boolean create(ProductVO productVO) {
+        Product product=productVO.toPO();
+        product.setSalesAmount(0);
+        product.setStock(0);
+        product.setNumber(0);
+        product.setRating(0.0);
+        productMapper.save(product);
+        return true;
+    }
+}

+ 2 - 0
src/main/java/com/seecoder/BlueWhale/ServiceImpl/StoreServiceImpl.java

@@ -25,6 +25,8 @@ public class StoreServiceImpl implements StoreService {
             throw BlueWhaleException.nameAlreadyExists();
         }
         Store newStore = storeVO.toPO();
+        newStore.setRating(0.0);
+        newStore.setNumber(0);
         storeMapper.save(newStore);
         return true;
     }

+ 50 - 0
src/main/java/com/seecoder/BlueWhale/VO/ProductVO.java

@@ -0,0 +1,50 @@
+package com.seecoder.BlueWhale.VO;
+
+import com.seecoder.BlueWhale.Enums.CategoryEnum;
+import com.seecoder.BlueWhale.PO.Product;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.util.List;
+
+@Getter
+@Setter
+@NoArgsConstructor
+public class ProductVO {
+
+    private Integer id;
+
+    private Integer storeId;
+
+    private Double rating;
+
+    private Integer number;
+
+    private List<String> photoUrlList;
+
+    private String name;
+
+    private Integer salesAmount;
+
+    private Integer stock;
+
+    private Double price;
+
+    private CategoryEnum category;
+
+    public Product toPO(){
+        Product product=new Product();
+        product.setCategory(this.category);
+        product.setId(this.id);
+        product.setPrice(this.price);
+        product.setName(this.name);
+        product.setNumber(this.number);
+        product.setRating(this.rating);
+        product.setStock(this.stock);
+        product.setStoreId(this.storeId);
+        product.setSalesAmount(this.salesAmount);
+        product.setPhotoUrlList(this.photoUrlList);
+        return product;
+    }
+}

+ 8 - 0
src/main/java/com/seecoder/BlueWhale/VO/UserVO.java

@@ -6,11 +6,15 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import java.util.Date;
+
 @Getter
 @Setter
 @NoArgsConstructor
 public class UserVO {
 
+    private Integer id;
+
     private String name;
 
     private String phone;
@@ -23,14 +27,18 @@ public class UserVO {
 
     private RoleEnum role;
 
+    private Date createTime;
+
     public User toPO(){
         User user=new User();
+        user.setId(this.id);
         user.setAddress(this.address);
         user.setName(this.name);
         user.setPhone(this.phone);
         user.setRole(this.role);
         user.setStoreId(this.storeId);
         user.setPassword(this.password);
+        user.setCreateTime(this.createTime);
         return user;
     }
 }