Skip to content

Commit b0ce704

Browse files
authored
Merge pull request #96 from CommitField/feat/#93
feat: ๋žญํ‚น ๊ธฐ๋Šฅ ์ˆ˜์ •
2 parents 8e0c4ab + c0dabe1 commit b0ce704

File tree

21 files changed

+271
-48
lines changed

21 files changed

+271
-48
lines changed

โ€Žsrc/main/java/cmf/commitField/CommitFieldApplication.javaโ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
// ํ…Œ์ŠคํŠธ์‹œ์—๋งŒ ์ฃผ์„ ํ’€๊ธฐ
1212
@EnableScheduling
1313
public class CommitFieldApplication {
14-
1514
public static void main(String[] args) {
1615
SpringApplication.run(CommitFieldApplication.class, args);
1716
}

src/main/java/cmf/commitField/domain/commit/sinceCommit/service/CommitCacheService.java renamed to src/main/java/cmf/commitField/domain/commit/scheduler/CommitCacheService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cmf.commitField.domain.commit.sinceCommit.service;
1+
package cmf.commitField.domain.commit.scheduler;
22

33
import lombok.RequiredArgsConstructor;
44
import lombok.extern.slf4j.Slf4j;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package cmf.commitField.domain.commit.scheduler;
2+
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
import org.springframework.web.bind.annotation.RestController;
6+
7+
@RestController
8+
@RequestMapping("/api/commit")
9+
public class CommitController {
10+
@GetMapping("/get")
11+
public void getUserCommits(){
12+
// lastCommitted์—์„œ๋ถ€ํ„ฐ ์ƒˆ๋กœ ๋“ค์–ด์˜จ ์ปค๋ฐ‹ ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค
13+
// commitCount์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๋งŒํผ์˜ ์ปค๋ฐ‹ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•จ
14+
// get์ด ์‹คํ–‰๋˜๋ฉด redis์˜ Active์œ ์ €์— ์ƒํƒœ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค
15+
//
16+
}
17+
18+
public void updateUserCommitStatus(){
19+
// ์ปค๋ฐ‹ ์ˆ˜์— ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ
20+
// ์—ฐ์† ์ปค๋ฐ‹ ๋ฐ˜์˜, ํŽซ ๋ฐ˜์˜, ๋žญํฌ ๋ฐ˜์˜
21+
}
22+
23+
}

โ€Žsrc/main/java/cmf/commitField/domain/commit/scheduler/CommitScheduler.javaโ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package cmf.commitField.domain.commit.scheduler;
22

3-
import cmf.commitField.domain.commit.sinceCommit.service.CommitCacheService;
43
import cmf.commitField.domain.commit.totalCommit.service.TotalCommitService;
54
import cmf.commitField.domain.user.entity.User;
65
import cmf.commitField.domain.user.repository.UserRepository;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package cmf.commitField.domain.commit.scheduler;
2+
3+
import cmf.commitField.domain.user.dto.UserInfoDto;
4+
import cmf.commitField.domain.user.entity.CustomOAuth2User;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
8+
import org.springframework.web.bind.annotation.GetMapping;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RestController;
11+
12+
@RestController
13+
@RequiredArgsConstructor
14+
@RequestMapping("/api/commits")
15+
public class CommitUpdateController {
16+
private final CommitUpdateService commitUpdateService;
17+
@GetMapping("/tier")
18+
public ResponseEntity<UserInfoDto> getUserTier(@AuthenticationPrincipal CustomOAuth2User oAuth2User){
19+
String username = oAuth2User.getName(); // CustomOAuth2User์˜ getName()์€ user.getUsername()์„ ๋ฐ˜ํ™˜
20+
21+
System.out.println("/tier, Username: "+username);
22+
UserInfoDto userInfoDto = commitUpdateService.updateUserTier(username);
23+
return ResponseEntity.ok(userInfoDto);
24+
}
25+
26+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package cmf.commitField.domain.commit.scheduler;
2+
3+
import cmf.commitField.domain.commit.totalCommit.service.TotalCommitService;
4+
import cmf.commitField.domain.pet.service.PetService;
5+
import cmf.commitField.domain.user.dto.UserInfoDto;
6+
import cmf.commitField.domain.user.entity.User;
7+
import cmf.commitField.domain.user.repository.UserRepository;
8+
import lombok.RequiredArgsConstructor;
9+
import org.springframework.stereotype.Service;
10+
11+
import java.time.LocalDateTime;
12+
13+
@Service
14+
@RequiredArgsConstructor
15+
public class CommitUpdateService {
16+
private final TotalCommitService totalCommitService;
17+
private final UserRepository userRepository;
18+
private final PetService petService;
19+
20+
public UserInfoDto updateUserTier(String username){
21+
User user = userRepository.findByUsername(username).get();
22+
long seasonCommitCount;
23+
// seasonCommitCount = totalCommitService.getSeasonCommits(user.getUsername(), LocalDateTime.of(2024,12,01,0,0), LocalDateTime.of(2025,2,28,23,59)).getTotalCommitContributions();
24+
seasonCommitCount = totalCommitService.getSeasonCommits(user.getUsername(), LocalDateTime.of(2025,03,01,0,0), LocalDateTime.of(2025,05,31,23,59)).getTotalCommitContributions();
25+
user.setTier(User.Tier.getLevelByExp((int)seasonCommitCount));
26+
userRepository.save(user);
27+
28+
return UserInfoDto.builder()
29+
.userId(user.getId())
30+
.username(user.getUsername())
31+
.email(user.getEmail())
32+
.avatarUrl(user.getAvatarUrl())
33+
.createdAt(user.getCreatedAt())
34+
.lastCommitted(user.getLastCommitted())
35+
.commitCount(user.getCommitCount())
36+
.tier(user.getTier().name())
37+
.build();
38+
}
39+
40+
public User updateUserPet(String username){
41+
User user = userRepository.findByUsername(username).get();
42+
43+
//์ถ”๊ฐ€๋œ ํŽซ ๊ฒฝํ—˜์น˜
44+
long totalcommits;
45+
totalcommits = totalCommitService.getUpdateCommits(user.getUsername(), user.getCreatedAt(), LocalDateTime.now()).getTotalCommitContributions();
46+
47+
petService.getExpPet(user, (int)totalcommits);
48+
return user;
49+
}
50+
}

โ€Žsrc/main/java/cmf/commitField/domain/commit/sinceCommit/controller/SinceCommitController.javaโ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ public ResponseEntity<CommitAnalysisResponseDto> getSpringSeasonCommits(
5151
@RequestParam String repo
5252
) {
5353
int currentYear = LocalDateTime.now().getYear();
54-
LocalDateTime since = LocalDateTime.of(2024, 3, 1, 0, 0);
55-
LocalDateTime until = LocalDateTime.of(2024, 5, 31, 23, 59, 59);
54+
LocalDateTime since = LocalDateTime.of(2025, 3, 1, 0, 0);
55+
LocalDateTime until = LocalDateTime.of(2025, 5, 31, 23, 59, 59);
5656

5757
CommitAnalysisResponseDto analysis = sinceCommitService.getCommitAnalysis(owner, repo, since, until);
5858
return ResponseEntity.ok(analysis);
@@ -93,7 +93,7 @@ public ResponseEntity<CommitAnalysisResponseDto> getWinterSeasonCommits(
9393
@RequestParam String repo
9494
) {
9595
int currentYear = LocalDateTime.now().getYear();
96-
LocalDateTime since = LocalDateTime.of(2023, 12, 1, 0, 0);
96+
LocalDateTime since = LocalDateTime.of(2024, 12, 1, 0, 0);
9797
LocalDateTime until = LocalDateTime.of(2024 + 1, 2, 1, 23, 59, 59)
9898
.with(TemporalAdjusters.lastDayOfMonth());
9999

โ€Žsrc/main/java/cmf/commitField/domain/commit/totalCommit/controller/TotalCommitController.javaโ€Ž

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public class TotalCommitController {
2525
@GetMapping("/api/commits")
2626
public TotalCommitResponseDto getTotalCommits(@AuthenticationPrincipal CustomOAuth2User oAuth2User) {
2727
String username = oAuth2User.getName(); // CustomOAuth2User์˜ getName()์€ user.getUsername()์„ ๋ฐ˜ํ™˜
28-
2928
return totalCommitService.getTotalCommitCount(username);
3029
}
3130

@@ -42,9 +41,9 @@ public TotalCommitResponseDto getTotalCommits(@AuthenticationPrincipal CustomOAu
4241
@GetMapping("/api/commits/spring")
4342
public TotalCommitResponseDto getSpringSeasonCommits(@AuthenticationPrincipal CustomOAuth2User oAuth2User) {
4443
String username = oAuth2User.getName();
45-
int currentYear = LocalDateTime.now().getYear(); // ํ˜„์žฌ๋Š” ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ 2024 ๋Œ€์ž…
46-
LocalDateTime since = LocalDateTime.of(2024, 3, 1, 0, 0);
47-
LocalDateTime until = LocalDateTime.of(2024, 5, 31, 23, 59, 59);
44+
int currentYear = LocalDateTime.now().getYear(); // ์˜ฌํ•ด ๋Œ€์ž…
45+
LocalDateTime since = LocalDateTime.of(2025, 3, 1, 0, 0);
46+
LocalDateTime until = LocalDateTime.of(2025, 5, 31, 23, 59, 59);
4847
return totalCommitService.getSeasonCommits(username, since, until);
4948
}
5049

@@ -72,9 +71,9 @@ public TotalCommitResponseDto getFallSeasonCommits(@AuthenticationPrincipal Cust
7271
@GetMapping("/api/commits/winter")
7372
public TotalCommitResponseDto getWinterSeasonCommits(@AuthenticationPrincipal CustomOAuth2User oAuth2User) {
7473
String username = oAuth2User.getName();
75-
int currentYear = LocalDateTime.now().getYear(); // ํ˜„์žฌ๋Š” ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ 2024 ๋Œ€์ž…
76-
LocalDateTime since = LocalDateTime.of(2024 - 1, 12, 1, 0, 0);
77-
LocalDateTime until = LocalDateTime.of(2024, 2, 1, 23, 59, 59)
74+
int currentYear = LocalDateTime.now().getYear(); // 2024.12 ~ 2025.2 ๋Œ€์ž…
75+
LocalDateTime since = LocalDateTime.of(2025 - 1, 12, 1, 0, 0);
76+
LocalDateTime until = LocalDateTime.of(2025, 2, 1, 23, 59, 59)
7877
.with(TemporalAdjusters.lastDayOfMonth());
7978
return totalCommitService.getSeasonCommits(username, since, until);
8079
}

โ€Žsrc/main/java/cmf/commitField/domain/pet/controller/PetController.javaโ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package cmf.commitField.domain.pet.controller;
22

3+
import cmf.commitField.domain.pet.dto.UserPetDto;
34
import cmf.commitField.domain.pet.entity.Pet;
45
import cmf.commitField.domain.pet.service.PetService;
6+
import cmf.commitField.domain.user.dto.UserInfoDto;
7+
import cmf.commitField.domain.user.entity.CustomOAuth2User;
58
import cmf.commitField.domain.user.entity.User;
69
import cmf.commitField.domain.user.service.CustomOAuth2UserService;
710
import lombok.RequiredArgsConstructor;
811
import org.springframework.http.MediaType;
12+
import org.springframework.http.ResponseEntity;
13+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
914
import org.springframework.web.bind.annotation.*;
1015
import org.springframework.web.multipart.MultipartFile;
1116

@@ -18,6 +23,20 @@ public class PetController {
1823
private final CustomOAuth2UserService userService;
1924
private final PetService petService;
2025

26+
// ํ˜„์žฌ ํŽซ ๊ฒฝํ—˜์น˜ ์ƒ์Šน ๋ฐ ์ƒ์Šน ์‹œ ๋ ˆ๋ฒจ์—… ์ฒ˜๋ฆฌ
27+
@GetMapping("/exp")
28+
public ResponseEntity<UserPetDto> getUserTier(@AuthenticationPrincipal CustomOAuth2User oAuth2User){
29+
String username = oAuth2User.getName(); // CustomOAuth2User์˜ getName()์€ user.getUsername()์„ ๋ฐ˜ํ™˜
30+
31+
System.out.println("/pet/exp, Username: "+username);
32+
UserPetDto userPetDto = petService.getExpPet(username);
33+
return ResponseEntity.ok(userPetDto);
34+
}
35+
36+
// *************************************
37+
// TODO : ์•„๋ž˜๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ, ์ถ”๊ฐ€ ์‹œ ๊ฐœ์„  ํ•„์š”
38+
// *************************************
39+
2140
// ์ƒˆ๋กœ์šด ํŽซ ์ถ”๊ฐ€
2241
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
2342
public Pet createPet(

โ€Žsrc/main/java/cmf/commitField/domain/pet/dto/UserPetDto.javaโ€Ž

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package cmf.commitField.domain.pet.dto;
22

33
import cmf.commitField.domain.pet.entity.UserPet;
4+
import lombok.Builder;
45
import lombok.Getter;
56

7+
@Builder
68
@Getter
79
public class UserPetDto {
8-
private Long userId;
910
private String username;
1011
private Long petId;
1112
private String petName;
12-
private boolean isHatched;
13+
private String grow;
14+
private long exp;
1315

1416
public UserPetDto(UserPet userPet) {
15-
this.userId = userPet.getUser().getId();
1617
this.username = userPet.getUser().getUsername();
1718
this.petId = userPet.getPet().getId();
1819
this.petName = userPet.getPet().getName();

0 commit comments

Comments
ย (0)