package com.ruoyi.user.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.admin.api.entity.Prize;
|
import com.ruoyi.user.entity.Order;
|
import com.ruoyi.user.mapper.OrderMapper;
|
import com.ruoyi.user.service.OrderService;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
import java.util.Random;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 订单管理 服务实现类
|
* </p>
|
*
|
* @author hjl
|
* @since 2024-06-07
|
*/
|
@Service
|
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
|
|
@Override
|
public Object obtainAllowance(List<Prize> prizeList) {
|
// 过滤中奖概率为空的奖品
|
List<Prize> prizes = prizeList.stream().filter(data -> data.getProbability() != 0).collect(Collectors.toList());
|
// 转盘逻辑
|
double sum = prizes.stream().map(Prize::getProbability).mapToDouble(Double::doubleValue).sum();
|
Prize result = null;
|
for (Prize prize : prizes) {
|
double item = prize.getProbability() / sum;
|
// 随机数对象
|
Random random = new Random();
|
// 生成一个介于0到1之间的随机小数
|
double randomDouble = random.nextDouble();
|
if (item <= randomDouble) {
|
result = prize;
|
break;
|
}
|
}
|
// 抽中的商品
|
return result;
|
}
|
}
|