Skip to content

Commit

Permalink
Api-Release-v0.0.2-17
Browse files Browse the repository at this point in the history
Api-Release-v0.0.2-17
  • Loading branch information
imenuuu authored Dec 11, 2023
2 parents cda6aae + a09ecbd commit 04159d1
Show file tree
Hide file tree
Showing 22 changed files with 186 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,11 @@ public CommonResponse<List<BannerRes.BannerList>> uploadBanner(
System.out.println(bannerUploadDto.getContentsUrl());
return CommonResponse.onSuccess(adminBannerService.uploadBanner(BannerType.EVENT, bannerImage, bannerUploadDto));
}

@DeleteMapping("/{bannerId}")
@Operation(summary = "ADMIN-08-02 배너 삭제")
public CommonResponse<String> deleteBanner(@PathVariable Long bannerId){
adminBannerService.deleteBanner(bannerId);
return CommonResponse.onSuccess("삭제 성공");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
@Service
@RequiredArgsConstructor
public class AdminBannerService {
private final BannerRepository bannerRepository;
private final BannerConverter bannerConverter;
private final S3UploadService s3UploadService;
private final BannerAdaptor bannerAdaptor;
Expand All @@ -31,7 +30,7 @@ public List<BannerRes.BannerList> uploadBanner(BannerType bannerType,
MultipartFile bannerImage,
BannerReq.BannerUpload bannerUploadDto) {
String bannerImg = s3UploadService.uploadBannerImage(bannerImage);
bannerRepository.save(bannerConverter.convertToBannerUpload(bannerType, bannerImg, bannerUploadDto));
bannerAdaptor.save(bannerConverter.convertToBannerUpload(bannerType, bannerImg, bannerUploadDto));
return cachingBannerList();
}

Expand All @@ -41,4 +40,11 @@ public List<BannerRes.BannerList> cachingBannerList() {

return bannerConverter.convertToBannerList(banners);
}

@Transactional
public void deleteBanner(Long bannerId) {
Banner banner = bannerAdaptor.findById(bannerId);
s3UploadService.deleteFile(banner.getBannerImg());
bannerAdaptor.deleteById(bannerId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,12 @@ public CommonResponse<String> uploadEventList(@RequestBody EventUploadReq eventU
return CommonResponse.onSuccess("업로드 성공");
}

@DeleteMapping("/{eventId}")
@Operation(summary = "ADMIN-09-02 이벤트 삭제")
public CommonResponse<String> deleteEvent(@PathVariable Long eventId){
adminEventService.deleteEvent(eventId);
return CommonResponse.onSuccess("삭제 성공");
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@
import com.example.matchapi.common.model.ContentsList;
import com.example.matchapi.common.util.MessageHelper;
import com.example.matchapi.event.converter.EventConverter;
import com.example.matchapi.event.service.EventService;
import com.example.matchcommon.annotation.RedissonLock;
import com.example.matchcommon.constants.enums.Topic;
import com.example.matchdomain.event.adaptor.EventAdaptor;
import com.example.matchdomain.event.adaptor.EventContentAdaptor;
import com.example.matchdomain.event.entity.Event;
import com.example.matchdomain.event.entity.EventContent;
import com.example.matchdomain.event.repository.EventContentRepository;
import com.example.matchdomain.event.repository.EventRepository;
import com.example.matchinfrastructure.config.s3.S3UploadService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -25,16 +25,17 @@
@Service
@RequiredArgsConstructor
public class AdminEventService {
private final EventRepository eventRepository;
private final EventContentRepository eventContentRepository;
private final EventConverter eventConverter;
private final EventService eventService;
private final MessageHelper messageHelper;
@RedissonLock(LockName = "이벤트 업로드", key = "#eventUploadReq")
private final EventAdaptor eventAdaptor;
private final EventContentAdaptor eventContentAdaptor;
private final S3UploadService s3UploadService;

@Transactional
@CacheEvict(value = "eventCache", allEntries = true, cacheManager = "ehcacheManager")
public void uploadEventList(EventUploadReq eventUploadReq) {

Event event = eventRepository.save(eventConverter.convertToEventUpload(eventUploadReq, eventUploadReq.getThumbnail()));
Event event = eventAdaptor.save(eventConverter.convertToEventUpload(eventUploadReq, eventUploadReq.getThumbnail()));

Long eventId = event.getId();

Expand All @@ -48,10 +49,22 @@ public void uploadEventList(EventUploadReq eventUploadReq) {
}
}

eventContentRepository.saveAll(eventContents);
eventContentAdaptor.saveAll(eventContents);

messageHelper.helpFcmMessage(EVENT_UPLOAD_BODY, Topic.EVENT_UPLOAD, event.getId());
}


@Transactional
@CacheEvict(value = "eventCache", allEntries = true, cacheManager = "ehcacheManager")
public void deleteEvent(Long eventId) {
Event event = eventAdaptor.findByEvent(eventId);
List<EventContent> eventContents = event.getEventContents();
for(EventContent eventContent : eventContents){
if(eventContent.getContentsType().equals(IMG)){
s3UploadService.deleteFile(eventContent.getContents());
}
}
eventAdaptor.deleteByEventId(eventId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,11 @@ public CommonResponse<List<KeywordRes.KeywordList>> postKeywordList(

return CommonResponse.onSuccess(adminKeywordService.postKeyword(keyword));
}

@DeleteMapping("/{keywordId}")
@Operation(summary = "07-03 ADMIN Keyword 삭제🔎")
public CommonResponse<String> deleteKeyword(@PathVariable Long keywordId){
adminKeywordService.deleteKeyword(keywordId);
return CommonResponse.onSuccess("삭제 성공");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,9 @@ public List<KeywordRes.KeywordList> cachingKeywordList(){
);
return keywordLists;
}

@CacheEvict(cacheNames = "keywordList", cacheManager = "ehcacheManager")
public void deleteKeyword(Long keywordId) {
searchKeywordRepository.deleteById(keywordId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;
Expand All @@ -32,4 +29,11 @@ public CommonResponse<String> uploadNoticeList(@Valid @RequestBody NoticeUploadR
adminNoticeService.uploadNoticeList(mapper.toEntityNoticeContents(noticeUploadReq.getContentsList()), mapper.toEntityNotice(noticeUploadReq));
return CommonResponse.onSuccess("업로드 성공");
}

@DeleteMapping("/{noticeId}")
@Operation(summary = "ADMIN-10-02 공지사항 삭제")
public CommonResponse<String> deleteNotice(@PathVariable Long noticeId){
adminNoticeService.deleteNotice(noticeId);
return CommonResponse.onSuccess("삭제 성공");
}
}
Original file line number Diff line number Diff line change
@@ -1,29 +1,44 @@
package com.example.matchapi.admin.notice.service;

import com.example.matchdomain.notice.adaptor.NoticeAdapter;
import com.example.matchdomain.notice.adaptor.NoticeContentAdaptor;
import com.example.matchdomain.notice.entity.Notice;
import com.example.matchdomain.notice.entity.NoticeContent;
import com.example.matchdomain.notice.repository.NoticeContentRepository;
import com.example.matchdomain.notice.repository.NoticeRepository;
import com.example.matchinfrastructure.config.s3.S3UploadService;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;

import java.util.List;

import static com.example.matchdomain.common.model.ContentsType.IMG;

@Service
@RequiredArgsConstructor
public class AdminNoticeService {
private final NoticeRepository noticeRepository;
private final NoticeContentRepository noticeContentRepository;
private final NoticeContentAdaptor noticeContentAdaptor;
private final NoticeAdapter noticeAdapter;
private final S3UploadService s3UploadService;

@CacheEvict(value = "noticeCache", allEntries = true, cacheManager = "ehcacheManager")
public void uploadNoticeList(List<NoticeContent> noticeContents, Notice notice) {
notice = noticeRepository.save(notice);
notice = noticeAdapter.save(notice);

for(NoticeContent noticeContent : noticeContents){
noticeContent.setNoticeId(notice.getId());
}

noticeContentRepository.saveAll(noticeContents);
noticeContentAdaptor.saveAll(noticeContents);
}

public void deleteNotice(Long noticeId) {
Notice notice = noticeAdapter.findNoticeDetail(noticeId);
List<NoticeContent> noticeContents = notice.getNoticeContents();
for(NoticeContent noticeContent : noticeContents){
if(noticeContent.getContentsType().equals(IMG))s3UploadService.deleteFile(noticeContent.getContents());
}
noticeAdapter.delete(notice);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public User findByUserId(Long userId) {
return userAdaptor.findByUserId(userId).orElseThrow(() -> new NotFoundException(NOT_EXIST_USER));
}

@RedissonLock(LockName = "유저 탈퇴", key = "#user.id")
@RedissonLock(LockName = "유저", key = "#user.id")
public void unActivateUser(User user) {
user.setStatus(Status.INACTIVE);
donationService.deleteRegularPayment(user);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ public CommonResponse<List<DonationRes.Tutorial>> getTutorialDonation(
@Operation(summary = "05-14 튜토리얼 기부 ", description = "튜토리얼 1원 기부 POST API 입니다.")
@PostMapping("/tutorial")
@ApiErrorCodeExample({UserAuthErrorCode.class, RequestErrorCode.class})
@RedissonLock(LockName = "유저 튜토리얼 기부", key = "#user.id")
@RedissonLock(LockName = "프로젝트", key = "#tutorial.projectId")
public CommonResponse<DonationRes.CompleteDonation> postTutorialDonation(
@AuthenticationPrincipal User user,
@RequestBody DonationReq.Tutorial tutorial){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import com.example.matchinfrastructure.pay.portone.service.PortOneService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
Expand Down Expand Up @@ -70,6 +71,8 @@ public class OrderService {
private final AligoService aligoService;
private final AligoConverter aligoConverter;
private final CacheService cacheService;
@Value("${spring.config.activate.on-profile}")
private String profile;

@Transactional
public List<OrderRes.UserBillCard> getUserBillCard(Long userId) {
Expand All @@ -78,15 +81,15 @@ public List<OrderRes.UserBillCard> getUserBillCard(Long userId) {
return orderConverter.convertToUserCardLists(userCards);
}

@RedissonLock(LockName = "카드-삭제", key = "#cardId")
@RedissonLock(LockName = "카드", key = "#cardId")
public void deleteBillCard(Long cardId) {
UserCard userCard = userCardAdaptor.findCardByCardId(cardId);

List<RegularPayment> regularPayments = regularPaymentAdaptor.findByCardId(cardId);

cancelRegularPayment(regularPayments);

String accessToken = portOneAuthService.getToken();
String accessToken = portOneAuthService.getToken(profile);

portOneFeignClient.deleteBillKey(accessToken, userCard.getBid());

Expand All @@ -102,7 +105,7 @@ private void validateCard(UserCard card, User user) {
}

@PaymentIntercept(key = "#orderCommand.orderId")
@RedissonLock(LockName = "빌키-단기-기부", key = "#orderCommand.userCard.id")
@RedissonLock(LockName = "프로젝트", key = "#orderCommand.project.id")
public OrderRes.CompleteDonation paymentForOnetime(OrderCommand.OneTimeDonation orderCommand) {
UserCard card = orderCommand.getUserCard();
Project project = orderCommand.getProject();
Expand Down Expand Up @@ -130,7 +133,7 @@ public OrderRes.CompleteDonation paymentForOnetime(OrderCommand.OneTimeDonation
}

@PaymentIntercept(key = "#orderCommand.orderId")
@RedissonLock(LockName = "정기-기부-신청", key = "#orderCommand.userCard.id")
@RedissonLock(LockName = "프로젝트", key = "#orderCommand.project.id")
public OrderRes.CompleteDonation paymentForRegular(OrderCommand.RegularDonation orderCommand) {
UserCard card = orderCommand.getUserCard();
Project project = orderCommand.getProject();
Expand Down Expand Up @@ -165,7 +168,7 @@ public String saveRequest(User user, Long projectId) {

PortOnePrepareReq portOnePrepareReq = portOneConverter.convertToRequestPrepare(orderId, 1000);

portOneFeignClient.preparePayments(portOneAuthService.getToken(), portOnePrepareReq);
portOneFeignClient.preparePayments(portOneAuthService.getToken(profile), portOnePrepareReq);

return orderId;
}
Expand Down Expand Up @@ -200,7 +203,7 @@ public void revokePay(User user, Long cardId) {

@RedissonLock(LockName = "유저-카드-등록", key = "#user.id")
public PortOneBillResponse postCard(User user, OrderReq.RegistrationCard registrationCard) {
String accessToken = portOneAuthService.getToken();
String accessToken = portOneAuthService.getToken(profile);
String cardNo = orderHelper.formatString(registrationCard.getCardNo(), 4);
String expiry = "20" + registrationCard.getExpYear() + "-" + registrationCard.getExpMonth();
PortOneResponse<PortOneBillResponse> portOneResponse = portOneFeignClient.getBillKey(
Expand Down Expand Up @@ -235,7 +238,7 @@ public String saveRequestPrepare(User user, Long projectId, int amount) {

PortOnePrepareReq portOnePrepareReq = portOneConverter.convertToRequestPrepare(orderId, amount);

portOneFeignClient.preparePayments(portOneAuthService.getToken(), portOnePrepareReq);
portOneFeignClient.preparePayments(portOneAuthService.getToken(profile), portOnePrepareReq);

return orderId;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.example.matchapi.portone.service;

import com.example.matchapi.common.security.JwtService;
import com.example.matchapi.donation.service.DonationHistoryService;
import com.example.matchapi.order.converter.OrderConverter;
import com.example.matchapi.order.dto.OrderRes;
Expand Down Expand Up @@ -36,6 +35,7 @@
import com.siot.IamportRestClient.response.Payment;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
Expand All @@ -62,6 +62,8 @@ public class PaymentService {
private final UserAdaptor userAdaptor;
private final AligoService aligoService;
private final AligoConverter aligoConverter;
@Value("${spring.config.activate.on-profile}")
private String profile;

private IamportClient iamportClient;

Expand Down Expand Up @@ -125,7 +127,7 @@ public DonationUser saveDonationUser(User user, Project project, Payment payment
}

public PortOneResponse<PortOneBillPayResponse> payBillKey(UserCard card, Long amount, String projectName, String orderId) {
String accessToken = portOneAuthService.getToken();
String accessToken = portOneAuthService.getToken(profile);

PortOneResponse<PortOneBillPayResponse> portOneResponse = portOneFeignClient.payWithBillKey(accessToken, portOneConverter.convertPayWithBillKey(card.getBid(), orderId, amount, projectName, card.getCustomerId()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.example.matchapi.project.converter.ProjectConverter;
import com.example.matchapi.project.dto.ProjectReq;
import com.example.matchapi.project.dto.ProjectRes;
import com.example.matchcommon.annotation.RedissonLock;
import com.example.matchcommon.constants.enums.FILTER;
import com.example.matchapi.user.helper.AuthHelper;
import com.example.matchcommon.exception.BadRequestException;
Expand Down Expand Up @@ -139,7 +140,7 @@ public PageResponse<List<ProjectRes.ProjectAdminList>> getProjectList(int page,
return new PageResponse<>(projectAdminLists.isLast(), projectAdminLists.getTotalElements(), projectLists);
}

@Transactional
@RedissonLock(LockName = "프로젝트", key = "#projectId")
public void patchProjectStatus(ProjectStatus projectStatus, Long projectId) {
Project project = projectAdaptor.findById(projectId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,12 @@ public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectio

Map<String, RedisCacheConfiguration> cacheConfiguration = new HashMap<>();
cacheConfiguration.put("flameCache", redisCacheConfiguration.entryTtl(Duration.ofMinutes(10L)));
cacheConfiguration.put("portOneTokenCache", redisCacheConfiguration.entryTtl(Duration.ofMinutes(20L)));

return RedisCacheManager.RedisCacheManagerBuilder
.fromConnectionFactory(redisConnectionFactory)
.cacheDefaults(redisCacheConfiguration)
.withInitialCacheConfigurations(cacheConfiguration)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,16 @@ public class BannerAdaptor {
public List<Banner> getBannerList() {
return bannerRepository.findAllByOrderByCreatedAtDesc();
}

public Banner save(Banner banner) {
return bannerRepository.save(banner);
}

public Banner findById(Long bannerId) {
return bannerRepository.findById(bannerId).orElseThrow();
}

public void deleteById(Long bannerId) {
bannerRepository.deleteById(bannerId);
}
}
Loading

0 comments on commit 04159d1

Please sign in to comment.