package com.bosshand.virgo.api.controller; import com.bosshand.virgo.api.model.ProjectItemTargetRoom; import com.bosshand.virgo.api.model.RoomCollection; import com.bosshand.virgo.api.model.Tag; import com.bosshand.virgo.api.service.ProjectItemTargetRoomService; import com.bosshand.virgo.api.service.RoomService; import com.bosshand.virgo.core.response.Response; import com.bosshand.virgo.core.utils.ContextUtils; import com.bosshand.virgo.core.utils.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("projectItemTargetRoom") @Api(tags = {"房源管理"}) public class ProjectItemTargetRoomController { @Autowired ProjectItemTargetRoomService projectItemTargetRoomService; @Autowired RoomService roomService; @ApiOperation("当前用户(负责人)下房源列表") @RequestMapping(value = "/count/{currPage}/{pageSize}", method = RequestMethod.GET) public Response list(@PathVariable int currPage, @PathVariable int pageSize) { ProjectItemTargetRoom room = new ProjectItemTargetRoom(); room.setChargePersonId(ContextUtils.getCurrentUser().getId()); return getResponse(currPage, pageSize, room); } @ApiOperation("查询") @RequestMapping(value = "/query", method = RequestMethod.POST) public Response queryList(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) { return Response.ok(projectItemTargetRoomService.getProjectItemTargetRoom(projectItemTargetRoom)); } @ApiOperation("获取") @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST) public Response list(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) { return getResponse(currPage, pageSize, projectItemTargetRoom); } @ApiOperation("获取公海房源") @RequestMapping(value = "/open/{currPage}/{pageSize}", method = RequestMethod.POST) public Response listOpen(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) { ProjectItemTargetRoom room = new ProjectItemTargetRoom(); room.setOpenState(2); room.setCoordinates(projectItemTargetRoom.getCoordinates()); return getResponse(currPage, pageSize, room); } private Response getResponse(int currPage, int pageSize, ProjectItemTargetRoom projectItemTargetRoom) { int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom); List dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize); List tags = new ArrayList<>(); for (ProjectItemTargetRoom room : dataList) { tags.clear(); if (StringUtil.notBlank(room.getTagIds())) { for (String tagId : room.getTagIds().split(",")) { tags.add(projectItemTargetRoomService.getTag(Long.parseLong(tagId))); } } room.setTagList(tags); } Map result = new HashMap<>(); result.put("dataList", dataList); result.put("totalCount", totalCount); return Response.ok(result); } @ApiOperation("新增") @RequestMapping(value = "", method = RequestMethod.POST) public Response insert(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) { projectItemTargetRoomService.insert(projectItemTargetRoom); return Response.ok(); } @ApiOperation("删除") @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) public Response delete(@PathVariable long id) { projectItemTargetRoomService.delete(id); return Response.ok(); } @ApiOperation("修改") @RequestMapping(value = "", method = RequestMethod.PUT) public Response update(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) { projectItemTargetRoomService.update(projectItemTargetRoom); return Response.ok(); } @ApiOperation("详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) public Response get(@PathVariable long id) { ProjectItemTargetRoom room = projectItemTargetRoomService.get(id); if (room != null) { String tagIds = room.getTagIds(); List tags = new ArrayList<>(); if (StringUtil.notBlank(tagIds)) { for (String tagId : tagIds.split(",")) { tags.add(projectItemTargetRoomService.getTag(Long.parseLong(tagId))); } } room.setTagList(tags); // 当前用户是否收藏 RoomCollection roomCollection = roomService.get(id, ContextUtils.getCurrentUser().getId()); if (roomCollection != null) { room.setRoomCollection(true); } } return Response.ok(room); } @ApiOperation("层级结构") @RequestMapping(value = "/level/{projectId}", method = RequestMethod.GET) public Response getLevel(@PathVariable long projectId) { return Response.ok(projectItemTargetRoomService.getLevel(projectId)); } }