package com.hzs.report.member.service;

import com.hzs.report.member.vo.*;
import org.apache.ibatis.annotations.Param;

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

/**
 * <p>
 * 会员信息-奖衔升级记录 服务类
 * </p>
 *
 * @author hzs
 * @since 2022-08-31
 */
public interface ICuMemberAwardsStatService {



    /**
     * @description: 真实业绩新增奖衔查询
     * @author: zhang jing
     * @date: 2023/8/24 17:56
     * @param: [cuMemberAwardsVO]
     * @return: java.util.List<com.hzs.member.detail.vo.CuMemberAwardsVO>
     **/
    List<CuMemberAwardsStatVO> selectCuMemberAwardsList(CuMemberAwardsStatVO cuMemberAwardsStatVO);

    /**
     * @description: 个人统计
     * @author: zhang jing
     * @date: 2023/9/1 10:37
     * @param: [personStatVO]
     * @return: java.util.List<com.hzs.report.member.vo.PersonStatVO>
     **/
    List<PersonStatVO> selectPersonStatList(PersonStatVO personStatVO);

    /**
     * @description: 查询左右区新增业绩
     * @author: zhang jing
     * @date: 2023/8/28 11:25
     * @param: [cuMemberAwardsStatVO]
     * @return: java.util.List<com.hzs.report.member.vo.CuMemberAwardsStatVO>
     **/
    List<CuMemberAwardsStatVO> selectNewPvList(List<CuMemAchieveStatVO> cas);

    /**
     * @description: 真实奖衔分析
     * @author: zhang jing
     * @date: 2023/8/26 16:01
     * @param: [cuMemberAwardsAnalysisVO]
     * @return: java.util.List<com.hzs.report.member.vo.CuMemberAwardsAnalysisVO>
     **/
    List<CuMemberAwardsAnalysisVO> selectCuMemberAwardsAnalysisList(CuMemberAwardsAnalysisVO cuMemberAwardsAnalysisVO);

    /**
     * @description: 中国查询真实奖衔分析
     * @author: zhang jing
     * @date: 2024/9/2 17:23
     * @param: [cuMemberAwardsAnalysisVO]
     * @return: java.util.List<com.hzs.report.member.vo.CuMemberAwardsAnalysisVO>
     **/
    List<CuMemberAwardsAnalysisVO> selectCuMemberAwardsAnalysisListCn(CuMemberAwardsAnalysisVO cuMemberAwardsAnalysisVO);

    /**
     * @description: 真实奖衔分析-插叙部门下会员累计业绩
     * @author: zhang jing
     * @date: 2023/12/13 14:39
     * @param: [pkMember]
     * @return: java.util.List<com.hzs.report.member.vo.PlaceDeptMemberVO>
     **/
    List<PlaceDeptMemberVO> selectPlaceDeptMemberAnalysisList(String achieveTableName,Long pkMember);

    /**
     * @description: 真实奖衔分析详情（穿透页面接口）
     * @author: zhang jing
     * @date: 2023/9/26 14:28
     * @param: [cuMemberAwardsAnalysisVO]
     * @return: java.util.List<com.hzs.report.member.vo.CuMemberAwardsAnalysisVO>
     **/
    List<CuMemberAwardsAnalysisVO> selectCuMemberAwardsAnalysisDetailsList(CuMemberAwardsAnalysisVO cuMemberAwardsAnalysisVO);

    /**
     * @description: 收入明细
     * @author: zhang jing
     * @date: 2023/9/26 15:07
     * @param: [revenueDetailsVO]
     * @return: java.util.List<com.hzs.report.member.vo.RevenueDetailsVO>
     **/
    List<RevenueDetailsVO> selectRevenueDetailsList(RevenueDetailsVO revenueDetailsVO);

    /**
     * @description: 查询真实奖衔分析业绩
     * @author: zhang jing
     * @date: 2023/8/29 9:29
     * @param: [casList]
     * @return: java.util.List<com.hzs.report.member.vo.CuMemberAwardsAnalysisVO>
     **/
    List<CuMemberAwardsAnalysisVO> selectAddUpPvList(List<CuMemAchieveStatVO> casList);

    /**
     * @description: 复购bv统计
     * @author: zhang jing
     * @date: 2023/8/29 15:30
     * @param: [repurchasePVStatVO]
     * @return: java.util.List<com.hzs.report.member.vo.RepurchasePVStatVO>
     **/
    List<RepurchasePVStatVO> selectRepurchasePVStatList(RepurchasePVStatVO repurchasePVStatVO);

    /**
     * @description: 商城BV统计
     * @author: zhang jing
     * @date: 2023/8/30 10:53
     * @param: [mallPVStatVO]
     * @return: java.util.List<com.hzs.report.member.vo.RepurchasePVStatVO>
     **/
    List<MallPVStatVO> selectMallPVStatList(MallPVStatVO mallPVStatVO);

