添加签证分类对象,并且对当前的引用进行调整
This commit is contained in:
parent
98a493cf8c
commit
3c200e9a28
@ -288,4 +288,5 @@
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
<version>0.1.0</version>
|
||||
</project>
|
||||
|
@ -26,7 +26,7 @@ import com.usvisatrack.core.dao.model.EntityListener;
|
||||
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
|
||||
@EntityListeners({EntityListener.class})
|
||||
@MappedSuperclass
|
||||
public abstract class DataObject implements Serializable {
|
||||
public abstract class DataObject {
|
||||
|
||||
public abstract interface Save {
|
||||
|
||||
@ -35,8 +35,6 @@ public abstract class DataObject implements Serializable {
|
||||
public abstract interface Update {
|
||||
|
||||
}
|
||||
|
||||
private static final long serialVersionUID = -67188388306700736L;
|
||||
public static final String ID_PROPERTY_NAME = "id";
|
||||
public static final String CREATE_DATE_PROPERTY_NAME = "createDate";
|
||||
public static final String MODIFY_DATE_PROPERTY_NAME = "modifyDate";
|
||||
|
@ -12,9 +12,10 @@ import com.usvisatrack.core.common.DataObject;
|
||||
*/
|
||||
public class Visa extends DataObject {
|
||||
|
||||
private String ds160Code = null;
|
||||
private String major = null;
|
||||
private String description = null;
|
||||
private String ds160Code;
|
||||
private VisaClass visaClass;
|
||||
private String major;
|
||||
private String description;
|
||||
private Date dateVisaInterview;
|
||||
private Date dateVisaIssued;
|
||||
private Date dateVisaCheckCompleted;
|
||||
@ -22,7 +23,7 @@ public class Visa extends DataObject {
|
||||
public Visa() {
|
||||
Date date = new Date();
|
||||
super.setCreateDate(date);
|
||||
super.setCreateDate(date);
|
||||
super.setModifyDate(date);
|
||||
}
|
||||
|
||||
public String getDs160Code() {
|
||||
@ -33,6 +34,14 @@ public class Visa extends DataObject {
|
||||
this.ds160Code = ds160Code;
|
||||
}
|
||||
|
||||
public VisaClass getVisaClass() {
|
||||
return visaClass;
|
||||
}
|
||||
|
||||
public void setVisaClass(VisaClass visaClass) {
|
||||
this.visaClass = visaClass;
|
||||
}
|
||||
|
||||
public String getMajor() {
|
||||
return major;
|
||||
}
|
||||
|
@ -0,0 +1,36 @@
|
||||
package com.usvisatrack.core.dao.model;
|
||||
|
||||
import com.usvisatrack.core.common.DataObject;
|
||||
|
||||
/**
|
||||
* VisaClass ORM
|
||||
*
|
||||
* @author YuCheng Hu
|
||||
*
|
||||
*/
|
||||
public class VisaClass extends DataObject {
|
||||
|
||||
private String visaClassName;
|
||||
private String visaClassEligibility;
|
||||
|
||||
public VisaClass() {
|
||||
|
||||
}
|
||||
|
||||
public String getVisaClassName() {
|
||||
return visaClassName;
|
||||
}
|
||||
|
||||
public void setVisaClassName(String visaClassName) {
|
||||
this.visaClassName = visaClassName;
|
||||
}
|
||||
|
||||
public String getVisaClassEligibility() {
|
||||
return visaClassEligibility;
|
||||
}
|
||||
|
||||
public void setVisaClassEligibility(String visaClassEligibility) {
|
||||
this.visaClassEligibility = visaClassEligibility;
|
||||
}
|
||||
|
||||
}
|
@ -1,10 +1,14 @@
|
||||
package com.usvisatrack.core.factories;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.hibernate.Criteria;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.usvisatrack.core.common.Factory;
|
||||
import com.usvisatrack.core.dao.model.Visa;
|
||||
import com.usvisatrack.core.dao.model.VisaClass;
|
||||
|
||||
/**
|
||||
* Item Data Factory
|
||||
@ -41,6 +45,25 @@ public class VisaFactory extends Factory {
|
||||
return item;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static List<VisaClass> getAllVisaClass() {
|
||||
try {
|
||||
Factory.beginTransaction();
|
||||
Criteria criteria = Factory.createCriteria(VisaClass.class);
|
||||
criteria.setMaxResults(1200);
|
||||
return criteria.list();
|
||||
} catch (Exception ex) {
|
||||
logger.error("search item by item name error", ex);
|
||||
} finally {
|
||||
Factory.rollbackTransaction();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save VISA
|
||||
*
|
||||
|
@ -5,32 +5,36 @@
|
||||
<hibernate-mapping package="com.usvisatrack.core.dao.model">
|
||||
<class name="Visa" table="visa" catalog="ntc_usvisatrack">
|
||||
<id name="id" type="java.lang.Long">
|
||||
<column name="item_id" />
|
||||
<column name="visa_id" />
|
||||
<generator class="identity" />
|
||||
</id>
|
||||
|
||||
<property name="gtin" type="string">
|
||||
<column name="gtin" length="16" />
|
||||
<property name="ds160Code" type="string">
|
||||
<column name="ds160_code" length="16" />
|
||||
</property>
|
||||
|
||||
<property name="itemCode" type="string">
|
||||
<column name="item_code" />
|
||||
<many-to-one class="com.usvisatrack.core.dao.model.VisaClass" name="visaClass" column="visa_class_fk" fetch="join" />
|
||||
|
||||
<property name="major" type="string">
|
||||
<column name="major" />
|
||||
</property>
|
||||
|
||||
|
||||
|
||||
<property name="itemName" type="string">
|
||||
<column name="item_name" />
|
||||
</property>
|
||||
|
||||
<property name="price" type="string">
|
||||
<column name="price" precision="20" scale="6" />
|
||||
</property>
|
||||
|
||||
<property name="itemDescription" type="string">
|
||||
<property name="description" type="string">
|
||||
<column name="description" />
|
||||
</property>
|
||||
|
||||
<property name="dateVisaInterview" type="timestamp">
|
||||
<column name="date_visa_interview" />
|
||||
</property>
|
||||
|
||||
<property name="dateVisaIssued" type="timestamp">
|
||||
<column name="date_visa_issued" />
|
||||
</property>
|
||||
|
||||
<property name="dateVisaCheckCompleted" type="timestamp">
|
||||
<column name="date_visa_check_completed" />
|
||||
</property>
|
||||
|
||||
<property name="createDate" type="timestamp">
|
||||
<column name="date_add" length="19" />
|
||||
</property>
|
||||
|
20
core/src/main/resources/hbm/VisaClass.hbm.xml
Normal file
20
core/src/main/resources/hbm/VisaClass.hbm.xml
Normal file
@ -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="VisaClass" table="visa_class" catalog="ntc_usvisatrack">
|
||||
<id name="id" type="java.lang.Long">
|
||||
<column name="visa_class_id" />
|
||||
<generator class="identity" />
|
||||
</id>
|
||||
|
||||
<property name="visaClassName" type="string">
|
||||
<column name="visa_class_name" length="12" />
|
||||
</property>
|
||||
|
||||
<property name="visaClassEligibility" type="string">
|
||||
<column name="visa_class_eligibility" length="512" />
|
||||
</property>
|
||||
</class>
|
||||
</hibernate-mapping>
|
@ -30,6 +30,7 @@
|
||||
<!-- HBMs -->
|
||||
<mapping resource="hbm/User.hbm.xml" />
|
||||
<mapping resource="hbm/Visa.hbm.xml" />
|
||||
<mapping resource="hbm/VisaClass.hbm.xml" />
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
@ -2,6 +2,7 @@ package com.usvisatrack.services;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
@ -16,6 +17,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.usvisatrack.core.dao.model.Visa;
|
||||
import com.usvisatrack.core.dao.model.VisaClass;
|
||||
import com.usvisatrack.core.factories.VisaFactory;
|
||||
import com.usvisatrack.services.common.DataCrawl;
|
||||
|
||||
@ -26,14 +28,13 @@ import com.usvisatrack.services.common.DataCrawl;
|
||||
*
|
||||
*/
|
||||
public class VisaImporter extends DataCrawl {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(VisaImporter.class);
|
||||
|
||||
public final static String ITEM_FTP_FOLDER = "/home/ftp/com-bcodepot/item";
|
||||
public final static String ITEM_PROCESSED_FOLDER = "/home/data/origin/com-bcodepot-www/processed/item";
|
||||
public final static String APIDATA_CDN_FOLDER = "/home/cdn/com-bcodepot-www/data/apidata";
|
||||
|
||||
private final static String URL_UPCITEMDB = "http://www.upcitemdb.com/upc/";
|
||||
public static HashMap<String, VisaClass> visaClassMap = new HashMap<String, VisaClass>();
|
||||
|
||||
/**
|
||||
* Command process function
|
||||
@ -64,15 +65,15 @@ public class VisaImporter extends DataCrawl {
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
crawlWebItem();
|
||||
initData(); // Init data from database
|
||||
crawlWebVisa();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* crawlWebItem by parse web page
|
||||
*/
|
||||
private void crawlWebItem() {
|
||||
|
||||
private void crawlWebVisa() {
|
||||
logger.error("Crawl Web Data to load item info.");
|
||||
List<Visa> visaList = new ArrayList<Visa>();
|
||||
|
||||
@ -90,6 +91,23 @@ public class VisaImporter extends DataCrawl {
|
||||
|
||||
if (!StringUtils.equalsIgnoreCase("ID", tds.get(1).text())) {
|
||||
Visa visa = new Visa();
|
||||
|
||||
// SET VISA CLASS
|
||||
String visaClassName = StringUtils.trimToEmpty(tds.get(2).text());
|
||||
if (StringUtils.isNotBlank(visaClassName)) {
|
||||
switch (visaClassName) {
|
||||
case "H1":
|
||||
visaClassName = "H1-B";
|
||||
break;
|
||||
case "H4":
|
||||
visaClassName = "H-4";
|
||||
break;
|
||||
}
|
||||
|
||||
visa.setVisaClass(visaClassMap.get(visaClassName));
|
||||
}
|
||||
|
||||
// SET VISA MAJOR
|
||||
visa.setMajor(StringUtils.trimToEmpty(tds.get(5).text()));
|
||||
logger.debug("[{}]", visa.getMajor());
|
||||
|
||||
@ -108,4 +126,18 @@ public class VisaImporter extends DataCrawl {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void initData() {
|
||||
logger.error("Init Data from Database");
|
||||
|
||||
List<VisaClass> visaClassList = VisaFactory.getAllVisaClass();
|
||||
for (VisaClass visaClass : visaClassList) {
|
||||
visaClassMap.put(visaClass.getVisaClassName(), visaClass);
|
||||
}
|
||||
|
||||
logger.debug("XXX [{}]", visaClassMap.get("H1-B").getVisaClassEligibility());
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user