Skip to content

Commit

Permalink
Merge branch 'dev' into fix/59-fix-searchApi
Browse files Browse the repository at this point in the history
  • Loading branch information
rlawngP91 authored Aug 7, 2024
2 parents 27f2d6c + 13150cb commit 8b6a60a
Show file tree
Hide file tree
Showing 23 changed files with 527 additions and 4 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
/logs/

### STS ###
.apt_generated
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/com/mapu/domain/figure/api/FigureController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.mapu.domain.figure.api;

import com.mapu.domain.figure.application.FigureService;
import com.mapu.domain.figure.application.response.FigureResponseDTO;
import com.mapu.global.common.response.BaseResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("/figure")
@RequiredArgsConstructor
public class FigureController {

private FigureService figureService;

@GetMapping("/{figureId}")
public BaseResponse<FigureResponseDTO> getFigure(@PathVariable Long figureId) {
FigureResponseDTO figureDTO = figureService.getFigure(figureId);
return new BaseResponse<>(figureDTO);
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.mapu.domain.figure.application;

import com.mapu.domain.figure.application.response.FigureResponseDTO;
import com.mapu.domain.figure.dao.FigureRepository;
import com.mapu.domain.figure.domain.Figure;

public class FigureService {

private FigureRepository figureRepository;

public FigureResponseDTO getFigure(Long figureId) {
Figure figure = figureRepository.findById(figureId).orElseThrow(() -> new RuntimeException());
return FigureResponseDTO.from(figure);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.mapu.domain.figure.application.response;

import com.mapu.domain.figure.domain.Figure;
import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class FigureResponseDTO {
private Long id;
private int type;
private String address;
private int round;
private int area;
private int length;
private String name;
private String text;

public static FigureResponseDTO from(Figure figure) {
return FigureResponseDTO.builder()
.id(figure.getId())
.type(figure.getType().ordinal())
.address(figure.getAddress())
.round(figure.getRound())
.area(figure.getArea())
.length(figure.getLength())
.name(figure.getName())
.text(figure.getText())
.build();
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/mapu/domain/figure/dao/FigureRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.mapu.domain.figure.dao;

import com.mapu.domain.figure.domain.Figure;
import com.mapu.domain.figure.domain.FigureType;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface FigureRepository extends JpaRepository<Figure, Long> {

List<Figure> findByMapId(Long mapId);

}
58 changes: 58 additions & 0 deletions src/main/java/com/mapu/domain/figure/domain/Figure.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.mapu.domain.figure.domain;

import com.mapu.domain.map.domain.Map;
import com.mapu.global.common.domain.BaseEntity;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

import java.util.ArrayList;
import java.util.List;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DynamicInsert
public class Figure extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "map_id")
private Map map;

@NotNull
private FigureType type;

@NotNull
private String address;

private int round;

private int area;

private int length;

@NotNull
private String name;

@NotNull
private String text;

@OneToMany(mappedBy = "figure", cascade = CascadeType.ALL, orphanRemoval = true)
private List<FigureTag> tags = new ArrayList<>();

@OneToMany(mappedBy = "figure", cascade = CascadeType.ALL, orphanRemoval = true)
private List<FigureRate> rate = new ArrayList<>();

@OneToMany(mappedBy = "figure", cascade = CascadeType.ALL, orphanRemoval = true)
private List<FigureRate> relation = new ArrayList<>();

@OneToMany(mappedBy = "figure", cascade = CascadeType.ALL, orphanRemoval = true)
private List<FigureRate> vertex = new ArrayList<>();

}
30 changes: 30 additions & 0 deletions src/main/java/com/mapu/domain/figure/domain/FigureRate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.mapu.domain.figure.domain;

import com.mapu.global.common.domain.BaseEntity;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DynamicInsert
public class FigureRate extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "figure_id")
private Figure figure;

@NotNull
private String rate_name;

@NotNull
private int rate_star;
}
26 changes: 26 additions & 0 deletions src/main/java/com/mapu/domain/figure/domain/FigureRelation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.mapu.domain.figure.domain;

import com.mapu.global.common.domain.BaseEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DynamicInsert
public class FigureRelation extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "figure1_id")
private Figure figure;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "figure2_id")
private Figure figure2;
}
27 changes: 27 additions & 0 deletions src/main/java/com/mapu/domain/figure/domain/FigureTag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.mapu.domain.figure.domain;

import com.mapu.domain.map.domain.Map;
import com.mapu.global.common.domain.BaseEntity;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DynamicInsert
public class FigureTag extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "figure_id")
private Figure figure;

@NotNull
private String tag;
}
5 changes: 5 additions & 0 deletions src/main/java/com/mapu/domain/figure/domain/FigureType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.mapu.domain.figure.domain;

public enum FigureType {
POINT ,LINE, POLYGON
}
31 changes: 31 additions & 0 deletions src/main/java/com/mapu/domain/figure/domain/FirgureVertex.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.mapu.domain.figure.domain;

import com.mapu.global.common.domain.BaseEntity;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DynamicInsert
public class FirgureVertex extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "figure_id")
private Figure figure;

@NotNull
private double latitude;

@NotNull
private double longtitude;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.mapu.domain.figure.exception;

public class FigureException extends RuntimeException{
}
32 changes: 32 additions & 0 deletions src/main/java/com/mapu/domain/map/api/HomeController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.mapu.domain.map.api;

import com.mapu.global.common.response.BaseResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("/home")
@RequiredArgsConstructor
public class HomeController {

@RequestMapping("/editor")
@GetMapping
public BaseResponse<Void> getRecommandEditor() {
return new BaseResponse<>(null);
}

@RequestMapping("/keyword")
@GetMapping
public BaseResponse<Void> getRecommandKeyword() {
return new BaseResponse<>(null);
}




}
19 changes: 19 additions & 0 deletions src/main/java/com/mapu/domain/map/api/MapController.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
package com.mapu.domain.map.api;

import com.mapu.domain.map.api.request.CreateMapRequestDTO;
import com.mapu.domain.map.application.MapService;
import com.mapu.domain.map.application.response.MapListResponseDTO;
import com.mapu.domain.map.domain.Map;
import com.mapu.global.common.response.BaseResponse;
import com.mapu.global.jwt.dto.JwtUserDto;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

import java.util.List;

Expand Down Expand Up @@ -58,4 +64,17 @@ public BaseResponse removeMapBookMark() {
return new BaseResponse<>();
}

/**
* 맵 생성
*/
@RequestMapping("/create")
@PostMapping
public BaseResponse<Void> createMap(@AuthenticationPrincipal JwtUserDto jwtUserDto,
@Valid @RequestBody CreateMapRequestDTO requestDTO) {
Long userId = Long.parseLong(jwtUserDto.getName());
mapService.createMap(requestDTO, userId);
return new BaseResponse<>(null);
}

}

Loading

0 comments on commit 8b6a60a

Please sign in to comment.