
package com.tmerclub.cloud.flow.service;


import com.tmerclub.cloud.api.order.dto.CustomerRetainedDTO;
import com.tmerclub.cloud.api.order.vo.CustomerRetainVO;
import com.tmerclub.cloud.api.user.dto.MemberReqDTO;
import com.tmerclub.cloud.api.user.vo.MemberContributeRespVO;
import com.tmerclub.cloud.api.user.vo.MemberDealRespVO;
import com.tmerclub.cloud.api.user.vo.MemberTrendRespVO;
import com.tmerclub.cloud.flow.vo.MemberSurveyRespVO;
import com.tmerclub.cloud.flow.vo.MemberTrendExcelVO;

import java.util.List;

/**
 * @author lgh on 2018/10/26.
 */
public interface CustomerAnalysisService {

    /**
     * 会员分析，会员贡献价值分析
     *
     * @param param 参数
     * @return 会员分析，会员贡献价值分析
     */
    MemberContributeRespVO getMemberContributeValue(MemberReqDTO param);

    /**
     * 会员分析，新老会员成交分析
     *
     * @param param 参数
     * @return 新老会员成交分析
     */
    MemberDealRespVO getMemberDeal(MemberReqDTO param);

    /**
     * 访问留存数据
     *
     * @param customerRetainedDTO 条件参数
     * @return 留存数据
     */
    List<CustomerRetainVO> getCustomerRetained(CustomerRetainedDTO customerRetainedDTO);

    /**
     * 获取会员分析
     *
     * @param param
     * @return
     */
    List<MemberTrendRespVO> getMemberTrend(MemberReqDTO param);

    /**
     * 获取要导出的会员分析列表
     *
     * @param memberReqDTO
     * @return
     */
    List<MemberTrendExcelVO> listMemberTrend(MemberReqDTO memberReqDTO);

    /**
     * 统计会员分析 -> 会员概况的数据
     * @param param
     * @return
     */
    MemberSurveyRespVO getMemberSurvey(MemberReqDTO param);
}
