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 | 37 +++++++++++++++++++++++++++---------- 1 files changed, 27 insertions(+), 10 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 a83192a..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.*; /** * 控制器 @@ -92,16 +89,32 @@ @RequestMapping(value = "/direct") @ResponseBody public ResultUtil direct(String ids, Integer redId) { - 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{//随机金额 @@ -116,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())); @@ -124,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(); @@ -131,7 +148,7 @@ userRedPacketRecord.setRemainingAmount(money); userRedPacketRecord.setInsertTime(new Date()); userRedPacketRecord.setCompanyId(1); - userRedPacketRecord.setState(0); + userRedPacketRecord.setState(1); userRedPacketRecord.setOrderId(null); userRedPacketRecord.setRedPacketActivityId(redId); // userRedPacketRecord.setOrderType(3); @@ -139,7 +156,7 @@ userRedPacketRecordService.insert(userRedPacketRecord); } } - return ResultUtil.success(); + return ResultUtil.success("指派成功",null,"当前红包为随机红包,可能有部分用户无法领取"); } @RequestMapping(value = "/user/list") -- Gitblit v1.7.1