RoomController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.bosshand.virgo.api.controller;
  2. import com.bosshand.virgo.api.model.*;
  3. import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
  4. import com.bosshand.virgo.api.service.RoomService;
  5. import com.bosshand.virgo.core.response.Response;
  6. import com.bosshand.virgo.core.utils.ContextUtils;
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiOperation;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. @RestController
  16. @RequestMapping("roomOperation")
  17. @Api(tags = {"房源用户操作(访客,收藏,评价,预约)"})
  18. public class RoomController {
  19. @Autowired
  20. RoomService roomService;
  21. @Autowired
  22. ProjectItemTargetRoomService projectItemTargetRoomService;
  23. @ApiOperation("获取访客记录")
  24. @RequestMapping(value = "/visitor/{currPage}/{pageSize}", method = RequestMethod.POST)
  25. public Response list(@RequestBody RoomVisitor roomVisitor, @PathVariable int currPage, @PathVariable int pageSize) {
  26. int totalCount = roomService.getTotalCount(roomVisitor);
  27. List<RoomVisitor> dataList = roomService.getLimit(roomVisitor, currPage, pageSize);
  28. Map<String, Object> result = new HashMap<>();
  29. result.put("dataList", dataList);
  30. result.put("totalCount", totalCount);
  31. return Response.ok(result);
  32. }
  33. @ApiOperation("新增访客")
  34. @RequestMapping(value = "/visitor", method = RequestMethod.POST)
  35. public Response insert(@RequestBody RoomVisitor roomVisitor) {
  36. roomService.insert(roomVisitor);
  37. return Response.ok();
  38. }
  39. @ApiOperation("当前用户收藏房源")
  40. @RequestMapping(value = "/collection/{projectItemTargetRoomId}", method = RequestMethod.GET)
  41. public Response insert(@PathVariable long projectItemTargetRoomId) {
  42. long userId = ContextUtils.getCurrentUser().getId();
  43. RoomCollection collection = roomService.get(projectItemTargetRoomId, userId);
  44. if (collection != null) {
  45. return Response.fail(100001, "该用户已收藏此房源");
  46. }
  47. RoomCollection roomCollection = new RoomCollection();
  48. roomCollection.setProjectItemTargetRoomId(projectItemTargetRoomId);
  49. roomCollection.setUserId(userId);
  50. roomService.insert(roomCollection);
  51. return Response.ok();
  52. }
  53. @ApiOperation("当前用户取消收藏房源")
  54. @RequestMapping(value = "/collection/{projectItemTargetRoomId}", method = RequestMethod.DELETE)
  55. public Response delete(@PathVariable long projectItemTargetRoomId) {
  56. long userId = ContextUtils.getCurrentUser().getId();
  57. roomService.deleteCollection(projectItemTargetRoomId, userId);
  58. return Response.ok();
  59. }
  60. @ApiOperation("当前用户收藏房源数量(collectionCount:收藏数量)")
  61. @RequestMapping(value = "/collection/count", method = RequestMethod.GET)
  62. public Response count() {
  63. long userId = ContextUtils.getCurrentUser().getId();
  64. int collectionCount = roomService.getTotalCount(userId);
  65. Map<String, Object> result = new HashMap<>();
  66. result.put("collectionCount", collectionCount);
  67. return Response.ok(result);
  68. }
  69. @ApiOperation("当前用户收藏房源列表")
  70. @RequestMapping(value = "/collection/{currPage}/{pageSize}", method = RequestMethod.GET)
  71. public Response list(@PathVariable int currPage, @PathVariable int pageSize, @RequestParam(required = false) String coordinates) {
  72. long userId = ContextUtils.getCurrentUser().getId();
  73. int totalCount = roomService.getTotalCount(userId);
  74. List<RoomCollection> list = roomService.getLimit(userId, currPage, pageSize);
  75. List<Long> ids = new ArrayList<>();
  76. list.forEach(ls -> ids.add(ls.getProjectItemTargetRoomId()));
  77. List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getIds(ids);
  78. // 返回距离
  79. for(ProjectItemTargetRoom room : dataList){
  80. projectItemTargetRoomService.coordinates(room, coordinates);
  81. }
  82. Map<String, Object> result = new HashMap<>();
  83. result.put("dataList", dataList);
  84. result.put("totalCount", totalCount);
  85. return Response.ok(result);
  86. }
  87. @ApiOperation("获取房源评价")
  88. @RequestMapping(value = "/evaluate/{currPage}/{pageSize}", method = RequestMethod.POST)
  89. public Response list(@RequestBody RoomEvaluate roomEvaluate, @PathVariable int currPage, @PathVariable int pageSize) {
  90. int totalCount = roomService.getTotalCount(roomEvaluate);
  91. List<RoomEvaluate> dataList = roomService.getLimit(roomEvaluate, currPage, pageSize);
  92. Map<String, Object> result = new HashMap<>();
  93. result.put("dataList", dataList);
  94. result.put("totalCount", totalCount);
  95. return Response.ok(result);
  96. }
  97. @ApiOperation("新增评价")
  98. @RequestMapping(value = "/evaluate", method = RequestMethod.POST)
  99. public Response insert(@RequestBody RoomEvaluate roomEvaluate) {
  100. roomService.insert(roomEvaluate);
  101. return Response.ok();
  102. }
  103. @ApiOperation("获取预约看房")
  104. @RequestMapping(value = "/reservation/list", method = RequestMethod.POST)
  105. public Response list(@RequestBody RoomReservation roomReservation) {
  106. List<RoomReservation> list = roomService.getList(roomReservation);
  107. for (RoomReservation r : list) {
  108. r.setProjectName(projectItemTargetRoomService.getProject(r.getProjectId()).getName());
  109. }
  110. return Response.ok(list);
  111. }
  112. @ApiOperation("新增预约看房")
  113. @RequestMapping(value = "/reservation", method = RequestMethod.POST)
  114. public Response insert(@RequestBody RoomReservation roomReservation) {
  115. roomService.insert(roomReservation);
  116. return Response.ok();
  117. }
  118. }