Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
6916bb7
refactor: 산책 엔티티 수정
2dhhh Mar 19, 2025
a390545
refactor: 산책 v1 서비스 코드 수정
2dhhh Mar 19, 2025
9f2a7da
refactor: 산책 V1 엔티티 수정
2dhhh Apr 8, 2025
4bc0aca
refactor: 산책 V1 서비스계층 수정
2dhhh Apr 8, 2025
89dd4df
refactor: 산책 V1 컨트롤러 계층 수정
2dhhh Apr 8, 2025
6dfa8e5
refactor: 산책 V1 서비스 계층 수정
2dhhh Apr 8, 2025
774103e
refactor: 산책 V1 레포지토리 쿼리 수정
2dhhh Apr 8, 2025
0bdb769
refactor: 산책 V1 레포지토리 쿼리 수정
2dhhh Apr 8, 2025
6ffd82b
refactor: MemberRepository getById 매개 타입 수정
2dhhh Apr 15, 2025
e73dab5
feat: 산책 기록 요청 및 응답 DTO 생성
2dhhh Apr 15, 2025
32b3d68
feat: 시간 포맷 유틸
2dhhh Apr 15, 2025
9e76dea
feat: 산책 기록하기
2dhhh Apr 15, 2025
14d32e0
feat: 산책 Version2 엔티티 생성자 추가
2dhhh Apr 15, 2025
744f4fd
feat: 산책 최근 산책 데이터 가져오기 DTO
2dhhh Apr 17, 2025
d4942cd
feat: 산책 최근 산책 데이터 가져오기 Repo 메소드
2dhhh Apr 17, 2025
af1870d
feat: 최신 산책 기능
2dhhh Apr 17, 2025
1f898a3
feat: 일일 산책 DTO
2dhhh Apr 17, 2025
f7ae955
feat: 일일 산책 조회V2 추가
2dhhh Apr 17, 2025
86e0c9a
chore: 불필요 import문 삭제
2dhhh Apr 17, 2025
d9317f7
feat: V2 월간 달력 산책 기록 조회 기능
2dhhh Apr 17, 2025
e445e64
refactor: 불필요 쿼리 메소드 삭제
2dhhh Apr 17, 2025
151cd30
refactor: repo 쿼리메소드명 변경
2dhhh Apr 17, 2025
ccd1d87
refactor: 응답 DTO 타입 변경
2dhhh Apr 17, 2025
91f5e7e
refactor: 응답 DTO 타입 변경에 대한 서비스 코드 수정
2dhhh Apr 17, 2025
e86a11a
feat: 주간 산책 데이터 조회V2 추가
2dhhh Apr 17, 2025
612c551
refactor: 공통응답 DTO 이름 수정
2dhhh Apr 17, 2025
4f38d68
fix: 엔티티 변경으로 산책 repo 메소드 수정
2dhhh Apr 17, 2025
e4a07d3
refactor: 포인트 도메인 리펙토링 (#231)
Seungcode Mar 28, 2025
661125c
fix: 산책 컨트롤러 uri 수정
2dhhh May 8, 2025
2abe974
refactor: OwnedPetRepository 불필요 코드 제거
2dhhh May 8, 2025
5191658
refactor: Member 레포 파라미터 타입변경
2dhhh May 8, 2025
f26e152
refactor: 백신 도메인 리펙토링 (#230)
parkhs21 May 9, 2025
9defe2f
refactor: 리워드 엔티티 리팩토링 (#224)
jun23314 Mar 19, 2025
dfbd430
fea: 리워드 등록 API 작성
jun23314 Mar 20, 2025
b95eab1
fix: 리워드 등록 controller명 변경
jun23314 Mar 20, 2025
1035d62
fix: JPA 네이밍 규칙 적용
jun23314 Mar 20, 2025
0836d0f
feat: 리워드 내역 전체 조회 API 작성
jun23314 Mar 20, 2025
31d4cd4
feat: 리워드 내역 단일 조회 API 작성
jun23314 Mar 20, 2025
93b872b
feat: 리워드 수정 API 작성
jun23314 Mar 20, 2025
0f9a0c2
feat: 리워드 삭제 API 작성
jun23314 Mar 20, 2025
54736b2
fix: 리워드 조회 시 생성/수정/삭제 일자 추가
jun23314 Mar 20, 2025
f1bb47c
fix: 리워드 soft delete 적용
jun23314 Mar 20, 2025
7f42878
fix: 삭제된 리워드는 수정 불가하게 변경
jun23314 Mar 20, 2025
3ec123d
chore: TODO 사용
jun23314 Mar 28, 2025
10c9b37
fix: rewards가 비어있는 경우 처리 제거
jun23314 Apr 2, 2025
70cf855
feat: 안구질환 테이블 생성
jun23314 Mar 31, 2025
112e0e6
feat: 안구질환 분석 api 작성
jun23314 Mar 31, 2025
ca7c968
refactor: AIModelClient 위치 변경 및 서버 주소 env 처리
jun23314 Mar 17, 2025
f6547d1
refactor: S3 서비스 통합
jun23314 Mar 17, 2025
87fa8e4
rename: 패키지 명 변경
jun23314 Mar 17, 2025
4a6fa54
feat: application-local.yml에 ai 모델 주소 관련 코드 추가
jun23314 Mar 17, 2025
4b002ba
fix: url 변수 변경
jun23314 Mar 19, 2025
ccc759b
fix: 기본 실행 prod로 변경
jun23314 Mar 19, 2025
7a67480
chore: git pull에 의한 import문 변경
jun23314 Mar 31, 2025
d10afe6
feat: 안구질환 분석 정보 db 저장 로직 생성
jun23314 Apr 2, 2025
4562a7f
refactor: 강아지/고양이 안구질환 결과 엔티티 분리
jun23314 Apr 11, 2025
339bfe0
fix: 강아지 고양이 반환값 분리
jun23314 Apr 11, 2025
edd0def
feat : feed 도메인 리팩토링 (#238)
Seungcode May 9, 2025
285e776
feat : feed 도메인 리팩토링 (#238)
Seungcode May 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions src/main/java/com/kau/capstone/entity/AI/CatEyes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package com.kau.capstone.entity.AI;

import com.kau.capstone.entity.pet.Pet;
import com.kau.capstone.v2.ai.dto.response.CatEyeRes;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class CatEyes {

@Id
@Comment("안구질환 식별자")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Comment("각막궤양")
private float cornealUlcer;

@Comment("각막부골편")
private float cornealDystcatrophy;

@Comment("결막염")
private float conjunctivitis;

@Comment("안검염")
private float blepharitis;

@Comment("비궤양성 각막질환")
private float nonUlcerativeKeratitis;

@ManyToOne
@JoinColumn(name = "pet_id")
private Pet pet;

private CatEyes(float cornealUlcer, float cornealDystcatrophy, float conjunctivitis,
float blepharitis, float nonUlcerativeKeratitis, Pet pet){
this.cornealUlcer = cornealUlcer;
this.cornealDystcatrophy = cornealDystcatrophy;
this.conjunctivitis = conjunctivitis;
this.blepharitis = blepharitis;
this.nonUlcerativeKeratitis = nonUlcerativeKeratitis;
this.pet = pet;
}

public static CatEyes of(CatEyeRes eyeRes, Pet pet){
return new CatEyes(eyeRes.cornealUlcer(),
eyeRes.cornealDystcatrophy(),
eyeRes.conjunctivitis(),
eyeRes.blepharitis(),
eyeRes.nonUlcerativeKeratitis(),
pet);
}

}
84 changes: 84 additions & 0 deletions src/main/java/com/kau/capstone/entity/AI/DogEyes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package com.kau.capstone.entity.AI;

import com.kau.capstone.entity.pet.Pet;
import com.kau.capstone.v2.ai.dto.response.DogEyeRes;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class DogEyes {

@Id
@Comment("안구질환 식별자")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Comment("궤양성 각막질환")
private float ulcerativeKeratitis;

@Comment("백내장")
private float cataract;

@Comment("색소침착성각막염")
private float pigmentaryKeratitis;

@Comment("안검내반증")
private float entropion;

@Comment("안검종양")
private float eyelidTumor;

@Comment("유루증")
private float incontinence;

@Comment("핵경화")
private float nuclearSclerosis;

@Comment("결막염")
private float conjunctivitis;

@Comment("안검염")
private float blepharitis;

@Comment("비궤양성 각막질환")
private float nonUlcerativeKeratitis;

@ManyToOne
@JoinColumn(name = "pet_id")
private Pet pet;

private DogEyes(float ulcerativeKeratitis, float cataract, float pigmentaryKeratitis,
float entropion, float eyelidTumor, float incontinence, float nuclearSclerosis,
float conjunctivitis, float blepharitis, float nonUlcerativeKeratitis, Pet pet) {
this.ulcerativeKeratitis = ulcerativeKeratitis;
this.cataract = cataract;
this.pigmentaryKeratitis = pigmentaryKeratitis;
this.entropion = entropion;
this.eyelidTumor = eyelidTumor;
this.incontinence = incontinence;
this.nuclearSclerosis = nuclearSclerosis;
this.conjunctivitis = conjunctivitis;
this.blepharitis = blepharitis;
this.nonUlcerativeKeratitis = nonUlcerativeKeratitis;
this.pet = pet;
}

public static DogEyes of(DogEyeRes eyeRes, Pet pet) {
return new DogEyes(eyeRes.ulcerativeKeratitis(), eyeRes.cataract(),
eyeRes.pigmentaryKeratitis(),
eyeRes.entropion(), eyeRes.eyelidTumor(), eyeRes.incontinence(),
eyeRes.nuclearSclerosis(),
eyeRes.conjunctivitis(), eyeRes.blepharitis(), eyeRes.nonUlcerativeKeratitis(), pet);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.kau.capstone.entity.AI.Repository;

import com.kau.capstone.entity.AI.CatEyes;
import org.springframework.data.jpa.repository.JpaRepository;

public interface CatEyesRepository extends JpaRepository<CatEyes, Long> {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.kau.capstone.entity.AI.Repository;

import com.kau.capstone.entity.AI.DogEyes;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DogEyesRepository extends JpaRepository<DogEyes, Long> {

}
11 changes: 7 additions & 4 deletions src/main/java/com/kau/capstone/entity/food/Food.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,8 @@

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Food {

@Id
@Comment("강아지 사료 식별자")
@GeneratedValue(strategy = GenerationType.IDENTITY)
Expand All @@ -30,5 +27,11 @@ public class Food {
private String imageUrl;

@Comment("사료 가격")
private Long price;
private long price;

private Food(String name, String imageUrl, Long price) {
this.name = name;
this.imageUrl = imageUrl;
this.price = price;
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
package com.kau.capstone.entity.food.repository;

import com.kau.capstone.entity.food.Food;
import com.kau.capstone.v2.food.exception.FoodNotFoundExceptionV2;
import lombok.NonNull;
import org.springframework.data.jpa.repository.JpaRepository;

public interface FoodRepository extends JpaRepository<Food, Long> {
default @NonNull Food getById(@NonNull Long id){
return findById(id).orElseThrow(FoodNotFoundExceptionV2::new);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,23 @@

import com.kau.capstone.entity.member.Member;
import com.kau.capstone.v1.member.exception.MemberNotFoundException;
import java.util.Optional;
import lombok.NonNull;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.Optional;

public interface MemberRepository extends JpaRepository<Member, Long> {

Optional<Member> findByPlatformId(String platformId);

@Modifying
@Query("UPDATE Member m SET m.refreshToken = :refreshToken WHERE m.id = :memberId")
void updateRefreshTokenByMemberId(@Param("memberId") Long memberId,
@Param("refreshToken") String refreshToken);

default Member getById(long id) {
default @NonNull Member getById(@NonNull Long id) {
return findById(id).orElseThrow(MemberNotFoundException::new);
}

@Modifying
@Query("UPDATE Member m SET m.refreshToken = :refreshToken WHERE m.id = :memberId")
void updateRefreshTokenByMemberId(@Param("memberId") Long memberId, @Param("refreshToken") String refreshToken);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.kau.capstone.entity.member.Member;
import com.kau.capstone.entity.member.OwnedPet;
import com.kau.capstone.entity.pet.Pet;
import com.kau.capstone.v2.walk.exception.PetOwnershipException;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
Expand All @@ -19,7 +20,8 @@ public interface OwnedPetRepository extends JpaRepository<OwnedPet, Long> {
@Query("SELECT op.pet FROM OwnedPet op WHERE op.member.id = :memberId AND op.pet.id = :petId")
Optional<Pet> findPetByMemberAndPetId(@Param("memberId") Long memberId, @Param("petId") Long petId);

@Query("SELECT COUNT(o) > 0 FROM OwnedPet o WHERE o.member = :member AND o.pet = :pet")
Boolean existsByMemberAndPet(@Param("member") Member member, @Param("pet") Pet pet);

default Pet getPetByMemberAndPetId(Member member, Long petId) {
return findPetByMemberAndPetId(member.getId(), petId).orElseThrow(PetOwnershipException::new);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.kau.capstone.entity.member.Member;
import com.kau.capstone.entity.pet.Pet;
import com.kau.capstone.v1.pet.exception.PetAndMemberNotMatchedException;
import com.kau.capstone.v2.pet.exception.PetNotFoundExceptionV2;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
Expand All @@ -16,10 +16,11 @@ public interface PetRepository extends JpaRepository<Pet, Long> {
List<Pet> findByMember(@Param("member") Member member);

@Query("SELECT p FROM Pet p WHERE p.id = :id AND p.deletedAt IS NULL AND p.member = :member")
Optional<Pet> findByIdAndDeletedAtIsNullAndMember(@Param("id") Long id, @Param("member") Member member);
Optional<Pet> findByIdAndMemberAndDeletedAtIsNull(@Param("id") Long id, @Param("member") Member member);

default Pet getByIdAndDeletedAtIsNullAndMember(Long id, Member member) {
return findByIdAndDeletedAtIsNullAndMember(id, member).orElseThrow(
PetAndMemberNotMatchedException::new);
default Pet getByIdAndMemberAndDeletedAtIsNull(Long id, Member member) {
return findByIdAndMemberAndDeletedAtIsNull(id, member).orElseThrow(
PetNotFoundExceptionV2::new
);
}
}
35 changes: 26 additions & 9 deletions src/main/java/com/kau/capstone/entity/point/History.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.kau.capstone.entity.point;

import com.kau.capstone.entity.member.Member;
import com.kau.capstone.v2.point.dto.request.DepositPointReqV2;
import com.kau.capstone.v2.point.dto.request.PayPointReqV2;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
Expand All @@ -9,7 +11,6 @@
import jakarta.persistence.ManyToOne;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
Expand All @@ -18,8 +19,6 @@

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class History {

Expand All @@ -33,11 +32,6 @@ public class History {
@JoinColumn(name = "point_id")
private Point point;

@ManyToOne
@Comment("사용자 연결")
@JoinColumn(name = "member_id")
private Member member;

@Comment("적립/결제 후의 총 포인트")
private Long totalPoint;

Expand All @@ -48,5 +42,28 @@ public class History {
private String name;

@Comment("적립/결제 일자")
private LocalDateTime date;
private LocalDateTime date = LocalDateTime.now();

private History(Point point, Long totalPoint, Long changePoint, String name) {
this.point = point;
this.totalPoint = totalPoint;
this.changePoint = changePoint;
this.name = name;
}

public static History of(Point point, Long changePoint, String name) {
return new History(point, point.getAmount(), changePoint, name);
}
public static History of(Point point, PayPointReqV2 req, PointType type) {
return new History(point, point.getAmount(), -req.point(), type.description);
}

public static History of(Point point, DepositPointReqV2 req, PointType type) {
return new History(point, point.getAmount(), req.point(), type.description);
}

@Deprecated
public static History of(Member member, Point point, Long changePoint, String name){
return new History(point, point.getAmount(), changePoint, name);
}
}
18 changes: 10 additions & 8 deletions src/main/java/com/kau/capstone/entity/point/Point.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,31 +15,33 @@

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Point {

@Id
@Comment("포인트 식별자")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private long id;

@OneToOne(mappedBy = "point")
private Member member;

@Comment("포인트 값")
private Long amount;
private long amount;

public void connectMember(Member member) {
private Point(Member member) {
this.member = member;
this.amount = 0L;
}

public static Point of(Member member) {
return new Point(member);
}

public void payment(Long payPoint) {
public void payment(long payPoint) {
this.amount -= payPoint;
}

public void deposit(Long depositPoint) {
public void deposit(long depositPoint) {
this.amount += depositPoint;
}
}
Loading
Loading