package com.hzs.member.achieve.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.domain.system.config.BdAwards;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;

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

/**
 * 首页业绩
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberAwardsUnderVO implements Serializable {

    private static final long serialVersionUID = 1114852997109141640L;

    /**
     * 用户名
     */
    private String memberName;

    /**
     * 用户头像
     */
    private String memberPath;

    /**
     * A区累计真实业绩
     */
    @BigDecimalFormat()
    private BigDecimal aSumRealPv;

    /**
     * B区累计真实业绩
     */
    @BigDecimalFormat()
    private BigDecimal bSumRealPv;

    /**
     * 小区累计业绩
     */
    @BigDecimalFormat()
    private BigDecimal sumRealPv;


    /**
     * 目标业绩
     */
    @BigDecimalFormat()
    private BigDecimal targetPv;

    /**
     * 目标奖衔名称
     */
    private String tarAwardsName;

    /**
     * 奖衔名称
     */
    private String awardsName;

    /**
     * 奖衔图片
     */
    private String image;
    /**
     * 奖衔ID
     */
    private Integer pkAwards;

    /**
     * 奖衔翻译key
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
    private Integer pkTransaction;

    private String pkTransactionVal;

    /**
     * 所在区
     */
    @JsonIgnore
    private Integer placeDept;
    /**
     * 期数
     */
    @JsonIgnore
    private Integer period;

    /**
     * 会员ID
     */
    @JsonIgnore
    private Long pkMember;

    /**
     * 国家ID
     */
    @JsonIgnore
    private Integer pkCountry;


    /**
     * 业绩表名
     */
    @JsonIgnore
    private String achieveTable;

    /**
     * 用户表名
     */
    @JsonIgnore
    private String memberTreeTable;

    /**
     * 奖金表
     */
    @JsonIgnore
    private String settleTable;

    /**
     * 月表
     */
    private String cuMemberMonthTable;

    /**
     * 服务编号（或店铺编号）
     */
    private String serviceCode;

    /**
     * 体系
     */
    private Long pkVertex;

    /**
     * 会员昵称
     */
    private String nickName;


    /**
     * aq区结余
     */
    @BigDecimalFormat()
    private BigDecimal aBalance;

    /**
     * B区结余
     */
    @BigDecimalFormat()
    private BigDecimal bBalance;


    /**
     * 小区业绩
     */
    @BigDecimalFormat()
    private BigDecimal smallPv;

    /**
     * 奖衔的配置信息
     */
    @JsonIgnore
    List<BdAwards> awardsList;

    /**
     * 获取会员昵称特殊处理，如果没有则直接取会员姓名
     *
     * @return
     */
    public String getNickName() {
        if (StringUtils.isNotEmpty(nickName)) {
            return nickName;
        }
        return memberName;
    }


    /**
     * A区新增业绩 -- 昨日业绩
     */
    @BigDecimalFormat
    private BigDecimal aNewPv;
    /**
     * B区新增业绩 -- 昨日业绩
     */
    @BigDecimalFormat
    private BigDecimal bNewPv;

    /**
     * A区当月业绩
     */
    @BigDecimalFormat
    private BigDecimal aMonthPv;
    /**
     * B区当月业绩
     */
    @BigDecimalFormat
    private BigDecimal bMonthPv;

    /**
     * A区累计业绩 -- 历史业绩
     */
    @BigDecimalFormat
    private BigDecimal aSumPv;
    /**
     * B区累计业绩 -- 历史业绩
     */
    @BigDecimalFormat
    private BigDecimal bSumPv;

}
