From 324a9760de164a4339120fd89402478403597f84 Mon Sep 17 00:00:00 2001 From: huangqizhen Date: Tue, 25 Mar 2025 14:50:09 +0800 Subject: [PATCH] =?UTF-8?q?3.25=20=E6=B6=88=E8=B4=B9=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=85=8D=E8=B4=B9=E9=87=91=E5=B8=81=E5=87=8F=E5=B0=91=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/ProductController.java | 5 ++++ .../java/com/example/demo/domain/entity/Index.java | 22 ++++++++++++++++ .../com/example/demo/domain/entity/Product.java | 7 ++--- .../com/example/demo/mapper/ProductMapper.java | 3 +++ .../demo/serviceImpl/ConsumeServiceImpl.java | 30 +++++++++++++++++----- .../demo/serviceImpl/ProductServiceImpl.java | 6 +++++ .../com/example/demo/sevice/ProductService.java | 2 ++ src/main/resources/mapper/ProductMapper.xml | 3 +++ 8 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/example/demo/domain/entity/Index.java 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