package thyyxxk.webserver.utils;

import lombok.extern.slf4j.Slf4j;

import java.util.Map;
import java.util.TreeMap;

@Slf4j
public class ProgressBar {
    public Map<Integer, String> map = new TreeMap<>();

    public void show() {
        StringBuilder a = new StringBuilder();
        for (Map.Entry<Integer, String> item : map.entrySet()) {
            a.append("任务")
                    .append(item.getKey())
                    .append(":")
                    .append(item.getValue())
                    .append("\n");
        }
        log.info("\n{}", a);
    }

    public void drawProgressBar(int name, int total, int current) {
        int progress = (int) (((double) current / total) * 100); // 计算进度百分比
        StringBuilder progressBar = new StringBuilder("["); // 进度条字符串

        for (int i = 0; i < 100; i += 5) { // 遍历 0 到 100
            if (i < progress) {
                progressBar.append("="); // 表示已完成的进度
            } else if (i == progress) {
                progressBar.append(">"); // 表示当前进度
            } else {
                progressBar.append(" "); // 表示未完成的进度
            }
        }
        progressBar.append("] ")
                .append(progress)
                .append("%")
                .append("当前：【").append(current).append("】")
                .append("总：【").append(total).append("】");

        map.put(name, progressBar.toString());
        show();
    }

}
