无关风月
2024-07-22 a606bc5b0af6bc85b8ce2bca66a1d74fac3751b7
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysRedPacketRecordController.java
@@ -25,10 +25,7 @@
import com.stylefeng.guns.modular.system.service.ISysRedPacketRecordService;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import java.util.Random;
import java.util.*;
/**
 * 控制器
@@ -95,10 +92,29 @@
        System.err.println("========="+ids+"======="+redId);
        Double money = 0D;
        SysRedPacketRecord sysRedPacketRecord = sysRedPacketRecordService.selectById(redId);
        List<UserRedPacketRecord> redPacketActivityId = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("redPacketActivityId", redId));
        double totalRemainingAmount = redPacketActivityId.stream()
                .mapToDouble(UserRedPacketRecord::getRemainingAmount)
                .sum();
        //还可发放的金额
        double v = sysRedPacketRecord.getTotalMoney().doubleValue() - totalRemainingAmount;
        if(null != sysRedPacketRecord){
            Integer type = sysRedPacketRecord.getType();
            if(type == 1){//固定金额
                money = Double.valueOf(String.valueOf(sysRedPacketRecord.getMoney()));
                //计算剩余金额是否够
                if (v <= 0){
                    return ResultUtil.error("当前红包剩余金额不足");
                }
            }
//            else{//随机金额
@@ -113,7 +129,7 @@
        }
        String[] split = ids.split(",");
        for (String s : split) {
        if(money > 0){
        if(money > 0||sysRedPacketRecord.getType()!=1){
            if (sysRedPacketRecord.getType()!=1){
                Double startMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getStartMoney()));
                Double endMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getEndMoney()));
@@ -121,6 +137,10 @@
                Random random = new Random();
                int num = random.nextInt(i);
                money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                v=v-money;
                if (v<=0){
                    return ResultUtil.success("当前红包为随机红包,可能有部分用户无法领取",null,"当前红包为随机红包,可能有部分用户无法领取");
                }
            }
            //添加临时红包数据
            UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord();
@@ -136,7 +156,7 @@
            userRedPacketRecordService.insert(userRedPacketRecord);
        }
        }
        return ResultUtil.success();
        return ResultUtil.success("指派成功",null,"当前红包为随机红包,可能有部分用户无法领取");
    }
    @RequestMapping(value = "/user/list")