| | |
| | | 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.*; |
| | | |
| | | /** |
| | | * 控制器 |
| | |
| | | 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{//随机金额 |
| | |
| | | } |
| | | 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())); |
| | |
| | | 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(); |
| | |
| | | userRedPacketRecordService.insert(userRedPacketRecord); |
| | | } |
| | | } |
| | | return ResultUtil.success(); |
| | | return ResultUtil.success("指派成功",null,"当前红包为随机红包,可能有部分用户无法领取"); |
| | | } |
| | | |
| | | @RequestMapping(value = "/user/list") |