Browse Source

生成码发送邮件

luyanwen 3 years ago
parent
commit
e751b3745e

+ 17 - 19
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/infrastructure/mq/GenerateCodeConsumer.java

@@ -2,14 +2,12 @@ package com.abi.qms.platform.infrastructure.mq;
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.file.FileWriter;
+import com.abi.base.foundation.util.JsonUtil;
 import com.abi.qms.platform.dao.entity.*;
 import com.abi.qms.platform.dao.enums.QrFormatUrlEnum;
 import com.abi.qms.platform.dao.enums.QrPackageGenerateStatusEnum;
 import com.abi.qms.platform.dao.enums.QrRepertoryTypeEnum;
-import com.abi.qms.platform.dao.mapper.QrPackageBatchMapper;
-import com.abi.qms.platform.dao.mapper.QrPackageMapper;
-import com.abi.qms.platform.dao.mapper.QrRepertoryMapper;
-import com.abi.qms.platform.dao.mapper.QrRepertorySerialNumberMapper;
+import com.abi.qms.platform.dao.mapper.*;
 import com.abi.qms.platform.dao.tablestore.entity.QrCode;
 import com.abi.qms.platform.dao.vo.result.QrPackageVO;
 import com.abi.qms.platform.dao.vo.result.QrRepertoryColumnVO;
@@ -96,6 +94,9 @@ public class GenerateCodeConsumer {
 	@Autowired
 	private BasicServiceClient basicServiceClient;
 
+	@Autowired
+	private BaseFactoryMapper baseFactoryMapper;
+
 	//生成码数据
 	final List<QrData> qrDataList = new LinkedList<>();
 
@@ -119,15 +120,8 @@ public class GenerateCodeConsumer {
 	@RabbitHandler
 	@RabbitListener(queues = GenerateCodeConsumer.GENERATE_CODE_BY_REPERTORY_QUEUE)
 	public void onMessage(String id, Message message, Channel channel) {
-		if (id.startsWith("\"")) {
-			id = id.substring(1);
-		}
-		if (id.endsWith("\"")) {
-			id = id.substring(0,id.length() - 1);
-		}
-		String str = id;
-		long l = Long.parseLong(str);
-		QrPackageVO qrPackageVO = qrPackageMapper.selectQrPackageDetailById(l);
+        String str = JsonUtil.toBean(id, String.class);
+		QrPackageVO qrPackageVO = qrPackageMapper.selectQrPackageDetailById(Long.parseLong(str));
 		try {
 			// 生成码
 			loopGenerateCode(qrPackageVO);
@@ -226,16 +220,12 @@ public class GenerateCodeConsumer {
 		try{
 			MultipartFile multipartFile = toMultipartFile(file.getPath()+"\\"+zipName, zipName);
 			Object returDat = basicServiceClient.uploadFileOss(multipartFile);
-			String ossUrl = null;
 			if(null != returDat){
 				Map<String,Object> result =(Map<String, Object>)returDat;
-				ossUrl = (String) result.get("data");
+				//放入oss地址
+				qrPackage.setDownloadPath(null == (String) result.get("data") ? null :(String) result.get("data"));
 			}
-
-
-//			String ossUrl = JSONObject.parseObject(JSONObject.toJSONString(result)).getString("data");
 //			//放入oss地址和密码
-			qrPackage.setDownloadPath(ossUrl);
 			qrPackage.setZipPassword(pas);
 			//删除生成文件
 			FileUtil.del(file);
@@ -245,6 +235,14 @@ public class GenerateCodeConsumer {
 
 		//3-更改生成状态为已生成
 		qrPackage.setGenerateStatus(QrPackageGenerateStatusEnum.GENERATE_SUCCESS.getCode());
+		//根据包材厂获取包材厂负责人邮箱
+		QueryWrapper<BaseFactory> baseQuery = new QueryWrapper<>();
+		baseQuery.eq("id", qrPackage.getFactoryCoverId());
+		BaseFactory baseFactory = baseFactoryMapper.selectOne(baseQuery);
+		//发送邮件
+		String aliPath = qrPackage.getDownloadPath().substring(qrPackage.getDownloadPath().lastIndexOf("/") + 1);
+		qrPackageService.sendEmailForQrPackageCreated(baseFactory.getEmail(),qrPackage.getSapOrderNo(),aliPath,qrPackage.getZipPassword());
+		//邮件发送后修改状态
 		qrPackageMapper.updateById(qrPackage);
 	}
 

+ 12 - 16
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/infrastructure/util/SendmailUtil.java

@@ -38,22 +38,28 @@ public class SendmailUtil {
     @Value(value = "${mail.send.authcode}")
     private String authcode;
 
-    private Properties props;
+    private Properties props = new Properties();
+    // 建立会话
+    private MimeMessage message;
     private Session s;
 
     /**
      * 初始化方法
      * @return
      */
-    private void initProps() {
-        if(props!=null){
-            return;
-        }
-
+    public void initProps() {
         props.setProperty("mail.smtp.host", smtp_host);
         props.put("mail.smtp.auth", "true");
         props.put("mail.smtp.port", smtp_port);
         props.put("mail.smtp.starttls.enable", true);
+        s = Session.getDefaultInstance(props, new Authenticator() {
+            @Override
+            protected PasswordAuthentication getPasswordAuthentication() {
+                return new PasswordAuthentication(send_uname, authcode);
+            }
+        });
+        s.setDebug(true);
+        message = new MimeMessage(s);
     }
 
     /**
@@ -67,16 +73,6 @@ public class SendmailUtil {
                                 String receiveUser) {
         //懒加载props
         initProps();
-        //获取session
-        Session s = Session.getDefaultInstance(props, new Authenticator() {
-            @Override
-            protected PasswordAuthentication getPasswordAuthentication() {
-                return new PasswordAuthentication(send_uname, authcode);
-            }
-        });
-        s.setDebug(true);
-        MimeMessage message = new MimeMessage(s);
-
         try {
             // 发件人
             InternetAddress from = new InternetAddress(send_user);