RsDictionaryEntryEndPoint.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package com.yihu.ehr.resource.controller;
  2. import com.yihu.ehr.constants.ApiVersion;
  3. import com.yihu.ehr.constants.ServiceApi;
  4. import com.yihu.ehr.controller.EnvelopRestEndPoint;
  5. import com.yihu.ehr.model.resource.MRsDictionaryEntry;
  6. import com.yihu.ehr.resource.constants.MicroServiceApi;
  7. import com.yihu.ehr.resource.model.RsDictionaryEntry;
  8. import com.yihu.ehr.resource.service.RsDictionaryEntryService;
  9. import io.swagger.annotations.Api;
  10. import io.swagger.annotations.ApiOperation;
  11. import io.swagger.annotations.ApiParam;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.http.MediaType;
  14. import org.springframework.web.bind.annotation.*;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. /**
  20. * @author linaz
  21. * @created 2016.05.17 16:33
  22. */
  23. @RestController
  24. @RequestMapping(value = ApiVersion.Version1_0)
  25. @Api(value = "RsDictionaryEntry", description = "标准字典项", tags = {"资源服务-标准字典项"})
  26. public class RsDictionaryEntryEndPoint extends EnvelopRestEndPoint {
  27. @Autowired
  28. private RsDictionaryEntryService rsDictionaryEntryService;
  29. @RequestMapping(value = ServiceApi.Resources.DictEntries, method = RequestMethod.GET)
  30. @ApiOperation(value = "根据查询条件获取标准字典项列表", notes = "根据查询条件获取标准字典项列表")
  31. public List<MRsDictionaryEntry> searchRsDictionaryEntries(
  32. @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,secret,url,createTime")
  33. @RequestParam(value = "fields", required = false) String fields,
  34. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  35. @RequestParam(value = "filters", required = false) String filters,
  36. @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
  37. @RequestParam(value = "sorts", required = false) String sorts,
  38. @ApiParam(name = "page", value = "页码", defaultValue = "1")
  39. @RequestParam(value = "page", required = false) int page,
  40. @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
  41. @RequestParam(value = "size", required = false) int size,
  42. HttpServletRequest request,
  43. HttpServletResponse response) throws Exception {
  44. List<RsDictionaryEntry> dictionaryEntries = rsDictionaryEntryService.search(fields, filters, sorts, page, size);
  45. pagedResponse(request, response, rsDictionaryEntryService.getCount(filters), page, size);
  46. return (List<MRsDictionaryEntry>) convertToModels(dictionaryEntries, new ArrayList<MRsDictionaryEntry>(dictionaryEntries.size()), MRsDictionaryEntry.class, fields);
  47. }
  48. @RequestMapping(value = ServiceApi.Resources.DictEntries, method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
  49. @ApiOperation(value = "创建标准字典项", notes = "创建标准字典项")
  50. public MRsDictionaryEntry createRsDictionaryEntry(
  51. @ApiParam(name = "json_data", value = "", defaultValue = "")
  52. @RequestBody String jsonData) throws Exception {
  53. RsDictionaryEntry dictionaryEntry = toEntity(jsonData, RsDictionaryEntry.class);
  54. String code = dictionaryEntry.getCode();
  55. String dictCode = dictionaryEntry.getDictCode();
  56. if (isExistence(dictCode, code)) {
  57. throw new Exception("字典项代码不能重复");
  58. }
  59. rsDictionaryEntryService.insert(dictionaryEntry);
  60. return convertToModel(dictionaryEntry, MRsDictionaryEntry.class, null);
  61. }
  62. @RequestMapping(value = ServiceApi.Resources.DictEntries, method = RequestMethod.PUT)
  63. @ApiOperation(value = "修改标准字典项", notes = "修改标准字典项")
  64. public MRsDictionaryEntry updateRsDictionaryEntry(
  65. @ApiParam(name = "json_data", value = "")
  66. @RequestBody String jsonData) throws Exception {
  67. RsDictionaryEntry dictionaryEntry = toEntity(jsonData, RsDictionaryEntry.class);
  68. RsDictionaryEntry d = rsDictionaryEntryService.findById(dictionaryEntry.getId());
  69. String code = dictionaryEntry.getCode();
  70. String dictCode = dictionaryEntry.getDictCode();
  71. if (!d.getCode().equals(code) && isExistence(dictCode, code)) {
  72. throw new Exception("字典代码不可修改");
  73. }
  74. rsDictionaryEntryService.save(dictionaryEntry);
  75. return convertToModel(dictionaryEntry, MRsDictionaryEntry.class, null);
  76. }
  77. @RequestMapping(value = ServiceApi.Resources.DictEntry, method = RequestMethod.DELETE)
  78. @ApiOperation(value = "删除标准字典项", notes = "删除标准字典项")
  79. public boolean deleteRsDictionaryEntry(
  80. @ApiParam(name = "id", value = "id", defaultValue = "")
  81. @PathVariable(value = "id") int id) throws Exception {
  82. rsDictionaryEntryService.delete(id);
  83. return true;
  84. }
  85. @RequestMapping(value = ServiceApi.Resources.DictEntry, method = RequestMethod.GET)
  86. @ApiOperation(value = "根据id获取获取标准字典")
  87. public MRsDictionaryEntry getRsDictionaryEntryById(
  88. @ApiParam(name = "id", value = "", defaultValue = "")
  89. @PathVariable(value = "id") int id) {
  90. RsDictionaryEntry dictionaryEntry = rsDictionaryEntryService.findById(id);
  91. return convertToModel(dictionaryEntry, MRsDictionaryEntry.class);
  92. }
  93. @RequestMapping(value = ServiceApi.Resources.DictEntriesByDictCode, method = RequestMethod.GET)
  94. @ApiOperation(value = "根据dict_code获取获取标准字典")
  95. public List<MRsDictionaryEntry> getRsDictionaryEntryByDictCode(
  96. @ApiParam(name = "dict_code", value = "", defaultValue = "")
  97. @RequestParam(value = "dict_code") String dict_code) {
  98. List<RsDictionaryEntry> dictionaryEntries = rsDictionaryEntryService.findByDictCode(dict_code);
  99. return (List<MRsDictionaryEntry>) convertToModels(dictionaryEntries, new ArrayList<>(dictionaryEntries.size()), MRsDictionaryEntry.class, null);
  100. }
  101. @RequestMapping(value = ServiceApi.Resources.DictEntriesExistence, method = RequestMethod.GET)
  102. @ApiOperation("根据过滤条件判断是否存在")
  103. public boolean isExistence(
  104. @ApiParam(name = "filters", value = "filters", defaultValue = "")
  105. @RequestParam(value = "filters") String filters) throws Exception {
  106. List ls = rsDictionaryEntryService.search("", filters, "", 1, 1);
  107. return ls != null && ls.size() > 0;
  108. }
  109. public boolean isExistence(String dictCode, String code) {
  110. return rsDictionaryEntryService.findByFields(new String[]{"dictCode", "code"}, new String[]{dictCode, code}).size() != 0;
  111. }
  112. @RequestMapping(value = ServiceApi.Resources.NoPageDictEntries, method = RequestMethod.GET)
  113. @ApiOperation(value = "根据查询条件获取标准字典项列表_不分页", notes = "根据查询条件获取标准字典项列表_不分页")
  114. public List<MRsDictionaryEntry> searchNoPageRsDictEntries(
  115. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  116. @RequestParam(value = "filters", required = false) String filters) throws Exception {
  117. List<RsDictionaryEntry> dictionaryEntries = rsDictionaryEntryService.search(filters);
  118. return (List<MRsDictionaryEntry>) convertToModels(dictionaryEntries, new ArrayList<>(dictionaryEntries.size()), MRsDictionaryEntry.class, "");
  119. }
  120. @RequestMapping(value = MicroServiceApi.Resource.DICT_ENTRY, method = RequestMethod.GET)
  121. @ApiOperation(value = "根据code从缓存获取字典项值")
  122. public String getCacheValue(
  123. @ApiParam(name = "dict") @RequestParam(value = "dict") String dict,
  124. @ApiParam(name = "code") @RequestParam(value = "code") String code) {
  125. return rsDictionaryEntryService.getCacheValue(dict, code);
  126. }
  127. @RequestMapping(value = MicroServiceApi.Resource.DICT_ENTRIES, method = RequestMethod.GET)
  128. @ApiOperation(value = "根据dict从缓存获取字典项")
  129. public List<String> getCacheEntries(
  130. @ApiParam(name = "dict") @RequestParam(value = "dict") String dict) {
  131. return rsDictionaryEntryService.getCacheEntries(dict);
  132. }
  133. @RequestMapping(value = MicroServiceApi.Resource.DICT_ENTRY, method = RequestMethod.DELETE)
  134. @ApiOperation(value = "清空缓存字典项")
  135. public void deleteCacheValue(
  136. @ApiParam(name = "dict") @RequestParam(value = "dict") String dict) {
  137. rsDictionaryEntryService.deleteCacheValue(dict);
  138. }
  139. }