RoomInnerServiceSMOImpl.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. package com.java110.community.smo.impl;
  2. import com.java110.common.constant.StatusConstant;
  3. import com.java110.common.util.BeanConvertUtil;
  4. import com.java110.community.dao.IRoomAttrServiceDao;
  5. import com.java110.community.dao.IRoomServiceDao;
  6. import com.java110.core.base.smo.BaseServiceSMO;
  7. import com.java110.core.smo.room.IRoomInnerServiceSMO;
  8. import com.java110.core.smo.user.IUserInnerServiceSMO;
  9. import com.java110.dto.PageDto;
  10. import com.java110.dto.RoomAttrDto;
  11. import com.java110.dto.RoomDto;
  12. import com.java110.dto.UserDto;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RestController;
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Map;
  20. /**
  21. * @ClassName FloorInnerServiceSMOImpl
  22. * @Description 小区房屋内部服务实现类
  23. * @Author wuxw
  24. * @Date 2019/4/24 9:20
  25. * @Version 1.0
  26. * add by wuxw 2019/4/24
  27. **/
  28. @RestController
  29. public class RoomInnerServiceSMOImpl extends BaseServiceSMO implements IRoomInnerServiceSMO {
  30. @Autowired
  31. private IRoomServiceDao roomServiceDaoImpl;
  32. @Autowired
  33. private IRoomAttrServiceDao roomAttrServiceDaoImpl;
  34. @Autowired
  35. private IUserInnerServiceSMO userInnerServiceSMOImpl;
  36. @Override
  37. public List<RoomDto> queryRooms(@RequestBody RoomDto roomDto) {
  38. //校验是否传了 分页信息
  39. int page = roomDto.getPage();
  40. if (page != PageDto.DEFAULT_PAGE) {
  41. roomDto.setPage((page - 1) * roomDto.getRow());
  42. roomDto.setRow(page * roomDto.getRow());
  43. }
  44. List<RoomDto> rooms = BeanConvertUtil.covertBeanList(roomServiceDaoImpl.getRoomInfoByCommunityId(BeanConvertUtil.beanCovertMap(roomDto)), RoomDto.class);
  45. if (rooms == null || rooms.size() == 0) {
  46. return rooms;
  47. }
  48. String[] roomIds = getRoomIds(rooms);
  49. Map attrParamInfo = new HashMap();
  50. attrParamInfo.put("roomIds", roomIds);
  51. attrParamInfo.put("statusCd", StatusConstant.STATUS_CD_VALID);
  52. List<RoomAttrDto> roomAttrDtos = BeanConvertUtil.covertBeanList(roomAttrServiceDaoImpl.getRoomAttrInfo(attrParamInfo), RoomAttrDto.class);
  53. String[] userIds = getUserIds(rooms);
  54. //根据 userId 查询用户信息
  55. List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
  56. for (RoomDto room : rooms) {
  57. refreshRoom(room, users, roomAttrDtos);
  58. }
  59. return rooms;
  60. }
  61. /**
  62. * 从用户列表中查询用户,将用户中的信息 刷新到 floor对象中
  63. *
  64. * @param room 小区小区房屋信息
  65. * @param users 用户列表
  66. * @param roomAttrDtos 房屋属性信息
  67. */
  68. private void refreshRoom(RoomDto room, List<UserDto> users, List<RoomAttrDto> roomAttrDtos) {
  69. for (UserDto user : users) {
  70. if (room.getUserId().equals(user.getUserId())) {
  71. BeanConvertUtil.covertBean(user, room);
  72. }
  73. }
  74. if (roomAttrDtos == null || roomAttrDtos.size() == 0) {
  75. return;
  76. }
  77. for (RoomAttrDto roomAttrDto : roomAttrDtos) {
  78. if (!roomAttrDto.getRoomId().equals(room.getRoomId())) {
  79. continue;
  80. }
  81. List<RoomAttrDto> tmpRoomAttrDtos = room.getRoomAttrDto();
  82. if (tmpRoomAttrDtos == null) {
  83. tmpRoomAttrDtos = new ArrayList<>();
  84. }
  85. tmpRoomAttrDtos.add(roomAttrDto);
  86. }
  87. }
  88. /**
  89. * 获取批量userId
  90. *
  91. * @param rooms 小区楼信息
  92. * @return 批量userIds 信息
  93. */
  94. private String[] getUserIds(List<RoomDto> rooms) {
  95. List<String> userIds = new ArrayList<String>();
  96. for (RoomDto room : rooms) {
  97. userIds.add(room.getUserId());
  98. }
  99. return userIds.toArray(new String[userIds.size()]);
  100. }
  101. /**
  102. * 获取roomId 信息
  103. *
  104. * @param rooms 房屋信息
  105. * @return roomIds
  106. */
  107. private String[] getRoomIds(List<RoomDto> rooms) {
  108. List<String> roomIds = new ArrayList<String>();
  109. for (RoomDto room : rooms) {
  110. roomIds.add(room.getRoomId());
  111. }
  112. return roomIds.toArray(new String[roomIds.size()]);
  113. }
  114. @Override
  115. public int queryRoomsCount(@RequestBody RoomDto roomDto) {
  116. return roomServiceDaoImpl.queryRoomsByCommunityIdCount(BeanConvertUtil.beanCovertMap(roomDto));
  117. }
  118. public IRoomServiceDao getRoomServiceDaoImpl() {
  119. return roomServiceDaoImpl;
  120. }
  121. public void setRoomServiceDaoImpl(IRoomServiceDao roomServiceDaoImpl) {
  122. this.roomServiceDaoImpl = roomServiceDaoImpl;
  123. }
  124. public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
  125. return userInnerServiceSMOImpl;
  126. }
  127. public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
  128. this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
  129. }
  130. public IRoomAttrServiceDao getRoomAttrServiceDaoImpl() {
  131. return roomAttrServiceDaoImpl;
  132. }
  133. public void setRoomAttrServiceDaoImpl(IRoomAttrServiceDao roomAttrServiceDaoImpl) {
  134. this.roomAttrServiceDaoImpl = roomAttrServiceDaoImpl;
  135. }
  136. }