| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package com.izouma.nineth.service;
- import com.izouma.nineth.domain.MetaBoatPosition;
- import com.izouma.nineth.domain.MetaSpatialInfo;
- import com.izouma.nineth.domain.MetaSpatialWharf;
- import com.izouma.nineth.dto.MetaRestResult;
- import com.izouma.nineth.dto.PageQuery;
- import com.izouma.nineth.enums.MetaIsLandTypeEnum;
- import com.izouma.nineth.repo.MetaBoatPositionRepo;
- import com.izouma.nineth.repo.MetaSpatialInfoRepo;
- import com.izouma.nineth.repo.MetaSpatialWharfRepo;
- import com.izouma.nineth.utils.JpaUtils;
- import com.izouma.nineth.utils.SecurityUtils;
- import lombok.AllArgsConstructor;
- import org.springframework.data.domain.Page;
- import org.springframework.stereotype.Service;
- import java.util.List;
- import java.util.Objects;
- @Service
- @AllArgsConstructor
- public class MetaBoatPositionService {
- private MetaBoatPositionRepo metaBoatPositionRepo;
- private MetaSpatialInfoRepo metaSpatialInfoRepo;
- private MetaSpatialWharfRepo metaSpatialWharfRepo;
- public Page<MetaBoatPosition> all(PageQuery pageQuery) {
- return metaBoatPositionRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaBoatPosition.class), JpaUtils.toPageRequest(pageQuery));
- }
- public MetaRestResult<List<MetaBoatPosition>> queryBoatPosition(Long spaceInfoId) {
- Long userId = SecurityUtils.getAuthenticatedUser().getId();
- MetaSpatialInfo metaSpatialInfo = metaSpatialInfoRepo.findByIdAndDel(spaceInfoId, false);
- if (Objects.isNull(metaSpatialInfo)) {
- return MetaRestResult.returnError("查询不到空间信息");
- }
- if (!metaSpatialInfo.getUserId().equals(userId)) {
- return MetaRestResult.returnError("该空间不属于你");
- }
- if (metaSpatialInfo.getType() != 2) {
- return MetaRestResult.returnError("该空间不属于万岛空间");
- }
- MetaIsLandTypeEnum metaIsLandTypeEnum = queryIsLandType(metaSpatialInfo.getSize());
- if (Objects.isNull(metaIsLandTypeEnum)) {
- return MetaRestResult.returnError("该空间大小不合法");
- }
- List<MetaBoatPosition> metaBoatPositions = metaBoatPositionRepo.findAllByTypeAndDel(metaIsLandTypeEnum, false);
- metaBoatPositions.forEach(metaBoatPosition -> {
- MetaSpatialWharf metaSpatialWharf = metaSpatialWharfRepo.findAllByIsLandIdAndMetaBoatPositionIdAndDel(spaceInfoId, metaBoatPosition.getId(), false);
- if (Objects.nonNull(metaSpatialWharf)) {
- metaSpatialWharf.setMeUse(metaSpatialWharf.getUserId().equals(userId));
- metaBoatPosition.setBoatInfo(metaSpatialWharf);
- }
- });
- return MetaRestResult.returnSuccess(metaBoatPositions);
- }
- private MetaIsLandTypeEnum queryIsLandType(int size) {
- switch (size) {
- case 10000:
- return MetaIsLandTypeEnum.TEN_THOUSAND;
- case 60000:
- return MetaIsLandTypeEnum.SIXTY_THOUSAND;
- case 90000:
- return MetaIsLandTypeEnum.NINETY_THOUSAND;
- default:
- return null;
- }
- }
- }
|