USVISATRAC-48 将自动更新的方法更新到自动程序处理中,便于自动运行

This commit is contained in:
YuCheng Hu 2017-11-07 16:21:58 -05:00
parent 5aa18e8e71
commit d2958bd364

View File

@ -1,6 +1,7 @@
package com.usvisatrack.services;
import java.io.IOException;
import java.net.URL;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -19,7 +20,13 @@ import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.rometools.rome.feed.synd.SyndEntry;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.XmlReader;
import com.usvisatrack.core.dao.model.CheckeeVisa;
import com.usvisatrack.core.dao.model.CmsArticle;
import com.usvisatrack.core.dao.model.CmsArticleOssezContent;
import com.usvisatrack.core.dao.model.ConfApp;
import com.usvisatrack.core.dao.model.SocialMedia;
import com.usvisatrack.core.dao.model.SocialMediaLog;
@ -30,6 +37,7 @@ import com.usvisatrack.core.dao.model.VisaStatusLog;
import com.usvisatrack.core.dao.model.data.VisaEntry;
import com.usvisatrack.core.dao.model.data.VisaStatus;
import com.usvisatrack.core.factories.ConfFactory;
import com.usvisatrack.core.factories.DataFactory;
import com.usvisatrack.core.factories.LogFactory;
import com.usvisatrack.core.factories.SocialMediaFactory;
import com.usvisatrack.core.factories.USFactory;
@ -53,6 +61,8 @@ public class VisaImporter extends DataCrawl {
private static final String CONF_LAST_RUNTIME = VisaImporter.class.getName() + "-lastRuntime";
private static final String CONF_TWITTER_COUNT = VisaImporter.class.getName() + "-twitterCount";
private static final String RSS_URL = "http://rss.ossez.com/public.php?op=rss&id=-2&view-mode=all_articles&key=ofclrs5a01d7c3bdab2";
private static final String TWITTER = "Twitter";
private static final String URL_CHECKEE = "https://www.checkee.info/main.php?dispdate=";
@ -103,8 +113,8 @@ public class VisaImporter extends DataCrawl {
logger.debug("NOT RUN");
}
// SOCIAL MEDIA
SocialMedia();
socialMedia();// SOCIAL MEDIA
rssArticle(); // RSS
processCleanup();
}
@ -204,30 +214,30 @@ public class VisaImporter extends DataCrawl {
String visaClassName = StringUtils.trimToEmpty(tds.get(2).text());
if (StringUtils.isNotBlank(visaClassName)) {
switch (visaClassName) {
case "B1" :
visaClassName = "B-1";
break;
case "B2" :
visaClassName = "B-2";
break;
case "H1" :
visaClassName = "H1-B";
break;
case "H4" :
visaClassName = "H-4";
break;
case "F1" :
visaClassName = "F-1";
break;
case "F2" :
visaClassName = "F-2";
break;
case "J1" :
visaClassName = "J-1";
break;
case "L1" :
visaClassName = "L-1";
break;
case "B1":
visaClassName = "B-1";
break;
case "B2":
visaClassName = "B-2";
break;
case "H1":
visaClassName = "H1-B";
break;
case "H4":
visaClassName = "H-4";
break;
case "F1":
visaClassName = "F-1";
break;
case "F2":
visaClassName = "F-2";
break;
case "J1":
visaClassName = "J-1";
break;
case "L1":
visaClassName = "L-1";
break;
}
visa.setVisaClass(visaClassMap.get(visaClassName));
@ -237,12 +247,12 @@ public class VisaImporter extends DataCrawl {
String visaEntryName = StringUtils.upperCase(StringUtils.trimToEmpty(tds.get(3).text()));
if (StringUtils.isNotBlank(visaEntryName)) {
switch (visaEntryName) {
case "NEW" :
visa.setVisaEntry(VisaEntry.NEW);
break;
case "RENEWAL" :
visa.setVisaEntry(VisaEntry.RENEWAL);
break;
case "NEW":
visa.setVisaEntry(VisaEntry.NEW);
break;
case "RENEWAL":
visa.setVisaEntry(VisaEntry.RENEWAL);
break;
}
}
@ -251,27 +261,27 @@ public class VisaImporter extends DataCrawl {
String usEmbassyName = StringUtils.upperCase(StringUtils.trimToEmpty(tds.get(4).text()));
if (StringUtils.isNotBlank(usEmbassyName)) {
switch (usEmbassyName) {
case "BEIJING" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "BeiJing"));
break;
case "CHENGDU" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Chengdu"));
break;
case "GUANGZHOU" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Guangzhou"));
break;
case "SHANGHAI" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shanghai"));
break;
case "SHENYANG" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shenyang"));
break;
case "WUHAN" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Wuhan"));
break;
case "HONGKONG" :
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "HongKong"));
break;
case "BEIJING":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "BeiJing"));
break;
case "CHENGDU":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Chengdu"));
break;
case "GUANGZHOU":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Guangzhou"));
break;
case "SHANGHAI":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shanghai"));
break;
case "SHENYANG":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Shenyang"));
break;
case "WUHAN":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "Wuhan"));
break;
case "HONGKONG":
visa.setUsEmbassy(USFactory.searchUSEmbassy("China", "HongKong"));
break;
}
}
@ -284,15 +294,15 @@ public class VisaImporter extends DataCrawl {
String visaStatusName = StringUtils.upperCase(StringUtils.trimToEmpty(tds.get(6).text()));
if (StringUtils.isNotBlank(visaStatusName)) {
switch (visaStatusName) {
case "CLEAR" :
visa.setVisaStatus(VisaStatus.ISSUED);
break;
case "PENDING" :
visa.setVisaStatus(VisaStatus.ADMINISTRATIVE_PROCESSING);
break;
case "REJECT" :
visa.setVisaStatus(VisaStatus.REFUSED);
break;
case "CLEAR":
visa.setVisaStatus(VisaStatus.ISSUED);
break;
case "PENDING":
visa.setVisaStatus(VisaStatus.ADMINISTRATIVE_PROCESSING);
break;
case "REJECT":
visa.setVisaStatus(VisaStatus.REFUSED);
break;
}
}
@ -334,7 +344,7 @@ public class VisaImporter extends DataCrawl {
}
private void SocialMedia() {
private void socialMedia() {
List<VisaStatusLog> visaStatusLogList = LogFactory.getVisaStatusLogAfter(new DateTime().minusHours(2));
// Twitter
@ -353,6 +363,55 @@ public class VisaImporter extends DataCrawl {
}
private void rssArticle() {
try {
URL urls = new URL(RSS_URL);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(urls));
for (SyndEntry entry : feed.getEntries()) {
CmsArticle cmsArticle = null;
String aid = StringUtils.substringBetween(entry.getLink(), "article-", "-");
logger.debug("article Id/Title - [{}]/[{}]", aid, entry.getTitle());
DateTime dt = new DateTime(entry.getUpdatedDate());
CmsArticleOssezContent cmsArticleOssezContent = DataFactory.getCmsArticleOssezContent(NumberUtils.toLong(aid));
cmsArticle = DataFactory.getCmsArticle(aid);
if (cmsArticle == null) {
cmsArticle = new CmsArticle();
cmsArticle.setRssArticleId(aid);
} else if (dt.compareTo(new DateTime(cmsArticle.getRssDateUpdate())) == 0) {
continue;
}
cmsArticle.setTitle(entry.getTitle());
cmsArticle.setSummary(entry.getContents().get(0).getValue());
cmsArticle.setContent(cmsArticleOssezContent.getContent());
cmsArticle.setRssDateUpdate(dt.toDate());
DataFactory.save(cmsArticle);
// logger.debug("SAVE");
// break;
}
} catch (Exception ex) {
logger.error("RSS data update error.", ex);
//
}
// System.out.println(feed);
}
private void publishTwitter(VisaStatusLog visaStatusLog) {
SocialMedia socialMedia = SocialMediaFactory.get(TWITTER);