ProjectItemTargetRoomController.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package com.bosshand.virgo.api.controller;
  2. import com.bosshand.virgo.api.model.ProjectItemTargetRoom;
  3. import com.bosshand.virgo.api.model.RoomCollection;
  4. import com.bosshand.virgo.api.model.Tag;
  5. import com.bosshand.virgo.api.service.ContractService;
  6. import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
  7. import com.bosshand.virgo.api.service.RoomService;
  8. import com.bosshand.virgo.api.service.WorkOrderService;
  9. import com.bosshand.virgo.core.config.OperationControllerLog;
  10. import com.bosshand.virgo.core.response.Response;
  11. import com.bosshand.virgo.core.utils.ContextUtils;
  12. import com.bosshand.virgo.core.utils.StringUtil;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.util.ArrayList;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. @RestController
  22. @RequestMapping("projectItemTargetRoom")
  23. @Api(tags = {"房源管理"})
  24. public class ProjectItemTargetRoomController {
  25. @Autowired
  26. ProjectItemTargetRoomService projectItemTargetRoomService;
  27. @Autowired
  28. RoomService roomService;
  29. @Autowired
  30. ContractService contractService;
  31. @Autowired
  32. WorkOrderService workOrderService;
  33. @ApiOperation("当前用户(负责人)下房源列表")
  34. @RequestMapping(value = "/count/{currPage}/{pageSize}", method = RequestMethod.GET)
  35. public Response list(@PathVariable int currPage, @PathVariable int pageSize) {
  36. ProjectItemTargetRoom room = new ProjectItemTargetRoom();
  37. room.setChargePersonId(ContextUtils.getCurrentUser().getId());
  38. return getResponse(currPage, pageSize, room);
  39. }
  40. @ApiOperation("关键字模糊查询")
  41. @RequestMapping(value = "/query/{keyWord}", method = RequestMethod.GET)
  42. public Response queryKeyWord(@PathVariable String keyWord) {
  43. return Response.ok(projectItemTargetRoomService.queryKeyWord(keyWord));
  44. }
  45. @OperationControllerLog(module = "房源管理", operation = "房源列表")
  46. @ApiOperation("获取")
  47. @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST)
  48. public Response list(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {
  49. return getResponse(currPage, pageSize, projectItemTargetRoom);
  50. }
  51. @ApiOperation("房源下合同数、工单数")
  52. @RequestMapping(value = "/countSize/{currPage}/{pageSize}", method = RequestMethod.POST)
  53. public Response countSize(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {
  54. int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom);
  55. List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize);
  56. if (dataList != null && dataList.size() > 0) {
  57. List<String> ids = new ArrayList<>();
  58. dataList.forEach(ls -> ids.add(String.valueOf(ls.getId())));
  59. String str = String.join(",", ids);
  60. Map<Long, Integer> contractMap = contractService.countSize(str);
  61. Map<Long, Integer> workOrderMap = workOrderService.countSize(str);
  62. List<Tag> tags = new ArrayList<>();
  63. for (ProjectItemTargetRoom room : dataList) {
  64. tags.clear();
  65. if (StringUtil.notBlank(room.getTagIds())) {
  66. for (String tagId : room.getTagIds().split(",")) {
  67. tags.add(projectItemTargetRoomService.getTag(Long.parseLong(tagId)));
  68. }
  69. }
  70. room.setTagList(tags);
  71. room.setContractSize(contractMap.get(room.getId()));
  72. room.setWorkOrderSize(workOrderMap.get(room.getId()));
  73. }
  74. }
  75. Map<String, Object> result = new HashMap<>();
  76. result.put("dataList", dataList);
  77. result.put("totalCount", totalCount);
  78. return Response.ok(result);
  79. }
  80. @ApiOperation("获取公海房源")
  81. @RequestMapping(value = "/open/{currPage}/{pageSize}", method = RequestMethod.POST)
  82. public Response listOpen(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {
  83. ProjectItemTargetRoom room = new ProjectItemTargetRoom();
  84. room.setOpenState(2);
  85. room.setCoordinates(projectItemTargetRoom.getCoordinates());
  86. room.setTagIds(projectItemTargetRoom.getTagIds());
  87. if (projectItemTargetRoom.getAddressCode() != null) {
  88. List<Long> projectIds = projectItemTargetRoomService.getProjectAddressCode(projectItemTargetRoom.getAddressCode());
  89. if (projectIds.size() > 0) {
  90. room.setProjectIds(projectIds);
  91. } else {
  92. long id = -1;
  93. projectIds.add(id);
  94. room.setProjectIds(projectIds);
  95. }
  96. }
  97. return getResponse(currPage, pageSize, room);
  98. }
  99. private Response getResponse(int currPage, int pageSize, ProjectItemTargetRoom projectItemTargetRoom) {
  100. int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom);
  101. List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize);
  102. List<Tag> tags = new ArrayList<>();
  103. for (ProjectItemTargetRoom room : dataList) {
  104. tags.clear();
  105. if (StringUtil.notBlank(room.getTagIds())) {
  106. for (String tagId : room.getTagIds().split(",")) {
  107. tags.add(projectItemTargetRoomService.getTag(Long.parseLong(tagId)));
  108. }
  109. }
  110. room.setTagList(tags);
  111. }
  112. Map<String, Object> result = new HashMap<>();
  113. result.put("dataList", dataList);
  114. result.put("totalCount", totalCount);
  115. return Response.ok(result);
  116. }
  117. @OperationControllerLog(module = "房源管理", operation = "房源新增")
  118. @ApiOperation("新增")
  119. @RequestMapping(value = "", method = RequestMethod.POST)
  120. public Response insert(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) {
  121. projectItemTargetRoomService.insert(projectItemTargetRoom);
  122. return Response.ok();
  123. }
  124. @OperationControllerLog(module = "房源管理", operation = "房源删除")
  125. @ApiOperation("删除")
  126. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  127. public Response delete(@PathVariable long id) {
  128. projectItemTargetRoomService.delete(id);
  129. return Response.ok();
  130. }
  131. @OperationControllerLog(module = "房源管理", operation = "房源编辑")
  132. @ApiOperation("修改")
  133. @RequestMapping(value = "", method = RequestMethod.PUT)
  134. public Response update(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) {
  135. projectItemTargetRoomService.update(projectItemTargetRoom);
  136. return Response.ok();
  137. }
  138. @OperationControllerLog(module = "房源管理", operation = "房源详情")
  139. @ApiOperation("详情")
  140. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  141. public Response get(@PathVariable long id, @RequestParam(required = false) String coordinates) {
  142. ProjectItemTargetRoom room = projectItemTargetRoomService.get(id);
  143. if (room != null) {
  144. String tagIds = room.getTagIds();
  145. List<Tag> tags = new ArrayList<>();
  146. if (StringUtil.notBlank(tagIds)) {
  147. for (String tagId : tagIds.split(",")) {
  148. tags.add(projectItemTargetRoomService.getTag(Long.parseLong(tagId)));
  149. }
  150. }
  151. room.setTagList(tags);
  152. // 当前用户是否收藏
  153. RoomCollection roomCollection = roomService.get(id, ContextUtils.getCurrentUser().getId());
  154. if (roomCollection != null) {
  155. room.setRoomCollection(true);
  156. }
  157. }
  158. return Response.ok(projectItemTargetRoomService.coordinates(room, coordinates));
  159. }
  160. @ApiOperation("层级结构")
  161. @RequestMapping(value = "/level/{projectId}", method = RequestMethod.GET)
  162. public Response getLevel(@PathVariable long projectId) {
  163. return Response.ok(projectItemTargetRoomService.getLevel(projectId));
  164. }
  165. }