ezhizao_zx 3 bulan lalu
induk
melakukan
266284806a

+ 6 - 0
pom.xml

@@ -294,6 +294,12 @@
             <version>${poi.version}</version>
         </dependency>
 
+        <!-- email -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-mail</artifactId>
+        </dependency>
+
         <!-- velocity代码生成使用模板 -->
         <dependency>
             <groupId>org.apache.velocity</groupId>

+ 39 - 0
src/main/java/cn/ezhizao/framework/task/RyTask.java

@@ -4,6 +4,7 @@ package cn.ezhizao.framework.task;
 import cn.ezhizao.common.utils.StringUtils;
 import cn.ezhizao.framework.qrCode.QcContent;
 import cn.ezhizao.framework.qrCode.QrCodeService;
+import cn.ezhizao.framework.web.domain.Server;
 import cn.ezhizao.project.business.carrier.domain.BizCarrier;
 import cn.ezhizao.project.business.carrier.service.IBizCarrierService;
 import cn.ezhizao.project.business.equipment.domain.BizEquipmentDetail;
@@ -12,8 +13,11 @@ import cn.ezhizao.project.business.message.domain.BizMessage;
 import cn.ezhizao.project.business.message.service.IBizMessageService;
 import cn.ezhizao.project.business.packageResourceGroup.domain.BizPackageResourceGroup;
 import cn.ezhizao.project.business.packageResourceGroup.service.IBizPackageResourceGroupService;
+import cn.ezhizao.project.system.service.ISysConfigService;
+import cn.ezhizao.project.tool.email.service.EmailService;
 import cn.ezhizao.project.websocket.WebSocketUser;
 import cn.hutool.core.date.DateTime;
+import com.alibaba.nacos.api.config.ConfigService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.beans.factory.annotation.Value;
@@ -21,6 +25,7 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -137,6 +142,40 @@ public class RyTask {
         WebSocketUser.sendEmptyMessage(messages.stream().map(BizMessage::getToUserId).collect(Collectors.toList()));
     }
 
+    @Resource
+    EmailService emailService;
+    @Resource
+    ISysConfigService sysConfigService;
+
+    public void checkRemainStorage() throws Exception {
+        // 获取存储余量
+        Server server = new Server();
+        server.copyTo();
+//        String free = server.getSysFiles().get(0).getFree();
+//        BigDecimal freeSpace = BigDecimal.valueOf(Double.parseDouble(free.substring(0, free.length() - 1)));
+//        String total = server.getSysFiles().get(0).getTotal();
+//        BigDecimal totalSpace = BigDecimal.valueOf(Double.parseDouble(total.substring(0, total.length() - 1)));
+        // 判断存储余量
+        String config = sysConfigService.selectConfigByKey("storage_alarm");
+        try {
+            if (config != null && Double.parseDouble(config) > 0) {
+                BigDecimal storageAlarm = BigDecimal.valueOf(Double.parseDouble(config));
+                BigDecimal usage = BigDecimal.valueOf(server.getSysFiles().get(0).getUsage());
+//                BigDecimal storageAlarmSpace = totalSpace.multiply(storageAlarm);
+                if (usage.compareTo(storageAlarm) < 0) {
+                    emailService.sendEmail("linliaoyouyin@163.com", "存储余量预警值参数设置小于0或大于1", "120.46.159.136服务器存储剩余空间" + server.getSysFiles().get(0).getFree());
+                }
+            } else {
+                // 发送邮件通知管理员
+                emailService.sendEmail("linliaoyouyin@163.com", "存储余量预警值参数错误", "存储余量预警值设置为" + config + "小于0或大于1");
+            }
+        } catch (NumberFormatException e) {
+            // 发送邮件通知管理员
+            emailService.sendEmail("linliaoyouyin@163.com", "存储余量预警值参数错误", "存储余量预警值设置为" + config + "为非数字,设置错误。请重新设置。");
+        }
+
+    }
+
     /** 原始二维码生成方法,生成JSON格式
      * public <T> void  GenerateQcCode(T t) throws JsonProcessingException {
      *         String className = t.getClass().getName();

+ 20 - 0
src/main/java/cn/ezhizao/project/tool/email/service/EmailService.java

@@ -0,0 +1,20 @@
+package cn.ezhizao.project.tool.email.service;
+
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class EmailService {
+    @Resource
+    private JavaMailSender javaMailSender;
+    public void sendEmail(String to, String subject, String text) {
+        SimpleMailMessage message = new SimpleMailMessage();
+        message.setTo(to);
+        message.setSubject(subject);
+        message.setText(text);
+        javaMailSender.send(message);
+    }
+}