9f871083899c3e0ae9d667ffadc503693dc4c191.svn-base 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package org.jeecg.common.util;
  2. import com.alibaba.fastjson.JSONObject;
  3. import org.jeecg.common.api.vo.Result;
  4. import org.springframework.http.HttpHeaders;
  5. import org.springframework.http.HttpMethod;
  6. import org.springframework.http.MediaType;
  7. import org.springframework.http.ResponseEntity;
  8. /**
  9. * 通过 RESTful 风格的接口操纵 desform 里的数据
  10. *
  11. * @author sunjianlei
  12. */
  13. public class RestDesformUtil {
  14. private static String domain = null;
  15. private static String path = null;
  16. static {
  17. domain = SpringContextUtils.getDomain();
  18. path = oConvertUtils.getString(SpringContextUtils.getApplicationContext().getEnvironment().getProperty("server.servlet.context-path"));
  19. }
  20. /**
  21. * 查询数据
  22. *
  23. * @param desformCode
  24. * @param dataId
  25. * @param token
  26. * @return
  27. */
  28. public static Result queryOne(String desformCode, String dataId, String token) {
  29. String url = getBaseUrl(desformCode, dataId).toString();
  30. HttpHeaders headers = getHeaders(token);
  31. ResponseEntity<JSONObject> result = RestUtil.request(url, HttpMethod.GET, headers, null, null, JSONObject.class);
  32. return packageReturn(result);
  33. }
  34. /**
  35. * 新增数据
  36. *
  37. * @param desformCode
  38. * @param formData
  39. * @param token
  40. * @return
  41. */
  42. public static Result addOne(String desformCode, JSONObject formData, String token) {
  43. return addOrEditOne(desformCode, formData, token, HttpMethod.POST);
  44. }
  45. /**
  46. * 修改数据
  47. *
  48. * @param desformCode
  49. * @param formData
  50. * @param token
  51. * @return
  52. */
  53. public static Result editOne(String desformCode, JSONObject formData, String token) {
  54. return addOrEditOne(desformCode, formData, token, HttpMethod.PUT);
  55. }
  56. private static Result addOrEditOne(String desformCode, JSONObject formData, String token, HttpMethod method) {
  57. String url = getBaseUrl(desformCode).toString();
  58. HttpHeaders headers = getHeaders(token);
  59. ResponseEntity<JSONObject> result = RestUtil.request(url, method, headers, null, formData, JSONObject.class);
  60. return packageReturn(result);
  61. }
  62. /**
  63. * 删除数据
  64. *
  65. * @param desformCode
  66. * @param dataId
  67. * @param token
  68. * @return
  69. */
  70. public static Result removeOne(String desformCode, String dataId, String token) {
  71. String url = getBaseUrl(desformCode, dataId).toString();
  72. HttpHeaders headers = getHeaders(token);
  73. ResponseEntity<JSONObject> result = RestUtil.request(url, HttpMethod.DELETE, headers, null, null, JSONObject.class);
  74. return packageReturn(result);
  75. }
  76. private static Result packageReturn(ResponseEntity<JSONObject> result) {
  77. if (result.getBody() != null) {
  78. return result.getBody().toJavaObject(Result.class);
  79. }
  80. return Result.error("操作失败");
  81. }
  82. private static StringBuilder getBaseUrl() {
  83. StringBuilder builder = new StringBuilder(domain).append(path);
  84. builder.append("/desform/api");
  85. return builder;
  86. }
  87. private static StringBuilder getBaseUrl(String desformCode, String dataId) {
  88. StringBuilder builder = getBaseUrl();
  89. builder.append("/").append(desformCode);
  90. if (dataId != null) {
  91. builder.append("/").append(dataId);
  92. }
  93. return builder;
  94. }
  95. private static StringBuilder getBaseUrl(String desformCode) {
  96. return getBaseUrl(desformCode, null);
  97. }
  98. private static HttpHeaders getHeaders(String token) {
  99. HttpHeaders headers = new HttpHeaders();
  100. String mediaType = MediaType.APPLICATION_JSON_UTF8_VALUE;
  101. headers.setContentType(MediaType.parseMediaType(mediaType));
  102. headers.set("Accept", mediaType);
  103. headers.set("X-Access-Token", token);
  104. return headers;
  105. }
  106. }