From 1ecc49046358a94d351d89e6aafaf93341651371 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期三, 23 十月 2019 23:49:00 +0800
Subject: [PATCH] 爬取饿了么邮件

---
 fanli/src/main/java/com/yeshi/fanli/util/elme/ElmeOrderUtil.java |  192 ++++++++++++++++++++++++++++++------------------
 1 files changed, 120 insertions(+), 72 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/elme/ElmeOrderUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/elme/ElmeOrderUtil.java
index f791b77..1f8dcc8 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/elme/ElmeOrderUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/elme/ElmeOrderUtil.java
@@ -1,92 +1,103 @@
 package com.yeshi.fanli.util.elme;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Properties;
+
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.Part;
+import javax.mail.Session;
+import javax.mail.Store;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.yeshi.utils.mail.ShowMail;
 
 import com.yeshi.fanli.entity.elme.ElmeOrder;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.TimeUtil;
 
-import jxl.Sheet;
-import jxl.Workbook;
-
 public class ElmeOrderUtil {
 
-	/**
-	 * 瑙f瀽璁㈠崟锛堜粠杈撳叆娴侊級
-	 * 
-	 * @param input
-	 * @return
-	 */
-	public static List<ElmeOrder> parseOrder(InputStream input) {
+	public static List<ElmeOrder> parseOrder(InputStream is) {
 		List<ElmeOrder> list = new ArrayList<>();
+
+		org.apache.poi.ss.usermodel.Workbook wb = null;
 		try {
-			jxl.Workbook rwb = Workbook.getWorkbook(input);
-			Sheet sheet = rwb.getSheet(0);
-			for (int r = 1; r < sheet.getRows(); r++) {
-				ElmeOrder order = new ElmeOrder();
-				for (int c = 0; c < sheet.getColumns(); c++) {
-					String content = sheet.getCell(c, r).getContents();
-					String columnName = sheet.getCell(c, 0).getContents().trim();
-					switch (columnName) {
-					case "娓犻亾鍙�":
-						order.setChannelId(content);
-						break;
-					case "娓犻亾鍚嶇О":
-						order.setChannelName(content);
-						break;
-					case "track_pid":
-						order.setTrackPid(content);
-						break;
-					case "rid":
-						order.setRid(content);
-						break;
-					case "璁㈠崟鏃ユ湡":
-						order.setOrderDate(new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd")));
-						break;
-					case "璁㈠崟鍙�":
-						order.setOrderId(content.replace("<", "").replace(">", ""));
-						break;
-					case "鏀粯閲戦":
-						order.setPayMoney(new BigDecimal(content));
-						break;
-					case "涓嬪崟鍩庡競":
-						order.setCity(content);
-						break;
-					case "鐢ㄥ埜閲戦":
-						order.setCouponMoney(new BigDecimal(content));
-						break;
-					case "鏄惁鏂板棣栧崟":
-						order.setNewerFirstOrder(Integer.parseInt(content));
-						break;
-					case "鏄惁鏂板澶嶈喘鍗�":
-						order.setNewerRepayOrder(Integer.parseInt(content));
-						break;
-					case "鏄惁浣跨敤娣樺绾㈠寘":
-						order.setTaokeHongBao(Integer.parseInt(content));
-						break;
-					case "鏄惁鏈夊湪浼氬満鍐呰闂ㄥ簵鐨勭偣鍑昏褰�":
-						order.setShopClick(Integer.parseInt(content));
-						break;
-					case "鏄惁棰嗗埜鍚�7澶╁唴棣栧崟":
-						order.setRecieveCoupon7DayFirstOrder(Integer.parseInt(content));
-						break;
-					case "鏄惁6缁撲剑":
-						if ("鏄�".equalsIgnoreCase(content))
-							order.setIsSettle(true);
-						else
-							order.setIsSettle(false);
-						break;
-					}
-				}
-				list.add(order);
-			}
-			rwb.close();
-		} catch (Exception e) {
+			wb = new XSSFWorkbook(is);
+		} catch (IOException e) {
 			e.printStackTrace();
+		}
+		// 寮�濮嬭В鏋�
+		org.apache.poi.ss.usermodel.Sheet sheet = wb.getSheetAt(0);
+
+		Row firstRow = sheet.getRow(0);
+		for (int r = 1; r <= sheet.getLastRowNum(); r++) {
+			ElmeOrder order = new ElmeOrder();
+			Row row = sheet.getRow(r);
+			for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) {
+				String content = row.getCell(c).toString().trim();
+				String columnName = firstRow.getCell(c).getStringCellValue().trim();
+				switch (columnName) {
+				case "娓犻亾鍙�":
+					order.setChannelId(content);
+					break;
+				case "娓犻亾鍚嶇О":
+					order.setChannelName(content);
+					break;
+				case "track_pid":
+					order.setTrackPid(content);
+					break;
+				case "rid":
+					order.setRid(content);
+					break;
+				case "璁㈠崟鏃ユ湡":
+					order.setOrderDate(new Date(TimeUtil.convertToTimeTemp(content, "yyyy-MM-dd")));
+					break;
+				case "璁㈠崟鍙�":
+					order.setOrderId(content.replace("<", "").replace(">", ""));
+					break;
+				case "鏀粯閲戦":
+					order.setPayMoney(new BigDecimal(content));
+					break;
+				case "涓嬪崟鍩庡競":
+					order.setCity(content);
+					break;
+				case "鐢ㄥ埜閲戦":
+					order.setCouponMoney(new BigDecimal(content));
+					break;
+				case "鏄惁鏂板棣栧崟":
+					order.setNewerFirstOrder(Integer.parseInt(content));
+					break;
+				case "鏄惁鏂板澶嶈喘鍗�":
+					order.setNewerRepayOrder(Integer.parseInt(content));
+					break;
+				case "鏄惁浣跨敤娣樺绾㈠寘":
+					order.setTaokeHongBao(Integer.parseInt(content));
+					break;
+				case "鏄惁鏈夊湪浼氬満鍐呰闂ㄥ簵鐨勭偣鍑昏褰�":
+					order.setShopClick(Integer.parseInt(content));
+					break;
+				case "鏄惁棰嗗埜鍚�7澶╁唴棣栧崟":
+					order.setRecieveCoupon7DayFirstOrder(Integer.parseInt(content));
+					break;
+				case "鏄惁6缁撲剑":
+					if ("鏄�".equalsIgnoreCase(content))
+						order.setIsSettle(true);
+					else
+						order.setIsSettle(false);
+					break;
+				}
+			}
+			list.add(order);
 		}
 		return list;
 	}
@@ -95,4 +106,41 @@
 		return MoneyBigDecimalUtil.mul(payMoney, new BigDecimal("0.06"));
 	}
 
+	public static List<ElmeOrder> pullLatest5DayOrder() {
+		List<ElmeOrder> totalOrderList = new ArrayList<>();
+		String host = "pop.qq.com";
+		String username = "2780501319@qq.com";
+		String password = "dbltidaeknumdgfd";
+		Properties props = new Properties();
+		Session session = Session.getDefaultInstance(props, null);
+		try {
+			Store store = session.getStore("pop3");
+			store.connect(host, username, password);
+			Folder folder = store.getFolder("INBOX");
+			folder.open(Folder.READ_ONLY);
+			Message message[] = folder.getMessages();
+			List<Message> list = Arrays.asList(message);
+			int count = 0;
+			for (int i = list.size() - 1; i >= 0; i--) {
+				ShowMail showMail = new ShowMail((MimeMessage) list.get(i));
+				if ("qiuming.wu<qiuming.wu@ele.me>".equalsIgnoreCase(showMail.getFrom())) {
+					if (count++ > 4)
+						break;
+					boolean attch = showMail.isContainAttach((Part) list.get(i));
+					if (attch) {
+						List<InputStream> attchList = showMail.saveAttachMent((Part) list.get(i));
+						if (attchList.size() > 0) {
+							List<ElmeOrder> orderList = ElmeOrderUtil.parseOrder(attchList.get(0));
+							if (orderList != null && orderList.size() > 0)
+								totalOrderList.addAll(orderList);
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return totalOrderList;
+	}
+
 }

--
Gitblit v1.8.0