diff --git a/src/main/java/com/example/demo/controller/ProductController.java b/src/main/java/com/example/demo/controller/ProductController.java index ddb45bc..5f14dd6 100644 --- a/src/main/java/com/example/demo/controller/ProductController.java +++ b/src/main/java/com/example/demo/controller/ProductController.java @@ -1,6 +1,7 @@ package com.example.demo.controller; +import com.example.demo.domain.entity.Index; import com.example.demo.domain.entity.Product; import com.example.demo.domain.vo.Result; import com.example.demo.sevice.ProductService; @@ -23,4 +24,8 @@ public class ProductController { public Result add(@RequestBody Product product){ return Result.success(productService.add(product)); } + @PostMapping("/index") + public Result index(@RequestBody Index index){ + return Result.success(productService.findIndex(index)); + } } diff --git a/src/main/java/com/example/demo/domain/entity/Index.java b/src/main/java/com/example/demo/domain/entity/Index.java new file mode 100644 index 0000000..0233802 --- /dev/null +++ b/src/main/java/com/example/demo/domain/entity/Index.java @@ -0,0 +1,22 @@ +package com.example.demo.domain.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Index { + private Integer indexId; + private BigDecimal price; + private String name; + private String remark; + private Integer type; + private Integer productFlag; + private Date createTime; + private String token; +} diff --git a/src/main/java/com/example/demo/domain/entity/Product.java b/src/main/java/com/example/demo/domain/entity/Product.java index f67e128..83cdce8 100644 --- a/src/main/java/com/example/demo/domain/entity/Product.java +++ b/src/main/java/com/example/demo/domain/entity/Product.java @@ -14,12 +14,9 @@ public class Product { private int productId; private BigDecimal price; private String name; - private Date listed_time; - private Date down_time; private String remark; - private String subjects; - private String type; - private String productFlag; + private Integer type; + private Integer productFlag; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; private String token; diff --git a/src/main/java/com/example/demo/mapper/ProductMapper.java b/src/main/java/com/example/demo/mapper/ProductMapper.java index fb51f82..521e478 100644 --- a/src/main/java/com/example/demo/mapper/ProductMapper.java +++ b/src/main/java/com/example/demo/mapper/ProductMapper.java @@ -1,6 +1,7 @@ package com.example.demo.mapper; +import com.example.demo.domain.entity.Index; import com.example.demo.domain.entity.Product; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -10,6 +11,8 @@ import java.util.List; @Mapper public interface ProductMapper { + List findIndex(Index index); + int add(Product product); @Select({ diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index 64467e2..6a1118e 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -76,14 +76,30 @@ public class ConsumeServiceImpl implements ConsumeService { boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); // 根据月份更新 free6 或 free12 - if (isBeforeJune||isJune) { - // 如果是六月前,更新 free6 - BigDecimal free6 = userGold.getFree6().add(freeGold1); - userGold.setFree6(free6); + if (isBeforeJune || isJune) { + // 如果是六月前,优先扣减 free6 + BigDecimal free6 = userGold.getFree6(); + if (free6.add(freeGold1).compareTo(BigDecimal.ZERO) >= 0) { + // 如果 free6 足够扣减,直接扣减 + userGold.setFree6(free6.add(freeGold1)); + } else { + // 如果 free6 不足,扣减 free6 到 0,剩余部分从 free12 扣减 + BigDecimal remaining = free6.add(freeGold1); // 剩余需要扣减的金币 + userGold.setFree6(BigDecimal.ZERO); // 将 free6 归零 + userGold.setFree12(userGold.getFree12().add(remaining)); // 从 free12 扣减剩余部分 + } } else if (isAfterJune) { - // 如果是六月后,更新 free12 - BigDecimal free12 = userGold.getFree12().add(freeGold1); - userGold.setFree12(free12); + // 如果是六月后,优先扣减 free12 + BigDecimal free12 = userGold.getFree12(); + if (free12.add(freeGold1).compareTo(BigDecimal.ZERO) >= 0) { + // 如果 free12 足够扣减,直接扣减 + userGold.setFree12(free12.add(freeGold1)); + } else { + // 如果 free12 不足,扣减 free12 到 0,剩余部分从 free6 扣减 + BigDecimal remaining = free12.add(freeGold1); // 剩余需要扣减的金币 + userGold.setFree12(BigDecimal.ZERO); // 将 free12 归零 + userGold.setFree6(userGold.getFree6().add(remaining)); // 从 free6 扣减剩余部分 + } } // 设置更新后的Sumgold回到user对象 diff --git a/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java index dd017fe..2a5a990 100644 --- a/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java @@ -1,6 +1,7 @@ package com.example.demo.serviceImpl; +import com.example.demo.domain.entity.Index; import com.example.demo.domain.entity.Product; import com.example.demo.mapper.ProductMapper; import com.example.demo.sevice.ProductService; @@ -27,4 +28,9 @@ public class ProductServiceImpl implements ProductService { public List findAll(Product product) { return productMapper.findAll(product); } + + @Override + public List findIndex(Index index) { + return productMapper.findIndex(index); + } } diff --git a/src/main/java/com/example/demo/sevice/ProductService.java b/src/main/java/com/example/demo/sevice/ProductService.java index 053a79f..f1438f3 100644 --- a/src/main/java/com/example/demo/sevice/ProductService.java +++ b/src/main/java/com/example/demo/sevice/ProductService.java @@ -1,6 +1,7 @@ package com.example.demo.sevice; +import com.example.demo.domain.entity.Index; import com.example.demo.domain.entity.Product; import java.util.List; @@ -8,4 +9,5 @@ import java.util.List; public interface ProductService { int add(Product product); List findAll(Product product); + List findIndex(Index index); } diff --git a/src/main/resources/mapper/ProductMapper.xml b/src/main/resources/mapper/ProductMapper.xml index 29af172..91b896b 100644 --- a/src/main/resources/mapper/ProductMapper.xml +++ b/src/main/resources/mapper/ProductMapper.xml @@ -7,4 +7,7 @@ INSERT INTO user (price, name,listed_time,down_time,remark,subjects,type,product_flag,create_time) VALUES (#{price}, #{name},#{listedTime},#{downTime},#{remark},#{subjects},#{type},#{productFlag},#{createTime}) + \ No newline at end of file