package com.hzs.member.statis.vo;

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

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

/**
 * 奖金拨比统计(波比图表)
 * 每个团队，每天一条数据
 * 数据来自 订单表和 CU_MEMBER_BONUS 会员奖金-会员奖金汇总表
 */
@Data
public class CuBonusStatisChartVO {

    private static final long serialVersionUID = 1L;

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

    /**
     * 期数
     */
    private Long period;
    /**
     * 隶属体系
     */
    @Excel(name = "隶属体系")
    private String vertexName;
    /**
     * 隶属团队
     */
    @Excel(name = "隶属团队")
    private String teamName;
    /**
     * 业绩时间
     */
    @Excel(name = "业绩时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 报单订单（$）
     */
    @Excel(name = "报单订单($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainRegAmount = BigDecimal.ZERO;

    /**
     * 消费订单（$）
     */
    @Excel(name = "消费订单($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainUpAmount = BigDecimal.ZERO;
    /**
     * 虚拟订单金额（$）
     */
    @Excel(name = "虚拟订单($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal fictitiousOrder = BigDecimal.ZERO;

    /**
     * 首购总金额（$） 报单订单+消费订单
     */
    @Excel(name = "首购金额($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal firstPurchaseAll = BigDecimal.ZERO;


    /**
     * 见点收益（$）
     */
    @Excel(name = "见点收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal seePointIncome = BigDecimal.ZERO;
    /**
     * 直推收益（$）
     */
    @Excel(name = "直推收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal introduceBonus = BigDecimal.ZERO;
    /**
     * 拓展收益（$）
     */
    @Excel(name = "拓展收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal orgBonus = BigDecimal.ZERO;
    /**
     * 辅导收益（$）
     */
    @Excel(name = "辅导收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal leaderBonus = BigDecimal.ZERO;
    /**
     * 领袖收益（$）
     */
    @Excel(name = "领袖收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal shareIncome = BigDecimal.ZERO;


    /**
     * 复销新增金额（$）(复销订单)
     */
    @Excel(name = "复销专区($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainRepurAmount;

    /**
     * 复销级差收益
     */
    @Excel(name = "复销级差收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal repurRangeIncome;

    /**
     * 复销同级收益
     */
    @Excel(name = "复销同级收益($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal sameLevelIncome;

    /**
     * (直推收益+拓展收益+辅导收益++报单收益)*0.8+创客空间3000元的店补+1万里面的2000元直推奖=实际拨出之和。
     */
    @Excel(name = "首购拨出金额($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainBonus = BigDecimal.ZERO;
    /**
     * 首购相关奖金拨比（%）=首购总奖金（推荐奖净值+拓展奖净值+领导奖净值）/首购总金额
     */
    @Excel(name = "首购拨出比例(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal mainBonusRate = 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;
    /**
     * 见点收益拨比（%）
     */
    @Excel(name = "见点收益拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal seePointIncomeRate;
    /**
     * 领袖收益拨比（%）
     */
    @Excel(name = "领袖收益拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal shareIncomeRate;
    /**
     * 直推收益拨比（%） 直推收益/首购金额
     */
    @Excel(name = "直推收益拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal introduceBonusRate;

    /**
     * 拓展收益拨比（%）
     */
    @Excel(name = "拓展收益拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal orgBonusRate;

    /**
     * 辅导收益拨比（%）
     */
    @Excel(name = "辅导收益拨比(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal leaderBonusRate;
    /**
     * (直推收益+拓展收益+辅导收益）+复购直推收益+复购级差收益+复购拓展收益)*0.8
     * +创客空间3000元的店补+1万里面的2000元直推奖
     */
    @Excel(name = "总拨出金额($)", scale = 2)
    @BigDecimalFormat
    private BigDecimal totalBonus = BigDecimal.ZERO;

    /**
     * 综合（拨出）实发拨比（%）=(直推收益+拓展收益+辅导收益))*80%
     * =创客空间3000元的店补+1万里面的2000元直推奖+首购拨出之和+
     * （复购直推收益+复购级差收益+复购拓展收益）*80%=X=实际大盘拨出金额/(总金额)(注册+升级+复购)订单
     */
    @Excel(name = "总拨出比例(%)", scale = 2)
    @BigDecimalFormat
    private BigDecimal totalBonusRate = BigDecimal.ZERO;


    /**
     * 报单订单（$）小计
     */
    @BigDecimalFormat
    private BigDecimal mainRegAmountSum = BigDecimal.ZERO;

    /**
     * 消费订单（$）小计
     */
    @BigDecimalFormat
    private BigDecimal mainUpAmountSum = BigDecimal.ZERO;

    /**
     * 虚拟订单（$）小计
     */
    @BigDecimalFormat
    private BigDecimal fictitiousOrderSum = BigDecimal.ZERO;


    /**
     * 首购总金额（$）小计 注册金额+升级金额
     */
    @BigDecimalFormat
    private BigDecimal firstPurchaseAllSum = BigDecimal.ZERO;

    /**
     * 直推收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal introduceBonusSum = BigDecimal.ZERO;
    /**
     * 拓展收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal orgBonusSum = BigDecimal.ZERO;
    /**
     * 辅导收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal leaderBonusSum = BigDecimal.ZERO;

    /**
     * 见点收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal seePointIncomeSum = BigDecimal.ZERO;
    /**
     * 领袖收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal shareIncomeSum = BigDecimal.ZERO;

    /**
     * 复销级差收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal repurRangeIncomeSum = BigDecimal.ZERO;
    /**
     * 复销同级收益（$）小计
     */
    @BigDecimalFormat
    private BigDecimal sameLevelIncomeSum = BigDecimal.ZERO;

    /**
     * 见点收益拨比(%)小计
     */
    @BigDecimalFormat
    private BigDecimal seePointIncomeRateSum = BigDecimal.ZERO;

    /**
     * 领袖收益拨比(%)小计
     */
    @BigDecimalFormat
    private BigDecimal shareIncomeRateSum = BigDecimal.ZERO;
    /**
     * 直推收益拨比(%)小计
     */
    @BigDecimalFormat
    private BigDecimal introduceBonusRateSum = BigDecimal.ZERO;
    /**
     * 拓展收益拨比(%)小计
     */
    @BigDecimalFormat
    private BigDecimal orgBonusRateSum = BigDecimal.ZERO;
    /**
     * 辅导收益拨比(%)小计
     */
    @BigDecimalFormat
    private BigDecimal leaderBonusRateSum = BigDecimal.ZERO;

    /**
     * 复销专区小计（$）(复销专区)
     */
    @BigDecimalFormat
    private BigDecimal mainRepurAmountSum = BigDecimal.ZERO;

    /**
     * 首购拨出金额 小计
     */
    @BigDecimalFormat
    private BigDecimal mainBonusSum = BigDecimal.ZERO;
    /**
     * 首购拨出拨比 小计
     */
    @BigDecimalFormat
    private BigDecimal mainBonusRateSum = BigDecimal.ZERO;

    /**
     * 复销拨出金额 小计
     */
    @BigDecimalFormat
    private BigDecimal repurBonusSum = BigDecimal.ZERO;

    /**
     * (复购级差+复购拓展 ) *0.8
     * 复销拨出比例（%） 小计
     */
    @BigDecimalFormat
    private BigDecimal repurBonusRateSum = BigDecimal.ZERO;
    /**
     * 总拨出金额 小计
     */
    @BigDecimalFormat
    private BigDecimal totalBonusSum = BigDecimal.ZERO;

    /**
     * 总拨出比例（%） 小计
     */
    @BigDecimalFormat
    private BigDecimal totalBonusRateSum = BigDecimal.ZERO;


    /**
     * 体系ID 统计体系，1原体系，2六合体系,3六合二，101非洲体系
     */
    private Integer pkVertex;
    /**
     * 团队ID
     */
    private Long pkTeamCode;


    /**
     * 国家
     */
    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;


    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 BigDecimal orderAchieve;
    /**
     * 国外奖金
     */
    private BigDecimal realIncome;

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

    List<Integer> orderTypeList;
    /**
     * 汇率 *100
     */
    private BigDecimal perCent;

    /**
     * 重复消费%(扣除比例)
     */
    @BigDecimalFormat
    private BigDecimal backRatio;


}
