public enum TaskType { INVITE_ONLINE("inviteOnline", "发送邀请用户上线的营销短信"), MARKETING_SEND_VOUCHER("marketingSendVoucher", "对现有用户送5元X10张抵扣券"); 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; }