Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl
In directory
james.mmbase.org:/tmp/cvs-serv23447/src/java/com/finalist/newsletter/services/impl
Modified Files:
NewsletterPublicationServiceImpl.java
NewsletterServiceImpl.java
NewsletterSubscriptionServicesImpl.java
Added Files:
NewsletterSubscriptionHibernateService.java
Log Message:
cmsc-979,990 newsletter mangement (block by cmsc-217)
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl
NewsletterSubscriptionHibernateService.java is new
Index: NewsletterPublicationServiceImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterPublicationServiceImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- NewsletterPublicationServiceImpl.java 21 Jul 2008 12:52:40 -0000
1.19
+++ NewsletterPublicationServiceImpl.java 24 Jul 2008 09:04:16 -0000
1.20
@@ -23,7 +23,7 @@
private NewsletterSubscriptionCAO subscriptionCAO;
private NewsLetterStatisticCAO statisticCAO;
- //CAO setters
+ // CAO setters
public void setPublisher(NewsletterPublisher publisher) {
this.publisher = publisher;
@@ -41,7 +41,7 @@
this.statisticCAO = statisticCAO;
}
- //service method.
+ // service method.
public STATUS getStatus(int publicationId) {
return publicationCAO.getPublication(publicationId).getStatus();
}
@@ -68,14 +68,15 @@
/**
* deliver specific publication.
*
- * @param publicationId The id of the publication to be sent out
+ * @param publicationId
+ * The id of the publication to be sent out
*/
- public Map<String,List<String>> deliver(int publicationId) {
+ public Map<String, List<String>> deliver(int publicationId) {
int newsletterId = publicationCAO.getNewsletterId(publicationId);
List<String> sendSuccess = new ArrayList<String>();
- List<String> sendFails = new ArrayList<String>() ;
- Map<String,List<String>> sendResults = new
HashMap<String,List<String>>();
+ List<String> sendFails = new ArrayList<String>();
+ Map<String, List<String>> sendResults = new HashMap<String,
List<String>>();
List<Subscription> subscriptions =
subscriptionCAO.getSubscription(newsletterId);
log.debug("deliver publication " + publicationId + " which has " +
subscriptions.size() + " subscriptions");
@@ -89,8 +90,7 @@
try {
publisher.deliver(publication, subscription);
sendSuccess.add(subscription.getSubscriberId());
- }
- catch (NewsletterSendFailException e) {
+ } catch (NewsletterSendFailException e) {
sendFails.add(subscription.getSubscriberId());
log.error(e.getMessage());
}
@@ -124,7 +124,7 @@
publisher.deliver(publication, subscription);
}
- public Set<Publication> getPublicationByNewsletter(int newsletterId){
+ public Set<Publication> getPublicationByNewsletter(int newsletterId) {
Set<Publication> result = new HashSet<Publication>();
for (Publication publication :
publicationCAO.getPublicationsByNewsletter(newsletterId, null)) {
@@ -133,14 +133,25 @@
return result;
}
- public Set<Publication> searchPublication(int id , String title, String
subject, Date startDate, Date endDate, int pagesize, int offset){
- Set<Publication> result = new HashSet<Publication>();
- result = publicationCAO.getPublicationsByNewsletterAndPeriod(id
,title, subject, startDate, endDate, pagesize, offset);
+ public List<Publication> searchPublication(int id, String title, String
subject, Date startDate, Date endDate, int pagesize, int offset,
+ String order, String direction) {
+ List<Publication> result = new ArrayList<Publication>();
+ result =
publicationCAO.getPublicationsByNewsletterAndPeriod(id, title, subject,
startDate, endDate, pagesize, offset, order, direction);
+
return result;
}
- public int searchPublicationCountForEdit(int id, String title, String
subject, Date startDate, Date endDate){
+ public int searchPublicationCountForEdit(int id, String title, String
subject, Date startDate, Date endDate) {
int tmpResultCount = publicationCAO.getPublicationCountForEdit(id,
title, subject, startDate, endDate);
return tmpResultCount;
}
+
+ public List<Publication> searchPublicationStatistics(int newsletterId,
String title, String subject, Date startTime, Date endTime, int pagesize,
+ int offset, String order, String direction) {
+ List<Publication> result = new ArrayList<Publication>();
+ result =
publicationCAO.getPublicationsByNewsletterAndPeriod(newsletterId, title,
subject, startTime, endTime, pagesize, offset, order,
+ direction);
+ return result;
+ }
+
}
Index: NewsletterServiceImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterServiceImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- NewsletterServiceImpl.java 18 Jul 2008 08:31:57 -0000 1.7
+++ NewsletterServiceImpl.java 24 Jul 2008 09:04:16 -0000 1.8
@@ -72,7 +72,7 @@
public Newsletter getNewsletterBySubscription(int id) {
int newsletterId = newsletterCAO.getNewsletterIdBySubscription(id);
- if(newsletterId < 1) {
+ if (newsletterId < 1) {
return null;
}
return newsletterCAO.getNewsletterById(newsletterId);
@@ -87,36 +87,33 @@
if (sc && tc) {
return getAllNewsletterBySubscriberAndTitle(subscriber, title);
- }
- else if (sc && !tc) {
+ } else if (sc && !tc) {
return getAllNewsletterBySubscriber(subscriber);
- }
- else if (tc) {
+ } else if (tc) {
return getNewslettersByTitle(title);
- }
- else {
+ } else {
return getAllNewsletter();
}
}
- public void processBouncesOfPublication(String publicationId,String userId)
{
- //todo test.
+ public void processBouncesOfPublication(String publicationId, String
userId) {
+ // todo test.
int pId = Integer.parseInt(publicationId);
int uId = Integer.parseInt(userId);
int newsletterId = publicationCAO.getNewsletterId(pId);
Node newsletterNode = newsletterCAO.getNewsletterNodeById(newsletterId);
- Node subscriptionNode =
subscriptionCAO.getSubscriptionNode(newsletterId,uId);
+ Node subscriptionNode =
subscriptionCAO.getSubscriptionNode(newsletterId, uId);
int bouncesCount = subscriptionNode.getIntValue("bounces");
int maxAllowedBonce = newsletterNode.getIntValue("max_bounces");
- if(bouncesCount > maxAllowedBonce){
+ if (bouncesCount > maxAllowedBonce) {
subscriptionCAO.pause(subscriptionNode.getNumber());
}
- statisticCAO.logPubliction(uId,newsletterId,
StatisticResult.HANDLE.BOUNCE);
+ statisticCAO.logPubliction(uId, newsletterId,
StatisticResult.HANDLE.BOUNCE);
subscriptionCAO.updateLastBounce(subscriptionNode.getNumber());
}
@@ -128,11 +125,14 @@
return null;
}
- public Set<Term> getNewsletterTermsByName(int newsletterId, String
name, int pagesize, int offset) {
- Set<Term> terms =
newsletterCAO.getNewsletterTermsByName(newsletterId, name, pagesize, offset);
+ public List<Term> getNewsletterTermsByName(int newsletterId, String
name, int pagesize, int offset, String order, String direction) {
+ List<Term> terms =
newsletterCAO.getNewsletterTermsByName(newsletterId, name, pagesize, offset,
order, direction);
return terms;
}
-
+ public int getNewsletterTermsCountByName(int newsletterId, String
tmpName) {
+ int resultCount =
newsletterCAO.getNewsletterTermsCountByName(newsletterId, tmpName);
+ return resultCount;
+ }
}
Index: NewsletterSubscriptionServicesImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterSubscriptionServicesImpl.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- NewsletterSubscriptionServicesImpl.java 21 Jul 2008 09:48:02 -0000
1.20
+++ NewsletterSubscriptionServicesImpl.java 24 Jul 2008 09:04:16 -0000
1.21
@@ -68,15 +68,13 @@
subscription = new Subscription();
subscription.setTerms(newsletter.getTerms());
- }
- else {
+ } else {
Set<Term> newsletterTerms = newsletter.getTerms();
Set<Term> subscriptionTerms = subscription.getTerms();
for (Term term : newsletterTerms) {
if (subscriptionTerms.size() == 0) {
subscriptionTerms.addAll(newsletterTerms);
- }
- else if (!subscriptionTerms.contains(term)) {
+ } else if (!subscriptionTerms.contains(term)) {
subscriptionTerms.add(term);
}
}
@@ -105,15 +103,13 @@
if (STATUS.ACTIVE.equals(subscription.getStatus())) {
subscription.setStatus(STATUS.INACTIVE);
- }
- else {
+ } else {
subscription.setStatus(STATUS.ACTIVE);
}
subscriptionCAO.modifySubscriptionStauts(subscription);
if (STATUS.ACTIVE.equals(subscription.getStatus())) {
statisticCAO.logPubliction(userId, newsletterId, HANDLE.ACTIVE);
- }
- else {
+ } else {
statisticCAO.logPubliction(userId, newsletterId, HANDLE.INACTIVE);
}
}
@@ -129,7 +125,6 @@
subscriptionCAO.updateSubscription(subscription);
}
-
public void pause(String subscriptionId, String resumeDate) {
log.debug(String.format("Pasue subscription %s till %s", subscriptionId,
resumeDate));
@@ -144,14 +139,12 @@
subscriptionCAO.updateSubscription(subscription);
}
-
public boolean hasSubscription(int userId) {
List<Node> list = subscriptionCAO.querySubcriptionByUser(userId);
if (0 == list.size()) {
return false;
- }
- else {
+ } else {
return true;
}
}
@@ -191,8 +184,7 @@
if (null == subscription) {
subscriptionCAO.createSubscription(userId, newsletterId);
- }
- else {
+ } else {
subscription.setStatus(STATUS.valueOf(status));
subscriptionCAO.modifySubscriptionStauts(subscription);
}
@@ -267,7 +259,6 @@
return subscriptions;
}
-
public List<Subscription> getSubscriptionsByNewsletterId(String i) {
log.debug("Get all subscriptions of newsletter " + i);
return subscriptionCAO.getSubscription(Integer.parseInt(i));
@@ -361,35 +352,56 @@
subscriptionCAO.createSubscription(userId, newsletterId);
}
- public Set<Integer> getRecordIdByNewsletterAndName(int newsletterId, String
termName){
-
+ public Set<Integer> getRecordIdByNewsletterAndName(int newsletterId,
String termName) {
Set<Node> subscriptions =
subscriptionCAO.getRecordByNewsletterAndName(newsletterId, termName);
Set<Integer> authenticationIds = new HashSet<Integer>();
- for(Node subscription : subscriptions){
+ for (Node subscription : subscriptions) {
authenticationIds.add(subscription.getIntValue("subscriber"));
}
return authenticationIds;
}
- public String getNewsletterNameList(int authenticationId){
+ public String getNewsletterNameList(int authenticationId) {
Set<Node> newsletterList =
subscriptionCAO.getNewslettersByScriptionRecord(authenticationId);
String tmpTitle = "";
- for(Node newsletterNode : newsletterList){
-
if(StringUtils.isNotBlank(newsletterNode.getStringValue("title"))){
+ for (Node newsletterNode : newsletterList) {
+ if
(StringUtils.isNotBlank(newsletterNode.getStringValue("title"))) {
tmpTitle +=
newsletterNode.getStringValue("title") + ", ";
}
}
- return tmpTitle.substring(0, tmpTitle.length()-2);
+ if (tmpTitle.length() > 0) {
+ return tmpTitle.substring(0, tmpTitle.length() - 2);
+ } else {
+ return tmpTitle;
}
- public String getTermsNameList(int authenticationId){
+ }
+
+ public String getTermsNameList(int authenticationId) {
Set<Node> termList =
subscriptionCAO.getTermsByScriptionRecord(authenticationId);
String tmpNames = "";
- for(Node termNode : termList){
-
if(StringUtils.isNotBlank(termNode.getStringValue("name"))){
+ for (Node termNode : termList) {
+ if
(StringUtils.isNotBlank(termNode.getStringValue("name"))) {
tmpNames += termNode.getStringValue("name") +
", ";
}
}
- return tmpNames.substring(0, tmpNames.length()-2);
+ if (tmpNames.length() > 0) {
+ return tmpNames.substring(0, tmpNames.length() - 2);
+ } else {
+ return tmpNames;
}
+
+ }
+
+ public Set<Long> getAuthenticationByTerms(int newsletterId, String
terms) {
+ // TODO Auto-generated method stub
+ List<Node> subscriptions =
subscriptionCAO.getSubscriptionsByTerms(newsletterId, terms);
+
+ Set<Long> subscirberIds = new HashSet<Long>();
+ for (Node subscription : subscriptions) {
+ subscirberIds.add(new
Long(subscription.getIntValue("subscriber")));
+ }
+ return subscirberIds;
+ }
+
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs