Skip to content

Commit

Permalink
fix: 14번 API, 15번 API 수정
Browse files Browse the repository at this point in the history
14번 api와 15번 api를 수정하였다.
  • Loading branch information
LeeSoMyoung committed Jul 6, 2022
1 parent 6ce8720 commit 55ac42f
Show file tree
Hide file tree
Showing 17 changed files with 44 additions and 63 deletions.
Binary file modified .gradle/6.7.1/executionHistory/executionHistory.bin
Binary file not shown.
Binary file modified .gradle/6.7.1/executionHistory/executionHistory.lock
Binary file not shown.
Binary file modified .gradle/6.7.1/fileHashes/fileHashes.bin
Binary file not shown.
Binary file modified .gradle/6.7.1/fileHashes/fileHashes.lock
Binary file not shown.
Binary file modified .gradle/6.7.1/fileHashes/resourceHashesCache.bin
Binary file not shown.
Binary file modified .gradle/6.7.1/javaCompile/classAnalysis.bin
Binary file not shown.
Binary file modified .gradle/6.7.1/javaCompile/jarAnalysis.bin
Binary file not shown.
Binary file modified .gradle/6.7.1/javaCompile/javaCompile.lock
Binary file not shown.
Binary file modified .gradle/6.7.1/javaCompile/taskHistory.bin
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
16 changes: 4 additions & 12 deletions src/main/java/com/example/demo/src/main/DAO/MainDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -222,18 +222,14 @@ public List<GetMyReviewsRes> retrieveMyReviews(long userId, boolean isPhot
" ELSE '다른 쇼핑몰 구매' END as 'buyAt',\n" +
" I.itemName as 'itemName',\n" +
" LEFT(R.description, 200) as 'description',\n" +
" reviewId\n" +
" R.reviewId AS 'reviewId',\n" +
" reviewPicUrl" +
"FROM (((Reviews R inner join Users U on R.userId = U.userId)\n" +
" inner join ItemOptions IO on IO.optionId = R.optionId)\n" +
" inner join Items I on I.itemId = IO.itemId)\n" +
" inner join Items I on I.itemId = IO.itemId)" +
"WHERE U.userId = ?\n")+
(isPhotoReview? "AND EXISTS (SELECT reviewPicId FROM ReviewPics RP WHERE RP.reviewId = R.reviewId) = 1\n": "")+
(isBestReviews?"ORDER BY score DESC;" : "ORDER BY createdAt DESC;");

String retrieveReviewImgsQuery = "SELECT reviewPicUrl\n" +
"FROM (ReviewPics RP inner join Reviews R on RP.reviewId = R.reviewId)\n" +
"WHERE R.userId = ? AND R.reviewId = ?;";

long retrieveMyReviewsQueryParams = userId;

return this.jdbcTemplate.query(
Expand All @@ -247,11 +243,7 @@ public List<GetMyReviewsRes> retrieveMyReviews(long userId, boolean isPhot
rs.getString("buyAt"),
rs.getString("itemName"),
rs.getString("description"),
this.jdbcTemplate.query(
retrieveReviewImgsQuery,
(rs2, rowNum2) -> rs2.getString("reviewPicUrl"),
retrieveMyReviewsQueryParams, rs.getLong("reviewId")
)
rs.getString("reviewPicUrl")
)
,
retrieveMyReviewsQueryParams
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/example/demo/src/main/MainProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,11 @@ public List<GetMyReviewsRes> retrieveMyReviewRes(long userId, boolean isPhot
throw new BaseException(BaseResponseStatus.USER_NOT_EXISTS);
}

try{
//try{
return mainDao.retrieveMyReviews(userId, isPhotoReview, isBestReviews);
}catch (Exception exception){
throw new BaseException(BaseResponseStatus.DATABASE_ERROR);
}
//}catch (Exception exception){
// throw new BaseException(BaseResponseStatus.DATABASE_ERROR);
//}
}

