package cn.iocoder.yudao.module.system.handler;

import cn.iocoder.yudao.module.system.service.attendance.punch.PunchService;
import org.springframework.stereotype.Service;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @Author : AiKai
 * @Description : 利用Spring的发现机制,将实现了IChannelLoginService的类都put到channelLoginServiceMap里面。
 * 后面只需要根据channelType对应好 各个实现类的注解 如： @Component("sys") 就可以取出不同的业务实现类
 **/
@Service
public class PunchHandler {
    private final Map<String, PunchService> punchServiceMap = new ConcurrentHashMap<>();

    public PunchHandler(Map<String, PunchService> strategyMap) {
        this.punchServiceMap.clear();
        strategyMap.forEach((k, v) -> this.punchServiceMap.put(k, v));
    }

    public PunchService getResource(String channelType) {
        return punchServiceMap.get(channelType);
    }

}
