|
|
@@ -33,6 +33,7 @@ import org.springblade.sing.goods.vo.HelpGoodsVO;
|
|
|
import org.springblade.sing.point.entity.PointRecord;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
@@ -66,7 +67,7 @@ public class HelpGoodsWrapper extends BaseEntityWrapper<HelpGoods, HelpGoodsVO>
|
|
|
//判断该活动商品兑换剩余次数
|
|
|
long total = helpGoodsVO.getTotal() - appHelpGoodsService.userHelpGoodsExchangeCount(userId, helpGoodsVO.getId());
|
|
|
//判断该用户对该活动投票剩余次数
|
|
|
- if (Long.valueOf(-1).equals(helpGoodsVO.getTotal()) && Long.valueOf(-1).equals(helpGoodsVO.getActiveVote())) {
|
|
|
+ if (Long.valueOf(-1L).equals(helpGoodsVO.getTotal()) && Long.valueOf(-1L).equals(helpGoodsVO.getActiveVote())) {
|
|
|
helpGoodsVO.setRemainCount(-1L);
|
|
|
} else if (0L < total || Long.valueOf(-1).equals(helpGoodsVO.getTotal())) {
|
|
|
Map<String, Object> map = activeHelpRecordService.getMap(Wrappers.<ActiveHelpRecord>query().select(new StringBuilder("ifnull(sum(")
|
|
|
@@ -85,16 +86,16 @@ public class HelpGoodsWrapper extends BaseEntityWrapper<HelpGoods, HelpGoodsVO>
|
|
|
long count = BigDecimal.valueOf(helpGoodsVO.getActiveVote())
|
|
|
.divide(helpGoodsVO.getVotePointRate())
|
|
|
.subtract(BigDecimal.valueOf(MapUtil.getLong(map, "count"))
|
|
|
- .divide(helpGoodsVO.getVotePointRate())).longValue();
|
|
|
+ .divide(helpGoodsVO.getVotePointRate())).setScale(0, RoundingMode.FLOOR).longValue();
|
|
|
//判断道具兑换剩余次数和活动投票剩余次数
|
|
|
if (Long.valueOf(-1).equals(helpGoodsVO.getTotal())) {
|
|
|
helpGoodsVO.setRemainCount(count < 0L ? 0L : count);
|
|
|
} else {
|
|
|
//剩余活动次数 > 道具剩余次数 = 道具剩余次数 || 道具剩余次数 > 剩余活动投票次数 = 剩余活动投票次数
|
|
|
if (count > total) {
|
|
|
- helpGoodsVO.setRemainCount(total < 0 ? 0L : total);
|
|
|
+ helpGoodsVO.setRemainCount(total < 0L ? 0L : total);
|
|
|
} else {
|
|
|
- helpGoodsVO.setRemainCount(count < 0 ? 0L : count);
|
|
|
+ helpGoodsVO.setRemainCount(count < 0L ? 0L : count);
|
|
|
}
|
|
|
}
|
|
|
} else {
|