public GetReviewWriteRes retrieveReviewWrite(long optionId, long userId) throws BaseException{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ public class GetMyReviewsRes {
String buyAt;
String itemName;
String description;
List<String> imgList;
String img;
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,17 +108,15 @@ public BaseResponse<List<GetItemOptionRes>> retrieveItemOptions(@PathVariabl
public BaseResponse<PostKartItemRes> createKartItem(@PathVariable("userId") String id,
@RequestParam("id") String item,
@RequestBody PostKartItemReq postKartItemReq) throws BaseException{
if(postKartItemReq.getNumber() == null){
if(postKartItemReq.getNumber() == 0){
return new BaseResponse<>(BaseResponseStatus.EMPTY_OPTION_NUMBER);
}

if(postKartItemReq.getOptionId() == null){
if(postKartItemReq.getOptionId() == 0){
return new BaseResponse<>(BaseResponseStatus.EMPTY_OPTION_ID);
}

if(!ValidationRegex.canConvertLong(id) || !ValidationRegex.canConvertLong(item)
|| !ValidationRegex.canConvertLong(postKartItemReq.getOptionId())
|| !ValidationRegex.canConvertInt(postKartItemReq.getNumber())){
if(!ValidationRegex.canConvertLong(id) || !ValidationRegex.canConvertLong(item)){
// String 형을 int형이나 long형으로 변환할 수 있는지 여부
return new BaseResponse<>(BaseResponseStatus.INVALID_ID);
}
Expand Down
51 changes: 22 additions & 29 deletions src/main/java/com/example/demo/src/store/dao/StoreDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -146,20 +146,15 @@ private List<GetMyReviewsRes> retrieveItemReview(long itemId){
" ELSE '다른 쇼핑몰 구매' END as 'buyAt',\n" +
" I.itemName as 'itemName',\n" +
" LEFT(R.description, 200) as 'description',\n" +
" reviewId\n" +
" R.reviewId AS 'reviewId',\n" +
" reviewPicUrl\n" +
"FROM (((Reviews R inner join Users U on R.userId = U.userId)\n" +
" inner join ItemOptions IO on IO.optionId = R.optionId)\n" +
" inner join Items I on I.itemId = IO.itemId)\n" +
" left join ReviewPics RP on RP.reviewId = R.reviewId\n" +
"WHERE I.itemId = ?;";
long retrieveItemReviewQueryParams = itemId;

String retrieveReviewImgListQuery = "SELECT reviewPicUrl\n" +
"FROM ((ReviewPics RP inner join Reviews R on RP.reviewId = R.reviewId)\n" +
" inner join ItemOptions IO on IO.optionId = R.optionId)\n" +
" inner join Items I on I.itemId = IO.itemId\n" +
"WHERE I.itemId = ? AND R.userId = ?;";
long retrieveReviewImgListQueryParams = itemId;

return this.jdbcTemplate.query(
retrieveItemReviewQuery,
(rs, rowNum) -> new GetMyReviewsRes(
Expand All @@ -171,11 +166,7 @@ private List<GetMyReviewsRes> retrieveItemReview(long itemId){
rs.getString("buyAt"),
rs.getString("itemName"),
rs.getString("description"),
this.jdbcTemplate.query(
retrieveReviewImgListQuery,
(rs2, rowNum2) -> rs2.getString("reviewPicUrl"),
retrieveReviewImgListQueryParams, rs.getLong("userId")
)
rs.getString("reviewPicUrl")
)
,
retrieveItemReviewQueryParams
Expand All @@ -192,26 +183,26 @@ public GetStoreItemRes retrieveStoreItem(long itemId, long userId){
" round((SELECT AVG(score) FROM Reviews R WHERE R.optionId = O.optionId),1) is not null\n" +
" then round((SELECT AVG(score) FROM Reviews R WHERE R.optionId = O.optionId),1) else 0 end AS 'score',\n" +
" (SELECT COUNT(*) FROM Reviews R WHERE R.optionId = O.optionId) AS 'reviewCnt',\n" +
" concat(round(100*(price-saledPrice)/price, 0),'%') AS 'saleRate',\n" +
" concat(round(100*saledPrice/price, 0),'%') AS 'saleRate',\n" +
" CASE WHEN (SELECT COUNT(saledPrice) FROM ItemOptions O WHERE O.itemId = I.itemId)>1\n" +
" THEN concat(FORMAT(MIN(saledPrice),0), ' 외')\n" +
" ELSE concat(FORMAT(saledPrice,0),'원') END AS 'price',\n" +
" (SELECT COUNT(scrapId) FROM Scraps S WHERE S.itemId = I.itemId) AS 'scrapCnt',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 5) AS 'five',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 4) AS 'four',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 3) AS 'three',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 2) AS 'two',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 1) AS 'one',\n" +
" (SELECT COUNT(inquiryId) FROM Inquiry WHERE Inquiry.optionId = O.optionId) AS 'inquiry',\n" +
" CASE WHEN scrapId is null THEN 'true' ELSE 'false' END AS 'isScrap'\n" +
"FROM (((\n" +
" ELSE concat(FORMAT(saledPrice,0),'원') END AS 'price',\n" +
" (SELECT COUNT(scrapId) FROM Scraps S WHERE S.itemId = I.itemId) AS 'scrapCnt',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 5) AS 'five',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 4) AS 'four',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 3) AS 'three',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 2) AS 'two',\n" +
" (SELECT COUNT(reviewId) FROM Reviews R WHERE R.optionId = O.optionId AND R.score = 1) AS 'one',\n" +
" (SELECT COUNT(inquiryId) FROM Inquiry WHERE Inquiry.optionId = O.itemId) AS 'inquiry',\n" +
" CASE WHEN scrapId is null THEN 'true' ELSE 'false' END AS 'isScrap'\n" +
"FROM ((((\n" +
" (Items I left join ItemOptions O on I.itemId = O.itemId)\n" +
" inner join Companies C on C.companyId = I.companyId)\n" +
" left join Reviews R on R.optionId = O.optionId)\n" +
" left join ItemInfoPics IIP on I.itemId = IIP.itemId\n" +
" ) left join Scraps S on S.status = 1 AND S.itemId = I.itemId AND S.userId = ?\n" +
" ) left join Scraps S on S.status = 1 AND S.itemId = I.itemId AND S.userId = ?)\n" +
"WHERE\n" +
" I.itemId = ?;\n";
" I.itemId = ?;";
Object[] retrieveStoreItemQueryParams = new Object[]{userId, itemId};

String retrieveItemImgQuery = "SELECT pictureUrl FROM ItemPictures WHERE itemId = ? ;";
Expand All @@ -221,9 +212,11 @@ public GetStoreItemRes retrieveStoreItem(long itemId, long userId){
retrieveStoreItemQuery,
(rs, rowNum) -> new GetStoreItemRes(
rs.getString("itemName"),
this.jdbcTemplate.query(retrieveItemImgQuery,
this.jdbcTemplate.query(
retrieveItemImgQuery,
(rs2, rowNum2)-> rs2.getString("pictureUrl")
,itemId),
,itemId
),
rs.getLong("companyId"),
rs.getString("companyName"),
rs.getDouble("score"),
Expand Down Expand Up @@ -305,7 +298,7 @@ public long createKartItem(PostKartItemReq postKartItemReq, long userId)
String createKartItemQuery = "INSERT INTO KartItems(optionId, userId, number)\n" +
"VALUES(?, ?, ?);";
Object[] createKartItemQueryParams = new Object[]{
Long.parseLong(postKartItemReq.getOptionId()), userId, Integer.parseInt(postKartItemReq.getNumber())};
postKartItemReq.getOptionId(), userId, postKartItemReq.getNumber()};
this.jdbcTemplate.update(createKartItemQuery, createKartItemQueryParams);

String lastInsertIdQuery = "SELECT last_insert_id();";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
@Setter
@AllArgsConstructor
public class PostKartItemReq {
String optionId;
String number;
long optionId;
int number;
}
18 changes: 8 additions & 10 deletions src/main/java/com/example/demo/src/store/service/StoreService.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,32 @@ public class StoreService {
private final UserProvider userProvider;

public long createKartItem(PostKartItemReq postKartItemReq, long userId, long itemId) throws BaseException{
int num = Integer.parseInt(postKartItemReq.getNumber());
long optionId = Long.parseLong(postKartItemReq.getOptionId());

if(num<=0){
if(postKartItemReq.getNumber()<=0){
throw new BaseException(BaseResponseStatus.INVALID_ITEM_NUMBER);
}

if(userProvider.checkUserId(userId) == 0){
throw new BaseException(BaseResponseStatus.USER_NOT_EXISTS);
}

if(storeProvider.checkOptionId(optionId) == 0){
if(storeProvider.checkOptionId(postKartItemReq.getOptionId()) == 0){
throw new BaseException(BaseResponseStatus.OPTION_ID_NOT_EXISTS);
}

if(storeProvider.checkItemOption(itemId, optionId) == 0){
if(storeProvider.checkItemOption(itemId, postKartItemReq.getOptionId()) == 0){
throw new BaseException(BaseResponseStatus.INVALID_ITEM_OPTION);
}

if(storeProvider.checkKartItem(userId, optionId) == 1){
if(storeProvider.checkKartItem(userId, postKartItemReq.getOptionId()) == 1){
throw new BaseException(BaseResponseStatus.KART_ITEM_ALREADY_EXISTS);
}

try{
// try{
return storeDao.createKartItem(postKartItemReq, userId);
}catch (Exception exception){
throw new BaseException(BaseResponseStatus.DATABASE_ERROR);
}
// }catch (Exception exception){
// throw new BaseException(BaseResponseStatus.DATABASE_ERROR);
// }
}

public PostScrapRes createItemScrap(PostScrapReq postScrapReq) throws BaseException{
Expand Down

0 comments on commit 55ac42f

Please sign in to comment.