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

Reply via email to