@SuppressWarnings({"unchecked", "rawtypes"}) public void execute( Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException { Long productCategoryId = FreemarkerUtils.getParameter(PRODUCT_CATEGORY_ID_PARAMETER_NAME, Long.class, params); ProductCategory productCategory = productCategoryService.find(productCategoryId); List<ProductCategory> productCategories; if (productCategoryId != null && productCategory == null) { productCategories = new ArrayList<ProductCategory>(); } else { boolean useCache = useCache(env, params); String cacheRegion = getCacheRegion(env, params); Integer count = getCount(params); if (useCache) { productCategories = productCategoryService.findParents(productCategory, count, cacheRegion); } else { productCategories = productCategoryService.findParents(productCategory, count); } } setLocalVariable(VARIABLE_NAME, productCategories, env, body); }
/** 获取参数组 */ @RequestMapping(value = "/parameter_groups", method = RequestMethod.GET) public @ResponseBody Set<ParameterGroup> parameterGroups(Long id) { Set<ParameterGroup> set = null; ProductCategory productCategory = productCategoryService.find(id); if (productCategory.getParameterGroups() == null || productCategory.getParameterGroups().size() <= 0) { List<ProductCategory> list = productCategoryService.findParents(productCategory); for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { ProductCategory p = (ProductCategory) iterator.next(); if (p.getAttributes() != null && p.getParameterGroups().size() > 0) { set = p.getParameterGroups(); } } } else { set = productCategory.getParameterGroups(); } return set; }