package com.iamberry.wechat.service.product.dao.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.iamberry.wechat.core.entity.product.Product;
import com.iamberry.wechat.core.entity.product.ProductType;
import com.iamberry.wechat.service.mapper.ProductMapper;
import com.iamberry.wechat.service.product.dao.ProductDao;

/**
 * 产品信息处理 DAO 实现类
 * 2016年4月21日
 * @author Administrator
 *
 */
@Repository
public class ProductDAOImpl implements ProductDao{
	@Autowired
	private ProductMapper productMapper;

	/**
	 * 获取所有产品信息并分页
	 * 2016年4月21日
	 * @author 穆再兴
	 * @param page
	 * @return
	 */
	public List<Product> selectAllProductInfo(Product product){
		return productMapper.selectAllProductInfo(product);
	}
	
	/**
	 * 根据productId 查询单个产品
	 * 2016年4月22日
	 * @author 穆再兴
	 * @param productId
	 * @return
	 */
	public Product selectProductByProductId(Integer productId){
		return productMapper.selectProductByProductId(productId);
	}
	
	/**
	 * 查所有产品个数 后台分页用
	 * 2016年4月23日
	 * @author 穆再兴
	 * @return
	 */
	public Integer selectProductCount(Product product){
		return productMapper.selectProductCount(product);
	}
	
	@Override
	public List<Product> selectProductIdAndName() {
		// TODO Auto-generated method stub
		return productMapper.selectProductIdAndName();
	}

	/**
	 * 添加一个产品
	 * 2016年4月21日
	 * @author 穆再兴
	 * @return
	 */
	public Integer addProduct(Product product){
		return productMapper.addProduct(product);
	}
	
	/**
	 * 根据 productId 修改一个产品的信息
	 * 2016年4月22日
	 * @author 穆再兴
	 * @param product
	 * @return
	 */
	public Integer updateProductByProductId(Product product){
		return productMapper.updateProductByProductId(product);
	}
	
	/**
	 * 根据 productId 修改一个产品的状态
	 * 2016年4月22日
	 * @author 穆再兴
	 * @param product
	 * @return
	 */
	public Integer updateProductStatusByProductId(Product product){
		return productMapper.updateProductStatusByProductId(product);
	}

	@Override
	public List<ProductType> getAll() {
		// TODO Auto-generated method stub
		return productMapper.getAll();
	}

	@Override
	public Integer insertProductType(ProductType productType) {
		// TODO Auto-generated method stub
		return productMapper.insertProductType(productType);
	}

	@Override
	public ProductType selectOneById(Integer typeId) {
		// TODO Auto-generated method stub
		return productMapper.selectOneById(typeId);
	}

	@Override
	public Integer updateProductTypeById(ProductType productType) {
		// TODO Auto-generated method stub
		return productMapper.updateProductTypeById(productType);
	}

	@Override
	public Integer updateProductTypeStatusById(ProductType productType) {
		// TODO Auto-generated method stub
		return productMapper.updateProductTypeStatusById(productType);
	}

}
