Skip to content

Commit

Permalink
Merge pull request #132 from MADA-UMC/server-blue
Browse files Browse the repository at this point in the history
feat: day 통계 기능 구현
  • Loading branch information
yujiyea authored Mar 8, 2024
2 parents 29d34fb + bdb7bfc commit 25350c2
Show file tree
Hide file tree
Showing 23 changed files with 342 additions and 147 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.umc.mada.auth.service;

import com.umc.mada.auth.dto.OAuth2Attributes;
import com.umc.mada.custom.domain.CustomItem;
import com.umc.mada.custom.domain.HaveItem;
import com.umc.mada.custom.domain.WearingItem;
import com.umc.mada.custom.repository.CustomRepository;
import com.umc.mada.custom.repository.HaveItemRepository;
Expand Down Expand Up @@ -103,30 +105,21 @@ private User createUser(OAuth2Attributes oAuth2Attributes, String authProvider){

private void setUserData(User user){
//사용자 캐릭터 디폴트 설정하기
wearingItemRepository.save(new WearingItem(user, customRepository.findCustomItemById(10).get()));
wearingItemRepository.save(new WearingItem(user, customRepository.findCustomItemById(48).get()));
wearingItemRepository.save(new WearingItem(user, customRepository.findCustomItemById(49).get()));
wearingItemRepository.save(new WearingItem(user, customRepository.findCustomItemById(50).get()));
List<CustomItem> defaultItems = customRepository.findByUnlockCondition(CustomItem.ItemUnlockCondition.DEFAULT);

for(CustomItem defaultItem: defaultItems){
wearingItemRepository.save(WearingItem.builder().user(user).customItem(defaultItem).build());
}

// wearingItemRepository.save(WearingItem.builder().user(user).customItem(customRepository.findById(10L).orElseThrow(()-> new RuntimeException("기본 색상 ID가 없습니다."))).build());
// wearingItemRepository.save(WearingItem.builder().user(user).customItem(customRepository.findById(48L).orElseThrow(()-> new RuntimeException("기본 색상 ID가 없습니다."))).build());
// wearingItemRepository.save(WearingItem.builder().user(user).customItem(customRepository.findById(49L).orElseThrow(()-> new RuntimeException("기본 색상 ID가 없습니다."))).build());
// wearingItemRepository.save(WearingItem.builder().user(user).customItem(customRepository.findById(50L).orElseThrow(()-> new RuntimeException("기본 색상 ID가 없습니다."))).build());

//사용자 기본 제공 커스텀 아이템 세팅하기
// List<CustomItem> basicItemList = customRepository.findCustomItemByUnlockCondition(ItemUnlockCondition.C0);
// for(CustomItem basicItem : basicItemList){
// if(basicItem.getId() == 10){
// haveItemRepository.save(new HaveItem(user, basicItem, true));
// continue;
// }
// haveItemRepository.save(new HaveItem(user, basicItem));
// }
////
// List<CustomItem> basicItemList2 = customRepository.findCustomItemByUnlockCondition(ItemUnlockCondition.C1);
// for(CustomItem basicItem : basicItemList2){
// haveItemRepository.save(new HaveItem(user, basicItem));
// }
//
// List<CustomItem> basicItemList3 = customRepository.findCustomItemByUnlockCondition(ItemUnlockCondition.C2);
// for(CustomItem basicItem : basicItemList3){
// haveItemRepository.save(new HaveItem(user, basicItem));
// }
List<CustomItem> basicItems = customRepository.findByUnlockCondition(CustomItem.ItemUnlockCondition.BASIC);
for(CustomItem basicItem : basicItems){
haveItemRepository.save(HaveItem.builder().user(user).customItem(basicItem).build());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public ResponseEntity<Map<String, Object>> findItemsByItemType(@PathVariable Str

@Operation(description = "사용자 캐릭터 착용 아이템 변경")
@PatchMapping("/change") ///{item_id}
public ResponseEntity<Map<String, Object>> changeCharacter(Authentication authentication, @RequestParam(value="item_id") List<String> items_id){ // @RequestParam(value="items_id[]") List<String> items_id
public ResponseEntity<Map<String, Object>> changeCharacter(Authentication authentication, @RequestParam(value="item_id") List<Integer> items_id){ // @RequestParam(value="items_id[]") List<String> items_id
User user = findUser(authentication);
//String[] items_id = request.getParameterValues("item_id");
UserCharacterResponse userCharacterResponse = customService.changeUserItem(user, items_id);
Expand Down
8 changes: 3 additions & 5 deletions src/main/java/com/umc/mada/custom/domain/CustomItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.time.LocalDateTime;

@Entity
@Builder
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
Expand Down Expand Up @@ -41,11 +42,8 @@ public class CustomItem {
@Column(name = "update_at")
private LocalDateTime updatedAt; // 수정 시간

@Builder
public CustomItem(ItemType itemType, ItemUnlockCondition unlock_condition){
this.itemType = itemType;
this.unlockCondition = unlock_condition;
public enum ItemUnlockCondition {
DEFAULT,BASIC, ATTENDANCE, PREMINUM;
}


}
16 changes: 2 additions & 14 deletions src/main/java/com/umc/mada/custom/domain/HaveItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javax.persistence.*;

@Getter
@Builder
@Entity
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
Expand All @@ -23,22 +24,9 @@ public class HaveItem {
@JoinColumn(name = "item_id")
private CustomItem customItem;

@Column(name = "wearing")
@Column(name = "wearing") //TODO: wearingItem 테이블로 분리했기에 바꿔야 함 => 헌데 분리하는게 더 좋을지는 생각해보고 수정다시 해야할 듯
private boolean wearing;

@Builder
public HaveItem(User user, CustomItem customItem){
this.user = user;
this.customItem = customItem;
}

@Builder
public HaveItem(User user, CustomItem customItem, boolean wearing) {
this.user = user;
this.customItem = customItem;
this.wearing = wearing;
}

public void updateHaveItemWearing(boolean wearing){
this.wearing = wearing;
}
Expand Down
33 changes: 15 additions & 18 deletions src/main/java/com/umc/mada/custom/domain/ItemUnlockCondition.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package com.umc.mada.custom.domain;


public enum ItemUnlockCondition {
basic("기본 제공"),
mission("미션"),
initialValue("초기 값");

private final String itemUnlockCondition;

ItemUnlockCondition(String itemUnlockCondition) {
this.itemUnlockCondition = itemUnlockCondition;
}

public String getItemUnlockCondition(){
return itemUnlockCondition;
}
}
//package com.umc.mada.custom.domain;
//
//
//public enum ItemUnlockCondition {
// BASIC, ATTENDANCE, PREMINUM;
//
//
// ItemUnlockCondition(String itemUnlockCondition) {
// this.itemUnlockCondition = itemUnlockCondition;
// }
//
// public String getItemUnlockCondition(){
// return itemUnlockCondition;
// }
//}
6 changes: 1 addition & 5 deletions src/main/java/com/umc/mada/custom/domain/WearingItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javax.persistence.*;

@Entity
@Builder
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
Expand All @@ -23,9 +24,4 @@ public class WearingItem {
@JoinColumn(name = "item_id")
private CustomItem customItem;

@Builder
public WearingItem(User user, CustomItem customItem) {
this.user = user;
this.customItem = customItem;
}
}
11 changes: 6 additions & 5 deletions src/main/java/com/umc/mada/custom/dto/CustomItemsResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
import java.util.List;

@Getter
@Builder
public class CustomItemsResponse {
private final List<ItemElementResponseDto> itemList;
private final List<ItemElementResponse> itemList = new ArrayList<>();

public CustomItemsResponse(){
this.itemList = new ArrayList<>();
}
// public CustomItemsResponse(){
// this.itemList = new ArrayList<>();
// }

public void addItem(ItemElementResponseDto item){
public void addItem(ItemElementResponse item){
itemList.add(item);
}
// public CustomItemsResponse of(List<CustomItem> customItems, boolean haveItem){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,17 @@
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ItemElementResponseDto {
public class ItemElementResponse {
private int id;
private String itemType;
private boolean have; //유저가 해당 아이템을 소유하고 있는지 여부
private String category;

public static ItemElementResponseDto of(CustomItem customItem){
return ItemElementResponseDto.builder()
public static ItemElementResponse of(CustomItem customItem, boolean have){
return ItemElementResponse.builder()
.id(customItem.getId())
.itemType(customItem.getItemType().getItemType())
.have(have)
.category(customItem.getCategory())
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public static ItemsElementResponse of(CustomItem customItem, boolean have){
.id(customItem.getId())
.name(customItem.getName())
.itemType(customItem.getItemType().getItemType())
.itemUnlockCondition(customItem.getUnlockCondition().getItemUnlockCondition())
.itemUnlockCondition(customItem.getUnlockCondition().name())
.filePath(customItem.getFilePath())
.have(have)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.umc.mada.custom.domain.CustomItem;
import com.umc.mada.custom.domain.ItemType;
import com.umc.mada.custom.domain.ItemUnlockCondition;
//import com.umc.mada.custom.domain.ItemUnlockCondition;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;
Expand All @@ -11,5 +11,5 @@
public interface CustomRepository extends JpaRepository<CustomItem, Long> {
Optional<CustomItem> findCustomItemById(int id);
List<CustomItem> findCustomItemByItemType(ItemType type);
List<CustomItem> findCustomItemByUnlockCondition(ItemUnlockCondition condition);
List<CustomItem> findByUnlockCondition(CustomItem.ItemUnlockCondition condition);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public interface HaveItemRepository extends JpaRepository<HaveItem, Long> {
Optional<HaveItem> findByCustomItemAndUser(CustomItem customItem, User user);
List<HaveItem> findByUser(User user);
List<HaveItem> findByUserAndWearing(User user, boolean wearing);
boolean existsByCustomItemAndUser(CustomItem customItem, User user);

@Query("select h.customItem from HaveItem h where h.user = :user and h.wearing = :wearing")
List<CustomItem> findCustomItemByUserAndWearing(@Param("user") User user, @Param("wearing") boolean wearing);
Expand Down
Loading

0 comments on commit 25350c2

Please sign in to comment.