package cn.superdesk.uniorder.dubbo.facade.order.base;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dao.entity.base.UnifiedOrderGoods;
import cn.superdesk.uniorder.dto.param.order.base.UnifiedOrderGoodsParam;
import cn.superdesk.uniorder.dto.param.order.base.UnifiedOrderGoodsQueryCriteria;
import cn.superdesk.uniorder.dto.vo.order.base.UnifiedOrderGoodsHeadVo;
import cn.superdesk.uniorder.dto.vo.order.base.UnifiedOrderGoodsListItemVo;
import com.github.pagehelper.PageInfo;

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

/**
 * @Description:
 * @Author: linjinyu
 * @Email linjinyu@avic-s.com
 * @CreateDate: 2021-01-06 20:55:13
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021-01-06 20:55:13
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface DubboUnifiedOrderGoodsService {

	/****************************************** extends BaseService 部分 start ******************************************/

	int insertSelective(UnifiedOrderGoods entity);

	int updateByPrimaryKeySelective(UnifiedOrderGoods entity);

	@Deprecated
	void deleteObj(Long id);

	UnifiedOrderGoods findById(Long id);

	@Deprecated
	PageInfo<UnifiedOrderGoods> findByPaging(Map<String, Object> conditions, Integer pageNun, Integer pageSize);

	@Deprecated
	List<UnifiedOrderGoods> findAll(Map<String, Object> queryMap);

	/****************************************** extends BaseService 部分   end ******************************************/

	int addUnifiedOrderGoods(UnifiedOrderGoodsParam param, LoginSysUser loginSysUser);

	int updateUnifiedOrderGoods(UnifiedOrderGoodsParam param, LoginSysUser loginSysUser);

	int deleteUnifiedOrderGoods(Long id, LoginSysUser loginSysUser);

	UnifiedOrderGoods findUnifiedOrderGoodsById(Long id);

	UnifiedOrderGoodsListItemVo findListItemVoById(Long id, LoginSysUser loginSysUser);

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

	R<List<UnifiedOrderGoodsListItemVo>> pageQueryGenericParam(UnifiedOrderGoodsQueryCriteria queryCriteria, LoginSysUser loginSysUser);

	UnifiedOrderGoodsHeadVo queryHeadGenericParam(UnifiedOrderGoodsQueryCriteria queryCriteria, LoginSysUser loginSysUser);

	List<UnifiedOrderGoodsListItemVo> queryGenericParam(UnifiedOrderGoodsQueryCriteria queryCriteria, LoginSysUser loginSysUser);


	/****************************************** 补丁部分 mark by linjinyu at 20210323 start ******************************************/

	String checkAndFixFixTaxRateTaxCodeFiscalCode();
}
