抽奖 终版

This commit is contained in:
wangw 2025-01-13 18:19:48 +08:00
parent d8b4e2c731
commit d650d3b44e
4 changed files with 15 additions and 5 deletions

View File

@ -53,6 +53,7 @@ public class ShiroConfig {
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/search/**", "anon");
filterMap.put("/cashOutAudit/batchCashOutOrder", "anon");
filterMap.put("/app/discSpinning/receive1", "anon");
filterMap.put("/**", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap);

View File

@ -274,6 +274,12 @@ public class DiscSpinningController {
return Result.success().put("data", 1);
}
@ApiOperation("大转盘奖项领取")
@RequestMapping("/app/discSpinning/receive1")
public Result receive1() {
DiscSpinningRecord draws = discSpinningService.draws(1, 0, 1876099750242897979L, 1073589141326935825L, 2);
return Result.success().put("data", draws);
}
}

View File

@ -113,10 +113,12 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
BigDecimal randomNum = new BigDecimal(RandomUtil.randomDouble(0.01, maxNumber.doubleValue()));
List<DiscSpinningAmount> amounts = new ArrayList<>();
Map<String, List<DiscSpinningAmount>> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount:") + source, "setDiscSpinningAmounts", DiscSpinningAmount.class);
for (int i = drawCount; i >= 0; i--) {
if (amountMaps.containsKey(i + "")) {
amounts = amountMaps.get(i + "");
break;
if(CollectionUtil.isNotEmpty(amountMaps)){
for (int i = drawCount; i >= 0; i--) {
if (amountMaps.containsKey(i + "")) {
amounts = amountMaps.get(i + "");
break;
}
}
}
for (DiscSpinning prize : prizes) {
@ -149,6 +151,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
if (source != 1) {
result = prize;
result.setNumber(BigDecimal.ONE);
break;
}
}
}

View File

@ -48,7 +48,7 @@ public class RedisServiceImpl implements RedisService {
public void setDiscSpinningAmounts(String key) {
List<DiscSpinningAmount> amounts = amountService.list(new QueryWrapper<DiscSpinningAmount>()
.eq("status", 1)
.eq("type",key.split(":")[2])
.eq("type",key.split(":")[3])
.orderByAsc("max_amount"));
Map<Integer, List<DiscSpinningAmount>> map =
amounts.stream().collect(Collectors.groupingBy(