From adf2ede692b76cf95d0cec80f4087e52d760b219 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期日, 29 九月 2024 17:21:56 +0800
Subject: [PATCH] 修改bug

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysRedPacketRecordController.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 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 a508eec..eeec482 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;
@@ -86,6 +91,13 @@
     }
 
 
+    @Autowired
+    private ITSystemNoticeService systemNoticeService;
+
+    @Autowired
+    private ITUserService userService;
+
+
     @RequestMapping(value = "/direct")
     @ResponseBody
     public ResultUtil direct(String ids, Integer redId) {
@@ -108,8 +120,7 @@
                 money = Double.valueOf(String.valueOf(sysRedPacketRecord.getMoney()));
                 //计算剩余金额是否够
 
-                if (v <= 0){
-
+                if (v-money*ids.split(",").length < 0){
                     return ResultUtil.error("当前红包剩余金额不足");
                 }
 
@@ -135,10 +146,16 @@
                 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);
+                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){
+                if (v<0){
                     return ResultUtil.success("当前红包为随机红包,可能有部分用户无法领取",null,"当前红包为随机红包,可能有部分用户无法领取");
                 }
             }
@@ -150,10 +167,20 @@
             userRedPacketRecord.setCompanyId(1);
             userRedPacketRecord.setState(1);
             userRedPacketRecord.setOrderId(null);
+            // 标记为后台发放的红包
+            userRedPacketRecord.setIsGrant(1);
             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("指派成功",null,"当前红包为随机红包,可能有部分用户无法领取");

--
Gitblit v1.7.1