USVISATRAC-48 创建表 cms_article,并设置数据自动导入程序
This commit is contained in:
parent
c693ecd020
commit
5aa18e8e71
|
@ -0,0 +1,59 @@
|
|||
package com.usvisatrack.core.dao.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.usvisatrack.core.common.DataObject;
|
||||
|
||||
public class CmsArticle extends DataObject {
|
||||
|
||||
private String rssArticleId;
|
||||
private String title;
|
||||
private String summary;
|
||||
private String content;
|
||||
private Date rssDateUpdate;
|
||||
|
||||
public CmsArticle() {
|
||||
this.setCreateDate(new Date());
|
||||
}
|
||||
|
||||
public String getRssArticleId() {
|
||||
return rssArticleId;
|
||||
}
|
||||
|
||||
public void setRssArticleId(String rssArticleId) {
|
||||
this.rssArticleId = rssArticleId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getSummary() {
|
||||
return summary;
|
||||
}
|
||||
|
||||
public void setSummary(String summary) {
|
||||
this.summary = summary;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public Date getRssDateUpdate() {
|
||||
return rssDateUpdate;
|
||||
}
|
||||
|
||||
public void setRssDateUpdate(Date rssDateUpdate) {
|
||||
this.rssDateUpdate = rssDateUpdate;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.usvisatrack.core.dao.model;
|
||||
|
||||
import com.usvisatrack.core.common.DataObject;
|
||||
|
||||
public class CmsArticleOssezContent extends DataObject {
|
||||
private Long aid;
|
||||
private String content;
|
||||
|
||||
|
||||
public Long getAid() {
|
||||
return aid;
|
||||
}
|
||||
|
||||
public void setAid(Long aid) {
|
||||
this.aid = aid;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,8 +1,20 @@
|
|||
package com.usvisatrack.core.factories;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.usvisatrack.core.common.DataObject;
|
||||
import com.usvisatrack.core.common.Factory;
|
||||
import com.usvisatrack.core.dao.model.CmsArticle;
|
||||
import com.usvisatrack.core.dao.model.CmsArticleOssezContent;
|
||||
import com.usvisatrack.core.dao.model.SocialMediaLog;
|
||||
import com.usvisatrack.core.dao.model.UscisCase;
|
||||
import com.usvisatrack.core.dao.model.VisaStatusLog;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
|
@ -14,5 +26,63 @@ public class DataFactory {
|
|||
public static final int DEFAULT_AUTH_EXPIRATION = 10;
|
||||
private static Logger logger = LoggerFactory.getLogger(DataFactory.class);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static CmsArticleOssezContent getCmsArticleOssezContent(Long aid) {
|
||||
CmsArticleOssezContent cmsArticleOssezContent = null;
|
||||
|
||||
try {
|
||||
Factory.beginTransaction();
|
||||
|
||||
Criteria criteria = Factory.createCriteria(CmsArticleOssezContent.class);
|
||||
criteria.add(Restrictions.eq("aid", aid));
|
||||
criteria.setMaxResults(1);
|
||||
criteria.uniqueResult();
|
||||
|
||||
cmsArticleOssezContent = (CmsArticleOssezContent) criteria.uniqueResult();
|
||||
} catch (Exception ex) {
|
||||
cmsArticleOssezContent = null;
|
||||
logger.error("Get Visa by item ID error", ex);
|
||||
} finally {
|
||||
Factory.commitTransaction();
|
||||
}
|
||||
|
||||
return cmsArticleOssezContent;
|
||||
}
|
||||
|
||||
public static CmsArticle getCmsArticle(String rssArticleId) {
|
||||
CmsArticle cmsArticle = null;
|
||||
try {
|
||||
Factory.beginTransaction();
|
||||
|
||||
Criteria criteria = Factory.createCriteria(CmsArticle.class);
|
||||
criteria.add(Restrictions.eq("rssArticleId", rssArticleId));
|
||||
criteria.setMaxResults(1);
|
||||
criteria.uniqueResult();
|
||||
|
||||
cmsArticle = (CmsArticle) criteria.uniqueResult();
|
||||
} catch (Exception ex) {
|
||||
|
||||
logger.error("Get Visa by item ID error", ex);
|
||||
} finally {
|
||||
Factory.commitTransaction();
|
||||
}
|
||||
return cmsArticle;
|
||||
}
|
||||
|
||||
public static void save(DataObject obj) {
|
||||
obj.setModifyDate(new Date());
|
||||
try {
|
||||
Factory.beginTransaction();
|
||||
Factory.saveOrUpdate(obj);
|
||||
Factory.commitTransaction();
|
||||
} catch (Exception ex) {
|
||||
logger.error("Save CheckeeVisa OBJ ERROR", ex);
|
||||
Factory.rollbackTransaction();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||
|
||||
<hibernate-mapping package="com.usvisatrack.core.dao.model">
|
||||
<class name="CmsArticle" table="cms_article" catalog="northtecom_usvisatrack">
|
||||
<id name="id" type="java.lang.Long">
|
||||
<column name="cms_article_id" />
|
||||
<generator class="identity" />
|
||||
</id>
|
||||
|
||||
<property name="rssArticleId" type="string">
|
||||
<column name="rss_article_id" length="128" />
|
||||
</property>
|
||||
|
||||
<property name="title" type="string">
|
||||
<column name="title" length="256" />
|
||||
</property>
|
||||
|
||||
<property name="summary" type="string">
|
||||
<column name="summary" length="1024" />
|
||||
</property>
|
||||
|
||||
<property name="content" type="string">
|
||||
<column name="content" length="2048" />
|
||||
</property>
|
||||
|
||||
<property name="rssDateUpdate" type="timestamp">
|
||||
<column name="rss_date_upd" />
|
||||
</property>
|
||||
|
||||
|
||||
<property name="createDate" type="timestamp">
|
||||
<column name="date_add" />
|
||||
</property>
|
||||
|
||||
<property name="modifyDate" type="timestamp">
|
||||
<column name="date_upd" />
|
||||
</property>
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||
|
||||
<hibernate-mapping package="com.usvisatrack.core.dao.model">
|
||||
<class name="CmsArticleOssezContent" table="bbsossez_portal_article_content" catalog="ossez_bbs">
|
||||
<id name="id" type="java.lang.Long">
|
||||
<column name="cid" />
|
||||
<generator class="identity" />
|
||||
</id>
|
||||
|
||||
<property name="aid" type="long">
|
||||
<column name="aid" />
|
||||
</property>
|
||||
|
||||
<property name="content" type="string">
|
||||
<column name="content" length="2068" />
|
||||
</property>
|
||||
</class>
|
||||
</hibernate-mapping>
|
|
@ -29,6 +29,8 @@
|
|||
|
||||
<!-- HBMs -->
|
||||
<mapping resource="hbm/CheckeeVisa.hbm.xml" />
|
||||
<mapping resource="hbm/CmsArticle.hbm.xml" />
|
||||
<mapping resource="hbm/CmsArticleOssezContent.hbm.xml" />
|
||||
<mapping resource="hbm/ConfApp.hbm.xml" />
|
||||
<mapping resource="hbm/SocialMedia.hbm.xml" />
|
||||
<mapping resource="hbm/SocialMediaLog.hbm.xml" />
|
||||
|
|
|
@ -43,11 +43,6 @@
|
|||
<!-- AOP -->
|
||||
<aspectj.version>1.7.4</aspectj.version>
|
||||
|
||||
|
||||
<!-- RSS -->
|
||||
<rome.version>1.0</rome.version>
|
||||
<hamcrest.version>1.3</hamcrest.version>
|
||||
|
||||
<!-- Web dependencies -->
|
||||
<webjars-bootstrap.version>2.3.0</webjars-bootstrap.version>
|
||||
<webjars-jquery-ui.version>1.10.3</webjars-jquery-ui.version>
|
||||
|
@ -84,7 +79,7 @@
|
|||
<dependency>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
<artifactId>hamcrest-library</artifactId>
|
||||
<version>${hamcrest.version}</version>
|
||||
<version>1.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -151,6 +146,13 @@
|
|||
<version>4.0.6</version>
|
||||
</dependency>
|
||||
|
||||
<!-- RSS -->
|
||||
<dependency>
|
||||
<groupId>com.rometools</groupId>
|
||||
<artifactId>rome</artifactId>
|
||||
<version>1.8.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
|
@ -1,8 +1,21 @@
|
|||
package com.usvisatrack.services.test;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.Test;
|
||||
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.CmsArticle;
|
||||
import com.usvisatrack.core.dao.model.CmsArticleOssezContent;
|
||||
import com.usvisatrack.core.factories.DataFactory;
|
||||
|
||||
/**
|
||||
* TEST Data API
|
||||
|
@ -13,31 +26,48 @@ import org.slf4j.LoggerFactory;
|
|||
public class DataTest {
|
||||
private static Logger logger = LoggerFactory.getLogger(DataTest.class);
|
||||
|
||||
public final static String APIDATA_CDN_FOLDER = "/home/cdn/com-bcodepot-www/data/apidata";
|
||||
public final static String MERCHANDISE_CDN_FOLDER = "/home/cdn/com-bcodepot-www/data/item";
|
||||
public final static String RSS_URL = "http://rss.ossez.com/public.php?op=rss&id=-2&view-mode=all_articles&key=ofclrs5a01d7c3bdab2";
|
||||
|
||||
/**
|
||||
* Your AWS Access Key ID, as taken from the AWS Your Account page.
|
||||
*/
|
||||
private static final String AWS_NAME = "AmazonMerchandiseData";
|
||||
private static String AWS_ACCESS_KEY_ID = "";
|
||||
/*
|
||||
* Your AWS Secret Key corresponding to the above ID, as taken from the AWS Your Account page.
|
||||
*/
|
||||
private static String AWS_SECRET_KEY = "";
|
||||
@Test
|
||||
public void testRSS() throws Exception {
|
||||
URL urls = new URL(RSS_URL);
|
||||
|
||||
/*
|
||||
* Use one of the following end-points, according to the region you are interested in:
|
||||
*
|
||||
* US: ecs.amazonaws.com CA: ecs.amazonaws.ca UK: ecs.amazonaws.co.uk DE: ecs.amazonaws.de FR: ecs.amazonaws.fr JP: ecs.amazonaws.jp
|
||||
*/
|
||||
private static String ENDPOINT = "ecs.amazonaws.com";
|
||||
SyndFeedInput input = new SyndFeedInput();
|
||||
SyndFeed feed = input.build(new XmlReader(urls));
|
||||
|
||||
/*
|
||||
* The Item ID to lookup. The value below was selected for the US locale. You can choose a different value if this value does not work
|
||||
* in the locale of your choice.
|
||||
*/
|
||||
private static final String ITEM_ID = "014100087847";
|
||||
// System.out.println(feed);
|
||||
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# JDBC Connection
|
||||
hibernate.connection.driver_class=com.mysql.jdbc.Driver
|
||||
hibernate.connection.driver_class=org.mariadb.jdbc.Driver
|
||||
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
|
||||
hibernate.connection.url=jdbc:mysql://db.upcex.com/
|
||||
hibernate.connection.url=jdbc:mysql://db.usvisatrack.com/northtecom_usvisatrack?serverTimezone=EST&useUnicode=true&characterEncoding=UTF8MB64&autoReconnect=true
|
||||
|
||||
# Username and Password
|
||||
hibernate.connection.username=upcex.web
|
||||
hibernate.connection.password=026l64e4rtfg
|
||||
hibernate.connection.username=usvisatrack.web
|
||||
hibernate.connection.password=rOhAz8j6SAjObag3ve5oYew2d5d4Va
|
||||
|
||||
# Performance
|
||||
#hibernate.connection.pool.size=20
|
||||
|
|
Loading…
Reference in New Issue