Skip to content

Commit

Permalink
Merge pull request #48 from seyoung755/feat-be/47
Browse files Browse the repository at this point in the history
[BE] 백엔드 코드리뷰 사항 반영
  • Loading branch information
seyoung755 committed Apr 10, 2022
2 parents 2b7683e + 7012e34 commit 6257f92
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
import com.example.backend.web.dto.CardMoveRequestDto;
import com.example.backend.web.dto.Columns;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.stereotype.Repository;

import javax.sql.DataSource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

@Repository
public class CardJdbcTemplateRepository implements CardRepository {
Expand All @@ -39,32 +39,36 @@ public Columns findAllDesc() {
}

private List<CardListResponseDto> findResponseDtosByColumnName(String columnName) {
return jdbcTemplate.query("SELECT * FROM CARD WHERE COLUMN_NAME = '" + columnName + "' ORDER BY order_index",
return jdbcTemplate.query("SELECT * FROM CARD WHERE COLUMN_NAME = ? ORDER BY ORDER_INDEX",
(rs, rowNum) -> {
long id = rs.getLong("id");
String title = rs.getString("title");
String content = rs.getString("content");
String authorSystem = rs.getString("author_system");
return new CardListResponseDto(id, title, content, authorSystem);
});
}, columnName);
}

@Override
public Long save(Card card) {
String columnName = card.getColumnName();
Integer orderIndex = jdbcTemplate.queryForObject(
"SELECT count(*) FROM CARD WHERE column_name = '" + columnName + "'", Integer.class);
Integer orderIndex = getOrderIndex(columnName);

Map<String, Object> params = new HashMap<>();
params.put("title", card.getTitle());
params.put("content", card.getContent());
params.put("column_name", columnName);
params.put("author_system", card.getAuthorSystem());
params.put("order_index", orderIndex);
params.put("deleted", 0);
params.put("deleted", false);
return simpleJdbcInsert.executeAndReturnKey(params).longValue();
}

private Integer getOrderIndex(String columnName) {
return jdbcTemplate.queryForObject(
"SELECT count(*) FROM CARD WHERE column_name = ?", Integer.class, columnName);
}

@Override
public Optional<Card> findById(Long id) {
return Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ public Long save(CardSaveRequestDto dto) {
}

public Long update(Long id, CardUpdateRequestDto dto) {
// 해당 id로 조회한 카드의 entity에 내용을 반영하여 전달
Card card = findById(id);
card.update(dto.getTitle(), dto.getTitle());
return cardRepository.save(card);
Expand Down
23 changes: 8 additions & 15 deletions backend/src/main/resources/data.sql
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
INSERT INTO CARD (title, content, author_system, column_name, order_index) VALUES (
'테스트 글 제목1', '테스트 내용', 'iOS', 'to_do', (SELECT count(*) FROM CARD WHERE column_name = 'to_do')
);
INSERT INTO CARD (title, content, author_system, column_name, order_index) VALUES (
'테스트 글 제목2', '테스트 내용', 'iOS', 'in_progress', (SELECT count(*) FROM CARD WHERE column_name = 'in_progress')
);
INSERT INTO CARD (title, content, author_system, column_name, order_index) VALUES (
'테스트 글 제목3', '테스트 내용', 'iOS', 'to_do', (SELECT count(*) FROM CARD WHERE column_name = 'to_do')
);
INSERT INTO CARD (title, content, author_system, column_name, order_index) VALUES (
'테스트 글 제목4', '테스트 내용', 'iOS', 'to_do', (SELECT count(*) FROM CARD WHERE column_name = 'to_do')
);
INSERT INTO CARD (title, content, author_system, column_name, order_index) VALUES (
'테스트 글 제목5', '테스트 내용', 'iOS', 'done', (SELECT count(*) FROM CARD WHERE column_name = 'done')
);
INSERT INTO CARD (title, content, author_system, column_name, order_index)
VALUES
('테스트 글 제목1', '테스트 내용', 'iOS', 'to_do', SELECT count(*) FROM CARD WHERE column_name = 'to_do'),
('테스트 글 제목2', '테스트 내용', 'iOS', 'in_progress', SELECT count(*) FROM CARD WHERE column_name = 'in_progress'),
('테스트 글 제목3', '테스트 내용', 'iOS', 'to_do', SELECT count(*) FROM CARD WHERE column_name = 'to_do'),
('테스트 글 제목4', '테스트 내용', 'iOS', 'to_do', SELECT count(*) FROM CARD WHERE column_name = 'to_do'),
('테스트 글 제목5', '테스트 내용', 'iOS', 'done', SELECT count(*) FROM CARD WHERE column_name = 'done');

INSERT INTO ACTION_LOG (title, cur_column_name, action_type) VALUES (
'테스트1', 'to_do', 'add'
);
Expand Down
2 changes: 1 addition & 1 deletion backend/src/main/resources/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ CREATE TABLE CARD (
content varchar(500),
author_system varchar(20) NOT NULL,
column_name ENUM('to_do', 'in_progress', 'done'),
deleted tinyint DEFAULT 0,
deleted tinyint DEFAULT false,
order_index int NOT NULL
);
CREATE TABLE ACTION_LOG
Expand Down

0 comments on commit 6257f92

Please sign in to comment.