Skip to content

Commit

Permalink
Merge pull request #54 from saessagMarket/#53-change-product-status
Browse files Browse the repository at this point in the history
#53 상품 상태 값 변경
  • Loading branch information
JinTaekLim authored Jan 31, 2025
2 parents a4f5b5b + c03ffac commit 56069cd
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.market.saessag.domain.product.controller;

import com.market.saessag.domain.product.dto.ProductChangeStatusRequest;
import com.market.saessag.domain.product.dto.ProductChangeStatusResponse;
import com.market.saessag.domain.product.dto.ProductRequest;
import com.market.saessag.domain.product.dto.ProductResponse;
import com.market.saessag.domain.product.entity.Product;
Expand All @@ -8,7 +10,6 @@
import com.market.saessag.global.exception.ErrorCode;
import com.market.saessag.global.response.ApiResponse;
import com.market.saessag.global.response.SuccessCode;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -86,4 +87,11 @@ public ApiResponse<?> bumpProduct(@RequestParam Long productId, @SessionAttribut
return ApiResponse.success(SuccessCode.OK, product.getId());
}


// note. 본인 소유의 상품의 상태 값만 변경 할 수 있도록 조치 필요
@PostMapping("/changeStatus")
public ApiResponse<ProductChangeStatusResponse> changeStatus(@RequestBody ProductChangeStatusRequest req) {
ProductChangeStatusResponse response = productService.changeStatus(req);
return ApiResponse.success(SuccessCode.OK, response);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.market.saessag.domain.product.dto;

import com.market.saessag.domain.product.entity.Product.ProductStatus;
import lombok.Getter;

@Getter
public class ProductChangeStatusRequest {

private Long productId;
private ProductStatus status;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.market.saessag.domain.product.dto;

import com.market.saessag.domain.product.entity.Product.ProductStatus;
import lombok.Builder;

@Builder
public class ProductChangeStatusResponse {

private Long productId;
private ProductStatus status;
}
Original file line number Diff line number Diff line change
Expand Up @@ -95,4 +95,7 @@ public void incrementLikes(){
public void decrementLikes(){
this.likes--;
}
public void updateStatus(ProductStatus status) {
this.status = status;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.market.saessag.domain.product.service;

import com.market.saessag.domain.product.dto.ProductChangeStatusRequest;
import com.market.saessag.domain.product.dto.ProductChangeStatusResponse;
import com.market.saessag.domain.product.dto.ProductRequest;
import com.market.saessag.domain.product.dto.ProductResponse;
import com.market.saessag.domain.product.entity.Product;
Expand Down Expand Up @@ -193,4 +195,17 @@ public void likeProduct(Long productId, Long userId) {
}
productRepository.save(product);
}

public ProductChangeStatusResponse changeStatus(ProductChangeStatusRequest req) {
Product product = productRepository.findById(req.getProductId())
.orElseThrow(()-> new IllegalArgumentException("상품이 없습니다."));

product.updateStatus(req.getStatus());
productRepository.save(product);

return ProductChangeStatusResponse.builder()
.productId(product.getId())
.status(product.getStatus())
.build();
}
}

0 comments on commit 56069cd

Please sign in to comment.