add name prefix filter
This commit is contained in:
parent
348232f4af
commit
0ab913e0a9
@ -11,9 +11,9 @@ import me.chyxion.tigon.model.ViewModel;
|
||||
import me.chyxion.tigon.model.ListResult;
|
||||
import com.pudonghot.ambition.crm.model.*;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
import com.pudonghot.ambition.crm.service.UserService;
|
||||
import org.apache.shiro.authz.annotation.RequiresRoles;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@ -63,6 +63,8 @@ public class ApplicationController
|
||||
start, limit, strSearch, null, filters, null);
|
||||
result.setAttr("users", userService.listViewModels(
|
||||
new Search().asc(User.EMPLOYEE_ID)));
|
||||
result.setAttr("namePrefixes",
|
||||
((ApplicationService) queryService).listNamePrefixes());
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -167,6 +169,12 @@ public class ApplicationController
|
||||
*/
|
||||
@Override
|
||||
protected Pair<String, Class<?>> filterCol(final String field) {
|
||||
return Application.OWNER.equals(field) ? Pair.of(field, String.class) : null;
|
||||
if (Application.OWNER.equals(field)) {
|
||||
return Pair.of(field, String.class);
|
||||
}
|
||||
if (Application.NAME_PREFIX.equals(field)) {
|
||||
return Pair.of(field, String.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
package com.pudonghot.ambition.crm.service;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import com.pudonghot.ambition.crm.model.Application;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
import me.chyxion.tigon.service.BaseCrudByFormService;
|
||||
import com.pudonghot.ambition.crm.model.ApplicationImage;
|
||||
import com.pudonghot.ambition.crm.model.ApplicationAttachment;
|
||||
@ -61,5 +63,11 @@ public interface ApplicationService
|
||||
* @param form form
|
||||
*/
|
||||
void updateAttachment(@Valid ApplicationAttachmentFormForUpdate form);
|
||||
|
||||
/**
|
||||
* list name prefixes
|
||||
* @return name prefixes
|
||||
*/
|
||||
List<Map<String, String>> listNamePrefixes();
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package com.pudonghot.ambition.crm.service.support;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.ArrayList;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -67,6 +68,7 @@ public class ApplicationServiceSupport
|
||||
final String id = idSeq.get();
|
||||
final Application application = form.copy(new Application());
|
||||
application.setId(id);
|
||||
application.setNamePrefix(namePrefix(application.getName()));
|
||||
final Date now = new Date();
|
||||
application.setDateUpdated(now);
|
||||
|
||||
@ -118,6 +120,7 @@ public class ApplicationServiceSupport
|
||||
else {
|
||||
application.setOwner(updatedBy);
|
||||
}
|
||||
application.setNamePrefix(namePrefix(application.getName()));
|
||||
return update(application);
|
||||
}
|
||||
|
||||
@ -194,6 +197,14 @@ public class ApplicationServiceSupport
|
||||
updateFile(form, attachmentMapper::find, attachmentMapper::listSort, attachmentMapper::update);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, String>> listNamePrefixes() {
|
||||
return mapper.listNamePrefixes();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@ -359,4 +370,12 @@ public class ApplicationServiceSupport
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
private String namePrefix(final String name) {
|
||||
int i = name.indexOf("-");
|
||||
if (i > 0) {
|
||||
return name.substring(0, i);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,16 @@
|
||||
package com.pudonghot.ambition.crm;
|
||||
|
||||
import com.pudonghot.ambition.crm.model.ApplicationImage;
|
||||
import com.pudonghot.ambition.crm.util.AmDateUtil;
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
import org.apache.commons.lang3.time.DateUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.DateTimeConstants;
|
||||
import org.joda.time.Interval;
|
||||
import org.joda.time.Period;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Date;
|
||||
import java.text.ParseException;
|
||||
import org.joda.time.DateTimeConstants;
|
||||
import org.apache.commons.lang3.time.DateUtils;
|
||||
import com.pudonghot.ambition.crm.util.AmDateUtil;
|
||||
import com.pudonghot.ambition.crm.model.ApplicationImage;
|
||||
|
||||
/**
|
||||
* @version 0.0.1
|
||||
@ -20,6 +19,7 @@ import java.util.Date;
|
||||
* chyxion@163.com <br />
|
||||
* Sep 1, 2015 2:34:08 PM
|
||||
*/
|
||||
@Slf4j
|
||||
public class TestDriver {
|
||||
|
||||
@Test
|
||||
@ -102,4 +102,12 @@ public class TestDriver {
|
||||
image.setSort(sortOld - 1.5f);
|
||||
System.err.println(image);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNamePrefix() {
|
||||
String name = "AT-Foo";
|
||||
int i = name.indexOf('-');
|
||||
log.info("index [{}].", i);
|
||||
log.info("prefix [{}].", name.substring(0, i));
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.pudonghot.ambition.crm.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import me.chyxion.tigon.mybatis.BaseMapper;
|
||||
import com.pudonghot.ambition.crm.model.Application;
|
||||
|
||||
@ -10,4 +12,9 @@ import com.pudonghot.ambition.crm.model.Application;
|
||||
*/
|
||||
public interface ApplicationMapper extends BaseMapper<String, Application> {
|
||||
|
||||
/**
|
||||
* list name prefixes
|
||||
* @return name prefixes
|
||||
*/
|
||||
List<Map<String, String>> listNamePrefixes();
|
||||
}
|
||||
|
@ -39,4 +39,11 @@
|
||||
<include refid="Tigon.search" />
|
||||
</select>
|
||||
|
||||
<select id="listNamePrefixes" resultType="map">
|
||||
select
|
||||
distinct name_prefix text, name_prefix value
|
||||
from <include refid="table" />
|
||||
where name_prefix is not null
|
||||
order by name_prefix
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -5,6 +5,7 @@ import lombok.Setter;
|
||||
import me.chyxion.tigon.model.M3;
|
||||
import me.chyxion.tigon.mybatis.Table;
|
||||
import me.chyxion.tigon.mybatis.Transient;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
|
||||
/**
|
||||
* @author Donghuang <br>
|
||||
@ -14,15 +15,10 @@ import me.chyxion.tigon.mybatis.Transient;
|
||||
@Getter
|
||||
@Setter
|
||||
@Table("crm_application")
|
||||
@FieldNameConstants(prefix = "")
|
||||
public class Application extends M3<String, String> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// Column Names
|
||||
public static final String NAME = "name";
|
||||
public static final String NAME_PREFIX = "name_prefix";
|
||||
public static final String CONTENT = "content";
|
||||
public static final String OWNER = "owner";
|
||||
|
||||
// Properties
|
||||
private String name;
|
||||
private String namePrefix;
|
||||
|
@ -20,7 +20,13 @@
|
||||
<thead class="thin-border-bottom">
|
||||
<tr>
|
||||
<th>
|
||||
Name
|
||||
{{th-filter name='namePrefix'
|
||||
text='Name'
|
||||
label='Name Filter'
|
||||
options=model.namePrefixes
|
||||
value-field='value'
|
||||
text-field='text'
|
||||
}}
|
||||
</th>
|
||||
<th>
|
||||
<i class="ace-icon fa fa-sticky-note-o bigger-110 hidden-480"></i>
|
||||
@ -40,7 +46,7 @@
|
||||
<i class="ace-icon fa fa-exchange bigger-110 hidden-480"></i>
|
||||
Enabled
|
||||
</th>
|
||||
<th>
|
||||
<th style="min-width: 114px">
|
||||
<i class="ace-icon fa fa-cogs bigger-110 hidden-480"></i>
|
||||
Settings
|
||||
</th>
|
||||
|
Loading…
x
Reference in New Issue
Block a user