From 4498c12409489ef9e39239e222dde26b503cf7cd Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 13 Jan 2025 16:52:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AC=E7=9B=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DiscSpinningController.java | 21 +++++++++++++------ .../discSpinning/entity/DiscSpinning.java | 3 +++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java index 7c0de016..f4fe083a 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -54,7 +54,7 @@ public class DiscSpinningController { public DiscSpinningController(CommonInfoService commonRepository, DiscSpinningService discSpinningService, OrdersService ordersService, DiscSpinningRecordService recordService, TaskCenterService taskCenterService, UserService userService, RedisUtils redisUtils, - TaskCenterRecordService taskRecordService,UserInfoService userInfoService) { + TaskCenterRecordService taskRecordService, UserInfoService userInfoService) { this.commonRepository = commonRepository; this.discSpinningService = discSpinningService; this.ordersService = ordersService; @@ -100,14 +100,23 @@ public class DiscSpinningController { @PostMapping("/discSpinning/updateDiscSpinning") @ApiOperation("修改大转盘") public Result updateDiscSpinning(@RequestBody DiscSpinning discSpinning) { - discSpinningService.updateById(discSpinning); - +// DiscSpinning current = discSpinningService.getById(discSpinning.getId()); List prizes = discSpinningService.list(new QueryWrapper().eq("disc_type", discSpinning.getDiscType()).orderByAsc("type", "id")); + List upPrizes = new ArrayList<>(); BigDecimal number = BigDecimal.ZERO; + boolean isUp = false; for (DiscSpinning prize : prizes) { + //当前 + if (discSpinning.getId().equals(prize.getId())) { + isUp = true; + } number = number.add(prize.getOdds()); prize.setNumber(number); + if (isUp) { + upPrizes.add(prize); + } } + BigDecimal totalOdds = prizes.stream() .map(DiscSpinning::getOdds) .filter(Objects::nonNull) @@ -115,7 +124,7 @@ public class DiscSpinningController { if (totalOdds.compareTo(new BigDecimal(100)) > 0) { return Result.error("中奖概率总和 不可超过100"); } - discSpinningService.updateBatchById(prizes); + discSpinningService.updateBatchById(upPrizes); return Result.success(); } @@ -180,7 +189,7 @@ public class DiscSpinningController { Integer i = recordService.countDraw(userId); if ((i != null && i.equals(2)) || !source.equals(1)) { boolean auth = userInfoService.isAuth(userId); - if(!auth) { + if (!auth) { return Result.error("剩余抽奖活动需要实名认证后进行"); } } @@ -235,7 +244,7 @@ public class DiscSpinningController { if (source == 1 && sourceId == null) { throw new CzgException("异常请求"); } - if(sourceId == null){ + if (sourceId == null) { return Result.error("请求失败,请联系管理员"); } if (DataLimitUtil.isAllowed(RedisKeys.getDateKey("spinning:draw:") + sourceId, 120)) { diff --git a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java index 53d217e7..56cdf00e 100644 --- a/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java +++ b/src/main/java/com/sqx/modules/discSpinning/entity/DiscSpinning.java @@ -2,6 +2,8 @@ package com.sqx.modules.discSpinning.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import java.math.BigDecimal; @@ -16,6 +18,7 @@ import java.math.BigDecimal; @TableName("disc_spinning") public class DiscSpinning extends Model { //主键 + @JsonSerialize(using = ToStringSerializer.class) private Long id; //图标 private String url;