From 01d8de48c76467ff3b99b204e66d3ef86506fa52 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期四, 25 七月 2024 18:23:40 +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 | 117 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 99 insertions(+), 18 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 4e7f6a5..1de9759 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 @@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.system.controller.general; +import cn.hutool.system.UserInfo; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; @@ -9,7 +10,11 @@ import com.stylefeng.guns.core.shiro.ShiroUser; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.SinataUtil; +import com.stylefeng.guns.modular.system.model.TSystemNotice; +import com.stylefeng.guns.modular.system.model.TUser; import com.stylefeng.guns.modular.system.model.UserRedPacketRecord; +import com.stylefeng.guns.modular.system.service.ITSystemNoticeService; +import com.stylefeng.guns.modular.system.service.ITUserService; import com.stylefeng.guns.modular.system.service.IUserRedPacketRecordService; import com.stylefeng.guns.modular.system.service.impl.UserServiceImpl; import com.stylefeng.guns.modular.system.util.ResultUtil; @@ -25,10 +30,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.*; /** * 控制器 @@ -46,6 +48,14 @@ private ISysRedPacketRecordService sysRedPacketRecordService; @Autowired private IUserRedPacketRecordService userRedPacketRecordService; + + + @RequestMapping("/redRecord") + public String index( Model model,Integer couponActivityId,Integer activityType) { + model.addAttribute("activityType",activityType); + model.addAttribute("couponActivityId",couponActivityId); + return PREFIX + "userRedRecord.html"; + } /** @@ -81,46 +91,117 @@ } + @Autowired + private ITSystemNoticeService systemNoticeService; + + @Autowired + private ITUserService userService; + + @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())); - }else{//随机金额 - Double startMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getStartMoney())); - Double endMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getEndMoney())); - int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue(); - Random random = new Random(); - int num = random.nextInt(i); - money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + //计算剩余金额是否够 + + if (v-money*ids.split(",").length < 0){ + return ResultUtil.error("当前红包剩余金额不足"); + } + + + } + +// else{//随机金额 +// Double startMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getStartMoney())); +// Double endMoney = Double.valueOf(String.valueOf(sysRedPacketRecord.getEndMoney())); +// int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue(); +// Random random = new Random(); +// int num = random.nextInt(i); +// money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); +// } } 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())); + int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue(); + Random random = new Random(); + int num; + if (!startMoney.equals(endMoney)){ + num = random.nextInt(i); + + }else { + num = 0; + } + 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(); userRedPacketRecord.setMoney(money); + userRedPacketRecord.setRemainingAmount(money); userRedPacketRecord.setInsertTime(new Date()); userRedPacketRecord.setCompanyId(1); - userRedPacketRecord.setState(0); + userRedPacketRecord.setState(1); userRedPacketRecord.setOrderId(null); - userRedPacketRecord.setOrderType(3); + userRedPacketRecord.setRedPacketActivityId(redId); +// userRedPacketRecord.setOrderType(3); userRedPacketRecord.setUserId(Integer.valueOf(s)); userRedPacketRecordService.insert(userRedPacketRecord); + + TUser tUser = userService.selectById(Integer.valueOf(s)); + Integer language = tUser.getLanguage(); + try { + systemNoticeService.addSystemNotice(1, language == 1 ? "您收到一个额度为GHS"+money+"的红包,请查收。" : language == 2 ? "You have received a red envelope with a limit of GHS"+money+". Please check it." : "Vous recevez un paquet rouge avec une limite de ghs+"+money+", veuillez vérifier.", tUser.getId()); + }catch (Exception e){ + e.printStackTrace(); + } + + + } } - return ResultUtil.success(); + return ResultUtil.success("指派成功",null,"当前红包为随机红包,可能有部分用户无法领取"); } + + @RequestMapping(value = "/user/list") + @ResponseBody + public Object list(String createTime,String userName,String userPhone,Integer couponActivityId,Integer activityType,Integer state) { + String beginTime = null; + String endTime = null; + if (SinataUtil.isNotEmpty(createTime)){ + String[] timeArray = createTime.split(" - "); + beginTime = timeArray[0]; + endTime = timeArray[1]; + } + Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); + page.setRecords(sysRedPacketRecordService.getList(page,beginTime,endTime,userName,userPhone,couponActivityId,activityType,state)); + return super.packForBT(page); + } + /** * 获取列表 */ -- Gitblit v1.7.1