|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|