Browse Source

3.25 消费修复免费金币减少的bug

Huang
huangqizhen 3 months ago
parent
commit
324a9760de
  1. 5
      src/main/java/com/example/demo/controller/ProductController.java
  2. 22
      src/main/java/com/example/demo/domain/entity/Index.java
  3. 7
      src/main/java/com/example/demo/domain/entity/Product.java
  4. 3
      src/main/java/com/example/demo/mapper/ProductMapper.java
  5. 30
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  6. 6
      src/main/java/com/example/demo/serviceImpl/ProductServiceImpl.java
  7. 2
      src/main/java/com/example/demo/sevice/ProductService.java
  8. 3
      src/main/resources/mapper/ProductMapper.xml

5
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));
}
}

22
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;
}

7
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;

3
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<Index> findIndex(Index index);
int add(Product product);
@Select({

30
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对象

6
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<Product> findAll(Product product) {
return productMapper.findAll(product);
}
@Override
public List<Index> findIndex(Index index) {
return productMapper.findIndex(index);
}
}

2
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<Product> findAll(Product product);
List<Index> findIndex(Index index);
}

3
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})
</insert>
<select id="findIndex" resultType="com.example.demo.domain.entity.Index">
SELECT * FROM `index` WHERE type = #{type}
</select>
</mapper>
Loading…
Cancel
Save