AppApiService.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.yihu.hos.app.service;
  2. import com.fasterxml.jackson.databind.ObjectMapper;
  3. import com.yihu.hos.app.dao.AppApiDao;
  4. import com.yihu.hos.app.model.AppApi;
  5. import com.yihu.hos.app.model.AppApiParameter;
  6. import com.yihu.hos.app.model.AppApiResponse;
  7. import com.yihu.hos.core.log.Logger;
  8. import com.yihu.hos.core.log.LoggerFactory;
  9. import com.yihu.hos.web.framework.baseservice.BaseService;
  10. import com.yihu.hos.web.framework.util.DateTimeUtil;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import javax.annotation.Resource;
  16. import java.text.SimpleDateFormat;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * Created by chenweida on 2016/1/21.
  21. */
  22. @Service("appApiService")
  23. public class AppApiService extends BaseService<AppApi>{
  24. public static final String BEAN_ID = "appApiService";
  25. private static final String DELETE = "delete";
  26. private static final String ADD = "add";
  27. private static final String UPDATE = "update";
  28. private static final String NEW_DATA = "0";
  29. private static final String DATA_STATUS = "__status";
  30. @Autowired
  31. public ObjectMapper objectMapper;
  32. static final Logger logger = LoggerFactory.getLogger(AppApiService.class);
  33. @Autowired
  34. private AppApiParameterService appApiParameterService;
  35. @Autowired
  36. private AppApiResponseService appApiResponseService;
  37. @Resource(name = AppApiDao.BEAN_ID)
  38. private AppApiDao appApiDao;
  39. public AppApi getById(Integer id) throws Exception {
  40. return appApiDao.getEntity(AppApi.class, id);
  41. }
  42. @Transactional
  43. public void delete(Integer id) throws Exception {
  44. AppApi appApi = appApiDao.getEntity(AppApi.class, id);
  45. appApiDao.deleteEntity(appApi);
  46. }
  47. @Transactional
  48. public AppApi saveOrUpdate(AppApi obj) throws Exception {
  49. if ("".equals(obj.getMethodName())){
  50. obj.setMethodName(null);
  51. }
  52. appApiDao.saveOrUpdateEntity(obj);
  53. return obj;
  54. }
  55. /**
  56. * 保存apiParms及apiResponse
  57. *
  58. * @param apiId
  59. * @param apiParms
  60. * @param apiResponse
  61. */
  62. private void saveApiParmsResponse(Integer apiId, String apiParms, String apiResponse) {
  63. try {
  64. List<Map<String, Object>> list;
  65. if (!StringUtils.isEmpty(apiParms)) {
  66. list = objectMapper.readValue(apiParms, List.class);
  67. for (Map<String, Object> parmsMap : list) {
  68. //删除的是新增的数据直接跳过
  69. if (DELETE.equals(parmsMap.get(DATA_STATUS)) && NEW_DATA.equals(parmsMap.get("id") + "")) {
  70. continue;
  71. } else {
  72. parmsMap.put("appApiId", apiId);
  73. String json = objectMapper.writeValueAsString(parmsMap);
  74. objectMapper.setDateFormat(new SimpleDateFormat(DateTimeUtil.ISO8601Pattern));
  75. AppApiParameter obj = objectMapper.readValue(json, AppApiParameter.class);
  76. if (NEW_DATA.equals(parmsMap.get("id") + "")) {
  77. appApiParameterService.create(obj);
  78. } else if (UPDATE.equals(parmsMap.get(DATA_STATUS))) {
  79. appApiParameterService.update(obj);
  80. } else if (DELETE.equals(parmsMap.get(DATA_STATUS))) {
  81. appApiParameterService.delete(obj.getId());
  82. }
  83. }
  84. }
  85. }
  86. if (!StringUtils.isEmpty(apiResponse)) {
  87. list = objectMapper.readValue(apiResponse, List.class);
  88. for (Map<String, Object> parmsMap : list) {
  89. //删除的是新增的数据直接跳过
  90. if (DELETE.equals(parmsMap.get(DATA_STATUS)) && NEW_DATA.equals(parmsMap.get("id") + "")) {
  91. continue;
  92. } else {
  93. parmsMap.put("appApiId", apiId);
  94. String json = objectMapper.writeValueAsString(parmsMap);
  95. objectMapper.setDateFormat(new SimpleDateFormat(DateTimeUtil.ISO8601Pattern));
  96. AppApiResponse obj = objectMapper.readValue(json, AppApiResponse.class);
  97. if (ADD.equals(parmsMap.get(DATA_STATUS))) {
  98. appApiResponseService.create(obj);
  99. } else if (UPDATE.equals(parmsMap.get(DATA_STATUS))) {
  100. appApiResponseService.update(obj);
  101. } else if (DELETE.equals(parmsMap.get(DATA_STATUS))) {
  102. appApiResponseService.delete(obj.getId());
  103. }
  104. }
  105. }
  106. }
  107. } catch (Exception e) {
  108. throw new RuntimeException(e.getMessage());
  109. }
  110. }
  111. }