From a606bc5b0af6bc85b8ce2bca66a1d74fac3751b7 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 22 七月 2024 17:19:09 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0 --- ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysRedPacketRecordController.java | 32 ++++++++++++++++++++++++++------ 1 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysRedPacketRecordController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysRedPacketRecordController.java index 94601f7..a508eec 100644 --- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysRedPacketRecordController.java +++ b/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") -- Gitblit v1.7.1