Skip to content

Commit da8f981

Browse files
committed
fixes
1 parent 6794ae2 commit da8f981

File tree

12 files changed

+58
-55
lines changed

12 files changed

+58
-55
lines changed

src/main/java/ru/mystamps/web/dao/CountryDao.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,6 @@ public interface CountryDao {
3535
List<Object[]> getStatisticsOf(Integer collectionId, String lang);
3636
List<LinkEntityDto> findAllAsLinkEntities(String lang);
3737
LinkEntityDto findOneAsLinkEntity(String slug, String lang);
38+
39+
String suggestCountryForUser(Integer userId);
3840
}

src/main/java/ru/mystamps/web/dao/SeriesDao.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
@SuppressWarnings("PMD.TooManyMethods")
3131
public interface SeriesDao {
3232
Integer add(AddSeriesDbDto series);
33-
String guessCountryBy(Integer createdBy);
3433

3534
void markAsModified(Integer seriesId, Date updateAt, Integer updatedBy);
3635
List<SitemapInfoDto> findAllForSitemap();

src/main/java/ru/mystamps/web/dao/impl/JdbcCountryDao.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ public class JdbcCountryDao implements CountryDao {
7676

7777
@Value("${country.find_country_link_info_by_slug}")
7878
private String findCountryLinkEntityBySlugSql;
79+
80+
@Value("${series.find_last_country_by_id}")
81+
private String findLastCountryByIdSql;
82+
83+
@Value("${series.find_popular_country}")
84+
private String findPopularCountrySql;
7985

8086
@Override
8187
public Integer add(AddCountryDbDto country) {
@@ -206,5 +212,20 @@ public LinkEntityDto findOneAsLinkEntity(String slug, String lang) {
206212
return null;
207213
}
208214
}
209-
215+
216+
@Override
217+
public String suggestCountryForUser(Integer userId) {
218+
String result = jdbcTemplate.queryForObject(findLastCountryByIdSql,
219+
Collections.singletonMap("created_by", userId),
220+
String.class);
221+
if (result != null) {
222+
return result;
223+
}
224+
225+
return jdbcTemplate.queryForObject(
226+
findPopularCountrySql,
227+
Collections.<String, Object>emptyMap(),
228+
String.class
229+
);
230+
}
210231
}

src/main/java/ru/mystamps/web/dao/impl/JdbcSeriesDao.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,6 @@ public class JdbcSeriesDao implements SeriesDao {
101101
@Value("${series.count_series_added_since}")
102102
private String countSeriesAddedSinceSql;
103103

104-
@Value("${series.find_last_country_by_id}")
105-
private String findLastCountryByIdSql;
106-
107-
@Value("${series.find_popular_country}")
108-
private String findPopularCountrySql;
109-
110104
@Value("${series.count_series_updated_since}")
111105
private String countSeriesUpdatedSinceSql;
112106

@@ -324,22 +318,6 @@ public long countAddedSince(Date date) {
324318
Long.class
325319
);
326320
}
327-
328-
@Override
329-
public String guessCountryBy(Integer createdBy) {
330-
String result = jdbcTemplate.queryForObject(findLastCountryByIdSql,
331-
Collections.singletonMap("created_by", createdBy),
332-
String.class);
333-
if (result != null) {
334-
return result;
335-
}
336-
337-
return jdbcTemplate.queryForObject(
338-
findPopularCountrySql,
339-
Collections.<String, Object>emptyMap(),
340-
String.class
341-
);
342-
}
343321

344322
@Override
345323
public long countUpdatedSince(Date date) {

src/main/java/ru/mystamps/web/service/CountryService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
public interface CountryService {
2727
String add(AddCountryDto dto, Integer userId);
28+
String suggestCountryForUser(Integer userId);
2829
List<LinkEntityDto> findAllAsLinkEntities(String lang);
2930
LinkEntityDto findOneAsLinkEntity(String slug, String lang);
3031
long countAll();

src/main/java/ru/mystamps/web/service/CountryServiceImpl.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,5 +162,15 @@ public List<Object[]> getStatisticsOf(Integer collectionId, String lang) {
162162

163163
return countryDao.getStatisticsOf(collectionId, lang);
164164
}
165-
165+
166+
/**
167+
* @author Shkarin John
168+
*/
169+
@Override
170+
@Transactional(readOnly = true)
171+
public String suggestCountryForUser(Integer userId) {
172+
Validate.isTrue(userId != null, "UserId must be non null");
173+
174+
return countryDao.suggestCountryForUser(userId);
175+
}
166176
}

src/main/java/ru/mystamps/web/service/SeriesService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
@SuppressWarnings("PMD.TooManyMethods")
3232
public interface SeriesService {
3333
Integer add(AddSeriesDto dto, Integer userId, boolean userCanAddComments);
34-
String guessCountryBy(Integer createdBy);
3534

3635
void addImageToSeries(AddImageDto dto, Integer seriesId, Integer userId);
3736
long countAll();

src/main/java/ru/mystamps/web/service/SeriesServiceImpl.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -220,17 +220,6 @@ public long countUpdatedSince(Date date) {
220220

221221
return seriesDao.countUpdatedSince(date);
222222
}
223-
224-
/**
225-
* @author Shkarin John
226-
*/
227-
@Override
228-
@Transactional(readOnly = true)
229-
public String guessCountryBy(Integer createdBy) {
230-
Validate.isTrue(createdBy != null, "CreatedBy must be non null");
231-
232-
return seriesDao.guessCountryBy(createdBy);
233-
}
234223

235224
@Override
236225
@Transactional(readOnly = true)

src/main/javascript/series/add.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// IMPORTANT:
33
// You have to update Url.RESOURCES_VERSION each time whenever you're modified this file!
44
//
5-
function initPage() {
5+
function initPage(urlSuggest) {
66
$('#country').selectize();
77

88
$('.js-catalog-numbers').on('blur', function() {
@@ -22,8 +22,7 @@ function initPage() {
2222
'placement': 'right'
2323
});
2424

25-
$.get("/suggest/series_country", function (data){
26-
var slug = jQuery.parseJSON(data).country;
25+
$.get(urlSuggest, function (slug){
2726
if (slug == null)
2827
return;
2928

src/main/resources/sql/country_dao_queries.properties

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,15 @@ country.find_country_link_info_by_slug = \
8181
FROM countries c \
8282
WHERE c.slug = :slug \
8383
ORDER BY CASE WHEN 'ru' = :lang THEN COALESCE(c.name_ru, c.name) ELSE c.name END
84+
85+
series.find_last_country_by_id = \
86+
SELECT slug \
87+
FROM series LEFT JOIN countries ON countries.id = series.country_id \
88+
WHERE series.created_by = :created_by \
89+
ORDER BY series.created_at DESC LIMIT 1
90+
91+
series.find_popular_country = \
92+
SELECT slug \
93+
FROM series LEFT JOIN countries ON countries.id = series.country_id \
94+
GROUP BY country_id \
95+
ORDER BY COUNT(*) DESC LIMIT 1

src/main/resources/sql/series_dao_queries.properties

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -242,19 +242,6 @@ SELECT COUNT(*) \
242242
FROM series \
243243
WHERE updated_at >= :date
244244

245-
series.find_last_country_by_id = \
246-
SELECT slug \
247-
FROM series LEFT JOIN countries ON countries.id = series.country_id \
248-
WHERE series.created_at IN (SELECT MAX(series.created_at) \
249-
FROM series \
250-
WHERE series.created_by = :created_by)
251-
252-
series.find_popular_country = \
253-
SELECT slug \
254-
FROM series LEFT JOIN countries ON countries.id = series.country_id \
255-
GROUP BY country_id \
256-
ORDER BY COUNT(*) DESC LIMIT 1
257-
258245
series.find_series_ids_by_michel_number = \
259246
SELECT smc.series_id AS series_id \
260247
FROM series_michel_catalog smc \

src/main/webapp/WEB-INF/views/series/add.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<link rel="stylesheet" href="../../static/styles/main.css" th:href="${MAIN_CSS}" />
1616
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.3/css/selectize.bootstrap3.min.css" th:href="${SELECTIZE_CSS}" />
1717
</head>
18-
<body onload="initPage()">
18+
<body>
1919
<div class="container-fluid">
2020
<div class="row" id="header">
2121
<div id="logo" class="col-sm-9 vcenter">
@@ -203,7 +203,7 @@ <h3 th:text="${#strings.capitalize(add_series)}">
203203
/*/-->
204204
</div>
205205

206-
<span id="guess_country" style="display: block;">
206+
<span id="guess_country" style="display: none;">
207207
<a tabindex="-1" th:text="#{t_guess_country}" href="javascript:void(0)">Guess a country</a>
208208
</span>
209209
</div>
@@ -519,5 +519,11 @@ <h3 th:text="${#strings.capitalize(add_series)}">
519519

520520
<script src="../../../../javascript/CatalogUtils.min.js" th:src="${CATALOG_UTILS_JS}"></script>
521521
<script src="../../../../javascript/series/add.min.js" th:src="${SERIES_ADD_JS}"></script>
522+
<span class="url_suggest" th:value="${urlSuggest}"></span>
523+
<script th:inline="javascript">
524+
$(document).ready(function() {
525+
initPage($(".url_suggest").attr("value"));
526+
});
527+
</script>
522528
</body>
523529
</html>

0 commit comments

Comments
 (0)