GlobalConfig.java 1.88 KB
package cn.fw.dalaran.domain.db;

import cn.fw.dalaran.domain.enums.ConfigEnum;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author wmy3969
 * @version 1.0
 * @date 2022-05-07 15:31:40
 * @Description
 */
@Data
@TableName("global_config")
public class GlobalConfig implements Serializable {
    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 所属配置组id
     */
    private Long configGroupId;
    /**
     * 配置项类型(1:封面, 2:话题, 3:综合得分标准分)
     */
    private Integer type;
    /**
     * 配置项值
     */
    private BigDecimal rate;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    public GlobalConfig() {
    }

    public GlobalConfig(Long configGroupId, Integer type, BigDecimal rate) {
        this.configGroupId = configGroupId;
        this.type = type;
        this.rate = rate;
    }

    public static GlobalConfigVo toVO(GlobalConfig db) {
        final GlobalConfigVo vo = new GlobalConfigVo();
        BeanUtils.copyProperties(db, vo);
        vo.setDesc(ConfigEnum.getNameByVale(db.getType()));
        return vo;
    }

    @Data
    @Valid
    public static class GlobalConfigVo {
        /**
         * 主键id
         */
        @NotNull(message = "主键id不能为空")
        private Long id;
        /**
         * 配置项值
         */
        @NotNull(message = "占比值不能为空")
        private BigDecimal rate;
        /**
         * 描述
         */
        private String desc;
    }
}