You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2015/08/10 18:15:38 UTC
svn commit: r1695126 [14/22] - in /ofbiz/trunk:
applications/accounting/src/org/ofbiz/accounting/thirdparty/authorizedotnet/
applications/accounting/src/org/ofbiz/accounting/thirdparty/securepay/
applications/content/src/org/ofbiz/content/webapp/ftl/ a...
Modified: 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=1695126&r1=1695125&r2=1695126&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java Mon Aug 10 16:15:37 2015
@@ -1,390 +1,390 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.ofbiz.ebaystore;
-
-import org.ofbiz.base.util.UtilDateTime;
-import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.entity.Delegator;
-import org.ofbiz.entity.GenericValue;
-import org.ofbiz.entity.util.EntityQuery;
-
-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;
-
-public class EbayFeedback {
-
- public static final String resource = "EbayUiLabels";
-
- public static Map<String, Object> loadFeedback(DispatchContext dctx, Map<String, ? extends Object> context) {
- Map<String, Object> result = new HashMap<String, Object>();
- 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 = new HashMap<String, Object>();
- 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);
- feedbackCall.setUserID(userID);
- DetailLevelCodeType[] detailLevelCodeType = {DetailLevelCodeType.RETURN_ALL};
- feedbackCall.setDetailLevel(detailLevelCodeType);
- FeedbackDetailType[] feedback = feedbackCall.getFeedback();
- if (feedback != null) {
- String partyId = null;
- GenericValue userLoginEx = EntityQuery.use(delegator).from("UserLogin").where("userLoginId", userID).queryOne();
- 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
- GenericValue ownerPartyRole = EntityQuery.use(delegator).from("PartyRole")
- .where("partyId", partyId, "roleTypeId", "OWNER")
- .queryOne();
- if (UtilValidate.isEmpty(ownerPartyRole)) {
- 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 = EntityQuery.use(delegator).from("Content").where("contentId", contentId).queryOne();
- if (contentCheck != null) {
- continue;
- }
- String textData = feedback[i].getCommentText();
- String commentingUserId= feedback[i].getCommentingUser();
- String commentingPartyId = null;
- GenericValue CommentingUserLogin = EntityQuery.use(delegator).from("UserLogin")
- .where("userLoginId", commentingUserId)
- .queryOne();
- if (UtilValidate.isEmpty(CommentingUserLogin)) {
- //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 {
- commentingPartyId = CommentingUserLogin.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
- GenericValue commentingPartyRole = EntityQuery.use(delegator).from("PartyRole")
- .where("partyId", commentingPartyId, "roleTypeId", "COMMENTATOR")
- .queryOne();
- if (UtilValidate.isEmpty(commentingPartyRole)) {
- GenericValue partyRole = delegator.makeValue("PartyRole");
- partyRole.put("partyId", commentingPartyId);
- partyRole.put("roleTypeId", "COMMENTATOR");
- partyRole.create();
- }
- //ContentRole for eBay User
- GenericValue ownerContentRole = EntityQuery.use(delegator).from("ContentRole")
- .where("partyId", partyId, "roleTypeId", "OWNER", "contentId", contentId)
- .queryFirst();
- if (UtilValidate.isEmpty(ownerContentRole)) {
- 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
- GenericValue commentingContentRole = EntityQuery.use(delegator).from("ContentRole")
- .where("partyId", commentingPartyId, "roleTypeId", "COMMENTATOR", "contentId", contentId)
- .queryFirst();
- if (UtilValidate.isEmpty(commentingContentRole)) {
- 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 successful.";
- result = ServiceUtil.returnSuccess(successMsg);
- return result;
- }
-
- public static Map<String, Object> getItemsAwaitingFeedback(DispatchContext dctx, Map<String, ? extends Object> context) {
- Map<String, Object> result = new HashMap<String, Object>();
- Delegator delegator = dctx.getDelegator();
- Locale locale = (Locale) context.get("locale");
- String productStoreId = (String) context.get("productStoreId");
- ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
- List<Map<String, Object>> itemsResult = new LinkedList<Map<String,Object>>();
- 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 = new HashMap<String, Object>();
- 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 = new HashMap<String, Object>();
- 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 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) {
- /*
- String AqItemAsDescribed = null;
- 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;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.ofbiz.ebaystore;
+
+import org.ofbiz.base.util.UtilDateTime;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.util.EntityQuery;
+
+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;
+
+public class EbayFeedback {
+
+ public static final String resource = "EbayUiLabels";
+
+ public static Map<String, Object> loadFeedback(DispatchContext dctx, Map<String, ? extends Object> context) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ 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 = new HashMap<String, Object>();
+ 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);
+ feedbackCall.setUserID(userID);
+ DetailLevelCodeType[] detailLevelCodeType = {DetailLevelCodeType.RETURN_ALL};
+ feedbackCall.setDetailLevel(detailLevelCodeType);
+ FeedbackDetailType[] feedback = feedbackCall.getFeedback();
+ if (feedback != null) {
+ String partyId = null;
+ GenericValue userLoginEx = EntityQuery.use(delegator).from("UserLogin").where("userLoginId", userID).queryOne();
+ 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
+ GenericValue ownerPartyRole = EntityQuery.use(delegator).from("PartyRole")
+ .where("partyId", partyId, "roleTypeId", "OWNER")
+ .queryOne();
+ if (UtilValidate.isEmpty(ownerPartyRole)) {
+ 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 = EntityQuery.use(delegator).from("Content").where("contentId", contentId).queryOne();
+ if (contentCheck != null) {
+ continue;
+ }
+ String textData = feedback[i].getCommentText();
+ String commentingUserId= feedback[i].getCommentingUser();
+ String commentingPartyId = null;
+ GenericValue CommentingUserLogin = EntityQuery.use(delegator).from("UserLogin")
+ .where("userLoginId", commentingUserId)
+ .queryOne();
+ if (UtilValidate.isEmpty(CommentingUserLogin)) {
+ //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 {
+ commentingPartyId = CommentingUserLogin.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
+ GenericValue commentingPartyRole = EntityQuery.use(delegator).from("PartyRole")
+ .where("partyId", commentingPartyId, "roleTypeId", "COMMENTATOR")
+ .queryOne();
+ if (UtilValidate.isEmpty(commentingPartyRole)) {
+ GenericValue partyRole = delegator.makeValue("PartyRole");
+ partyRole.put("partyId", commentingPartyId);
+ partyRole.put("roleTypeId", "COMMENTATOR");
+ partyRole.create();
+ }
+ //ContentRole for eBay User
+ GenericValue ownerContentRole = EntityQuery.use(delegator).from("ContentRole")
+ .where("partyId", partyId, "roleTypeId", "OWNER", "contentId", contentId)
+ .queryFirst();
+ if (UtilValidate.isEmpty(ownerContentRole)) {
+ 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
+ GenericValue commentingContentRole = EntityQuery.use(delegator).from("ContentRole")
+ .where("partyId", commentingPartyId, "roleTypeId", "COMMENTATOR", "contentId", contentId)
+ .queryFirst();
+ if (UtilValidate.isEmpty(commentingContentRole)) {
+ 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 successful.";
+ result = ServiceUtil.returnSuccess(successMsg);
+ return result;
+ }
+
+ public static Map<String, Object> getItemsAwaitingFeedback(DispatchContext dctx, Map<String, ? extends Object> context) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ Delegator delegator = dctx.getDelegator();
+ Locale locale = (Locale) context.get("locale");
+ String productStoreId = (String) context.get("productStoreId");
+ ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+ List<Map<String, Object>> itemsResult = new LinkedList<Map<String,Object>>();
+ 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 = new HashMap<String, Object>();
+ 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 = new HashMap<String, Object>();
+ 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 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) {
+ /*
+ String AqItemAsDescribed = null;
+ 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;
+ }
+}
Propchange: ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayFeedback.java
('svn:eol-style' removed)