zoukankan      html  css  js  c++  java
  • java 方法作为参数封装在map

    package com.exe.competency.service.impl;
    
    import com.exe.competency.domain.RuleParam;
    import com.exe.competency.domain.RuleResult;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.PostConstruct;
    import javax.inject.Inject;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.function.Function;
    
    @Service
    public class RuleContext {
    
        @Inject
        LegalPersonServer legalPersonServer;
        @Inject
        AssignPostServer assignPostServer;
        @Inject
        AssignTagServer assignTagServer;
        @Inject
        AssignPositionServer assignPositionServer;
        @Inject
        ParentLegalPersonServer parentLegalPersonServer;
        @Inject
        AssignDeptAndPostServer assignDeptAndPostServer;
        @Inject
        LeaderServer leaderServer;
    
    
        Map<Integer, Function<RuleParam, RuleResult>> funcMap = new HashMap<>();
    
        @PostConstruct
        public void init() {
            funcMap.put(1, RuleParam -> legalPersonServer.getUserList(RuleParam));
            funcMap.put(2, RuleParam -> assignPostServer.getUserList(RuleParam));
            funcMap.put(3, RuleParam -> assignTagServer.getUserList(RuleParam));
            funcMap.put(4, RuleParam -> assignPositionServer.getUserList(RuleParam));
            funcMap.put(5, RuleParam -> parentLegalPersonServer.getUserList(RuleParam));
            funcMap.put(6, RuleParam -> assignDeptAndPostServer.getUserList(RuleParam));
            funcMap.put(7, RuleParam -> leaderServer.getUserList(RuleParam));
        }
    
        public RuleResult getUserList(int kind, String userId, List<String> fromIds, int type) {
            Function<RuleParam, RuleResult> stringListFunction = funcMap.get(kind);
            if (stringListFunction != null) {
                RuleParam rule = new RuleParam();
                rule.setUserId(userId);
                rule.setFromId(fromIds);
                rule.setType(type);
                return stringListFunction.apply(rule);
            }
            return null;
        }
    
    }

    @Service
    public class LegalPersonServer extends ExecutorServerBase {
    @Inject
    CompetencyExaminePlanRuleRepository competencyExaminePlanRuleRepository;

    @Override
    public List<String> setUserList(RuleParam rule) {
    return competencyExaminePlanRuleRepository.getLegalPerson(rule.getUserId());
    }
    }
     
  • 相关阅读:
    linux nat style
    vmware tools install
    linux network
    sql group by max
    实例 | tp5使用七牛云上传图片和文件/删除文件
    菜鸟如何使用composer
    浅谈数据库用户表结构设计,第三方登录
    app登陆,注册,第三方登陆数据设计及业务流程
    数据库设计——评论回复功能
    app接口设计之token的php实现
  • 原文地址:https://www.cnblogs.com/deepalley/p/15678384.html
Copyright © 2011-2022 走看看