package com.hzs.member.achieve.controller.vo;

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

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


/**
 * <p>
 * 伞下新增业绩统计
 * </p>
 *
 * @author zhangjing
 * @since 2023-05-17
 */
@Data
public class PlaceNewAddAchieveVO {

    private static final long serialVersionUID = 1L;


    /**
     * 会员主键
     */
    private Long pkMember;

    /**
     * 注册单统计
     */
    private Integer register;

    /**
     * 业绩类型 EAchievementType
     */
    private Integer achievementType;

    /**
     * 升级单统计
     */
    private Integer upgrade;

    /**
     * 复购单统计
     */
    private Integer repurchase;

    /**
     * 小区新增统计
     */
    private Integer newlyVillage;

    /**
     * 创建时间开始时间
     */
    private String startDate;

    /**
     * 创建时间结束时间
     */
    private String endDate;
    /**
     * 时间参数类型 1月2月...12月
     */
    private Integer monthType;

    /**
     * 左区人数
     */
    @Excel(name = "左区人数")
    private Integer leftCoun=0;

    /**
     * 右区人数
     */
    @Excel(name = "右区人数")
    private Integer rightCount=0;

    /**
     * 左区业绩
     */
    @Excel(name = "左区业绩(万)")
    @BigDecimalFormat("#0.00")
    private BigDecimal leftAchieve;
    /**
     * 右区业绩
     */
    @Excel(name = "右区业绩(万)")
    @BigDecimalFormat("#0.00")
    private BigDecimal rightAchieve;

    /**
     * 左区血缘业绩
     */
    @Excel(name = "左区血缘业绩(万)")
    @BigDecimalFormat()
    private BigDecimal leftDirectAchieve;
    /**
     * 右区血缘业绩
     */
    @Excel(name = "右区血缘业绩(万)")
    @BigDecimalFormat()
    private BigDecimal rightDirectAchieve;
    /**
     * 直推（血缘）业绩
     */
    @Excel(name = "血缘业绩(万)")
    @BigDecimalFormat("#0.00")
    private BigDecimal directAchieve;

    /**
     * 部门 EPlaceDept
     */
    private Integer placeDept;

    /**
     * 当月表名 业绩
     */
    private String achieveTableName;
    /**
     * 上月表名
     */
    private String upAchieveTableName;

    /**
     * 国家
     */
    private Integer pkCountry;

    /**
     * 人数量
     */
    private Integer peopleCount;

    /**
     * 期数
     */
    private Integer period;
    /**
     * 人数
     */
    private Integer memberCount;
    /**
     * 会员编号
     */
    private String memberCode;
    /**
     * 服务编号（或店铺编号）
     */
    private String serviceCode;

    /**
     * 会员姓名
     */
    private String memberName;
    /**
     * 会员昵称
     */
    private String nickName;
    /**
     * 体系
     */
    private Long pkVertex;

    /**
     * 消费金额
     */
    private BigDecimal orderAmount;
    /**
     * 消费业绩
     */
    private BigDecimal orderAchieve;
    /**
     * 注册等级
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_GRADE)
    private Integer pkRegisterGrade;
    /**
     * 注册等级
     */
    private String pkRegisterGradeVal;
    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;
    /**
     * 订单类型集合
     */
    private List<Integer> orderTypeList;
    /**
     * 月度业绩查询类型 来源 EMonthScoreType
     */
    private Integer monthScoreType;
    /**
     * 订单类型 EOrderType
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE)
    private Integer orderType;
    /**
     * 订单类型
     */
    private String orderTypeVal;

    /**
     * 年份
     */
    private String year;





}
