Skip to Content
0
Jan 12, 2023 at 01:56 PM

how to make Visible my Video Component to the customer whose orderstatus is completed.

35 Views Last edit Jan 13, 2023 at 04:28 AM 3 rev

I have a created a video component in homepage and i want to show that component to the cusotmer whose order history is having order as completed. I have done few of the things but not getting the last kick.I am not able to deal with enum in the getView method.

package de.hybris.training.storefront.controllers.cms;

import de.hybris.platform.acceleratorstorefrontcommons.controllers.cms.AbstractCMSComponentController;

import de.hybris.platform.commercefacades.order.OrderFacade;

import de.hybris.platform.commercefacades.order.data.OrderHistoryData;

import de.hybris.platform.commerceservices.search.pagedata.PageableData;

import de.hybris.platform.commerceservices.search.pagedata.SearchPageData;

import de.hybris.platform.core.enums.OrderStatus;

import de.hybris.training.core.model.components.TrainingVideoComponentModel;

import de.hybris.training.storefront.controllers.ControllerConstants;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.BooleanUtils;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

/**

* Controller for CMS HomePageVideoComponent

*/

@Controller("TrainingVideoCMSComponentController")

@RequestMapping(value = ControllerConstants.Actions.Cms.TrainingVideoCmsComponent)

public class TrainingVideoCMSComponentController extends AbstractCMSComponentController<TrainingVideoComponentModel>

{

@Resource(name = "orderFacade")

private OrderFacade orderFacade;

@Override

protected void fillModel(final HttpServletRequest request, final Model model, final TrainingVideoComponentModel component)

{

// Auto-generated method stub

model.addAttribute("width", component.getWidth());

model.addAttribute("height", component.getHeight());

model.addAttribute("videoId", component.getVideoId());

model.addAttribute("autoPlay", BooleanUtils.toBoolean(component.getAutoPlay()) ? 1 : 0);

model.addAttribute("showControls", BooleanUtils.toBoolean(component.getShowControls()) ? 1 : 0);

}

@Override

protected String getView(final TrainingVideoComponentModel component)

{

// Auto-generated method stub

final PageableData pageableData = new PageableData();

pageableData.setPageSize(1);

final SearchPageData<OrderHistoryData> orderHistoryData = orderFacade.getPagedOrderHistoryForStatuses(pageableData,

OrderStatus.COMPLETED);

if (OrderStatus.COMPLETED != null)

{

return getView(component);

}

else

{

return null;

}

}

}

I have to make changes in the controller.

So, I took one method from Order Facade that is returning the order history of the current user with giving two parameters out one is Order status. I used this method but not getting how to process furthered. I am slo not sured that the return statement for my view is correct or not.