123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- package com.bosshand.virgo.api.controller;
- import com.bosshand.virgo.api.model.Contract;
- 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.ContractService;
- import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
- import com.bosshand.virgo.api.service.RoomService;
- import com.bosshand.virgo.api.service.WorkOrderService;
- import com.bosshand.virgo.core.config.OperationControllerLog;
- 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;
- @Autowired
- ContractService contractService;
- @Autowired
- WorkOrderService workOrderService;
- @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/{keyWord}", method = RequestMethod.GET)
- public Response queryKeyWord(@PathVariable String keyWord) {
- return Response.ok(projectItemTargetRoomService.queryKeyWord(keyWord));
- }
- @OperationControllerLog(module = "房源管理", operation = "房源列表")
- @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 = "/projectItemTarget/{projectItemTargetId}", method = RequestMethod.GET)
- public Response getRoomIdContract(@PathVariable long projectItemTargetId) {
- List<ProjectItemTargetRoom> list = projectItemTargetRoomService.getProjectItemTargetId(projectItemTargetId);
- if (list.size() > 0) {
- List<String> ids = new ArrayList<>();
- list.forEach(ls -> ids.add(String.valueOf(ls.getId())));
- Map<Long, List<Contract>> roomIdContract = contractService.getRoomIdContract(String.join(",", ids));
- list.forEach(ll -> ll.setContractList(roomIdContract.get(ll.getId())));
- }
- return Response.ok(list);
- }
- @ApiOperation("房源下合同数、工单数")
- @RequestMapping(value = "/countSize/{currPage}/{pageSize}", method = RequestMethod.POST)
- public Response countSize(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {
- int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom);
- List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize);
- if (dataList != null && dataList.size() > 0) {
- List<String> ids = new ArrayList<>();
- dataList.forEach(ls -> ids.add(String.valueOf(ls.getId())));
- String str = String.join(",", ids);
- Map<Long, Integer> contractMap = contractService.countSize(str);
- Map<Long, Integer> workOrderMap = workOrderService.countSize(str);
- List<Tag> 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);
- room.setContractSize(contractMap.get(room.getId()));
- room.setWorkOrderSize(workOrderMap.get(room.getId()));
- }
- }
- Map<String, Object> result = new HashMap<>();
- result.put("dataList", dataList);
- result.put("totalCount", totalCount);
- return Response.ok(result);
- }
- @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());
- room.setTagIds(projectItemTargetRoom.getTagIds());
- if (projectItemTargetRoom.getAddressCode() != null) {
- List<Long> projectIds = projectItemTargetRoomService.getProjectAddressCode(projectItemTargetRoom.getAddressCode());
- if (projectIds.size() > 0) {
- room.setProjectIds(projectIds);
- } else {
- long id = -1;
- projectIds.add(id);
- room.setProjectIds(projectIds);
- }
- }
- return getResponse(currPage, pageSize, room);
- }
- private Response getResponse(int currPage, int pageSize, ProjectItemTargetRoom projectItemTargetRoom) {
- int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom);
- List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize);
- List<Tag> 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<String, Object> result = new HashMap<>();
- result.put("dataList", dataList);
- result.put("totalCount", totalCount);
- return Response.ok(result);
- }
- @OperationControllerLog(module = "房源管理", operation = "房源新增")
- @ApiOperation("新增")
- @RequestMapping(value = "", method = RequestMethod.POST)
- public Response insert(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) {
- projectItemTargetRoomService.insert(projectItemTargetRoom);
- return Response.ok();
- }
- @OperationControllerLog(module = "房源管理", operation = "房源删除")
- @ApiOperation("删除")
- @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
- public Response delete(@PathVariable long id) {
- projectItemTargetRoomService.delete(id);
- return Response.ok();
- }
- @OperationControllerLog(module = "房源管理", operation = "房源编辑")
- @ApiOperation("修改")
- @RequestMapping(value = "", method = RequestMethod.PUT)
- public Response update(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) {
- projectItemTargetRoomService.update(projectItemTargetRoom);
- return Response.ok();
- }
- @OperationControllerLog(module = "房源管理", operation = "房源详情")
- @ApiOperation("详情")
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- public Response get(@PathVariable long id, @RequestParam(required = false) String coordinates) {
- ProjectItemTargetRoom room = projectItemTargetRoomService.get(id);
- if (room != null) {
- String tagIds = room.getTagIds();
- List<Tag> 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(projectItemTargetRoomService.coordinates(room, coordinates));
- }
- @ApiOperation("层级结构")
- @RequestMapping(value = "/level/{projectId}", method = RequestMethod.GET)
- public Response getLevel(@PathVariable long projectId) {
- return Response.ok(projectItemTargetRoomService.getLevel(projectId));
- }
- @RequestMapping(value = "/open/roomIds/{roomIds}", method = RequestMethod.GET)
- public Map<Long, String> getRoomIds(@PathVariable String roomIds) {
- Map<Long, String> map = new HashMap<>();
- projectItemTargetRoomService.getRoomLevel(map, roomIds);
- return map;
- }
- @ApiOperation("项目工作台-房源管理")
- @RequestMapping(value = "/roomCount/{projectId}", method = RequestMethod.GET)
- public Response roomCount(@PathVariable long projectId) {
- return Response.ok(projectItemTargetRoomService.roomCount(projectId));
- }
- }
|