package cn.net.caoyao.cpzshandset.service.bll;

import java.util.List;

import android.content.Context;
import cn.net.caoyao.cpzshandset.bean.ActivateBean;
import cn.net.caoyao.cpzshandset.common.config.Config;
import cn.net.caoyao.cpzshandset.common.config.ConfigDBCreateService;
import cn.net.caoyao.cpzshandset.common.config.HandsetOperation;
import cn.net.caoyao.cpzshandset.common.util.CacheGet;
import cn.net.caoyao.cpzshandset.db.presenter.ActivateDal;

public class ActivateBll {
	private ActivateDal dal;
	public ActivateBll(Context context) {
		ConfigDBCreateService service = new ConfigDBCreateService();
		dal = service.createActivateDal(new CacheGet(), context);
		
	}
	
	/**
	 * 通过激活历史的id删除激活信息
	 * @param id
	 * @return
	 */
	public void delActivateById(ActivateBean bean){
		if (dal == null) {
			return;
		}
		dal.delActivateById(bean);
	}
	/**
	 * 通过激活历史的id查询激活信息
	 * @param id
	 * @return
	 */
	public ActivateBean queryActivateBeanById(int id){
		if (dal == null) {
			return null;
		}
		return dal.queryActivateBeanById(id);
	}
	
	/**
	 * 生成激活信息
	 * 
	 * @param trainInvoice
	 */
	public int insertActivate(ActivateBean activateBean) {
		if (dal == null) {
			return -1;
		}
		return dal.insertActivate(activateBean);
	}
	
	/**
	 * 根据激活id更新激活信息
	 * 
	 * @param trainInvoice
	 */
	public void updateActivateById(ActivateBean activateBean) {
		if (dal == null) {
			return;
		}
		dal.updateActivate(activateBean);
	}
	/**
	 * 根据激活id更新激活的错误码
	 * 
	 * @param trainInvoice
	 */
	public void updateActivateErrorById(int errorCode,int id) {
		if (dal == null) {
			return;
		}
		dal.updateActivateErrorById(errorCode, id);
	}
	
	/**
	 * 修改激活历史数据的状态
	 * @param status
	 * @param errorCode
	 * @param id
	 */
	public void updateActivateNotSubmitStatusById(int id){
		if (dal == null) {
			return;
		}
		dal.updateActivateErrorStatusById(Config.SUBMIT_STATUS_NOT_SUBMIT, 0, id);
	}
	/**
	 * 查询所有的激活列表
	 * @return
	 */
	public List<ActivateBean> queryAllActivateList(){
		if (dal == null) {
			return null;
		}
		return dal.queryAllActivateList();
	}
	
	/**
	 * 查询所有的激活列表
	 * @return
	 */
	public List<ActivateBean> queryAllActivateListByASC(){
		if (dal == null) {
			return null;
		}
		return dal.queryAllActivateListByASC();
	}
	
	/**
	 * 检测单标激活表中是否已经存在该数据
	 * 
	 * @param labelId
	 * @return
	 */
	public boolean hasExistSingleLabelInActivate(String labelId,SingleLabelBll sBll) {
		if (dal == null) {
			return false;
		}
		return sBll.hasExistSingleLabel(labelId, HandsetOperation.OPERATION_ACTIVATE_CONSTANT.getOption());
	}
	/**
	 * 检测某个标签段是否已经存在在激活表中
	 * 
	 * @param labelId
	 * @return
	 */
	/*public boolean hasExistBatchLabelInActivate(String startLabel,String endLabel,CommonBatchLabelBll batchLabelBll) {
		return batchLabelBll.hasExistBatchLabel(startLabel, endLabel, HansetOperationConstant.OPERATION_ACTIVATE_CONSTANT,);
	}*/
	/**
	 * 某个操作的单标已经达到最大限制
	 * @param option_type
	 * @param option_id
	 * @return
	 */
	public boolean isMaxLimitSingleActivate(ActivateBean b,SingleLabelBll sBll){
		if (dal == null) {
			return false;
		}
		return sBll.isMaxLimitCount(HandsetOperation.OPERATION_ACTIVATE_CONSTANT.getOption(), b.getId());
	}
}
