package com.hzs.member.statis.vo;

import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 顶点奖金拨比汇总统计
 * 把时间范围内的数据，每个顶点汇总成一条数据
 * 数据来自 订单表奖金明细表
 */
@Data
public class CuBonusVertexStaticTotalVO implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long pkId;

    /**
     * 日，月，年，全
     */
    private String statisType;

    /**
     * 顶点编号
     */
    @Excel(name = "顶点编号")
    private String memberCode;
    /**
     * 顶点名称
     */
    @Excel(name = "顶点名称")
    private String memberName;

    /**
     * 首购总金额（￥） 注册金额+升级金额+礼包订单（1万礼包）
     */
    @Excel(name = "首购金额(￥)", scale = 2)
    @BigDecimalFormat
    private BigDecimal firstPurchaseAll = BigDecimal.ZERO;

    @BigDecimalFormat
    private BigDecimal firstPurchaseAllSum = BigDecimal.ZERO;

    /**
     * 首购金额占比
     */
    @BigDecimalFormat
    private BigDecimal firstPurchaseRatio = BigDecimal.ZERO;

    /**
     * (直推收益+拓展收益+辅导收益+分红收益+报单收益（服务补贴）)*0.8=实际拨出之和。
     */
    @Excel(name = "首购奖金(￥)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainBonus = BigDecimal.ZERO;
    /**
     * 首购相关奖金拨比（%）=首购总奖金（推荐奖净值+拓展奖净值+领导奖净值+服务费净值+分红奖净值）/首购总金额
     */
    @Excel(name = "首购金额拨出比例(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainBonusRate = BigDecimal.ZERO;

    /**
     * 首购PV拨出比例（%）=首购拨出金额/首购PV值
     */
    @Excel(name = "首购PV拨出比例(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainBonusPvRate = BigDecimal.ZERO;


    /**
     * 直推拨比(%)
     */
    @Excel(name = "直推拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal introduceBonusRate = BigDecimal.ZERO;
    /**
     * 直推收益（￥）
     */
    @BigDecimalFormat
    private BigDecimal introduceBonus = BigDecimal.ZERO;
    /**
     * 拓展拨比(%)
     */
    @Excel(name = "拓展拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal orgBonusRate = BigDecimal.ZERO;
    /**
     * 拓展收益（￥）
     */
    @BigDecimalFormat
    private BigDecimal orgBonus = BigDecimal.ZERO;
    /**
     * 辅导收益拨比(%)
     */
    @Excel(name = "拓展拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal leaderBonusRate = BigDecimal.ZERO;
    /**
     * 辅导收益（￥）
     */
    @BigDecimalFormat
    private BigDecimal leaderBonus = BigDecimal.ZERO;
    /**
     * 服务补贴拨比(%)
     */
    @Excel(name = "服务补贴拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal serviceBonusRate = BigDecimal.ZERO;

    /**
     * 服务补贴（￥）
     */
    @BigDecimalFormat
    private BigDecimal serviceBonus = BigDecimal.ZERO;


    /**
     * 复购总金额 复购订单+海粉订单+海粉复购订单
     */
    @Excel(name = "复购金额(￥)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurchaseAllAmount = BigDecimal.ZERO;

    /**
     * （复购直推收益+复购级差收益+复购拓展收益）*80% +海粉直推
     * (复购级差+复购拓展 ) *0.8 +海粉直推
     */
    @Excel(name = "复购拨出金额(￥)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurBonus = BigDecimal.ZERO;

    /**
     * (复购级差+复购拓展 ) *0.8 +海粉直推
     * 复购拨出比例（%） = ((（复购直推收益+复购级差收益+复购拓展收益）*80%)+海粉直推)/复购总奖金(复购订单+海粉订单)
     */
    @Excel(name = "复购拨出比例(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurBonusRate = BigDecimal.ZERO;

    /**
     * 复购PV拨出比例（%） = 复购拨出金额/复购PV值
     */
    @Excel(name = "复购PV拨出比例(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurBonusPvRate = BigDecimal.ZERO;

    /**
     * 复购级差拨比(%)
     */
    @Excel(name = "复购级差拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurRangeBonusRate = BigDecimal.ZERO;
    /**
     * 复购级差收益（￥）
     */
    @BigDecimalFormat
    private BigDecimal repurRangeBonus = BigDecimal.ZERO;
    /**
     * 复购拓展拨比(%)
     */
    @Excel(name = "复购拓展拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurOrgBonusRate = BigDecimal.ZERO;
    /**
     * 复购拓展收益（￥）
     */
    @BigDecimalFormat
    private BigDecimal repurOrgBonus = BigDecimal.ZERO;
    /**
     * 复购辅导拨比(%)
     */
    @Excel(name = "复购辅导拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurLeaderBonusRate = BigDecimal.ZERO;
    /**
     * 复购辅导收益（￥）
     */
    @BigDecimalFormat
    private BigDecimal repurLeaderBonus = BigDecimal.ZERO;

    /**
     * 拓展平均碰次
     */
    @Excel(name = "拓展平均碰次", scale = 2)
    @BigDecimalFormat
    private BigDecimal orgAvTouch = BigDecimal.ZERO;

    /**
     * 拓展最高碰次
     */
    @Excel(name = "拓展最高碰次")
    private Integer orgMaxTouch = 0;

    /**
     * 拓展封顶人数
     */
    @Excel(name = "拓展封顶人数")
    private Integer orgTopNumber = 0;

//    @BigDecimalFormat
//    private BigDecimal makerDirectSum = BigDecimal.ZERO;
//
//    @BigDecimalFormat
//    private BigDecimal makerShareSum = BigDecimal.ZERO;

    /**
     * 体系ID 统计体系
     */
    private Integer pkVertex;

    /**
     * 注册新增PV MAIN_REG_PV
     */
    private BigDecimal mainRegPv;
    /**
     * 升级新增PV MAIN_UP_PV
     */
    private BigDecimal mainUpPv;
    /**
     * 特殊注册PV SPECIAL_REGISTER_PV
     */
    private BigDecimal specialRegisterPv;
    /**
     * 特殊升级PV SPECIAL_UPGRADE_PV
     */
    private BigDecimal specialUpgradePv;
    /**
     * 虚拟订单PV FICTITIOUS_PV
     */
    private BigDecimal fictitiousPv;
    /**
     * 订单金额
     */
    private BigDecimal orderAmount = BigDecimal.ZERO;


    /**
     * 复购新增PV MAIN_REPUR_PV
     */
    private BigDecimal mainRepurPv;

    /**
     * 特殊复购PV SPECIAL_REPURCHASE_PV
     */
    private BigDecimal specialRepurchasePv;

    /**
     * 嗨粉注册PV HIFANS_REG_PV
     */
    private BigDecimal hifansRegPv;
    /**
     * 海粉升级PV HAI_FUN_UPGRADE_PV
     */
    private BigDecimal haiFunUpgradePv;
    /**
     * 直播订单PV MALL_PV
     */
    private BigDecimal mallPv;
    /**
     * 合作订单PV COOPERATE_PV
     */
    private BigDecimal cooperatePv;
    /**
     * 福利专区PV WELFARE_ORDER_PV
     */
    private BigDecimal welfareOrderPv;

    /**
     * 国家
     */
    private Integer pkCountry;
    /**
     * 币种展示 当地币 本币
     */
    private Integer currency;
    /**
     * 团队集合
     */
    private String pkTeamCodeStr;
    /**
     * 体系集合
     */
    private String pkBdVertexStr;

    /**
     * 团队集合
     */
    private List<Integer> pkTeamCodeList;
    /**
     * 体系集合
     */
    private List<Integer> pkBdVertexList;

    /**
     * 开始时间
     */
    private String startDate;
    /**
     * 结束时间
     */
    private String endDate;
    /**
     * 汇率 *100
     */
    private BigDecimal perCent = BigDecimal.ZERO;

    /**
     * 汇率
     */
    private BigDecimal rate = BigDecimal.ZERO;


    private Date payTime;
    private String payTimeStr;
    private String modifiedTimeStr;
    private Date modifiedTime;
    private Integer orderStatus;
    private Integer delFlag;
    private Long pkMember;
    private Integer orderType;
    /**
     * 奖金类型
     */
    private Integer bonusType;


    private List<BigDecimal> orderAchieveList;

    /**
     * 重复消费%
     */
    @BigDecimalFormat
    private BigDecimal backRatio = BigDecimal.ZERO;
    /**
     * 分红比例%
     */
    @BigDecimalFormat
    private BigDecimal dividendRatio = BigDecimal.ZERO;

    /**
     * 按照体系（中国）和国家分组合并订单
     */
    List<CuBonusVertexStaticTotalVO> mergeList;

    List<Integer> orderTypeList;

    /**
     * 本月会员网体表
     */
    private String settleTableName;


}
