59 lines
2.1 KiB
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;
|
|
}
|
|
|
|
}
|