Skip to content

Commit 337dfb4

Browse files
authored
Merge pull request #130 from MarketPlace-O2O-Platform/feat/#128
[feat/#128] 베타버전 매장 정보 수정 추가
2 parents 9e0d0d6 + 22c0736 commit 337dfb4

4 files changed

Lines changed: 55 additions & 6 deletions

File tree

src/main/java/com/appcenter/marketplace/domain/beta/BetaMarket.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.appcenter.marketplace.domain.beta;
22

33

4+
import com.appcenter.marketplace.domain.beta.dto.req.BetaMarketReq;
45
import com.appcenter.marketplace.domain.category.Category;
56
import com.appcenter.marketplace.global.common.BaseEntity;
67
import jakarta.persistence.*;
@@ -49,6 +50,15 @@ public BetaMarket(String marketName, String couponName, String couponDetail, Loc
4950
this.isPromise = isPromise;
5051
}
5152

53+
public void update(BetaMarketReq betaMarketReq, Category category) {
54+
this.marketName = betaMarketReq.getMarketName();
55+
this.couponName = betaMarketReq.getCouponName();
56+
this.couponDetail = betaMarketReq.getCouponDetail();
57+
this.category = category;
58+
this.isPromise = betaMarketReq.getIsPromise();
59+
}
60+
61+
5262
public void updateImage(String image){
5363
this.image= image;
5464
}

src/main/java/com/appcenter/marketplace/domain/beta/controller/BetaMarketController.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@
1111
import lombok.RequiredArgsConstructor;
1212
import org.springframework.http.MediaType;
1313
import org.springframework.http.ResponseEntity;
14-
import org.springframework.web.bind.annotation.PostMapping;
15-
import org.springframework.web.bind.annotation.RequestMapping;
16-
import org.springframework.web.bind.annotation.RequestPart;
17-
import org.springframework.web.bind.annotation.RestController;
14+
import org.springframework.web.bind.annotation.*;
1815
import org.springframework.web.multipart.MultipartFile;
1916

2017
import static com.appcenter.marketplace.global.common.StatusCode.MARKET_CREATE;
18+
import static com.appcenter.marketplace.global.common.StatusCode.MARKET_UPDATE;
2119

2220
@Tag(name = "[베타 버전 매장]", description = "[베타] 매장 관리")
2321
@RestController
@@ -37,4 +35,17 @@ public ResponseEntity<CommonResponse<BetaMarketRes>> createMarket(
3735
.body(CommonResponse.from(MARKET_CREATE.getMessage()
3836
,betaMarketService.createBetaMarket(betaMarketReq,multipartFile)));
3937
}
38+
39+
@Operation(summary = "베타 매장 정보 수정", description = "1개의 베타 버전 매장의 정보를 수정합니다. 수정 시 모든 유저에게 쿠폰을 재발송합니다. <br>" +
40+
"이미지를 가져오려면 /image/{image.name}을 fetch하면 됩니다.")
41+
@PutMapping(path = "/{betaMarketId}",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
42+
public ResponseEntity<CommonResponse<BetaMarketRes>> updateMarket(
43+
@PathVariable Long betaMarketId,
44+
@RequestPart(value = "jsonData") @Valid BetaMarketReq betaMarketReq,
45+
@RequestPart(value = "image") MultipartFile multipartFile){
46+
return ResponseEntity
47+
.status(MARKET_UPDATE.getStatus())
48+
.body(CommonResponse.from(MARKET_UPDATE.getMessage()
49+
,betaMarketService.updateBetaMarket(betaMarketId, betaMarketReq,multipartFile)));
50+
}
4051
}

src/main/java/com/appcenter/marketplace/domain/beta/service/BetaMarketService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
public interface BetaMarketService {
88

99
BetaMarketRes createBetaMarket(BetaMarketReq betaMarketReq, MultipartFile multiPartFile);
10+
BetaMarketRes updateBetaMarket(Long betaMarketId, BetaMarketReq betaMarketReq, MultipartFile multiPartFile);
1011
}

src/main/java/com/appcenter/marketplace/domain/beta/service/impl/BetaMarketServiceImpl.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
2525
import java.util.List;
2626
import java.util.UUID;
2727

28-
import static com.appcenter.marketplace.global.common.StatusCode.CATEGORY_NOT_EXIST;
29-
import static com.appcenter.marketplace.global.common.StatusCode.FILE_SAVE_INVALID;
28+
import static com.appcenter.marketplace.global.common.StatusCode.*;
3029

3130
@Transactional(readOnly = true)
3231
@Service
@@ -65,6 +64,34 @@ public BetaMarketRes createBetaMarket(BetaMarketReq betaMarketReq, MultipartFile
6564
return BetaMarketRes.of(betaMarket);
6665
}
6766

67+
@Override
68+
@Transactional
69+
public BetaMarketRes updateBetaMarket(Long betaMarketId, BetaMarketReq betaMarketReq, MultipartFile multiPartFile) {
70+
71+
Category category = findCategoryByMajor(betaMarketReq.getMajor());
72+
73+
BetaMarket betaMarket=betaMarketRepository.findById(betaMarketId).orElseThrow(
74+
() -> new CustomException(MARKET_NOT_EXIST));
75+
76+
betaMarket.update(betaMarketReq, category);
77+
78+
String imageFileName = UUID.randomUUID() + "_" + multiPartFile.getOriginalFilename();
79+
80+
betaMarket.updateImage(imageFileName);
81+
82+
try{
83+
File uploadFile = new File(uploadFolder + imageFileName);
84+
multiPartFile.transferTo(uploadFile);
85+
}
86+
catch(IOException e){
87+
throw new CustomException(FILE_SAVE_INVALID);
88+
}
89+
90+
sendCouponsToAllMembers(betaMarket);
91+
92+
return BetaMarketRes.of(betaMarket);
93+
}
94+
6895
// 카테고리 조회
6996
private Category findCategoryByMajor(String major){
7097
// 카테고리 대분류명 존재 확인

0 commit comments

Comments
 (0)