    /**
     * @description: 个人统计业绩查询
     * @author: zhang jing
     * @date: 2023/9/4 9:35
     * @param: [perList]
     * @return: java.util.List<com.hzs.report.member.vo.PersonStatVO>
     **/
    List<PersonStatVO> selectPersonPvList(List<PersonStatVO> perList);

    /**
     * @description: 直推统计
     * @author: zhang jing
     * @date: 2023/9/4 11:47
     * @param: [directPushVO]
     * @return: java.util.List<com.hzs.report.member.vo.DirectPushVO>
     **/
    List<DirectPushVO> selectDirectPushStatList(DirectPushVO directPushVO);


    /**
     * @description: 会员订单分布统计
     * @author: zhang jing
     * @date: 2023/9/20 14:46
     * @param: [orderScatterVO]
     * @return: java.util.List<com.hzs.report.member.vo.OrderScatterVO>
     **/
    List<OrderScatterVO> memberOrderScatter(OrderScatterVO orderScatterVO);

    /**
     * @description: 安置业绩统计-查询会员
     * @author: zhang jing
     * @date: 2024/1/25 15:36
     * @param: [psVO]
     * @return: java.util.List<com.hzs.report.member.vo.PositStatVO>
     **/
    List<PositStatVO> positStatList(PositStatVO psVO);

    /**
     * @description:安置业绩统计 查询左右区业绩
     * @author: zhang jing
     * @date: 2024/1/26 14:50
     * @param: [psVO]
     * @return: java.util.List<com.hzs.report.member.vo.PositStatVO>
     **/
    List<PositDeptAchieveVO> positStatAchieve(PositStatVO psVO);

    /**
     * @description:查询国家业绩
     * @author: zhang jing
     * @date: 2024/5/24 14:08
     * @param: [achieveSummaryVO]
     * @return: java.util.List<com.hzs.report.member.vo.AchieveSummaryVO>
     **/
    List<AchieveSummaryVO> achieveSummaryList(AchieveSummaryVO achieveSummaryVO);

    /**
     * @description: 查询奖金扣项配置参数
     * @author: zhang jing
     * @date: 2024/5/24 15:15
     * @param: [achieveSummaryVO]
     * @return: com.hzs.report.member.vo.AchieveSummaryVO
     **/
    List<AchieveSummaryVO> bonusDeduct(AchieveSummaryVO achieveSummaryVO);

    /**
     * @description: 查询国家首购奖金拨比
     * @author: zhang jing
     * @date: 2024/5/24 15:14
     * @param: [achieveSummaryVO]
     * @return: java.math.BigDecimal
     **/
    BigDecimal queryForeignCountryCuBonusStatisSum(AchieveSummaryVO achieveSummaryVO);

    /**
     * @description:查询开通店铺会员的推荐
     * @author: zhang jing
     * @date: 2024/7/29 14:59
     * @param: [queryParentStoreVO]
     * @return: java.util.List<com.hzs.report.member.vo.QueryParentStoreVO>
     **/
    List<QueryParentStoreVO> queryReferenceList(QueryParentStoreVO queryParentStoreVO);

    /**
     * @description: 统计推荐人安置部门下开通店铺
     * @author: zhang jing
     * @date: 2024/7/29 15:00
     * @param: [queryParentStoreVO]
     * @return: java.util.List<com.hzs.report.member.vo.QueryParentStoreVO>
     **/
    StoreNumberVO queryParentStoreList(QueryParentStoreVO queryParentStoreVO);

    /**
     * @description: 推荐店铺查询详情
     * @author: zhang jing
     * @date: 2024/7/30 16:48
     * @param: [pkId]
     * @return: java.util.List<com.hzs.report.member.vo.ParentStoreDetailsVO>
     **/
    ParentStoreDetailsVO parentStoreDetails(Long pkId,Long pkParent);

    /**
     * @description: 查询推荐人安置伞下开通店铺会员
     * @author: zhang jing
     * @date: 2024/8/7 10:13
     * @param: [pkId]
     * @return: java.util.List<com.hzs.report.member.vo.ParentStoreDetailsVO>
     **/
    List<ParentStoreDetailsVO> parentStoreDetailsId(ParentStoreDetailsVO psd);

    /**
     * @description: 推荐店铺查询
     * @author: zhang jing
     * @date: 2024/8/2 9:54
     * @param: [queryParentStoreVO]
     * @return: java.util.List<com.hzs.report.member.vo.QueryParentStoreVO>
     **/
    List<QueryParentStoreVO> getParentStoreList(QueryParentStoreVO queryParentStoreVO);

    /**
     * @description: 查询表是否存在
     * @author: zhang jing
     * @date: 2024/11/8 14:27
     * @param: [tableName]
     * @return: java.lang.Integer
     **/
    Integer queryExistOracleTable(String tableName);



}
