购物车中的条目顺序。

2020-09-15 07:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我想更改购物车中订单条目的标准Hybris逻辑。 而不是将它们添加到购物车页面的顶部。 我想将所有新产品添加到购物车页面列表的底部。 与其更改jsp渲染逻辑以使其以不同的顺序循环,不如更改标准逻辑。 负责它的类是 DefaultAbstractOrderService ,我认为方法是 addEntryAtPosition 。 这里正确的方法是什么? 谢谢!

这是代码段。

 受保护的int addEntryAtPosition(最终的AbstractOrderModel订单,最终的AbstractOrderEntryModel条目,最终的int请求)
      {
          int ret =请求;
          最终List  all = order.getEntries();
        /*
           *仅追加?
           */
          final int lastIndex = all.isEmpty()吗?  0:all.size()-1;
          final int lastIndexEntryNumberValue = all.isEmpty()吗?  0:(all.get(lastIndex))。getEntryNumber()。intValue();
 
          如果(要求<0)
          {
 
              ret = all.isEmpty()吗?  0:lastIndexEntryNumberValue +1;
          }
        /*
           *需要改组其他条目
           */
          其他
          {
              boolean foundEntryWithNumber = false;
              for(int i = 0,s = all.size(); i 我们现在需要移动数字
                  如果(foundEntryWithNumber)
                  {
                      currentEntry.setEntryNumber(Integer.valueOf(enr + 1));
                  }
                 //现在找到了吗?
                  否则,如果(enr ==请求)
                  {
                      foundEntryWithNumber = true;
                      currentEntry.setEntryNumber(Integer.valueOf(currentEntry.getEntryNumber()。intValue()+ 1));
                  }
                 //没有其他条目获得此号码->无需转移其他条目号码
                  否则(enr>请求)
                  {
                      打破;
                  }
              }
          }
          entry.setEntryNumber(Integer.valueOf(ret));
 
          final List  newEntries =新的ArrayList (all);
          newEntries.add(entry);
          Collections.sort(newEntries,新Comparator ()
          {
              @Override
              public int compare(final AbstractOrderEntryModel order1,final AbstractOrderEntryModel order2)
              {
                  返回order1.getEntryNumber()。compareTo(order2.getEntryNumber());
              }
          });
 
          order.setEntries(newEntries);
          返回ret
      }

  

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我想更改购物车中订单条目的标准Hybris逻辑。 而不是将它们添加到购物车页面的顶部。 我想将所有新产品添加到购物车页面列表的底部。 与其更改jsp渲染逻辑以使其以不同的顺序循环,不如更改标准逻辑。 负责它的类是 DefaultAbstractOrderService ,我认为方法是 addEntryAtPosition 。 这里正确的方法是什么? 谢谢!

这是代码段。

 受保护的int addEntryAtPosition(最终的AbstractOrderModel订单,最终的AbstractOrderEntryModel条目,最终的int请求)
      {
          int ret =请求;
          最终List  all = order.getEntries();
        /*
           *仅追加?
           */
          final int lastIndex = all.isEmpty()吗?  0:all.size()-1;
          final int lastIndexEntryNumberValue = all.isEmpty()吗?  0:(all.get(lastIndex))。getEntryNumber()。intValue();
 
          如果(要求<0)
          {
 
              ret = all.isEmpty()吗?  0:lastIndexEntryNumberValue +1;
          }
        /*
           *需要改组其他条目
           */
          其他
          {
              boolean foundEntryWithNumber = false;
              for(int i = 0,s = all.size(); i 我们现在需要移动数字
                  如果(foundEntryWithNumber)
                  {
                      currentEntry.setEntryNumber(Integer.valueOf(enr + 1));
                  }
                 //现在找到了吗?
                  否则,如果(enr ==请求)
                  {
                      foundEntryWithNumber = true;
                      currentEntry.setEntryNumber(Integer.valueOf(currentEntry.getEntryNumber()。intValue()+ 1));
                  }
                 //没有其他条目获得此号码->无需转移其他条目号码
                  否则(enr>请求)
                  {
                      打破;
                  }
              }
          }
          entry.setEntryNumber(Integer.valueOf(ret));
 
          final List  newEntries =新的ArrayList (all);
          newEntries.add(entry);
          Collections.sort(newEntries,新Comparator ()
          {
              @Override
              public int compare(final AbstractOrderEntryModel order1,final AbstractOrderEntryModel order2)
              {
                  返回order1.getEntryNumber()。compareTo(order2.getEntryNumber());
              }
          });
 
          order.setEntries(newEntries);
          返回ret
      }

  
付费偷看设置
发送
4条回答
悻福寶寶
1楼-- · 2020-09-15 07:40

CartPopulator

 受保护的void addEntries(最终的AbstractOrderModel源,最终的AbstractOrderData原型)
      {
          prototype.setEntries(getOrderEntryConverter()。convertAll(source.getEntries()));
      }


  
大简至美
2楼-- · 2020-09-15 07:34

嗨,

如果您需要在前端以其他方式显示条目,我希望更改填充器中的顺序,这样会更容易。

Bunny_CDM
3楼-- · 2020-09-15 07:59

能否请我指出负责该操作的填充器? 我找到了CartParameterPopulator,但是它有不同的职责。

 私有ConfigurationService configurationService;
      私有BaseSiteService baseSiteService;
 
      @Override
      公共无效populate(AddToCartParams参数,CommerceCartParameter参数)抛出ConversionException {
          最终字符串siteUid = getBaseSiteService()。getCurrentBaseSite()。getUid();
          final boolean createNewEntry = getConfigurationService()。getConfiguration()。getBoolean(String.format(" site.order.create_new_entry。%s",siteUid),false);
          parameter.setCreateNewEntry(createNewEntry);
      }
  
Bunny_CDM
4楼-- · 2020-09-15 07:49

我发现了呈现购物车条目的forEach循环。 如何反转其渲染?

  
  

一周热门 更多>