package com.reyun.saas.common.util;

import com.reyun.saas.common.constants.EquipmentStatusEnum;
import org.springframework.util.StringUtils;

/**
 * @author: hanzepeng
 * @Date: 2021/10/14/11:41
 * @Description: 获取设备状态  将实时的原始数据中的 设备状态 是否更新 作弊状态 转换为String
 */
public class EquipmentStatusUtils {

    /**
     * 根据原始数据的设备状态获直观的设备状态
     * @param equipmentStatus 原始设备状态  新增:"1"  活跃:":2"
     * @return "新增" or "活跃"
     */
    public static String getEquipmentStatus(String equipmentStatus){
        if(StringUtils.isEmpty(equipmentStatus)){
            return "";
        }
        if ("1".equals(equipmentStatus)) {
            return EquipmentStatusEnum.NEWLY_INCREASED.getValue();//新增
        }else if("2".equals(equipmentStatus)){
            return EquipmentStatusEnum.ACTIVE.getValue();//活跃
        }
        return "";
    }


    /**
     * 根据设备状状态和更新状态获取设备状态
     *  逻辑: 如果设备状态是新增 返回新增
     *       如果设备状态是活跃 判断是否更新 如果是更新返回更新  如果是没有更新返回活跃
     *
     * @param equipmentStatus 设备状态
     * @param updateStatus 更新状态
     * @return
     */
    public static String getEquipmentStatus(String equipmentStatus,String updateStatus){
        if(StringUtils.isEmpty(equipmentStatus)
            || StringUtils.isEmpty(updateStatus)){
            return "";
        }

        if ("1".equals(equipmentStatus)){
            return EquipmentStatusEnum.NEWLY_INCREASED.getValue();   //新增
        }else if("2".equals(equipmentStatus)){
            //活跃  判断它是否更新
            if("1".equals(updateStatus)){
                return  EquipmentStatusEnum.UPDATE.getValue();//更新
            } else if("2".equals(updateStatus)){               //没更新就是活跃
                return EquipmentStatusEnum.ACTIVE.getValue();//活跃
            }
        }
        return "";
    }


    /**
     * 根据原始数据的设备更新状态获直观的设备更新状态
     * @param updateStatus 原始设备更新状态  更新:"1"  没有更新:":2"
     * @return "更新" or "没有更新"
     */
    public static String getUpdateStatus(String updateStatus){
        if(StringUtils.isEmpty(updateStatus)){
            return "";
        }
        if ("1".equals(updateStatus)) {
            return EquipmentStatusEnum.UPDATE.getValue();//更新
        }else if("2".equals(updateStatus)){
            return EquipmentStatusEnum.NOT_UPDATE.getValue();//没有更新
        }
        return "";
    }


    /**
     * 根据原始数据的设备作弊状态获直观的设备作弊状态
     * @param cheatStatus 原始设备更新状态  处理中:"0"  设备正常:"1"  设备异常:"2"  潜在风险:"5"
     * @return
     */
    public static String getCheatingBehavior(String cheatStatus){
        if(StringUtils.isEmpty(cheatStatus)){
            return "";
        }
        if("0".equals(cheatStatus)) {
            return EquipmentStatusEnum.IS_PROCESSING.getValue();//处理中
        }else if("1".equals(cheatStatus)){
            return  EquipmentStatusEnum.EQUIPMENT_NORMAL.getValue();//设备正常
        }else if("2".equals(cheatStatus)){
            return  EquipmentStatusEnum.EQUIPMENT_EXCEPTION.getValue();//设备异常
        }else if("5".equals(cheatStatus)){
            return  EquipmentStatusEnum.POTENTIAL_RISK.getValue();//潜在风险
        }
        return "";
    }










}
