From b5584d4c6e6755bd3e8d6e12806577973628ea00 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 25 Dec 2024 10:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A5=96=E5=8A=B1=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E7=89=87=E6=8F=8F=E8=BF=B0=20?= =?UTF-8?q?=E5=91=A8=E4=BB=BB=E5=8A=A1=E6=8A=BD=E5=8F=96=E4=B8=BA=20?= =?UTF-8?q?=E8=B0=A2=E8=B0=A2=E6=83=A0=E9=A1=BE=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DiscSpinningServiceImpl.java | 25 ++++++++++++------- .../taskCenter/entity/TaskCenterReward.java | 2 ++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java index a07709d9..9cb43b88 100644 --- a/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java +++ b/src/main/java/com/sqx/modules/discSpinning/service/impl/DiscSpinningServiceImpl.java @@ -1,5 +1,6 @@ package com.sqx.modules.discSpinning.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -36,6 +37,7 @@ import org.springframework.transaction.support.DefaultTransactionDefinition; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.concurrent.ThreadLocalRandom; @Slf4j @Service @@ -160,7 +162,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl prizes = baseMapper.selectList(new QueryWrapper().eq("disc_type", source).orderByAsc("odds")); - + if (CollectionUtil.isEmpty(prizes)) { + DiscSpinningRecord record = new DiscSpinningRecord(result.getName(), sourceId, userId, result.getUrl(), result.getType(), + result.getNumber(), DateUtils.formatYMD(new Date()), DateUtils.format(new Date()), source); + recordService.save(record); + return record; + } Random random = new Random(); - double randomDouble; - do { - randomDouble = random.nextDouble(); - } while (randomDouble == 0); - BigDecimal randomNum = new BigDecimal(randomDouble).multiply(new BigDecimal(10000)).divide(new BigDecimal(100)); + BigDecimal maxNumber = prizes.stream() + .map(DiscSpinning::getNumber) + .max(BigDecimal::compareTo) + .orElse(null); + BigDecimal randomNum = new BigDecimal(ThreadLocalRandom.current().nextDouble(0.0001, maxNumber.doubleValue()) * 10000 / 100); List amounts = new ArrayList<>(); Map> amountMaps = redisUtils.getMapData(RedisKeys.getDateKey("spinning:amount"), "setDiscSpinningAmounts", DiscSpinningAmount.class); @@ -222,7 +229,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl { private Long id; @ApiModelProperty("任务Id") private Long taskId; + @ApiModelProperty("图片") + private String img; @ApiModelProperty("奖励名称") private String name; @ApiModelProperty("奖励类型 1 金币 2 现金红包 3 4 5 9 大转盘抽奖次数")