/** * PPackageProdDao.java 2010/07/05 */ package com.ycsoft.business.dao.prod; import java.util.List; import org.springframework.stereotype.Component; import com.ycsoft.beans.prod.PPackageProd; import com.ycsoft.commons.constants.DictKey; import com.ycsoft.commons.constants.SystemConstants; import com.ycsoft.commons.helper.StringHelper; import com.ycsoft.daos.abstracts.BaseEntityDao; /** * PPackageProdDao -> P_PACKAGE_PROD table's operator */ @Component public class PPackageProdDao extends BaseEntityDao<PPackageProd> { /** * */ private static final long serialVersionUID = -4068176199860724936L; /** * default empty constructor */ public PPackageProdDao() {} public List<PPackageProd> queryPackProdById(String prodId) throws Exception{ String sql = "select pp.*, p.prod_type from p_package_prod pp,p_prod p where pp.package_id=p.prod_id and pp.package_id=? "; List<PPackageProd> tariffList = this.createQuery(PPackageProd.class,sql, prodId).list(); return tariffList; } public void updatePack (List<Object[]> list) throws Exception { String sql = "update p_package_prod set tariff_id = ? ,max_prod_count = ? where prod_id = ? and package_id = ? "; executeBatch(sql, list); } public void deletePack (List<Object[]> list) throws Exception { String sql = "delete p_package_prod where prod_id = ? and package_id = ?"; executeBatch(sql, list); } public void deletePackById (String pkgId) throws Exception { String sql = "delete p_package_prod where package_id = ? "; executeUpdate(sql, pkgId); } public List<PPackageProd> queryPackProdByProdId(String prodId) throws Exception{ String sql = "select * from p_package_prod where package_id=? "; return this.createQuery(PPackageProd.class,sql, prodId).list(); } public List<PPackageProd> queryPkgById(String pkId) throws Exception{ String sql = "select distinct package_id from p_package_prod where package_id=? "; List<PPackageProd> pkList = this.createQuery(PPackageProd.class,sql, pkId).list(); return pkList; } public List<PPackageProd> queryPkgProdById(String prodId) throws Exception{ String sql = "select distinct prod_id from p_package_prod where package_id=? "; List<PPackageProd> tariffList = this.createQuery(PPackageProd.class,sql, prodId).list(); return tariffList; } public List<PPackageProd> getPackProdById(String pkgId,String pkgTariffId) throws Exception{ List<PPackageProd> tariffList = null; if(StringHelper.isNotEmpty(pkgTariffId)){ String sql = "select p.* from p_package_prod p where p.package_id= ? and p.package_tariff_id =?"; tariffList = this.createQuery(PPackageProd.class,sql, pkgId,pkgTariffId).list(); }else{ String sql = "select p.* from p_package_prod p where p.package_id= ?"; tariffList = this.createQuery(PPackageProd.class,sql, pkgId).list(); } return tariffList; } public List<PPackageProd> getMarketPackProdById(String pkgId,String pkgTariffId) throws Exception{ String sql = "select p.* from p_package_prod p where p.package_id= ? and p.package_tariff_id =? "; List<PPackageProd> tariffList = this.createQuery(PPackageProd.class,sql, pkgId,pkgTariffId).list(); return tariffList; } public List<PPackageProd> queryPackProdById(String pkgId, String pkgTariffId) throws Exception { String condition = ""; if(StringHelper.isNotEmpty(pkgTariffId)){ condition = " and pa.package_tariff_id = '"+pkgTariffId+"'"; } String sql = "select distinct b.*, b2.max_prod_count,b2.percent, b2.percent_value from " + "(select a2.*, a1.type from ( select item_value type from s_itemvalue si where si.item_key = ?) a1," + "(select distinct pa.package_id,pa.prod_id,pa.tariff_id,pa.package_tariff_id from p_package_prod pa" + " where pa.package_id = ?"+condition+") a2) b,p_package_prod b2" + " where b2.package_id(+) = b.package_id and b2.prod_id(+) = b.prod_id" + " and b2.tariff_id(+) = b.tariff_id and b2.package_tariff_id(+) = b.package_tariff_id" + " and b2.type(+) = b.type order by b.type desc"; return this.createQuery(sql, DictKey.SEPARATE_TYPE.toString(), pkgId).list(); } }