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.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @description: 奖金拨比统计（PV）
 * @author: zhang jing
 * @date: 2025/3/12 15:05
 * @param:
 * @return:
 **/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class CuBonusVertexStatisPvVO {

    private static final long serialVersionUID = 1L;

    private Long pkId;

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

    /**
     * 顶点编号
     */
    @Excel(name = "顶点编号")
    private String memberCode;
    /**
     * 顶点名称
     */
    @Excel(name = "顶点名称")
    private String memberName;
    /**
     * 创建时间
     */
    @Excel(name = "业绩时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 注册新增业绩（￥）
     */
    @BigDecimalFormat
    @Excel(name = "注册专区(￥)",scale = 2)
    private BigDecimal mainRegPv=BigDecimal.ZERO;

    /**
     * 升级新增业绩（￥）
     */
    @BigDecimalFormat
    @Excel(name = "升级专区(￥)",scale = 2)
    private BigDecimal mainUpPv=BigDecimal.ZERO;

    /**
     * 首购总业绩（￥） 注册业绩+升级业绩
     */
    @Excel(name = "首购业绩(￥)",scale = 2)
    @BigDecimalFormat
    private BigDecimal firstPurchaseAll=BigDecimal.ZERO;

    /**
     * 复购总业绩
     */
    @Excel(name = "复购业绩(￥)",scale = 2)
    @BigDecimalFormat
    private BigDecimal mainRepurPv=BigDecimal.ZERO;
    /**
     * 重消业绩
     */
    @Excel(name = "重消业绩(￥)",scale = 2)
    @BigDecimalFormat
    private BigDecimal retailConsumePv=BigDecimal.ZERO;
    /**
     * 合计业绩
     */
    @Excel(name = "合计业绩(￥)",scale = 2)
    @BigDecimalFormat
    private BigDecimal totalAchieve=BigDecimal.ZERO;
    /**
     * 新零售极差收益
     */
    @BigDecimalFormat
    @Excel(name = "极差收益(￥)",scale = 2)
    private BigDecimal retailRangeIncome;
    /**
     * 极差收益拨比
     */
    @BigDecimalFormat
    @Excel(name = "极差收益拨比(%)",scale = 2)
    private BigDecimal retailRangeIncomeRate;

    /**
     * 新零售平级收益
     */
    @BigDecimalFormat
    @Excel(name = "平级收益V1-V4(￥)",scale = 2)
    private BigDecimal retailSameLevelIncomeV1V4=BigDecimal.ZERO;
    @BigDecimalFormat
    @Excel(name = "平级收益V1-V4拨比(%)",scale = 2)
    private BigDecimal retailSameLevelIncomeV1V4Rate;


    /**
     * 平级收益V5
     */
    @BigDecimalFormat
    @Excel(name = "平级收益V5(￥)",scale = 2)
    private BigDecimal retailSameLevelIncomeV5=BigDecimal.ZERO;
    /**
     * 平级收益V5
     */
    @BigDecimalFormat
    @Excel(name = "平级收益V5拨比(%)",scale = 2)
    private BigDecimal retailSameLevelIncomeV5Rate;

    /**
     * 新零售区域收益
     */
    @BigDecimalFormat
    @Excel(name = "区域收益(￥)",scale = 2)
    private BigDecimal retailAreaIncome;
    /**
     * 区域收益拨比
     */
    @BigDecimalFormat
    @Excel(name = "区域收益拨比(%)",scale = 2)
    private BigDecimal retailAreaIncomeRate;
    /**
     * 新零售福利极差收益
     */
    @BigDecimalFormat
    @Excel(name = "福利极差收益(￥)",scale = 2)
    private BigDecimal retailBenefitRangeIncome;
    /**
     * 福利极差收益拨比
     */
    @BigDecimalFormat
    @Excel(name = "福利极差收益拨比(%)",scale = 2)
    private BigDecimal retailBenefitRangeIncomeRate;

    /**
     * 新零售福利平均收益
     */
    @BigDecimalFormat
    @Excel(name = "福利平均收益(￥)",scale = 2)
    private BigDecimal retailBenefitAvgIncome;

    /**
     * 福利平均收益拨比
     */
    @BigDecimalFormat
    @Excel(name = "福利平均收益拨比(%)",scale = 2)
    private BigDecimal retailBenefitAvgIncomeRate;

    /**
     * 新零售福利加权收益
     */
    @BigDecimalFormat
    @Excel(name = "福利加权收益(￥)",scale = 2)
    private BigDecimal retailBenefitIncome;

    /**
     * 福利加权收益拨比
     */
    @BigDecimalFormat
    @Excel(name = "福利加权收益拨比(%)",scale = 2)
    private BigDecimal retailBenefitIncomeRate;

    /**
     * 商城重消
     */
    @BigDecimalFormat
    @Excel(name = "商城重消(￥)",scale = 2)
    private BigDecimal backPoints=BigDecimal.ZERO;
    /**
     * 商城重消拨比
     */
    @BigDecimalFormat
    @Excel(name = "商城重消拨比(%)",scale = 2)
    private BigDecimal backPointsRate=BigDecimal.ZERO;

    /**
     * 总拨出金额
     */
    @BigDecimalFormat
    private BigDecimal realIncomeTotal=BigDecimal.ZERO;

    /**
     * 总拨出金额
     */
    @Excel(name = "总拨出金额(￥)",scale = 2)
    @BigDecimalFormat
    private BigDecimal totalBonus=BigDecimal.ZERO;

    /**
     * 综合（拨出）实发拨比（%）
     */
    @Excel(name = "总拨出比例(%)",scale = 2)
    @BigDecimalFormat
    private BigDecimal totalBonusRate=BigDecimal.ZERO;



    /**
     * 注册新增业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal mainRegPvSum=BigDecimal.ZERO;

    /**
     * 升级新增业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal mainUpPvSum=BigDecimal.ZERO;
    /**
     * 首购业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal firstPurchaseAllSum=BigDecimal.ZERO;
    /**
     * 全部业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal totalAchieveSum=BigDecimal.ZERO;
    /**
     * 复购业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal mainRepurPvSum=BigDecimal.ZERO;

    /**
     * 重消新增业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailConsumePvSum=BigDecimal.ZERO;


    /**
     * 极差收益（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailRangeIncomeSum=BigDecimal.ZERO;
    /**
     * 平级收益（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailSameLevelIncomeSum=BigDecimal.ZERO;
    /**
     * 平级收益V1-V4合计
     */
    @BigDecimalFormat
    private BigDecimal retailSameLevelIncomeV1V4Sum=BigDecimal.ZERO;
    /**
     * 平级收益V5合计
     */
    @BigDecimalFormat
    private BigDecimal retailSameLevelIncomeV5Sum=BigDecimal.ZERO;
    /**
     * 区域收益（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailAreaIncomeSum=BigDecimal.ZERO;
    /**
     * 福利平均收益（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailBenefitAvgIncomeSum=BigDecimal.ZERO;
    /**
     * 福利加权收益（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailBenefitIncomeSum=BigDecimal.ZERO;

    /**
     * 福利极差收益（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal retailBenefitRangeIncomeSum=BigDecimal.ZERO;
    /**
     * 商城重消（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal backPointsSum=BigDecimal.ZERO;

    /**
     * 总拨出业绩（￥）合计
     */
    @BigDecimalFormat
    private BigDecimal totalBonusSum=BigDecimal.ZERO;

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

    /**
     * 极差收益拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal retailRangeIncomeRateSum=BigDecimal.ZERO;
    /**
     * 平级收益V1-V4拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal sameLevelIncomeV1V4RateSum=BigDecimal.ZERO;
    /**
     * 平级收益V5拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal sameLevelIncomeV5RateSum=BigDecimal.ZERO;
    /**
     * 区域收益拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal retailAreaIncomeRateSum=BigDecimal.ZERO;

    /**
     * 商城重消拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal backPointsRateSum=BigDecimal.ZERO;
    /**
     * 福利平均收益拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal retailBenefitAvgIncomeRateSum=BigDecimal.ZERO;
    /**
     * 福利加权收益拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal retailBenefitIncomeRateSum=BigDecimal.ZERO;
    /**
     * 福利极差收益拨比(%)合计
     */
    @BigDecimalFormat
    private BigDecimal benefitRangeIncomeRateSum=BigDecimal.ZERO;


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

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

    /**
     * 体系集合
     */
    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;
    /**
     * 订单PV
     */
    private BigDecimal orderAchieve=BigDecimal.ZERO;
    /**
     * 订单金额
     */
    private BigDecimal orderAmount=BigDecimal.ZERO;
    private List<BigDecimal> orderAchieveList;
    /**
     *奖金
     */
    @BigDecimalFormat
    private BigDecimal realIncome=BigDecimal.ZERO;
    /**
     * 重复消费%
     */
    @BigDecimalFormat
    private BigDecimal backRatio=BigDecimal.ZERO;


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

    List<Integer> orderTypeList;

    /**
     * 本月会员网体表
     */
    private String settleTableName;
    /**
     * 期数
     */
    private int period;

}
