package cn.superdesk.uniorder.dubbo.facade.marketing;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.dao.entity.sys.SysConfig;
import cn.superdesk.uniorder.dao.entity.marketing.department.UnifiedAreaCity;
import cn.superdesk.uniorder.dao.entity.marketing.UnifiedStatisticsVirt;
import cn.superdesk.uniorder.dto.vo.unified.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface DubboUnifiedStatisticsVirtCommonService {

	/****************************************** 统计 start ******************************************/

	void updateStatisticsVirt(UnifiedStatisticsVirt update);

	void insertStatisticsVirt(UnifiedStatisticsVirt add);


	List<UnifiedStatisticsVirt> getVirtOrderReturnStatistical(Map<String, Object> queryMap);

	/****************************************** 统计   end ******************************************/

	List<UnifiedStatisticsVirt> findAll(Map<String, Object> params);

	List<UnifiedStatisticsVirtVo> findAllVo(Map<String, Object> params);

	UnifiedOrderLastMonth getlastmonth();

	BigDecimal getReturnAmount(Map<String, Object> params);

	BigDecimal getundzamount(Map<String, Object> params);

	BigDecimal getuninvamount(Map<String, Object> params);

	BigDecimal getunpaymoney(Map<String, Object> params);

	BigDecimal getOrderAmountByAreaItem(Map<String, Object> queryTJ);

	List<WarningOrderAmountVo> getWarningOrderAmount(Map<String, Object> queryMap);

	BigDecimal getreturnAmountByAreaItem(Map<String, Object> queryTJ);

	R<List<UnifiedCustomerTJ>> getDataByPage(Map<String, Object> params, int pageNum, int pageSize);

	List<UnifiedCustomerTJ> getStatisticsVirtData(Map<String, Object> params);

	BigDecimal getOrderCostAmount(Map<String, Object> costQuery);

	UnifiedStatisticsVirtSum getStatisticsSum(Map<String, Object> query);

	SysConfig getConfigData(String code);

	void updateConfig(SysConfig config);

	void updateAreaCity(UnifiedAreaCity item);


	List<UnifiedAreaCity> findAllAreaCity();


}
