package com.mortals.xhx.common.utils;

import cn.hutool.core.util.ReflectUtil;
import com.mortals.xhx.common.code.AuditStatusEnum;
import com.mortals.xhx.common.code.CheckResultAddEnum;
import com.mortals.xhx.common.code.CheckResultSubEnum;
import com.mortals.xhx.common.code.SubAddTypeEnum;

public class AuditUtil {

    public static void audit(Object obj) {

        String checkResult = (String) ReflectUtil.getFieldValue(obj, "checkResult");
        Integer subAddType = (Integer) ReflectUtil.getFieldValue(obj, "subAddType");

        if (SubAddTypeEnum.增加.getValue() == subAddType) {
            if (CheckResultAddEnum.核查不加分.getValue().equals(checkResult)) {
                ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.拒绝.getValue());
            } else if (CheckResultAddEnum.核查加分.getValue().equals(checkResult)) {
                ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.通过.getValue());
            } else {
                ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.通过.getValue());
            }
        } else if (SubAddTypeEnum.扣除.getValue() == subAddType) {
            if (CheckResultSubEnum.核查不扣分.getValue().equals(checkResult)) {
                ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.拒绝.getValue());
            } else if (CheckResultSubEnum.核查扣分.getValue().equals(checkResult)) {
                ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.通过.getValue());
            } else {
                ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.通过.getValue());
            }
        } else {
            ReflectUtil.setFieldValue(obj, "auditStatus", AuditStatusEnum.通过.getValue());
        }

    }

}
