Quellcode durchsuchen

阅读接口更新
还没完成

tianyunperfect vor 3 Jahren
Ursprung
Commit
18663c00b5

+ 25 - 9
book-server/src/main/java/com/book/server/service/impl/BookServiceImpl.java

@@ -315,20 +315,36 @@ public class BookServiceImpl implements BookService {
             if (count == 0) { // 没有购买记录
                 User user = userMapper.selectByPrimaryKey(bookContentVO.getUserId());
                 //查询免费看点
-                List<Recharge> recharges = rechargeMapper.selectByExample(
-                        RechargeExample.newAndCreateCriteria()
-                                .andUserIdEqualTo(bookContentVO.getUserId())
-                                .andTypeEqualTo("5") // 免费类型
-                                .andCreatetimeGreaterThan(DateUtils.get3DayAgo())
-                                .example()
-                );
+                RechargeExample example = RechargeExample.newAndCreateCriteria()
+                        .andUserIdEqualTo(bookContentVO.getUserId())
+                        .andFreeEndtimeGreaterThan(DateUtils.getNow())
+                        .andRemainFreeKandianGreaterThan(0)
+                        .example();
+                example.orderBy(Recharge.Column.freeEndtime.desc());
+                List<Recharge> recharges = rechargeMapper.selectByExample(example);
                 Integer freeCount = 0;
                 if (recharges != null) {
                     freeCount = recharges.stream().mapToInt(x -> x.getFreeKandian()).sum();
                 }
                 //免费是否足够
-                //if (freeCount > )
-                //免费+充值是否足够
+                if (freeCount > book.getPrice()) {
+                    //扣除一部分免费的 TODO
+
+                } else if (user.getKandian() + freeCount > book.getPrice()) { //免费+充值足够
+                    Integer left = user.getKandian() + freeCount;
+                    if (freeCount != 0) {
+                        left = left - freeCount;
+                        //扣除所有免费 TODO
+
+                    }
+                    //扣除充值的 TODO
+
+
+
+                } else {
+                    return Result.failure(ResultCode.NOMONEY);
+                }
+
 
             }