1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.app.service;
17
18 import java.util.List;
19
20 import javax.annotation.Resource;
21
22 import org.codelibs.core.beans.util.BeanUtil;
23 import org.codelibs.core.lang.StringUtil;
24 import org.codelibs.fess.Constants;
25 import org.codelibs.fess.app.pager.DataConfigPager;
26 import org.codelibs.fess.es.config.cbean.DataConfigCB;
27 import org.codelibs.fess.es.config.exbhv.DataConfigBhv;
28 import org.codelibs.fess.es.config.exentity.DataConfig;
29 import org.codelibs.fess.mylasta.direction.FessConfig;
30 import org.codelibs.fess.util.ParameterUtil;
31 import org.dbflute.cbean.result.ListResultBean;
32 import org.dbflute.cbean.result.PagingResultBean;
33 import org.dbflute.optional.OptionalEntity;
34
35 public class DataConfigService extends FessAppService {
36
37 @Resource
38 protected DataConfigBhv dataConfigBhv;
39
40 @Resource
41 protected FessConfig fessConfig;
42
43 public List<DataConfig> getDataConfigList(final DataConfigPager dataConfigPager) {
44
45 final PagingResultBean<DataConfig> dataConfigList = dataConfigBhv.selectPage(cb -> {
46 cb.paging(dataConfigPager.getPageSize(), dataConfigPager.getCurrentPageNumber());
47
48 setupListCondition(cb, dataConfigPager);
49 });
50
51
52 BeanUtil.copyBeanToBean(dataConfigList, dataConfigPager, option -> option.include(Constants.PAGER_CONVERSION_RULE));
53 dataConfigPager.setPageNumberList(dataConfigList.pageRange(op -> {
54 op.rangeSize(fessConfig.getPagingPageRangeSizeAsInteger());
55 }).createPageNumberList());
56
57 return dataConfigList;
58 }
59
60 public void delete(final DataConfig dataConfig) {
61 dataConfigBhv.delete(dataConfig, op -> {
62 op.setRefreshPolicy(Constants.TRUE);
63 });
64 }
65
66 public OptionalEntity<DataConfig> getDataConfig(final String id) {
67 return dataConfigBhv.selectByPK(id);
68 }
69
70 public OptionalEntity<DataConfig> getDataConfigByName(final String name) {
71 final ListResultBean<DataConfig> list = dataConfigBhv.selectList(cb -> {
72 cb.query().setName_Equal(name);
73 cb.query().addOrderBy_SortOrder_Asc();
74 });
75 if (list.isEmpty()) {
76 return OptionalEntity.empty();
77 }
78 return OptionalEntity.of(list.get(0));
79 }
80
81 public void store(final DataConfig dataConfig) {
82 dataConfig.setHandlerParameter(ParameterUtil.encrypt(dataConfig.getHandlerParameter()));
83 dataConfigBhv.insertOrUpdate(dataConfig, op -> {
84 op.setRefreshPolicy(Constants.TRUE);
85 });
86
87 }
88
89 protected void setupListCondition(final DataConfigCB cb, final DataConfigPager dataConfigPager) {
90 if (StringUtil.isNotBlank(dataConfigPager.name)) {
91 cb.query().setName_Wildcard(dataConfigPager.name);
92 }
93 if (StringUtil.isNotBlank(dataConfigPager.handlerName)) {
94 cb.query().setHandlerName_Wildcard(wrapQuery(dataConfigPager.handlerName));
95 }
96 if (StringUtil.isNotBlank(dataConfigPager.description)) {
97 if (dataConfigPager.description.startsWith("*")) {
98 cb.query().setDescription_Wildcard(dataConfigPager.description);
99 } else if (dataConfigPager.description.endsWith("*")) {
100 cb.query().setDescription_Prefix(dataConfigPager.description.replaceAll("\\*$", StringUtil.EMPTY));
101 } else {
102 cb.query().setDescription_MatchPhrase(dataConfigPager.description);
103 }
104 }
105
106
107
108 cb.query().addOrderBy_SortOrder_Asc();
109 cb.query().addOrderBy_Name_Asc();
110
111
112
113 }
114
115 }