|
@@ -15,16 +15,23 @@ import com.kioor.room.dto.RoomDTO;
|
|
|
import com.kioor.room.dto.RoomDetailDTO;
|
|
|
import com.kioor.room.entity.RoomEntity;
|
|
|
import com.kioor.room.service.RoomService;
|
|
|
+import com.kioor.user.dto.UserResponseDTO;
|
|
|
+import com.kioor.user.entity.UserEntity;
|
|
|
+import com.kioor.user.service.UserService;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implements RoomService {
|
|
|
|
|
|
+ private final UserService userService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<RoomDTO> list(Map<String, Object> params) {
|
|
|
|
|
@@ -45,15 +52,64 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
|
|
|
*/
|
|
|
@Override
|
|
|
public List<RoomDetailDTO> floorList(Long userId) {
|
|
|
+ //查询用户
|
|
|
+ UserEntity loginUser = userService.selectById(userId);
|
|
|
//查询
|
|
|
- List<RoomEntity> list = baseDao.floorList(userId);
|
|
|
+ List<RoomDTO> list = baseDao.floorList(userId);
|
|
|
|
|
|
//list复制到dto
|
|
|
List<RoomDetailDTO> listDto = ConvertUtils.sourceToTarget(list, RoomDetailDTO.class);
|
|
|
|
|
|
+ //RoomDetailDTO中设置剩余的值
|
|
|
+ listDto.forEach(item -> {
|
|
|
+ getRoomDetailDTO(item,loginUser);
|
|
|
+ });
|
|
|
+
|
|
|
return listDto;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取房屋的其他信息
|
|
|
+ * @param roomDetailDTO
|
|
|
+ * @param loginUser
|
|
|
+ */
|
|
|
+ private void getRoomDetailDTO(RoomDetailDTO roomDetailDTO, UserEntity loginUser) {
|
|
|
+ RoomDTO myRoom = findRoomByUserId(loginUser.getId());
|
|
|
+ if(myRoom!=null && Objects.equals(myRoom.getId(), roomDetailDTO.getId()))
|
|
|
+ {
|
|
|
+ roomDetailDTO.setSelfFlag(1);
|
|
|
+ }else {
|
|
|
+ roomDetailDTO.setSelfFlag(0);
|
|
|
+ }
|
|
|
+ //通过roomId查询userList
|
|
|
+ List<UserEntity> userList = findUserByRoomId(roomDetailDTO.getId());
|
|
|
+ List<UserResponseDTO> userResponseDTOList = new ArrayList<>();
|
|
|
+ userList.forEach(item -> {
|
|
|
+ UserResponseDTO userResponseDTO = ConvertUtils.sourceToTarget(item, UserResponseDTO.class);
|
|
|
+ if(userResponseDTO.getOpenFlag() != 1){
|
|
|
+ userResponseDTO.setUsername(maskPhoneNumber(userResponseDTO.getUsername()));
|
|
|
+ userResponseDTO.setMobile(maskPhoneNumber(userResponseDTO.getMobile()));
|
|
|
+ }
|
|
|
+ userResponseDTOList.add(userResponseDTO);
|
|
|
+ });
|
|
|
+ roomDetailDTO.setUserList(userResponseDTOList);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static String maskPhoneNumber(String phoneNumber) {
|
|
|
+ if (phoneNumber == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ //如果不是手机号,只显示第一位
|
|
|
+ if (phoneNumber.length() < 11) {
|
|
|
+ String asterisks = new String(new char[phoneNumber.length() - 1]).replace('\0', '*');
|
|
|
+ return phoneNumber.charAt(0) + asterisks;
|
|
|
+ }
|
|
|
+ //如果是手机号就隐藏中间4位
|
|
|
+ String firstPart = phoneNumber.substring(0, 3);
|
|
|
+ String middlePart = "****";
|
|
|
+ String lastPart = phoneNumber.substring(7);
|
|
|
+ return firstPart + middlePart + lastPart;
|
|
|
+ }
|
|
|
/**
|
|
|
* 我楼上的邻居
|
|
|
*
|
|
@@ -62,13 +118,15 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
|
|
|
*/
|
|
|
@Override
|
|
|
public RoomDetailDTO roomUp(Long userId) {
|
|
|
+ //查询用户
|
|
|
+ UserEntity loginUser = userService.selectById(userId);
|
|
|
//查询
|
|
|
- RoomEntity entity = baseDao.roomUp(userId);
|
|
|
+ RoomDTO roomDTO = baseDao.roomUp(userId);
|
|
|
|
|
|
//list复制到dto
|
|
|
- RoomDetailDTO dto = ConvertUtils.sourceToTarget(entity, RoomDetailDTO.class);
|
|
|
-
|
|
|
- return dto;
|
|
|
+ RoomDetailDTO roomDetailDTO = ConvertUtils.sourceToTarget(roomDTO, RoomDetailDTO.class);
|
|
|
+ getRoomDetailDTO(roomDetailDTO,loginUser);
|
|
|
+ return roomDetailDTO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -79,13 +137,15 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
|
|
|
*/
|
|
|
@Override
|
|
|
public RoomDetailDTO roomDown(Long userId) {
|
|
|
+ //查询用户
|
|
|
+ UserEntity loginUser = userService.selectById(userId);
|
|
|
//查询
|
|
|
- RoomEntity entity = baseDao.roomDown(userId);
|
|
|
+ RoomDTO roomDTO = baseDao.roomDown(userId);
|
|
|
|
|
|
//list复制到dto
|
|
|
- RoomDetailDTO dto = ConvertUtils.sourceToTarget(entity, RoomDetailDTO.class);
|
|
|
-
|
|
|
- return dto;
|
|
|
+ RoomDetailDTO roomDetailDTO = ConvertUtils.sourceToTarget(roomDTO, RoomDetailDTO.class);
|
|
|
+ getRoomDetailDTO(roomDetailDTO,loginUser);
|
|
|
+ return roomDetailDTO;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -120,4 +180,24 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
|
|
|
return baseDao.findRoomById(id);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据userId查询房屋信息
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public RoomDTO findRoomByUserId(Long userId) {
|
|
|
+ return baseDao.findRoomByUserId(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据房屋信息查询用户信息
|
|
|
+ * @param roomId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<UserEntity> findUserByRoomId(Long roomId) {
|
|
|
+ return baseDao.findUserByRoomId(roomId);
|
|
|
+ }
|
|
|
+
|
|
|
}
|