package cn.superdesk.uniorder.dao.mapper.accounting.unified.customer;

import cn.superdesk.uniorder.dao.entity.accounting.unified.customer.AccountingUnifiedCustomer;
import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.DzMainAutoPage;
import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.ExpSysOrder;
import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.statement.CustomerStatementOfAccountDetailVo;
import cn.superdesk.uniorder.dto.vo.sys.SysOrderQuery;
import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.statement.CustomerStatementOfAccountDetailItemVo;
import org.apache.ibatis.annotations.Param;

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


/**
 * @Description: 客户结算
 * @Author: linjinyu 重构与优化
 * @CreateDate: 2021/1/8 上午11:39
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/1/8 上午11:39
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface AccountingUnifiedCustomerMapperEx {

	List<ExpSysOrder> findOrderView(SysOrderQuery params);

	List<DzMainAutoPage> findAllView(Map<String, Object> queryMap);

	// NND Base_Column_List 的一个东西
	List<CustomerStatementOfAccountDetailVo> getAccountingUnifiedCustomerView(Map<String, Object> params);


	/****************************************** 对账单 详情 填充 订单商品信息 start ******************************************/

	// 订单维度
	List<CustomerStatementOfAccountDetailItemVo> getCustomerStatementOfAccountDetailFillItemDimOrder2Goods(Map<String, Object> conditions);

	// 订单维度 与上边这个有点像
	List<CustomerStatementOfAccountDetailItemVo> findAllDzOrderView(Map<String, Object> conditions);

	// 商品维度
	List<CustomerStatementOfAccountDetailItemVo> getCustomerStatementOfAccountDetailFillItemDimGoods2Goods(@Param("accountingOrderId") Long accountingOrderId, @Param("orderBy") String orderBy);

	/****************************************** 对账单 详情 填充 订单商品信息   end ******************************************/

	/**
	 * 弃用 mark by linjinyu at 20210105
	 *
	 * @param dzSn
	 * @return
	 */
	@Deprecated
	AccountingUnifiedCustomer findByAccountingOrderSn(String dzSn);
}