Files
emo-grab/src/main/java/quant/rich/emoney/controller/api/CommonAbilityControllerV1.java

59 lines
2.1 KiB
Java

package quant.rich.emoney.controller.api;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.protobuf.nano.MessageNano;
import org.apache.commons.lang3.StringUtils;
import org.reflections.Reflections;
import lombok.extern.slf4j.Slf4j;
import nano.BaseResponse.Base_Response;
import quant.rich.emoney.entity.sqlite.ProtocolMatch;
import quant.rich.emoney.exception.RException;
import quant.rich.emoney.interfaces.IQueryableEnum;
import quant.rich.emoney.pojo.dto.EmoneyConvertResult;
import quant.rich.emoney.pojo.dto.EmoneyProtobufBody;
import quant.rich.emoney.service.sqlite.ProtocolMatchService;
@RestController
@RequestMapping("/api/v1/common")
@Slf4j
public class CommonAbilityControllerV1 {
@Autowired
Reflections reflections;
@GetMapping("/getIQueryableEnum")
public Map<String, String> getIQueryableEnum(String enumName) {
Set<Class<? extends IQueryableEnum>> enums = reflections.getSubTypesOf(IQueryableEnum.class);
Map<String, String> map = new HashMap<>();
for (Class<? extends IQueryableEnum> clazz : enums) {
if (clazz.getSimpleName().equals(enumName) && clazz.isEnum()) {
@SuppressWarnings({ "unchecked", "rawtypes" })
Class<? extends Enum> enumClass = (Class<? extends Enum<?>>) clazz;
for (Enum<?> e : enumClass.getEnumConstants()) {
if (e instanceof IQueryableEnum iqe) {
map.put(e.name(), iqe.getNote());
}
}
break;
}
}
return map;
}
}