Skip to content

Commit 6217a1a

Browse files
authored
Merge pull request #131 from VRGuild/127-ds-tile-info-entity
[DS-tile-info-entity] Channel 도메인 TileInfo CRD Service로직 생성 및 TestCode 작성
2 parents dcf3314 + 98b55b0 commit 6217a1a

File tree

15 files changed

+242
-33
lines changed

15 files changed

+242
-33
lines changed

src/main/java/com/mtvs/devlinkbackend/channel/dto/request/ChannelUpdateRequestDTO.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/main/java/com/mtvs/devlinkbackend/channel/dto/request/ChannelRegistRequestDTO.java renamed to src/main/java/com/mtvs/devlinkbackend/channel/dto/request/TileInfoRegistDTO.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
package com.mtvs.devlinkbackend.channel.dto.request;
22

3+
import com.mtvs.devlinkbackend.channel.entity.Position;
34
import lombok.*;
45

5-
import java.util.List;
6-
76
@Getter
87
@Setter
98
@NoArgsConstructor
109
@AllArgsConstructor
1110
@ToString
12-
@Data
13-
public class ChannelRegistRequestDTO {
14-
private List<PositionType> positionTypes;
15-
}
11+
public class TileInfoRegistDTO {
12+
private Position position;
13+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.mtvs.devlinkbackend.channel.dto.response;
2+
3+
import com.mtvs.devlinkbackend.channel.entity.TileInfo;
4+
import lombok.*;
5+
6+
import java.util.List;
7+
8+
@Getter
9+
@Setter
10+
@NoArgsConstructor
11+
@AllArgsConstructor
12+
@ToString
13+
public class TileInfoListResponseDTO {
14+
private List<TileInfo> data;
15+
}

src/main/java/com/mtvs/devlinkbackend/channel/entity/Channel.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public class Channel {
2222
@Id
2323
private String channelId;
2424

25+
private String channelName;
26+
2527
@CreatedDate
2628
private LocalDateTime createdAt;
2729

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.mtvs.devlinkbackend.channel.entity;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class Position {
7+
private float x;
8+
private float y;
9+
private float z;
10+
11+
public Position(float x, float y, float z) {
12+
this.x = x;
13+
this.y = y;
14+
this.z = z;
15+
}
16+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.mtvs.devlinkbackend.channel.entity;
2+
3+
import jakarta.persistence.Id;
4+
import jakarta.validation.constraints.NotNull;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Data;
7+
import lombok.NoArgsConstructor;
8+
import org.springframework.data.mongodb.core.index.Indexed;
9+
import org.springframework.data.mongodb.core.mapping.Document;
10+
import org.springframework.data.mongodb.core.mapping.Field;
11+
12+
@NoArgsConstructor
13+
@Document
14+
@Data
15+
public class TileInfo {
16+
@Id
17+
private String tileId;
18+
19+
@Indexed
20+
private String channelId;
21+
22+
@NotNull
23+
@Field
24+
private Position position;
25+
26+
public TileInfo(String channelId, Position position) {
27+
this.channelId = channelId;
28+
this.position = position;
29+
}
30+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.mtvs.devlinkbackend.channel.repository;
2+
3+
import com.mtvs.devlinkbackend.channel.entity.TileInfo;
4+
import org.springframework.data.mongodb.repository.MongoRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface TileInfoRepository extends MongoRepository<TileInfo, String> {
9+
void deleteAllByChannelId(String channelId);
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.mtvs.devlinkbackend.channel.repository;
2+
3+
import com.mtvs.devlinkbackend.channel.entity.TileInfo;
4+
import org.springframework.data.mongodb.repository.MongoRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
import java.util.List;
8+
9+
@Repository
10+
public interface TileInfoViewRepository extends MongoRepository<TileInfo, String> {
11+
List<TileInfo> findAllByChannelId(String channelId);
12+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.mtvs.devlinkbackend.channel.service;
2+
3+
import com.mtvs.devlinkbackend.channel.dto.request.TileInfoRegistDTO;
4+
import com.mtvs.devlinkbackend.channel.entity.TileInfo;
5+
import com.mtvs.devlinkbackend.channel.repository.TileInfoRepository;
6+
import org.springframework.stereotype.Service;
7+
import org.springframework.transaction.annotation.Transactional;
8+
9+
@Service
10+
public class TileInfoService {
11+
12+
13+
private final TileInfoRepository tileInfoRepository;
14+
15+
public TileInfoService(TileInfoRepository tileInfoRepository) {
16+
this.tileInfoRepository = tileInfoRepository;
17+
}
18+
19+
@Transactional
20+
public TileInfoRegistDTO insertTileInfoByChannelId(TileInfoRegistDTO tileInfoRegistDTO, String channelId) {
21+
TileInfo tileInfo = tileInfoRepository.save(new TileInfo(
22+
channelId,
23+
tileInfoRegistDTO.getPosition()
24+
));
25+
26+
return tileInfoRegistDTO;
27+
}
28+
29+
@Transactional
30+
public void deleteTileInfoByChannelId(String channelId) {
31+
tileInfoRepository.deleteAllByChannelId(channelId);
32+
}
33+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.mtvs.devlinkbackend.channel.service;
2+
3+
import com.mtvs.devlinkbackend.channel.dto.response.TileInfoListResponseDTO;
4+
import com.mtvs.devlinkbackend.channel.entity.TileInfo;
5+
import com.mtvs.devlinkbackend.channel.repository.TileInfoViewRepository;
6+
import org.springframework.stereotype.Service;
7+
8+
import java.util.List;
9+
10+
@Service
11+
public class TileInfoViewService {
12+
13+
private final TileInfoViewRepository tileInfoViewRepository;
14+
15+
public TileInfoViewService(TileInfoViewRepository tileInfoViewRepository) {
16+
this.tileInfoViewRepository = tileInfoViewRepository;
17+
}
18+
19+
public TileInfoListResponseDTO findTileInfoListByChannelId(String channelId) {
20+
List<TileInfo> tileInfoList = tileInfoViewRepository.findAllByChannelId(channelId);
21+
return new TileInfoListResponseDTO(tileInfoList);
22+
}
23+
}

0 commit comments

Comments
 (0)