Update of
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person
In directory james.mmbase.org:/tmp/cvs-serv18192
Modified Files:
PersonHibernateService.java PersonService.java
Log Message:
CMSC-956 make all subscriber show correct data
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person
See also: http://www.mmbase.org/jira/browse/CMSC-956
Index: PersonHibernateService.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonHibernateService.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- PersonHibernateService.java 4 Aug 2008 08:32:05 -0000 1.19
+++ PersonHibernateService.java 5 Aug 2008 05:50:16 -0000 1.20
@@ -9,32 +9,26 @@
*/
package com.finalist.cmsc.services.community.person;
-import com.finalist.cmsc.paging.PagingStatusHolder;
-import com.finalist.cmsc.paging.PagingUtils;
-import com.finalist.cmsc.services.HibernateService;
-import com.finalist.cmsc.services.community.domain.PersonExportImportVO;
-import com.finalist.cmsc.services.community.preferences.Preference;
-import com.finalist.cmsc.services.community.preferences.PreferenceService;
-import com.finalist.cmsc.services.community.security.Authentication;
-import com.finalist.cmsc.services.community.security.AuthenticationService;
-import com.finalist.cmsc.services.community.security.Authority;
+import java.util.*;
import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;
-import org.hibernate.criterion.Property;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import com.finalist.cmsc.paging.PagingStatusHolder;
+import com.finalist.cmsc.paging.PagingUtils;
+import com.finalist.cmsc.services.HibernateService;
+import com.finalist.cmsc.services.community.domain.PersonExportImportVO;
+import com.finalist.cmsc.services.community.preferences.Preference;
+import com.finalist.cmsc.services.community.preferences.PreferenceService;
+import com.finalist.cmsc.services.community.security.Authentication;
+import com.finalist.cmsc.services.community.security.AuthenticationService;
/**
* @author Remco Bos
@@ -106,7 +100,7 @@
if (authenticationId == null) {
throw new IllegalArgumentException("authenticationId is not filled
in. ");
}
- //Create a new person and store it
+ // Create a new person and store it
Person person = new Person();
person.setFirstName(firstName);
person.setInfix(infix);
@@ -356,8 +350,36 @@
condition = String.format(query, conditions.get(name));
}
- return " "+condition;
+ return " " + condition;
}
+ @Transactional
+ public List<Person> getPersonsByAuthenticationIds(Set<Integer>
authenticationIds, String name, String email) {
+ List<Person> persons = null;
+ if (authenticationIds.size() > 0) {
+ StringBuffer stb = new StringBuffer("select distinct
person from Person person");
+ stb.append(" where person.authenticationId in (");
+ for (int authId : authenticationIds) {
+ stb.append(authId + ",");
+ }
+ stb.delete(stb.length() - 1, stb.length());
+ stb.append(")");
+ if (StringUtils.isNotBlank(email)) {
+ stb.append(" and person.email like '%" + email
+ "%'");
+ }
+ if (StringUtils.isNotBlank(name)) {
+ String[] names = name.split(" ");
+ if (names.length >= 2) {
+ stb.append(" and (person.firstName like
'%" + names[0] + "%' or person.firstName like '%" + name + "%')"
+ + " and
(person.lastName like '%" + names[1] + "%' or person.lastName like '%" + name +
"%')");
+ } else if (names.length == 1) {
+ stb.append(" and (person.firstName like
'%" + names[0] + "%')");
+ }
+ }
+ Query q = getSession().createQuery(stb.toString());
+ persons = q.list();
+ }
+ return persons;
+ }
}
Index: PersonService.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonService.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- PersonService.java 31 Jul 2008 02:29:28 -0000 1.12
+++ PersonService.java 5 Aug 2008 05:50:16 -0000 1.13
@@ -11,6 +11,7 @@
import java.util.List;
import java.util.Map;
+import java.util.Set;
import com.finalist.cmsc.paging.PagingStatusHolder;
@@ -80,4 +81,6 @@
public List<Person> getAssociatedPersons(Map conditions);
public int getAssociatedPersonsNum(Map<String,String> map);
+
+ public List<Person> getPersonsByAuthenticationIds(Set<Integer>
authenticationIds, String name, String email);
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs