⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 productcategory.java

📁 工厂版本管理系统,STRUTS2框架,用于管理商品的版本,便于有效的控制版本
💻 JAVA
字号:
package com.bluesky.elecall.domain;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.bluesky.common.dao.ICommonDao;
import com.bluesky.elecall.dao.IManufactoryDao;
import com.bluesky.elecall.dao.IProductCategoryDao;
import com.bluesky.elecall.dao.IProductDao;
import com.bluesky.elecall.domain.search.AttributeStatistics;
import com.bluesky.elecall.domain.search.CategoryStatisticsItem;
import com.bluesky.elecall.domain.search.StatisticsItem;

public class ProductCategory implements IProductCategory {
	private Log log = LogFactory.getLog(this.getClass());
	private List products;

	private IProductCategoryDao productCategoryDao;
	private IProductDao productDao;

	private IManufactoryDao manufactoryDao;
	private ICommonDao commonDao;

	public IManufactoryDao getManufactoryDao() {
		return manufactoryDao;
	}

	public void setManufactoryDao(IManufactoryDao manufactoryDao) {
		this.manufactoryDao = manufactoryDao;
	}

	public IProductDao getProductDao() {
		return productDao;
	}

	public void setProductDao(IProductDao productDao) {
		this.productDao = productDao;
	}

	public ICommonDao getCommonDao() {
		return commonDao;
	}

	public void setCommonDao(ICommonDao commonDao) {
		this.commonDao = commonDao;
	}

	public ProductCategory() {

	}

	public CategoryItem getRootCategoryItem() {
		List rslt = productCategoryDao.getItemByLevel(0);
		if (rslt.size() == 1)
			return (CategoryItem) rslt.get(0);
		else if (rslt.size() == 0)
			return null;
		else
			throw new RuntimeException("too many item are level 0");
	}

	public IProductCategoryDao getProductCategoryDao() {
		return productCategoryDao;
	}

	public void setProductCategoryDao(IProductCategoryDao productCategoryDao) {
		this.productCategoryDao = productCategoryDao;
	}

	public Set<CategoryItem> getChildrenCategoryItems(CategoryItem item) {
		CategoryItem item2 = (CategoryItem) productCategoryDao
				.getCategoryItem(item.getId());
		Set children = item2.getChildren();

		// load
		navigateCategory(item2, 1);

		return children;
	}

	private void navigateCategory(CategoryItem item, int levelDepth) {
		if (levelDepth == 0)
			return;

		if (levelDepth > 0) {
			Set children = item.getChildren();
			Iterator it = children.iterator();
			while (it.hasNext()) {
				CategoryItem child = ((CategoryItem) it.next());
				child.getName();
				if (levelDepth > 1)
					navigateCategory(child, levelDepth - 1);
			}

		}

	}

	public void save(CategoryItem item) {
		// somehow TransientInstanceException thrown

		// re-load the parent
		if (item.getParent() != null) {
			CategoryItem parent = getCategoryItem(item.getParent().getId());
			item.setParent(parent);
		}
		productCategoryDao.save(item);
	}

	public CategoryItem getCategoryItem(long id) {

		return productCategoryDao.getCategoryItem(id);
	}

	public CategoryItem getCategoryItem(long id, int levelDepth) {

		CategoryItem item = productCategoryDao.getCategoryItem(id);

		if (item != null)
			navigateCategory(item, levelDepth);

		return item;
	}

	public CategoryItem getParentCategoryItem(CategoryItem item) {
		CategoryItem it = getCategoryItem(item.getId());
		CategoryItem p = it.getParent();

		// load
		p.getName();

		return p;
	}

	public void deleteProduct(String id) {
		productDao.delete(id);

	}

	public Set getProducts(CategoryItem item) {
		CategoryItem ci = getCategoryItem(item.getId());
		Set products = ci.getProducts();

		// load
		Iterator it = products.iterator();
		while (it.hasNext())
			((Product) it.next()).getName();

		return products;
	}

	public void save(Product product) {
		// assign id
		log.debug("manufactory.id="+product.getManufactory().getId());
		Manufactory m = manufactoryDao.get(product.getManufactory().getId());
		long seq = m.increaseCurrentProductSequence();
		manufactoryDao.update(m);

		product.setManufactory(m);
		String productId = String.format("%d-%d", m.getId(), seq);
		product.setId(productId);

		productDao.save(product);

	}

	public void update(Product product) {
		// delete all attributes

		// Product entity = productDao.get(product.getId());
		// entity.getAttributes().clear();
		// productDao.update(entity);

		productDao.update(product);

	}

	public Product merge(Product product) {
		return productDao.merge(product);
	}

	public Product getProduct(String id) {

		Product p = productCategoryDao.getProduct(id);

		//load
		if(p!=null)
			p.getName();
		
		return p;
	}

	public CategoryItem getRootCategoryItem(int levelDepth) {
		CategoryItem root = getRootCategoryItem();
		navigateCategory(root, levelDepth);
		return root;
	}

	public AttributeStatistics getAttributeStatistics(CategoryItem subsection,
			CategoryItem family, Manufactory manufactory, Map productAttributes, String keywords) {
		List list = productCategoryDao.getAttributeStatistics(subsection,
				family, manufactory, productAttributes, keywords);

		AttributeStatistics as = new AttributeStatistics();

		for (int i = 0; i < list.size(); i++) {
			Object[] row = (Object[]) list.get(i);
			String name = (String) row[0];
			String value = (String) row[1];
			long count = Long.parseLong(row[2].toString());

			StatisticsItem si = new StatisticsItem(null, value, count);

			as.put(name, si);
		}

		return as;
	}

	public List findProductByFamily(CategoryItem family) {
		return commonDao.getHibTemplate().find("from Product p where p.family=?",family);
		
	}
	
	public List<Product> findProduct(CategoryItem subsection,
			CategoryItem family, Manufactory manufactory,
			Map productAttributes, String keywords) {
		return productCategoryDao.findProduct(subsection, family, manufactory,
				productAttributes,keywords);
	}

	public List<StatisticsItem> getFamilyStatistics(CategoryItem subsection,
			CategoryItem family, Manufactory manufactory,
			Map productAttributes, String keywords) {

		List daoResult = productCategoryDao.getFamilyStatistics(subsection,
				family, manufactory, productAttributes,keywords);

		List items = new ArrayList();

		for (int i = 0; i < daoResult.size(); i++) {
			Object[] row = (Object[]) daoResult.get(i);
			String id =  row[0].toString();
			String name = (String) row[1];
			long count = Long.parseLong(row[2].toString());

			StatisticsItem si = new StatisticsItem(id, name, count);

			items.add(si);
		}

		return items;
	}

	public List<StatisticsItem> getManufactoryStatistics(
			CategoryItem subsection, CategoryItem family,
			Manufactory manufactory, Map productAttributes, String keywords) {

		List daoResult = productCategoryDao.getManufactoryStatistics(
				subsection, family, manufactory, productAttributes,keywords);

		List items = new ArrayList();

		for (int i = 0; i < daoResult.size(); i++) {
			Object[] row = (Object[]) daoResult.get(i);
			String id =  row[0].toString();
			String name = (String) row[1];
			long count = Long.parseLong(row[2].toString());

			StatisticsItem si = new StatisticsItem(id, name, count);

			items.add(si);
		}

		return items;
	}
	
	public ProductAttribute getProductAttribute(String id) {
		
		return productDao.getProductAttribute(id);
	}
	
	public CategoryStatisticsItem getCategoryStatistics(
			CategoryItem level2CategoryItem) {
		List daoResult = productCategoryDao.getCategoryStatistics(level2CategoryItem);

		CategoryStatisticsItem rslt = new CategoryStatisticsItem();
		
		for (int i = 0; i < daoResult.size(); i++) {
			Object[] row = (Object[]) daoResult.get(i);
			
			String level3Id =  row[0].toString();
			String level3Name = (String) row[1];
			String level4Id =  row[2].toString();
			String level4Name = (String) row[3];
			
			long count = Long.parseLong(row[4].toString());
			
			rslt.addGrandchild(level3Id, level3Name, level4Id, level4Name, count);
			
		}

		return rslt;
	}

	public List<CategoryItem> getCategoryItemByLevel(int level) {
		
		return productCategoryDao.getItemByLevel(level);
	}
	
	public CategoryStatisticsItem getCategoryStatistics(CategoryItem level3CategoryItem, String keyWords) {
		List daoResult = productCategoryDao.getCategoryStatistics(level3CategoryItem,keyWords);

		CategoryStatisticsItem rslt = new CategoryStatisticsItem();
		
		for (int i = 0; i < daoResult.size(); i++) {
			Object[] row = (Object[]) daoResult.get(i);
			
			String id1 =  row[0].toString();
			String name1 = (String) row[1];
			String id2 =  row[2].toString();
			String name2 = (String) row[3];
			
			long count = Long.parseLong(row[4].toString());
			
			rslt.addGrandchild(id1, name1, id2, name2, count);
			
		}

		return rslt;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -