后台服务
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

109 linhas
2.9 KiB

  1. package com.iformall.common;
  2. import java.beans.BeanInfo;
  3. import java.beans.Introspector;
  4. import java.beans.PropertyDescriptor;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import com.iformall.enums.EnumLanguages;
  10. /**
  11. * @author chenkx
  12. * @date 2018-01-05.
  13. */
  14. public class ResultData extends Result {
  15. public Object data;
  16. public ResultData() {
  17. super();
  18. }
  19. public ResultData(Object data) {
  20. this();
  21. this.data = data;
  22. }
  23. public static ResultData returnResultObject(int code) {
  24. String value = ErrorCode.getByCode(code).getMessage();
  25. return new ResultData(code, value);
  26. }
  27. public ResultData(Enum<?>[] ens) {
  28. List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  29. for (Enum<?> en : ens) {
  30. Map<String, Object> map = enumToMap(en);
  31. list.add(map);
  32. }
  33. data = list;
  34. }
  35. private Map<String, Object> enumToMap(Enum<?> en) {
  36. Map<String, Object> map = new HashMap<>();
  37. try {
  38. BeanInfo info = Introspector.getBeanInfo(en.getClass());
  39. PropertyDescriptor[] descriptors = info.getPropertyDescriptors();
  40. for (PropertyDescriptor property : descriptors) {
  41. if (property.getPropertyType().getName().equals(Class.class.getName())) {
  42. continue;
  43. }
  44. Object value = property.getReadMethod().invoke(en);
  45. map.put(property.getName(), value);
  46. }
  47. } catch (Exception ex) {
  48. throw new RuntimeException(ex);
  49. }
  50. return map;
  51. }
  52. public ResultData(int code, Exception e) {
  53. super(code, e.toString());
  54. }
  55. public ResultData(int code, String message) {
  56. super(code, message);
  57. }
  58. public ResultData(int code, String message,String enMessage) {
  59. super(code, message,enMessage);
  60. }
  61. public ResultData(int code, String message, Object data) {
  62. this.code = code;
  63. this.message = message;
  64. this.data = data;
  65. super.addLanguage(EnumLanguages.zh_CN, message);
  66. }
  67. public ResultData(ErrorCode errorCode, Object data) {
  68. this.code = errorCode.getCode();
  69. this.message = errorCode.getMessage();
  70. this.data = data;
  71. super.addLanguage(EnumLanguages.zh_CN, message);
  72. }
  73. public ResultData(ErrorCode errorCode) {
  74. this.code = errorCode.getCode();
  75. this.message = errorCode.getMessage();
  76. super.addLanguage(EnumLanguages.zh_CN, message);
  77. }
  78. public HashMap<String, Object> toHashMap() {
  79. HashMap<String, Object> map = new HashMap<>(4);
  80. map.put("code", this.code);
  81. map.put("message", this.message);
  82. map.put("data", data);
  83. map.put("languageMessage", this.languageMessage);
  84. return map;
  85. }
  86. }