【枚举】

public enum TaskType {
   INVITE_ONLINE("inviteOnline", "发送邀请用户上线的营销短信"),
   MARKETING_SEND_VOUCHER("marketingSendVoucher", "对现有用户送5X10张抵扣券");

   private String value;
   private String desc;

   TaskType(final String value, final String desc) {
      this.value = value;
      this.desc = desc;
   }

   public String getValue() {
      return value;
   }

   public String getDesc() {
      return desc;
   }

   public static TaskType instanceOf(String value) {
      for (TaskType taskType : TaskType.values()) {
         if (taskType.getValue().equals(value)) {
            return taskType;
         }
      }
      return null;
   }
}



@Component
public class BfFunctionalTaskActualServiceFactory {
   
   @Autowired
   private BfMarketingSendVoucherServiceImpl marketingSendVoucherServiceImpl;
   
   @Autowired
   private BfSmsInviteOnlineServiceImpl smsInviteOnlineServiceImpl;
   
   public BfFunctionalTaskActualService getService(String type) {
        TaskType taskType = TaskType.instanceOf(type);
      if (taskType == null) {
         return null;
      }

      switch (taskType) {
            case INVITE_ONLINE:
            return smsInviteOnlineServiceImpl;
            case MARKETING_SEND_VOUCHER:
            return marketingSendVoucherServiceImpl;
         default:
            return null;
      }
   }
}


@Override
public List<BfFunctionalTaskTypeDTO> obtainTaskType() {

   List<BfFunctionalTaskTypeDTO> list = new ArrayList<BfFunctionalTaskTypeDTO>();

   // 将枚举存放到list里面
   for (TaskType taskType : TaskType.values()) {
      BfFunctionalTaskTypeDTO taskTypeDTO = new BfFunctionalTaskTypeDTO();
      taskTypeDTO.setValue(taskType.getValue());
      taskTypeDTO.setDesc(taskType.getDesc());
      list.add(taskTypeDTO);
   }

   return list;
}

猜你喜欢

转载自blog.csdn.net/shiki_41/article/details/80110863