/**
* TTemplateColumnDao.java 2013/01/14
*/
package com.ycsoft.business.dao.config;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Component;
import com.ycsoft.beans.config.TBusiFeeStd;
import com.ycsoft.beans.config.TTemplateColumn;
import com.ycsoft.business.dto.config.TemplateFeeDto;
import com.ycsoft.commons.helper.StringHelper;
import com.ycsoft.daos.abstracts.BaseEntityDao;
import com.ycsoft.daos.core.Pager;
/**
* TTemplateColumnDao -> T_TEMPLATE_COLUMN table's operator
*/
@Component
public class TTemplateColumnDao extends BaseEntityDao<TTemplateColumn> {
/**
*
*/
private static final long serialVersionUID = -9207106105901804426L;
/**
* default empty constructor
*/
public TTemplateColumnDao() {}
public void deleteColumn(String feeStdId, String optrId) throws Exception {
String sql = "delete t_template_column_optr where column_id in (" +
" select column_id from t_template_column t where t.optr_id=?" +
" and t.column_id in (select column_id from t_template_fee_std where fee_std_id=?)" +
")";
int num = this.executeUpdate(sql, optrId, feeStdId);
if(num >= 0 || num == -2){
sql = "delete t_template_column t where t.optr_id=?" +
" and t.column_id in (select column_id from t_template_fee_std where fee_std_id=?)";
num = this.executeUpdate(sql, optrId, feeStdId);
if(num >= 0 || num == -2){
sql = "delete t_template_fee_std where fee_std_id=?";
this.executeUpdate(sql, feeStdId);
}
}
}
public void updateColumn(TBusiFeeStd feeStd, String optrId) throws Exception {
// String sql = "update (select /*+bypass_ujvc+*/ c.* from t_template_column c,t_template_fee_std fs" +
// " where c.column_id=fs.column_id and fs.fee_std_id=? and c.column_name=? and c.optr_id=?" +
// " ) t set t.min_value=?, t.max_value=?, t.default_value=?";
String sql="update t_template_column c set c.min_value = ?, c.max_value = ?, c.default_value = ? "+
" where c.column_id in (select fs.column_id from t_template_fee_std fs where fs.fee_std_id=?) "+
" and c.column_name=? and c.optr_id=?";
List<Object[]> objs = new ArrayList<Object[]>();
List<Object> list = new ArrayList<Object>();
/**
list.add(feeStd.getFee_std_id());
list.add("min_value");
list.add(optrId);
list.add(feeStd.getMin_value());
list.add(feeStd.getMax_value());
list.add(feeStd.getMin_value());
**/
list.add(feeStd.getMin_value());
list.add(feeStd.getMax_value());
list.add(feeStd.getMin_value());
list.add(feeStd.getFee_std_id());
list.add("min_value");
list.add(optrId);
objs.add(list.toArray(new Object[list.size()]));
list = new ArrayList<Object>();
list.add(feeStd.getMin_value());
list.add(feeStd.getMax_value());
list.add(feeStd.getMax_value());
list.add(feeStd.getFee_std_id());
list.add("max_value");
list.add(optrId);
objs.add(list.toArray(new Object[list.size()]));
list = new ArrayList<Object>();
list.add(null);
list.add(null);
list.add(feeStd.getDefault_value());
list.add(feeStd.getFee_std_id());
list.add("default_value");
list.add(optrId);
objs.add(list.toArray(new Object[list.size()]));
this.executeBatch(sql, objs);
}
public List<TTemplateColumn> queryColumnByOptrId(String optrId, String templateId,
String templateType) throws Exception {
String sql = "select c.*,fs.fee_std_id" +
" from T_TEMPLATE_COLUMN c,T_TEMPLATE_COLUMN_OPTR co,T_TEMPLATE_FEE_STD fs" +
" where c.column_id=co.column_id and c.column_id=fs.column_id" +
" and c.template_id=? and co.optr_id=?" ;
return this.createQuery(sql, templateId, optrId).list();
}
public List<TemplateFeeDto> queryFeeTemplateColumn(String templateId, String key) throws Exception {
String sql = "select tc.*,tfs.fee_std_id,t.template_name,bf.fee_id,bf.fee_name," +
"bfs.min_value fee_min_value,bfs.default_value fee_default_value,bfs.max_value fee_max_value," +
"tt.device_buy_mode, tt.device_type" +
" from t_template_column tc,t_template t,t_template_fee_std tfs," +
" t_busi_fee bf,t_busi_fee_std bfs," +
" (select distinct bfd.fee_std_id,bfd.device_buy_mode,bfd.device_type" +
" from t_busi_fee_device bfd ) tt" +
" where tc.template_id=t.template_id and tc.column_id=tfs.column_id" +
" and tfs.fee_std_id=bfs.fee_std_id and bfs.fee_id=bf.fee_id" +
" and bfs.fee_std_id=tt.fee_std_id(+) and t.template_type='FEE'" +
" and t.template_id=?";
if(StringHelper.isNotEmpty(key)){
sql += " and bf.fee_name like '%"+key+"%'";
}
sql += " order by tc.column_id,bf.fee_id";
return this.createQuery(TemplateFeeDto.class, sql, templateId).list();
}
}