package cn.superdesk.uniorder.dubbo.facade.invoice.common;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dao.entity.invoice.common.InvoiceBankInfo;
import cn.superdesk.uniorder.dto.param.invoice.common.InvoiceBankInfoParam;
import cn.superdesk.uniorder.dto.param.invoice.common.InvoiceBankInfoQueryCriteria;

import java.util.List;
import java.util.Map;

public interface DubboInvoiceBankInfoService {

	int addInvoiceBankInfo(InvoiceBankInfo param, LoginSysUser loginSysUser);

	int updateInvoiceBankInfo(InvoiceBankInfo param, LoginSysUser loginSysUser);

	int opPhysicsDelete(Long id, LoginSysUser loginSysUser);

	int opLogicalDelete(Long id, LoginSysUser loginSysUser);

	int setDefault(Long id, LoginSysUser loginSysUser);

	int setNormal(Long id, LoginSysUser loginSysUser);

	R<List<InvoiceBankInfo>> pageQuery(Map<String, Object> conditions, int pageNun, int pageSize);

	List<InvoiceBankInfo> query(InvoiceBankInfoQueryCriteria queryCriteria, LoginSysUser loginSysUser);

	R<List<InvoiceBankInfoParam>> pageQuery(InvoiceBankInfoQueryCriteria queryCriteria, LoginSysUser loginSysUser);

	/****************************************** 缓存 start ******************************************/

	void cacheInit();

	void cacheRefresh();

	void cacheRemove();

	String cacheGet(String hashTable, String keyField);
}
