Skip to content

Commit 65d42f3

Browse files
authored
feat: Item 요구사항 변경 반영 (#127)
* feat: Item 요구사항 변경 반영 * fix: 버그 수정
1 parent 777f14a commit 65d42f3

File tree

5 files changed

+11
-39
lines changed

5 files changed

+11
-39
lines changed

backend/src/main/java/com/back/domain/member/controller/ApiV1MemberController.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.back.domain.member.controller;
22

3-
import com.back.domain.item.entity.ItemType;
43
import com.back.domain.member.dto.*;
54
import com.back.domain.member.entity.Member;
65
import com.back.domain.member.service.MemberService;
@@ -257,20 +256,17 @@ public ResponseEntity<ApiResponse<MemberDto>> equipTitle(
257256
);
258257
}
259258

260-
public record ItemUnequipReqDto(ItemType type) {}
261259
@PutMapping("/unequip/item")
262260
@Operation(summary = "아이템 장착 해제", description = "현재 장착한 아이템 해제")
263-
public ResponseEntity<ApiResponse<MemberDto>> unequipItem(
264-
@Valid @RequestBody ItemUnequipReqDto reqBody
265-
) {
261+
public ResponseEntity<ApiResponse<MemberDto>> unequipItem() {
266262
Member actor = rq.getActorFromDb();
267-
memberService.unequipItem(actor, reqBody.type());
263+
memberService.unequipItem(actor);
268264

269265
return ResponseEntity
270266
.status(HttpStatus.OK)
271267
.body(new ApiResponse<>(
272268
"200",
273-
"[Member] Success: 아이템 장착 해제 (%s)".formatted(reqBody.type()),
269+
"[Member] Success: 아이템 장착 해제",
274270
new MemberDto(actor)
275271
)
276272
);
Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package com.back.domain.member.dto;
22

3-
import com.back.domain.item.entity.Item;
4-
import com.back.domain.item.entity.ItemType;
53
import com.back.domain.member.entity.Member;
64
import com.back.domain.member.entity.MemberGender;
75

86
import java.time.LocalDate;
9-
import java.util.EnumMap;
10-
import java.util.Map;
117

128
public record MemberDto(
139
Integer id,
@@ -20,7 +16,7 @@ public record MemberDto(
2016
Integer xpReq,
2117
Integer money,
2218
String title,
23-
Map<ItemType, Integer> items
19+
String item
2420
) {
2521
public MemberDto(Member member) {
2622
this(
@@ -34,16 +30,7 @@ public MemberDto(Member member) {
3430
member.getXpReq(),
3531
member.getMoney(),
3632
member.getTitle() != null ? member.getTitle().getContent() : null,
37-
buildItems(member)
33+
member.getTitle() != null ? member.getItem().getImg() : null
3834
);
3935
}
40-
41-
private static Map<ItemType, Integer> buildItems(Member member) {
42-
Map<ItemType, Integer> map = new EnumMap<>(ItemType.class);
43-
for (ItemType type : ItemType.values()) {
44-
Item item = member.getItems().get(type);
45-
map.put(type, item != null ? item.getId() : null);
46-
}
47-
return map;
48-
}
4936
}

backend/src/main/java/com/back/domain/member/entity/Member.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.back.domain.member.entity;
22

33
import com.back.domain.item.entity.Item;
4-
import com.back.domain.item.entity.ItemType;
54
import com.back.domain.title.entity.Title;
65
import com.back.global.jpa.entity.BaseEntity;
76
import jakarta.persistence.*;
@@ -38,9 +37,8 @@ public class Member extends BaseEntity {
3837
// *** 장착한 칭호/아이템 정보 ***
3938
@ManyToOne(fetch = FetchType.LAZY)
4039
private Title title;
41-
@OneToMany(fetch = FetchType.LAZY)
42-
@MapKey(name = "type")
43-
private Map<ItemType, Item> items;
40+
@ManyToOne(fetch = FetchType.LAZY)
41+
private Item item;
4442

4543
// *** 보유한 칭호/아이템 정보 ***
4644
@ManyToMany(fetch = FetchType.LAZY)
@@ -62,10 +60,7 @@ public Member(String email, String password, String name) {
6260
this.name = name;
6361

6462
this.title = null;
65-
this.items = new EnumMap<>(ItemType.class);
66-
for(ItemType type : ItemType.values()) {
67-
this.items.put(type, null);
68-
}
63+
this.item = null;
6964
this.ownedTitles = new HashSet<>();
7065
this.ownedItems = new HashSet<>();
7166

@@ -78,11 +73,6 @@ public Member(int id, String email) {
7873
this.email = email;
7974
}
8075

81-
//아이템 장착
82-
public void setItem(Item item) {
83-
this.items.put(item.getType(), item);
84-
}
85-
8676
//칭호 획득
8777
public void addTitle(Title title) {
8878
this.ownedTitles.add(title);

backend/src/main/java/com/back/domain/member/service/MemberService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.back.domain.member.service;
22

33
import com.back.domain.item.entity.Item;
4-
import com.back.domain.item.entity.ItemType;
54
import com.back.domain.item.repository.ItemRepository;
65
import com.back.domain.member.entity.Member;
76
import com.back.domain.member.entity.MemberGender;
@@ -132,8 +131,8 @@ public void equipTitle(Member member, int titleId) {
132131
}
133132

134133
// *** 아이템&칭호 장착 해제***
135-
public void unequipItem(Member member, ItemType type) {
136-
member.getItems().put(type, null);
134+
public void unequipItem(Member member) {
135+
member.setItem(null);
137136
}
138137

139138
public void unequipTitle(Member member) {

backend/src/test/java/com/back/domain/member/ApiV1MemberControllerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ void unequipItem() throws Exception {
426426
.andExpect(handler().methodName("unequipItem"))
427427
.andExpect(status().isOk())
428428
.andExpect(jsonPath("$.code").value("200"))
429-
.andExpect(jsonPath("$.message").value("[Member] Success: 아이템 장착 해제 (%s)".formatted(item1.getType())))
429+
.andExpect(jsonPath("$.message").value("[Member] Success: 아이템 장착 해제"))
430430
.andExpect(jsonPath("$.content").exists())
431431
.andExpect(jsonPath("$.content.items." + item1.getType()).value(nullValue()));
432432
}

0 commit comments

Comments
 (0)