补偿机制

This commit is contained in:
2024-12-27 16:15:48 +08:00
parent 3a15793bfb
commit fae9df231c
2 changed files with 69 additions and 4 deletions

View File

@@ -31,7 +31,7 @@ import springfox.documentation.annotations.ApiIgnore;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.*;
@Slf4j
@RestController
@@ -47,6 +47,7 @@ public class DiscSpinningController {
private final TaskCenterRecordService taskRecordService;
private final UserService userService;
private final RedisUtils redisUtils;
ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);
@Autowired
public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService,
OrdersService ordersService, DiscSpinningRecordService recordService,
@@ -219,14 +220,24 @@ public class DiscSpinningController {
}
redisUtils.set(redisKey, week, DateUtils.todayAfterSecond());
}
return new Result().put("data",
discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source));
DiscSpinningRecord draws = discSpinningService.draws(i == null ? 1 : i + 1, amount, sourceId, userId, source);
try {
executor.schedule(() -> receive1(draws), 4, TimeUnit.SECONDS);
}finally {
executor.shutdown();
}
return new Result().put("data", draws);
}
@ApiOperation("大转盘奖项领取")
@Debounce(interval = 3000, value = "#receive.id")
@Debounce(interval = 5000, value = "#receive.id")
@PostMapping("/app/discSpinning/receive")
public Result receive(@RequestBody DiscSpinningRecord receive) {
return Result.success().put("data", 1);
}
public Result receive1(@RequestBody DiscSpinningRecord receive) {
DiscSpinningRecord record = recordService.getById(receive.getId());
if (record.getTargetId() != null) {
return Result.error("不可重复领取");
@@ -243,5 +254,6 @@ public class DiscSpinningController {
}
return Result.success().put("data", res);
}
}