ParseBaseOfferInfoXMLModel.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.it.ocs.ebaySales.model;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;
  5. import org.dom4j.Document;
  6. import org.dom4j.Element;
  7. import com.it.ocs.synchronou.model.ParseXMLModel;
  8. import com.it.ocs.synchronou.model.XMLNode;
  9. public class ParseBaseOfferInfoXMLModel extends ParseXMLModel {
  10. public ParseBaseOfferInfoXMLModel(Document document, String nameSpace) {
  11. super(document, nameSpace);
  12. }
  13. @Override
  14. public List<Map<String, Object>> getResult() {
  15. XMLNode[] columns = { XMLNode.getInstance("BuyItNowPrice", XMLNode.EBAY_PRICE,"currencyID"), XMLNode.getInstance("ItemID"),
  16. XMLNode.getInstance("Title") };
  17. List<Map<String, Object>> result = new ArrayList<>();
  18. List<Element> elements = this.getElementChild("Item");
  19. Map<String, Object> map = parseRecord(elements.get(0), columns);
  20. String newPrice = map.get("BuyItNowPrice").toString();
  21. if(null != newPrice && newPrice.contains(" ")){
  22. String str[] = newPrice.split(" ");
  23. map.put("currencyID", str[0]);
  24. map.put("BuyItNowPrice", str[1]);
  25. }else{
  26. map.put("currencyID", "");
  27. }
  28. List<Map<String,Object>> bestOffers = getBestOffers(this.getElementChild("BestOfferArray_BestOffer"));
  29. for(Map<String,Object> offer : bestOffers){
  30. offer.putAll(map);
  31. result.add(offer);
  32. }
  33. return result;
  34. }
  35. private List<Map<String,Object>> getBestOffers(List<Element> elementChild) {
  36. XMLNode [] columns = {XMLNode.getInstance("BestOfferID"),
  37. XMLNode.getInstance("ExpirationTime",XMLNode.EBAY_DATE),
  38. XMLNode.getInstance("Email"),
  39. XMLNode.getInstance("FeedbackScore"),
  40. XMLNode.getInstance("RegistrationDate",XMLNode.EBAY_DATE),
  41. XMLNode.getInstance("UserID"),
  42. XMLNode.getInstance("StateOrProvince"),
  43. XMLNode.getInstance("CountryName"),
  44. XMLNode.getInstance("PostalCode"),
  45. XMLNode.getInstance("Price"),
  46. XMLNode.getInstance("Status"),
  47. XMLNode.getInstance("Quantity"),
  48. XMLNode.getInstance("BuyerMessage"),
  49. XMLNode.getInstance("SellerMessage"),
  50. XMLNode.getInstance("BestOfferCodeType")
  51. };
  52. List<Map<String,Object>> list = new ArrayList<>();
  53. for(Element element :elementChild){
  54. list.add(parseRecord(element,columns));
  55. }
  56. return list;
  57. }
  58. }