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 |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 112 insertions(+), 2 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 fd0f70a..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
@@ -6,8 +6,13 @@
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.shiro.ShiroKit;
+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.UserRedPacketRecord;
+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;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -19,8 +24,8 @@
 import com.stylefeng.guns.modular.system.model.SysRedPacketRecord;
 import com.stylefeng.guns.modular.system.service.ISysRedPacketRecordService;
 
-import java.util.Date;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * 控制器
@@ -36,6 +41,17 @@
 
     @Autowired
     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";
+    }
+
 
     /**
      * 跳转到首页
@@ -43,6 +59,11 @@
     @RequestMapping("")
     public String index() {
         return PREFIX + "sysRedPacketRecord.html";
+    }
+
+    @RequestMapping("/tUser")
+    public String tUser() {
+        return PREFIX + "tUser.html";
     }
 
     /**
@@ -64,6 +85,95 @@
         return PREFIX + "sysRedPacketRecord_edit.html";
     }
 
+
+    @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{//随机金额
+//                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||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 = 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();
+            userRedPacketRecord.setMoney(money);
+            userRedPacketRecord.setRemainingAmount(money);
+            userRedPacketRecord.setInsertTime(new Date());
+            userRedPacketRecord.setCompanyId(1);
+            userRedPacketRecord.setState(1);
+            userRedPacketRecord.setOrderId(null);
+            userRedPacketRecord.setRedPacketActivityId(redId);
+//            userRedPacketRecord.setOrderType(3);
+            userRedPacketRecord.setUserId(Integer.valueOf(s));
+            userRedPacketRecordService.insert(userRedPacketRecord);
+        }
+        }
+        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