销售税面试题六编码实现之业务逻辑层

ProductService.java:

package com.xy6.interview;

import java.math.BigDecimal;
import java.util.ArrayList;

import com.xy6.interview.util.ProductConstants;
import com.xy6.interview.util.ProductFreeTaxTypeUtil;
import com.xy6.interview.util.ProductUtil;

/**
 * 商品数据逻辑接口实现类
 *
 * @author daxiang
 * @since 2014-07-17
 */
public class ProductService implements IProductService {

	private final ProductDAO productDAO = new ProductDAO();

	/**
	 * 读取免税商品类型
	 *
	 * @param strXmlFilePath 免税商品类型配置xml文件路径
	 * @return 免税商品类型集合
	 */
	public ArrayList readFreeTypeList(String strXmlFilePath){
		return productDAO.readFreeTypeList(strXmlFilePath);
	}

	/**
	 * 计算xml文件中各商品总价、总税额
	 *
	 * @param strXmlFilePath 保存商品的xml文件路径
	 * @return 购物车表单
	 */
	public ProductResultForm calcProductPrice(String strXmlFilePath){
		ArrayList listProductForm = this.readProductList(strXmlFilePath);
		listProductForm = this.calcEachPriceAndTax(listProductForm);
		ProductResultForm resultForm = this.calcTotalPriceAndTax(listProductForm);

		return resultForm;
	}

	/**
	 * 读取商品信息
	 *
	 * @param strXmlFilePath 保存商品的xml文件路径
	 * @return 商品信息集合
	 */
	public ArrayList readProductList(String strXmlFilePath){
		return productDAO.readProductList(strXmlFilePath);
	}

	/**
	 * 计算集合中每个商品的价格、税额,并将其保存到集合中
	 *
	 * @param listProductForm 商品信息集合
	 * @return 商品信息集合
	 */
	public ArrayList calcEachPriceAndTax(ArrayList listProductForm){
		if(listProductForm == null || listProductForm.size() == 0){
			return listProductForm;
		}
		BigDecimal bdRate;
		BigDecimal bdItemPrice;
		BigDecimal bdItemTax;
		ProductForm formCalc;
		ArrayList listFreeTaxProType = ProductFreeTaxTypeUtil.listFreeTaxProType;
		// 计算每个商品的税率,总价,总税额
		for(int i=0; i listProductForm){
		ProductResultForm resultForm = new ProductResultForm();
		if(listProductForm == null || listProductForm.size() == 0){
			return resultForm;
		}
		BigDecimal bdTotalPrice = BigDecimal.ZERO;
		BigDecimal bdTotalTax = BigDecimal.ZERO;
		ProductForm formCalc;
		// 计算购物车总价,总税额
		for(int i=0; i

IProductService.java:

package com.xy6.interview;

import java.util.ArrayList;

/**
 * 商品数据逻辑接口类
 *
 * @author daxiang
 * @since 2014-07-17
 */
public interface IProductService {

	/**
	 * 读取免税商品类型
	 *
	 * @param strXmlFilePath 免税商品类型配置xml文件路径
	 * @return 免税商品类型集合
	 */
	public ArrayList readFreeTypeList(String strXmlFilePath);

	/**
	 * 计算xml文件中各商品总价、总税额
	 *
	 * @param strXmlFilePath 保存商品的xml文件路径
	 * @return 购物车表单
	 */
	public ProductResultForm calcProductPrice(String strXmlFilePath);

	/**
	 * 读取商品信息
	 *
	 * @param strXmlFilePath 保存商品的xml文件路径
	 * @return 商品信息集合
	 */
	public ArrayList readProductList(String strXmlFilePath);

	/**
	 * 计算集合中每个商品的价格、税额,并将其保存到集合中
	 *
	 * @param listProductForm 商品信息集合
	 * @return 商品信息集合
	 */
	public ArrayList calcEachPriceAndTax(ArrayList listProductForm);

	/**
	 * 计算集合中各商品总价、总税额
	 * @param listProductForm 商品信息集合
	 * @return 购物车表单
	 */
	public ProductResultForm calcTotalPriceAndTax(ArrayList listProductForm);
}

你可能感兴趣的:(J2EE)