[chuni] fix user item being overwritten

[api] fix set diva news
This commit is contained in:
samnyan
2020-01-18 13:29:34 +09:00
parent c230c47c36
commit a417e4032c
6 changed files with 24 additions and 13 deletions

View File

@@ -15,7 +15,7 @@ import java.util.Optional;
@Repository
public interface UserItemRepository extends JpaRepository<UserItem, Long> {
Optional<UserItem> findTopByUserAndItemIdOrderByIdDesc(UserData user, int itemId);
Optional<UserItem> findTopByUserAndItemIdAndItemKindOrderByIdDesc(UserData user, int itemId, int itemKind);
Page<UserItem> findAllByUser_Card_ExtIdAndItemKind(long extId, int itemKind, Pageable pageable);
}

View File

@@ -191,16 +191,17 @@ public class UpsertUserAllHandler implements BaseHandler {
userItemList.forEach(userItemMap -> {
String itemId = (String) userItemMap.get("itemId");
String itemKind = (String) userItemMap.get("itemKind");
Optional<UserItem> userItemOptional = userItemService.getByUserAndItemId(newUserData, itemId);
Optional<UserItem> userItemOptional = userItemService.getByUserAndItemId(newUserData, itemId, itemKind);
UserItem userItem = userItemOptional.orElseGet(() -> new UserItem(newUserData));
UserItem newUserItem = mapper.convert(userItemMap, UserItem.class);
newUserItem.setId(userItem.getId());
newUserItem.setUser(userItem.getUser());
newUserItemMap.put(itemId, newUserItem);
newUserItemMap.put(itemId + "-" + itemKind, newUserItem);
});
userItemService.saveAll(newUserItemMap.values());
}

View File

@@ -25,8 +25,8 @@ public class UserItemService {
}
public Optional<UserItem> getByUserAndItemId(UserData user, String itemId) {
return userItemRepository.findTopByUserAndItemIdOrderByIdDesc(user, Integer.parseInt(itemId));
public Optional<UserItem> getByUserAndItemId(UserData user, String itemId, String itemKind) {
return userItemRepository.findTopByUserAndItemIdAndItemKindOrderByIdDesc(user, Integer.parseInt(itemId), Integer.parseInt(itemKind));
}
public UserItem save(UserItem userItem) {