-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #287 from 42organization/dev
최종 PR 머지하겠습니다!
- Loading branch information
Showing
212 changed files
with
10,898 additions
and
5,732 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
21 changes: 21 additions & 0 deletions
21
src/main/java/com/gg/server/admin/coin/controller/CoinAdminController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.gg.server.admin.coin.controller; | ||
|
||
import com.gg.server.admin.coin.dto.CoinUpdateRequestDto; | ||
import com.gg.server.admin.coin.service.CoinAdminService; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.http.HttpStatus; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.*; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("pingpong/admin/coin") | ||
public class CoinAdminController { | ||
private final CoinAdminService coinAdminService; | ||
|
||
@PutMapping() | ||
public ResponseEntity updateUserCoin(@RequestBody CoinUpdateRequestDto coinUpdateRequestDto) { | ||
coinAdminService.updateUserCoin(coinUpdateRequestDto); | ||
return new ResponseEntity(HttpStatus.NO_CONTENT); | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
src/main/java/com/gg/server/admin/coin/controller/CoinPolicyAdminController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package com.gg.server.admin.coin.controller; | ||
|
||
import com.gg.server.admin.coin.dto.CoinPolicyAdminAddDto; | ||
import com.gg.server.admin.coin.dto.CoinPolicyAdminListResponseDto; | ||
import com.gg.server.admin.coin.service.CoinPolicyAdminService; | ||
import com.gg.server.domain.user.dto.UserDto; | ||
import com.gg.server.global.dto.PageRequestDto; | ||
import com.gg.server.global.utils.argumentresolver.Login; | ||
import io.swagger.v3.oas.annotations.Parameter; | ||
import lombok.AllArgsConstructor; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.data.domain.PageRequest; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.data.domain.Sort; | ||
import org.springframework.http.HttpStatus; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.validation.annotation.Validated; | ||
import org.springframework.web.bind.annotation.*; | ||
|
||
import javax.validation.Valid; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("pingpong/admin") | ||
@Validated | ||
public class CoinPolicyAdminController { | ||
private final CoinPolicyAdminService coinPolicyAdminService; | ||
|
||
@GetMapping("/coinpolicy") | ||
public ResponseEntity<CoinPolicyAdminListResponseDto> getCoinPolicyList(@ModelAttribute @Valid PageRequestDto coReq){ | ||
Pageable pageable = PageRequest.of(coReq.getPage() - 1, coReq.getSize(), Sort.by("createdAt").descending()); | ||
|
||
return ResponseEntity.ok() | ||
.body(coinPolicyAdminService.findAllCoinPolicy(pageable)); | ||
} | ||
|
||
@PostMapping("/coinpolicy") | ||
public ResponseEntity addCoinPolicy(@Parameter(hidden = true) @Login UserDto userDto, @Valid @RequestBody CoinPolicyAdminAddDto addDto){ | ||
|
||
coinPolicyAdminService.addCoinPolicy(userDto, addDto); | ||
return new ResponseEntity(HttpStatus.CREATED); | ||
} | ||
|
||
} |
10 changes: 10 additions & 0 deletions
10
src/main/java/com/gg/server/admin/coin/data/CoinPolicyAdminRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.gg.server.admin.coin.data; | ||
|
||
import com.gg.server.domain.coin.data.CoinPolicy; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
import java.util.Optional; | ||
|
||
public interface CoinPolicyAdminRepository extends JpaRepository<CoinPolicy, Long> { | ||
Optional<CoinPolicy> findFirstByOrderByIdDesc(); | ||
} |
29 changes: 29 additions & 0 deletions
29
src/main/java/com/gg/server/admin/coin/dto/CoinPolicyAdminAddDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package com.gg.server.admin.coin.dto; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
import javax.validation.constraints.NotNull; | ||
import javax.validation.constraints.PositiveOrZero; | ||
|
||
@Getter | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public class CoinPolicyAdminAddDto { | ||
@NotNull(message = "plz. not null attendance") | ||
@PositiveOrZero(message = "plz. attendance PositiveOrZero") | ||
private int attendance; | ||
|
||
@NotNull(message = "plz. not null normal") | ||
@PositiveOrZero(message = "plz. normal PositiveOrZero") | ||
private int normal; | ||
|
||
@NotNull(message = "plz. not null rankWin") | ||
@PositiveOrZero(message = "plz. rankWin PositiveOrZero") | ||
private int rankWin; | ||
|
||
@NotNull(message = "plz. not null rankLose") | ||
@PositiveOrZero(message = "plz. rankLose PositiveOrZero") | ||
private int rankLose; | ||
} |
16 changes: 16 additions & 0 deletions
16
src/main/java/com/gg/server/admin/coin/dto/CoinPolicyAdminListResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.gg.server.admin.coin.dto; | ||
|
||
import com.gg.server.admin.announcement.dto.AnnouncementAdminResponseDto; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
import java.util.List; | ||
|
||
@AllArgsConstructor | ||
@NoArgsConstructor | ||
@Getter | ||
public class CoinPolicyAdminListResponseDto { | ||
private List<CoinPolicyAdminResponseDto> coinPolicyList; | ||
private int totalPage; | ||
} |
31 changes: 31 additions & 0 deletions
31
src/main/java/com/gg/server/admin/coin/dto/CoinPolicyAdminResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package com.gg.server.admin.coin.dto; | ||
|
||
import com.gg.server.domain.announcement.data.Announcement; | ||
import com.gg.server.domain.coin.data.CoinPolicy; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Getter | ||
@NoArgsConstructor | ||
public class CoinPolicyAdminResponseDto { | ||
private Long coinPolicyId; | ||
private String createUserId; | ||
private int attendance; | ||
private int normal; | ||
private int rankWin; | ||
private int rankLose; | ||
private LocalDateTime createdAt; | ||
|
||
public CoinPolicyAdminResponseDto(CoinPolicy coinPolicyAdmin) | ||
{ | ||
this.coinPolicyId = coinPolicyAdmin.getId(); | ||
this.createUserId = coinPolicyAdmin.getUser().getIntraId(); | ||
this.attendance = coinPolicyAdmin.getAttendance(); | ||
this.normal = coinPolicyAdmin.getNormal(); | ||
this.rankWin = coinPolicyAdmin.getRankWin(); | ||
this.rankLose = coinPolicyAdmin.getRankLose(); | ||
this.createdAt = coinPolicyAdmin.getCreatedAt(); | ||
} | ||
} |
19 changes: 19 additions & 0 deletions
19
src/main/java/com/gg/server/admin/coin/dto/CoinUpdateRequestDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package com.gg.server.admin.coin.dto; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
|
||
import javax.validation.constraints.NotNull; | ||
|
||
@Getter | ||
@AllArgsConstructor | ||
@NoArgsConstructor | ||
public class CoinUpdateRequestDto { | ||
@NotNull(message = "intraId는 null이 될 수 없습니다.") | ||
private String intraId; | ||
@NotNull(message = "change는 null이 될 수 없습니다.") | ||
private int change; | ||
@NotNull(message = "content는 null이 될 수 없습니다.") | ||
private String content; | ||
} |
25 changes: 25 additions & 0 deletions
25
src/main/java/com/gg/server/admin/coin/service/CoinAdminService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.gg.server.admin.coin.service; | ||
|
||
import com.gg.server.admin.coin.dto.CoinUpdateRequestDto; | ||
import com.gg.server.domain.coin.data.CoinHistory; | ||
import com.gg.server.domain.coin.service.CoinHistoryService; | ||
import com.gg.server.domain.user.data.User; | ||
import com.gg.server.domain.user.data.UserRepository; | ||
import com.gg.server.domain.user.exception.UserNotFoundException; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
public class CoinAdminService { | ||
private final UserRepository userRepository; | ||
private final CoinHistoryService coinHistoryService; | ||
|
||
@Transactional | ||
public void updateUserCoin(CoinUpdateRequestDto coinUpdateRequestDto) { | ||
User user = userRepository.findByIntraId(coinUpdateRequestDto.getIntraId()).orElseThrow(UserNotFoundException::new); | ||
user.addGgCoin(coinUpdateRequestDto.getChange()); | ||
coinHistoryService.addCoinHistory(new CoinHistory(user, coinUpdateRequestDto.getContent(), coinUpdateRequestDto.getChange())); | ||
} | ||
} |
43 changes: 43 additions & 0 deletions
43
src/main/java/com/gg/server/admin/coin/service/CoinPolicyAdminService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
package com.gg.server.admin.coin.service; | ||
|
||
import com.gg.server.admin.announcement.dto.AnnouncementAdminListResponseDto; | ||
import com.gg.server.admin.announcement.dto.AnnouncementAdminResponseDto; | ||
import com.gg.server.admin.coin.data.CoinPolicyAdminRepository; | ||
import com.gg.server.admin.coin.dto.CoinPolicyAdminAddDto; | ||
import com.gg.server.admin.coin.dto.CoinPolicyAdminListResponseDto; | ||
import com.gg.server.admin.coin.dto.CoinPolicyAdminResponseDto; | ||
import com.gg.server.admin.user.data.UserAdminRepository; | ||
import com.gg.server.domain.announcement.data.Announcement; | ||
import com.gg.server.domain.coin.data.CoinPolicy; | ||
import com.gg.server.domain.user.data.User; | ||
import com.gg.server.domain.user.dto.UserDto; | ||
import com.gg.server.domain.user.exception.UserNotFoundException; | ||
import lombok.AllArgsConstructor; | ||
import org.springframework.data.domain.Page; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Service | ||
@AllArgsConstructor | ||
public class CoinPolicyAdminService { | ||
private final CoinPolicyAdminRepository coinPolicyAdminRepository; | ||
private final UserAdminRepository userAdminRepository; | ||
|
||
@Transactional(readOnly = true) | ||
public CoinPolicyAdminListResponseDto findAllCoinPolicy(Pageable pageable) { | ||
Page<CoinPolicy> allCoinPolicy = coinPolicyAdminRepository.findAll(pageable); | ||
Page<CoinPolicyAdminResponseDto> responseDtos = allCoinPolicy.map(CoinPolicyAdminResponseDto::new); | ||
|
||
return new CoinPolicyAdminListResponseDto(responseDtos.getContent(), | ||
responseDtos.getTotalPages()); | ||
} | ||
|
||
@Transactional | ||
public void addCoinPolicy(UserDto userDto, CoinPolicyAdminAddDto addDto){ | ||
User user = userAdminRepository.findByIntraId(userDto.getIntraId()).orElseThrow(UserNotFoundException::new); | ||
|
||
CoinPolicy coinPolicy = CoinPolicy.from(user, addDto); | ||
coinPolicyAdminRepository.save(coinPolicy); | ||
} | ||
} |
Oops, something went wrong.