1 package com.dotmarketing.viewtools; 2 3 import java.util.ArrayList ; 4 import java.util.HashMap ; 5 import java.util.Iterator ; 6 import java.util.List ; 7 import java.util.Map ; 8 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 12 import org.apache.struts.action.ActionForm; 13 import org.apache.velocity.tools.view.context.ViewContext; 14 import org.apache.velocity.tools.view.tools.ViewTool; 15 16 import com.dotmarketing.beans.Identifier; 17 import com.dotmarketing.beans.UserProxy; 18 import com.dotmarketing.cms.factories.PublicUserFactory; 19 import com.dotmarketing.factories.IdentifierFactory; 20 import com.dotmarketing.factories.InodeFactory; 21 import com.dotmarketing.factories.UserProxyFactory; 22 import com.dotmarketing.portlets.categories.model.Category; 23 import com.dotmarketing.portlets.contentlet.factories.ContentletFactory; 24 import com.dotmarketing.portlets.contentlet.model.Contentlet; 25 import com.dotmarketing.portlets.files.model.File; 26 import com.dotmarketing.portlets.structure.factories.StructureFactory; 27 import com.dotmarketing.portlets.structure.model.Structure; 28 import com.dotmarketing.util.Config; 29 import com.dotmarketing.util.UtilMethods; 30 import com.dotmarketing.util.WebKeys; 31 import com.liferay.portal.model.User; 32 import com.dotmarketing.cms.product.model.Holder; 33 import com.dotmarketing.cms.product.struts.ProductsForm; 34 import com.dotmarketing.portlets.discountcode.factories.DiscountCodeFactory; 35 import com.dotmarketing.portlets.discountcode.model.DiscountCode; 36 import com.dotmarketing.portlets.order_manager.factories.OrderFactory; 37 import com.dotmarketing.portlets.order_manager.factories.OrderItemFactory; 38 import com.dotmarketing.portlets.order_manager.model.Order; 39 import com.dotmarketing.portlets.order_manager.model.OrderItem; 40 import com.dotmarketing.portlets.order_manager.struts.OrderForm; 41 import com.dotmarketing.portlets.product.factories.ProductFactory; 42 import com.dotmarketing.portlets.product.factories.ProductFormatFactory; 43 import com.dotmarketing.portlets.product.model.Product; 44 import com.dotmarketing.portlets.product.model.ProductFormat; 45 import com.dotmarketing.portlets.product.struts.ProductForm; 46 import com.dotmarketing.util.UtilMethods; 47 48 51 52 public class ProductWebAPI implements ViewTool { 53 54 private HttpServletRequest request; 55 56 public void init(Object obj) { 57 ViewContext context = (ViewContext) obj; 58 this.request = context.getRequest(); 59 60 } 61 62 public void init(HttpServletRequest req, HttpServletResponse response) { 63 this.request = req; 64 65 } 66 67 public Product getProduct(String inode) { 68 return (Product) UtilMethods.getProduct(inode); 69 } 70 71 public Product getProduct(long inode) { 72 return (Product) UtilMethods.getProduct(inode); 73 } 74 75 public float getTotalApplicableDiscount(List <Holder> holders,List <DiscountCode> discounts,boolean partner) 76 { 77 return DiscountCodeFactory.getTotalApplicableDiscount(holders,discounts,partner); 78 } 79 80 @SuppressWarnings ("unchecked") 81 public List <Order> getProductOrdersByUser(String userId){ 82 if (userId == null) 83 return new ArrayList <Order>(); 84 85 String inode = String.valueOf(UserProxyFactory.getUserProxy(userId).getInode()); 86 87 return OrderFactory.getOrdersByUserInode(inode); 88 } 89 90 @SuppressWarnings ("unchecked") 91 public List <Order> getProductOrdersByUserInode(String inode){ 92 if (inode == null) 93 return new ArrayList <Order>(); 94 95 return OrderFactory.getOrdersByUserInode(inode); 96 } 97 98 public String getProductNamebyId(long productInode){ 99 100 Product product = (Product) ProductFactory.getProduct(productInode); 101 return product.getTitle(); 102 } 103 104 105 public Product getProductbyProductFormaId(String productFormatInode){ 106 107 ProductFormat productF = (ProductFormat) ProductFormatFactory.getProductFormat(productFormatInode); 108 return getProductById(productF.getProductInode()); 109 } 110 111 public Product getProductbyProductFormaId(long productFormatInode){ 112 113 ProductFormat productF = (ProductFormat) ProductFormatFactory.getProductFormat(productFormatInode); 114 return getProductById(productF.getProductInode()); 115 } 116 117 public Product getProductById(long productInode){ 118 119 Product product = getProduct(productInode); 120 return product; 121 } 122 123 public List <Map > getPaymentMethods () { 124 List <Map > paymentsList = new ArrayList <Map > (); 125 String [] paymentMethods = Config.getStringArrayProperty("ECOM_PAYMENT_TYPES"); 126 for (String paymentMethod : paymentMethods) { 127 String value = Config.getStringProperty(paymentMethod); 128 String friendlyName = Config.getStringProperty(paymentMethod + "_FN"); 129 Map paymentMethodMap = new HashMap (); 130 paymentMethodMap.put("value", value); 131 paymentMethodMap.put("friendlyName", friendlyName); 132 paymentMethodMap.put("name", paymentMethod); 133 paymentsList.add(paymentMethodMap); 134 } 135 return paymentsList; 136 } 137 138 public OrderForm loadOrderForm() 139 { 140 return UtilMethods.loadOrderForm(request); 141 } 142 143 public String getUserFullName(OrderForm orderForm) 144 { 145 return UtilMethods.getUserFullName(orderForm); 146 } 147 148 public String getUserCompanyName(OrderForm orderForm) 149 { 150 return UtilMethods.getUserCompanyName(request,orderForm); 151 } 152 153 public String getMonth(String month){ 154 155 return getMonth(Integer.parseInt(month)); 156 } 157 158 public String getMonth(int month){ 159 160 String strMonth = ""; 161 162 switch (month){ 163 164 case 0: strMonth = "January"; 165 break; 166 case 1: strMonth = "February"; 167 break; 168 case 2: strMonth = "March"; 169 break; 170 case 3: strMonth = "April"; 171 break; 172 case 4: strMonth = "May"; 173 break; 174 case 5: strMonth = "June"; 175 break; 176 case 6: strMonth = "July"; 177 break; 178 case 7: strMonth = "August"; 179 break; 180 case 8: strMonth = "September"; 181 break; 182 case 9: strMonth = "October"; 183 break; 184 case 10: strMonth = "November"; 185 break; 186 case 11: strMonth = "December"; 187 break; 188 189 } 190 191 return strMonth; 192 } 193 194 195 public List <Product> getRelatedProduct(String inode, String quantity){ 196 197 long inodeL = Long.parseLong(inode); 198 int productQuatity = Integer.parseInt(quantity); 199 return getRelatedProduct(inodeL,productQuatity); 200 } 201 202 203 @SuppressWarnings ("unchecked") 204 public List <Product> getRelatedProduct(long inode, int quantity){ 205 206 List <Category> categoriesList = null; 207 208 if(inode > 0){ 209 try { 210 Product source = (Product) InodeFactory.getInode(inode, Product.class); 211 categoriesList = (List <Category>) InodeFactory.getParentsOfClass(source,Category.class); 212 } 213 catch (Exception e) { 214 Contentlet source = (Contentlet) InodeFactory.getInode(inode, Contentlet.class); 215 categoriesList = (List <Category>) InodeFactory.getParentsOfClass(source,Category.class); 216 } 217 } 218 219 List <Product> productList = ProductFactory.getAllProductsByCategoryList(categoriesList,quantity,"newid()","","",0,0); 220 221 if(productList == null || productList.size() == 0){ 222 categoriesList = null; 223 productList = ProductFactory.getAllProductsByCategoryList(categoriesList,quantity,"newid()","","",0,0); 224 } 225 226 return productList; 227 } 228 229 230 public List <Contentlet> getRecommendedArticles(String inode, String quantity){ 231 232 long inodeL = Long.parseLong(inode); 233 int productQuatity = Integer.parseInt(quantity); 234 return getRecommendedArticles(inodeL,productQuatity); 235 } 236 237 238 @SuppressWarnings ("unchecked") 239 public List <Contentlet> getRecommendedArticles(long inode, int quantity){ 240 241 List <Category> categoriesList = null; 242 243 try { 244 Product source = (Product) InodeFactory.getInode(inode, Product.class); 245 categoriesList = (List <Category>) InodeFactory.getParentsOfClass(source,Category.class); 246 } 247 catch (Exception e) { 248 Contentlet source = (Contentlet) InodeFactory.getInode(inode, Contentlet.class); 249 categoriesList = (List <Category>) InodeFactory.getParentsOfClass(source,Category.class); 250 } 251 252 Structure structure = StructureFactory.getStructureByType(Config.getStringProperty("KNOWLEDGE_ASSET_STRUCTURE")); 253 List <Contentlet> articleList = ContentletFactory.getContentletsByStuctureAndCategoryList(structure,categoriesList,quantity,"newid()"); 254 255 if(articleList == null || articleList.size() == 0){ 256 categoriesList = null; 257 articleList = ContentletFactory.getContentletsByStuctureAndCategoryList(structure,categoriesList,quantity,"newid()"); 258 } 259 return articleList; 260 } 261 262 public User getUserByOrder(String orderUserInode){ 263 264 long orderUserInodeL = Long.parseLong(orderUserInode); 265 UserProxy orderUser = UserProxyFactory.getUserProxy(orderUserInodeL); 266 User user = PublicUserFactory.getUserByUserId(orderUser.getUserId()); 267 268 return user; 269 } 270 271 @SuppressWarnings ("unchecked") 272 public List <OrderItem> getOrderItemListByOrder(String orderInode){ 273 274 long orderId = Long.parseLong(orderInode); 275 List <OrderItem> orderItemList = (List <OrderItem>) OrderItemFactory.getOrderItemsByOrderId(orderId); 276 return orderItemList; 277 278 } 279 280 public ActionForm loadFeaturedProductByCategory(ActionForm lf,HttpServletRequest request) 281 { 282 lf = (lf != null ? lf : new ProductsForm()); 283 ProductFactory.loadFeaturedProductByCategory(lf,request); 284 return lf; 285 } 286 287 public ActionForm loadProductByCategory(ActionForm lf,HttpServletRequest request) 288 { 289 lf = (lf != null ? lf : new ProductsForm()); 290 ProductFactory.loadProductByCategory(lf,request); 291 return lf; 292 } 293 294 public ActionForm loadProduct(ActionForm lf,HttpServletRequest request) 295 { 296 lf = (lf != null ? lf : new ProductsForm()); 297 ProductsForm productsForm = (ProductsForm) lf; 298 if (UtilMethods.isSet(request.getParameter("inode")) && UtilMethods.isLong(request.getParameter("inode"))) 299 { 300 productsForm.setInode(Long.parseLong(request.getParameter("inode"))); 301 } 302 ProductFactory.loadProduct(lf,request); 303 return lf; 304 } 305 306 public ActionForm loadTypeProducts(ActionForm lf, HttpServletRequest request) 307 { 308 lf = (lf != null ? lf : new ProductsForm()); 309 ProductFactory.loadTypeProducts(lf,request); 310 return lf; 311 } 312 313 public List loadProductFilesList(HttpServletRequest request) 315 { 316 Product product = new Product(); 318 product.setInode(request.getParameter("inode")); 319 Identifier identifier; 320 File file; 321 322 ArrayList <File> files = new ArrayList <File>(); 323 List identifiers = InodeFactory.getChildrenClassByRelationType(product,Identifier.class,WebKeys.PRODUCT_FILES); 324 Iterator it = identifiers.iterator(); 325 326 while (it.hasNext()) { 327 identifier = (Identifier) it.next(); 328 file = (File) IdentifierFactory.getWorkingChildOfClass(identifier, File.class); 329 files.add((File) InodeFactory.getInode(file.getInode(), File.class)); 330 } 331 332 return files; 333 } 334 } 335 | Popular Tags |