ofbiz-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hans...@apache.org
Subject svn commit: r905876 [4/7] - in /ofbiz/trunk: applications/commonext/documents/ specialpurpose/ specialpurpose/ebay/ specialpurpose/ebay/config/ specialpurpose/ebay/data/ specialpurpose/ebay/data/helpdata/ specialpurpose/ebay/entitydef/ specialpurpose/e...
Date Wed, 03 Feb 2010 03:16:40 GMT
Added: ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java?rev=905876&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java (added)
+++ ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java Wed Feb
 3 03:16:07 2010
@@ -0,0 +1,367 @@
+package org.ofbiz.ebaystore;
+
+import org.ofbiz.base.util.UtilDateTime;
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericValue;
+
+import java.util.*;
+
+import org.ofbiz.service.DispatchContext;
+import org.ofbiz.service.LocalDispatcher;
+import org.ofbiz.service.ServiceUtil;
+
+import com.ebay.sdk.ApiContext;
+import com.ebay.sdk.ApiException;
+import com.ebay.sdk.SdkException;
+import com.ebay.sdk.call.GetFeedbackCall;
+import com.ebay.sdk.call.GetItemsAwaitingFeedbackCall;
+import com.ebay.sdk.call.GetUserCall;
+import com.ebay.sdk.call.LeaveFeedbackCall;
+import com.ebay.soap.eBLBaseComponents.CommentTypeCodeType;
+import com.ebay.soap.eBLBaseComponents.DetailLevelCodeType;
+import com.ebay.soap.eBLBaseComponents.FeedbackDetailType;
+import com.ebay.soap.eBLBaseComponents.FeedbackRatingDetailCodeType;
+import com.ebay.soap.eBLBaseComponents.ItemRatingDetailArrayType;
+import com.ebay.soap.eBLBaseComponents.ItemRatingDetailsType;
+import com.ebay.soap.eBLBaseComponents.PaginatedTransactionArrayType;
+import com.ebay.soap.eBLBaseComponents.SiteCodeType;
+import com.ebay.soap.eBLBaseComponents.TransactionArrayType;
+import com.ebay.soap.eBLBaseComponents.TransactionType;
+
+import javolution.util.FastList;
+import javolution.util.FastMap;
+
+public class EbayFeedback {
+	
+    public static final String resource = "EbayUiLabels";
+    private static final String module = EbayFeedback.class.getName();
+
+	public static Map<String, Object> loadFeedback(DispatchContext dctx, Map<String,
? extends Object> context){
+		Map<String, Object> result = FastMap.newInstance();
+		LocalDispatcher dispatcher = dctx.getDispatcher();
+		GenericValue userLogin = (GenericValue) context.get("userLogin");
+		Delegator delegator = dctx.getDelegator();
+		Locale locale = (Locale) context.get("locale");
+		String productStoreId = (String) context.get("productStoreId");
+		
+		ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+		try {
+			Map<String, Object> inMap = FastMap.newInstance();
+			inMap.put("productStoreId", productStoreId);
+			inMap.put("userLogin", userLogin);
+			Map<String, Object> resultUser = dispatcher.runSync("getEbayStoreUser", inMap);
+			String userID = (String)resultUser.get("userLoginId");
+			GetFeedbackCall feedbackCall = new GetFeedbackCall();
+			feedbackCall.setApiContext(apiContext);
+			SiteCodeType SiteCodeType = EbayStoreHelper.getSiteCodeType(productStoreId,locale, delegator);
+			feedbackCall.setSite(SiteCodeType.US);
+			feedbackCall.setUserID(userID);
+			DetailLevelCodeType[] detailLevelCodeType = {DetailLevelCodeType.RETURN_ALL};
+			feedbackCall.setDetailLevel(detailLevelCodeType);
+			FeedbackDetailType[] feedback = feedbackCall.getFeedback();
+			if(feedback != null){
+				String partyId = null;
+				GenericValue userLoginEx = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId",
userID));
+				if(userLoginEx == null){
+					//Party
+					GenericValue party =  delegator.makeValue("Party");
+					partyId = delegator.getNextSeqId("Party");
+					party.put("partyId", partyId);
+					party.put("partyTypeId", "PERSON");
+					party.create();
+					//UserLogin
+					userLoginEx =  delegator.makeValue("UserLogin");
+					userLoginEx.put("userLoginId", userID);
+					userLoginEx.put("partyId", partyId);
+					userLoginEx.create();
+				}else{
+					partyId = userLoginEx.getString("partyId");
+				}
+				//PartyRole For eBay User
+				List partyRoles = delegator.findByAnd("PartyRole", UtilMisc.toMap("partyId", partyId,
"roleTypeId", "OWNER"));
+				if(partyRoles.size() == 0){
+					GenericValue partyRole =  delegator.makeValue("PartyRole");
+					partyRole.put("partyId", partyId);
+					partyRole.put("roleTypeId", "OWNER");
+					partyRole.create();
+				}
+				int feedbackLength = feedback.length;
+				for(int i=0;i<feedbackLength;i++){
+					//convert to ofbiz
+					String contentId = feedback[i].getFeedbackID();
+					Date eBayDateTime = feedback[i].getCommentTime().getTime();
+					GenericValue contentCheck = delegator.findByPrimaryKey("Content", UtilMisc.toMap("contentId",
contentId));
+					if(contentCheck != null){
+						continue;
+					}
+					String textData = feedback[i].getCommentText();
+					String commentingUserId= feedback[i].getCommentingUser();
+					String commentingPartyId = null;
+					List CommentingUserLogins = delegator.findByAnd("UserLogin", UtilMisc.toMap("userLoginId",
commentingUserId));
+					if(CommentingUserLogins.size() == 0){
+						//Party
+						GenericValue party =  delegator.makeValue("Party");
+						commentingPartyId = delegator.getNextSeqId("Party");
+						party.put("partyId", commentingPartyId);
+						party.put("partyTypeId", "PERSON");
+						party.create();
+						//UserLogin
+						userLoginEx =  delegator.makeValue("UserLogin");
+						userLoginEx.put("userLoginId", commentingUserId);
+						userLoginEx.put("partyId", commentingPartyId);
+						userLoginEx.create();
+					}else{
+						userLoginEx = (GenericValue)CommentingUserLogins.get(0);
+						commentingPartyId = userLoginEx.getString("partyId");
+					}
+					//DataResource
+					GenericValue dataResource =  delegator.makeValue("DataResource");
+					String dataResourceId = delegator.getNextSeqId("DataResource");
+					dataResource.put("dataResourceId", dataResourceId);
+					dataResource.put("dataResourceTypeId", "ELECTRONIC_TEXT");
+					dataResource.put("mimeTypeId", "text/html");
+					dataResource.create();
+					//ElectronicText
+					GenericValue electronicText =  delegator.makeValue("ElectronicText");
+					electronicText.put("dataResourceId", dataResourceId);
+					electronicText.put("textData", textData);
+					electronicText.create();
+					//Content
+					GenericValue content =  delegator.makeValue("Content");
+					content.put("contentId", contentId);
+					content.put("contentTypeId", "DOCUMENT");
+					content.put("dataResourceId", dataResourceId);
+					content.put("createdDate", UtilDateTime.toTimestamp(eBayDateTime));
+					content.create();
+					//ContentPurpose
+					GenericValue contentPurpose =  delegator.makeValue("ContentPurpose");
+					contentPurpose.put("contentId", contentId);
+					contentPurpose.put("contentPurposeTypeId", "FEEDBACK");
+					contentPurpose.create();
+					//PartyRole For eBay Commentator
+					List commentingPartyRoles = delegator.findByAnd("PartyRole", UtilMisc.toMap("partyId",
commentingPartyId, "roleTypeId", "COMMENTATOR"));
+					if(commentingPartyRoles.size() == 0){
+						GenericValue partyRole =  delegator.makeValue("PartyRole");
+						partyRole.put("partyId", commentingPartyId);
+						partyRole.put("roleTypeId", "COMMENTATOR");
+						partyRole.create();
+					}
+					//ContentRole for eBay User
+					List contentRoles = delegator.findByAnd("ContentRole", UtilMisc.toMap("partyId", partyId,
"roleTypeId", "OWNER", "contentId", contentId));
+					if(contentRoles.size() == 0){
+						GenericValue contentRole =  delegator.makeValue("ContentRole");
+						contentRole.put("contentId", contentId);
+						contentRole.put("partyId", partyId);
+						contentRole.put("roleTypeId", "OWNER");
+						contentRole.put("fromDate", UtilDateTime.nowTimestamp());
+						contentRole.create();
+					}
+					//ContentRole for Commentator
+					List commentingContentRoles = delegator.findByAnd("ContentRole", UtilMisc.toMap("partyId",
commentingPartyId, "roleTypeId", "COMMENTATOR", "contentId", contentId));
+					if(commentingContentRoles.size() == 0){
+						GenericValue contentRole =  delegator.makeValue("ContentRole");
+						contentRole.put("contentId", contentId);
+						contentRole.put("partyId", commentingPartyId);
+						contentRole.put("roleTypeId", "COMMENTATOR");
+						contentRole.put("fromDate", UtilDateTime.nowTimestamp());
+						contentRole.create();
+					}
+				}
+			}				
+		} catch (ApiException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (SdkException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		String successMsg = "Load eBay Feedback Successfull.";
+		result = ServiceUtil.returnSuccess(successMsg);
+	    return result;
+	}
+	public static Map<String, Object> getItemsAwaitingFeedback(DispatchContext dctx, Map<String,
? extends Object> context){
+		Map<String, Object> result = FastMap.newInstance();
+		LocalDispatcher dispatcher = dctx.getDispatcher();
+		GenericValue userLogin = (GenericValue) context.get("userLogin");
+		Delegator delegator = dctx.getDelegator();
+		Locale locale = (Locale) context.get("locale");
+		String productStoreId = (String) context.get("productStoreId");
+		ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+		List itemsResult = FastList.newInstance();
+		try{
+			GetItemsAwaitingFeedbackCall awaitingFeedbackCall = new GetItemsAwaitingFeedbackCall();
+			awaitingFeedbackCall.setApiContext(apiContext);
+			awaitingFeedbackCall.getItemsAwaitingFeedback();
+			PaginatedTransactionArrayType itemsAwaitingFeedback = awaitingFeedbackCall.getReturnedItemsAwaitingFeedback();
+			TransactionArrayType items = itemsAwaitingFeedback.getTransactionArray();
+			GetUserCall getUserCall = new GetUserCall(apiContext);
+			String commentingUser = getUserCall.getUser().getUserID();
+			for(int i = 0;i<items.getTransactionLength();i++){
+				Map<String, Object> entry = FastMap.newInstance();
+				TransactionType transection = items.getTransaction(i);
+				entry.put("itemID", transection.getItem().getItemID());
+				entry.put("commentingUser", commentingUser);
+				entry.put("title", transection.getItem().getTitle());
+				entry.put("transactionID", transection.getTransactionID());
+				if(transection.getBuyer() != null){
+					entry.put("userID", transection.getBuyer().getUserID());
+					entry.put("role", "buyer");
+				}
+				
+				if(transection.getItem().getSeller() != null){
+					entry.put("userID", transection.getItem().getSeller().getUserID());
+					entry.put("role", "seller");
+				}
+				if(transection.getShippingDetails()!=null){
+					entry.put("shippingCost", transection.getShippingDetails().getDefaultShippingCost().getValue());
+					entry.put("shippingCurrency", transection.getShippingDetails().getDefaultShippingCost().getCurrencyID().name());
+				}
+				
+				if(transection.getFeedbackLeft() != null){
+					entry.put("commentType", transection.getFeedbackLeft().getCommentType().name());
+				}
+				itemsResult.add(entry);
+			}
+			result.put("itemsAwaitingFeedback", itemsResult);
+		} catch (ApiException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (SdkException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return result;
+	}
+	public static Map<String, Object> leaveFeedback(DispatchContext dctx, Map<String,
? extends Object> context){
+		Map<String, Object>result = FastMap.newInstance();
+		Delegator delegator = dctx.getDelegator();
+		Locale locale = (Locale) context.get("locale");
+		String productStoreId = (String) context.get("productStoreId");
+		ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+		
+		String itemId = (String) context.get("itemId");
+		String targetUser = (String) context.get("targetUser");
+		String transactionId = (String) context.get("transactionId");
+		String commentingUser = (String) context.get("commentingUser");
+		String role = (String) context.get("role");
+		String commentType = (String) context.get("commentType");
+		String commentText = (String) context.get("commentText");
+		String AqItemAsDescribed = null;
+		String ratingItem = (String) context.get("ratingItem");
+		String ratingComm = (String) context.get("ratingComm");
+		String ratingShip = (String) context.get("ratingShip");
+		String ratingShipHand = (String) context.get("ratingShipHand");
+		try{
+			if(commentType != null){
+				LeaveFeedbackCall leaveFeedbackCall = new LeaveFeedbackCall();
+				leaveFeedbackCall.setApiContext(apiContext);
+				leaveFeedbackCall.setTargetUser(targetUser);
+				leaveFeedbackCall.setTransactionID(transactionId);
+				
+				if(role.equals("seller")){
+					ItemRatingDetailArrayType sellerItemRatingDetailArray = new ItemRatingDetailArrayType();
+					
+					//The item description
+					ItemRatingDetailsType itemRatingDetailsType1 = new ItemRatingDetailsType();
+					int ratingItemValue = 0;
+					if(UtilValidate.isInteger(ratingItem)){
+						ratingItemValue = Integer.parseInt(ratingItem);
+					}
+					if(ratingItemValue<3){
+						int AqItemAsDescribedId = Integer.parseInt((String) context.get("AqItemAsDescribedId"));
+						switch (AqItemAsDescribedId) {
+						case 5:
+							AqItemAsDescribed = "ItemNotReceived";
+							break;
+						case 6:
+							AqItemAsDescribed = "ItemBadQuality";
+							break;
+						case 2:
+							AqItemAsDescribed = "ItemDamaged";
+							break;
+						case 1:
+							AqItemAsDescribed = "ItemIneligible";
+							break;
+						case 3:
+							AqItemAsDescribed = "ItemLost";
+							break;
+						default:
+							AqItemAsDescribed = "Other";
+							break;
+						}
+					}
+					itemRatingDetailsType1.setRating(ratingItemValue);
+					itemRatingDetailsType1.setRatingDetail(FeedbackRatingDetailCodeType.ITEM_AS_DESCRIBED);
+					
+					//The seller's communication
+					ItemRatingDetailsType itemRatingDetailsType2 = new ItemRatingDetailsType();
+					int ratingCommValue = 0;
+					if(UtilValidate.isInteger(ratingComm)){
+						ratingCommValue = Integer.parseInt(ratingComm);
+					}
+					itemRatingDetailsType2.setRating(ratingCommValue);
+					itemRatingDetailsType2.setRatingDetail(FeedbackRatingDetailCodeType.COMMUNICATION);
+					
+					//the seller ship the item
+					ItemRatingDetailsType itemRatingDetailsType3 = new ItemRatingDetailsType();
+					int ratingShipValue = 0;
+					if(UtilValidate.isInteger(ratingShip)){
+						ratingShipValue = Integer.parseInt(ratingShip);
+					}
+					itemRatingDetailsType3.setRating(ratingShipValue);
+					itemRatingDetailsType3.setRatingDetail(FeedbackRatingDetailCodeType.SHIPPING_TIME);
+					
+					//the shipping and handling charges
+					ItemRatingDetailsType itemRatingDetailsType4 = new ItemRatingDetailsType();
+					int ratingShipHandValue = 0;
+					if(UtilValidate.isInteger(ratingShipHand)){
+						ratingShipHandValue = Integer.parseInt(ratingShipHand);
+					}
+					itemRatingDetailsType4.setRating(ratingShipHandValue);
+					itemRatingDetailsType4.setRatingDetail(FeedbackRatingDetailCodeType.SHIPPING_AND_HANDLING_CHARGES);
+					
+					//Rating Summary
+					ItemRatingDetailsType[] itemRatingDetailsType = {itemRatingDetailsType1, itemRatingDetailsType2,
itemRatingDetailsType3, itemRatingDetailsType4};
+					sellerItemRatingDetailArray.setItemRatingDetails(itemRatingDetailsType);
+								
+					leaveFeedbackCall.setSellerItemRatingDetailArray(sellerItemRatingDetailArray);
+				}
+				FeedbackDetailType feedbackDetail = new FeedbackDetailType();
+				feedbackDetail.setItemID(itemId);
+				feedbackDetail.setCommentingUser(commentingUser);
+				feedbackDetail.setCommentText(commentText);
+				feedbackDetail.setCommentTime(Calendar.getInstance());
+				if(commentType.equals("positive")){
+					feedbackDetail.setCommentType(CommentTypeCodeType.POSITIVE);
+				}else if(commentType.equals("neutral")){
+					feedbackDetail.setCommentType(CommentTypeCodeType.NEUTRAL);
+				}else if(commentType.equals("negative")){
+					feedbackDetail.setCommentType(CommentTypeCodeType.NEGATIVE);
+				}
+				leaveFeedbackCall.setFeedbackDetail(feedbackDetail);
+				leaveFeedbackCall.leaveFeedback();
+			}
+		} catch (ApiException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (SdkException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		result = ServiceUtil.returnSuccess();
+		return result;
+	}
+
+}
\ No newline at end of file



Mime
View raw message