Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
In directory 
james.mmbase.org:/tmp/cvs-serv12368/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl

Modified Files:
        NewsLetterStatisticCAOImpl.java 
        NewsletterPublicationCAOImpl.java 
        NewsletterSubscriptionCAOImpl.java NewsletterCAOImpl.java 
Log Message:
CMSC-710 function implement.


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
See also: http://www.mmbase.org/jira/browse/CMSC-710


Index: NewsLetterStatisticCAOImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsLetterStatisticCAOImpl.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- NewsLetterStatisticCAOImpl.java     3 Jul 2008 20:55:15 -0000       1.14
+++ NewsLetterStatisticCAOImpl.java     18 Jul 2008 08:31:56 -0000      1.15
@@ -228,13 +228,17 @@
                logNode.setDateValue("logdate", new Date());
                if (handle.equals(HANDLE.ACTIVE)) {
                        logNode.setIntValue("subscribe", 1);
-               } else if (handle.equals(HANDLE.INACTIVE)) {
+      }
+      else if (handle.equals(HANDLE.INACTIVE)) {
                        logNode.setIntValue("unsubscribe", 1);
-               } else if (handle.equals(HANDLE.REMOVE)) {
+      }
+      else if (handle.equals(HANDLE.REMOVE)) {
                        logNode.setIntValue("removed", 1);
-               } else if (handle.equals(HANDLE.BOUNCE)) {
+      }
+      else if (handle.equals(HANDLE.BOUNCE)) {
                        logNode.setIntValue("bounches", 1);
-               } else if (handle.equals(HANDLE.POST)) {
+      }
+      else if (handle.equals(HANDLE.POST)) {
                        logNode.setIntValue("post", 1);
                }
                logNode.commit();


Index: NewsletterPublicationCAOImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterPublicationCAOImpl.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- NewsletterPublicationCAOImpl.java   7 Jul 2008 04:03:43 -0000       1.13
+++ NewsletterPublicationCAOImpl.java   18 Jul 2008 08:31:56 -0000      1.14
@@ -1,57 +1,26 @@
 package com.finalist.newsletter.cao.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.mmbase.bridge.Cloud;
-import org.mmbase.bridge.Field;
-import org.mmbase.bridge.Node;
-import org.mmbase.bridge.NodeList;
-import org.mmbase.bridge.NodeManager;
-import org.mmbase.bridge.NodeQuery;
-import org.mmbase.bridge.util.SearchUtil;
-import org.mmbase.storage.search.Constraint;
-import org.mmbase.storage.search.FieldCompareConstraint;
-import org.mmbase.storage.search.Step;
-import org.mmbase.storage.search.StepField;
-import org.mmbase.util.logging.Logger;
-import org.mmbase.util.logging.Logging;
-
-import com.finalist.cmsc.mmbase.PropertiesUtil;
 import com.finalist.cmsc.navigation.NavigationUtil;
-import com.finalist.newsletter.NewsletterSendFailException;
-import com.finalist.newsletter.ApplicationContextFactory;
 import com.finalist.newsletter.cao.NewsletterPublicationCAO;
 import com.finalist.newsletter.domain.Newsletter;
 import com.finalist.newsletter.domain.Publication;
 import com.finalist.newsletter.domain.Term;
-import com.finalist.newsletter.util.POConvertUtils;
 import com.finalist.newsletter.util.NewsletterUtil;
-
-import com.finalist.portlets.newsletter.NewsletterContentPortlet;
-import org.apache.commons.lang.StringUtils;
+import com.finalist.newsletter.util.POConvertUtils;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.mmbase.bridge.*;
 import org.mmbase.bridge.util.SearchUtil;
 import org.mmbase.storage.search.Constraint;
+import org.mmbase.storage.search.FieldCompareConstraint;
 import org.mmbase.storage.search.Step;
+import org.mmbase.storage.search.StepField;
 import org.mmbase.storage.search.implementation.BasicCompositeConstraint;
 import 
org.mmbase.storage.search.implementation.BasicFieldValueBetweenConstraint;
 import org.mmbase.storage.search.implementation.BasicFieldValueConstraint;
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.HashSet;
+import java.util.*;
 
 
 
@@ -114,6 +83,10 @@
       return pub;
    }
 
+   public Node getPublicationNode(int number) {
+      return null;
+   }
+
    public String getPublicationURL(int publciationId) {
 
       Node publicationNode = cloud.getNode(publciationId);


Index: NewsletterSubscriptionCAOImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterSubscriptionCAOImpl.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- NewsletterSubscriptionCAOImpl.java  7 Jul 2008 04:03:43 -0000       1.21
+++ NewsletterSubscriptionCAOImpl.java  18 Jul 2008 08:31:56 -0000      1.22
@@ -1,6 +1,5 @@
 package com.finalist.newsletter.cao.impl;
 
-import com.finalist.cmsc.services.community.security.AuthenticationService;
 import com.finalist.newsletter.cao.NewsletterSubscriptionCAO;
 import com.finalist.newsletter.cao.AbstractCAO;
 import com.finalist.newsletter.domain.Newsletter;
@@ -13,11 +12,7 @@
 import org.mmbase.bridge.*;
 import org.mmbase.bridge.util.SearchUtil;
 import org.mmbase.storage.search.Constraint;
-import org.mmbase.storage.search.FieldCompareConstraint;
 import org.mmbase.storage.search.Step;
-import org.mmbase.storage.search.StepField;
-import org.mmbase.storage.search.implementation.BasicCompositeConstraint;
-import org.mmbase.storage.search.implementation.BasicFieldValueConstraint;
 
 import static com.finalist.newsletter.util.NewsletterSubscriptionUtil.*;
 import com.finalist.newsletter.util.DateUtil;
@@ -89,6 +84,24 @@
 
    }
 
+   public void pause(int subscriptionId) {
+      Node record = cloud.getNode(subscriptionId);
+      record.setStringValue("status", "PAUSE");
+      record.commit();
+   }
+
+   public Set<Node> getRecordByNewsletterAndName(int newsletterId, String 
termName) {
+      return null;
+   }
+
+   public Set<Node> getNewslettersByScriptionRecord(int authenticationId) {
+      return null;
+   }
+
+   public Set<Node> getTermsByScriptionRecord(int authenticationId) {
+      return null;
+   }
+
    public void modifySubscriptionFormat(Subscription subscription) {
       int recordId = subscription.getId();
       Node record = cloud.getNode(recordId);
@@ -264,65 +277,34 @@
       return list;
    }
    
-   public Set<Node> getRecordByNewsletterAndName(int newsletterId,String 
termName){
-          NodeManager manager = cloud.getNodeManager("term");
-          Node newsletterNode = cloud.getNode(newsletterId);      
-          NodeQuery nodeQuery = 
SearchUtil.createRelatedNodeListQuery(newsletterNode, "term", "posrel");
-          
-          if(StringUtils.isNotBlank(termName)){
-                  Step step = nodeQuery.getNodeStep();
-                  StepField fieldName = nodeQuery.addField(step, 
manager.getField("name"));
-                  BasicFieldValueConstraint constraintTitle = new 
BasicFieldValueConstraint(fieldName, "%" + termName + "%");
-                  constraintTitle.setOperator(FieldCompareConstraint.LIKE);
-                  BasicCompositeConstraint constraints = new 
BasicCompositeConstraint(2);
-                  constraints.addChild(constraintTitle);
-                  nodeQuery.setConstraint(constraints);
+   public void updateLastBounce(int subscriptionId) {
+      //todo test.
+      Node subscription = getSubscriptionNodeById(subscriptionId);
+      
subscription.setIntValue("count_bounces",subscription.getIntValue("count_bounces"));
+      subscription.setDateValue("last_bounce",new 
Date(System.currentTimeMillis()));
+      subscription.commit();
           }
-          List<Node> list = nodeQuery.getList();          
-          Set results = new HashSet<Node>();      
-          List<Node> recordList = null;
           
-          for (Node termNode : list){
-                  recordList = termNode.getRelatedNodes("subscriptionrecord", 
"termed", "source");
-                  for(Node recordNode :recordList){
-                          if(recordNode!=null){
-                                  results.add(recordNode);
-                                  System.out.println(recordNode.toString());
-                          }
-                  }
-          }
-          return results;
+   private Node getSubscriptionNodeById(int subscriptionId) {
+      return cloud.getNode(subscriptionId);
    }
    
-   public Set<Node> getNewslettersByScriptionRecord(int authenticationId){
-          NodeManager recordManager = 
cloud.getNodeManager("subscriptionrecord");
-          Query query = recordManager.createQuery();
-          SearchUtil.addEqualConstraint(query, 
recordManager.getField("subscriber"), Integer.toString(authenticationId));
-          List<Node> subscriptions = query.getList();
-          Set<Node> newsletters = new HashSet<Node>(); 
-          for(Node subscription :subscriptions){
-                  List<Node> tmpNewsletters = 
subscription.getRelatedNodes("newsletter", "newslettered", "source");
-                  for(Node newsletter : tmpNewsletters){
-                          if(newsletter != null)
-                                  newsletters.add(newsletter);
-                  }
+   public Node getSubscriptionNode(int newsletterId, int userId) {
+      Node subscriptionNode = null;
+
+      List<Node> records = 
cloud.getNode(newsletterId).getRelatedNodes("subscriptionrecord");
+      for (Node record : records) {
+         if 
(record.getStringValue("subscriber").equals(Integer.toString(userId))) {
+            subscriptionNode = record;
+            break;
           }
-          return newsletters;
    }
    
-   public Set<Node> getTermsByScriptionRecord(int authenticationId){
-          NodeManager recordManager = 
cloud.getNodeManager("subscriptionrecord");
-          Query query = recordManager.createQuery();
-          SearchUtil.addEqualConstraint(query, 
recordManager.getField("subscriber"), Integer.toString(authenticationId));
-          List<Node> subscriptions = query.getList();
-          Set<Node> terms = new HashSet<Node>();
-          for(Node subscription : subscriptions){
-                  List<Node> tmpTerms = subscription.getRelatedNodes("term", 
"termed", "destination");
-                  for(Node term :tmpTerms){
-                          if(term != null)
-                                  terms.add(term);
-                  }
+      if (null == subscriptionNode) {
+         log.debug("Get subscription failed,user " + userId + " may not 
subscripbe " + newsletterId);
+         return null;
           }
-          return terms;
+
+      return subscriptionNode;
    }
 }


Index: NewsletterCAOImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterCAOImpl.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- NewsletterCAOImpl.java      7 Jul 2008 04:03:43 -0000       1.14
+++ NewsletterCAOImpl.java      18 Jul 2008 08:31:56 -0000      1.15
@@ -1,31 +1,18 @@
 package com.finalist.newsletter.cao.impl;
 
-import com.finalist.newsletter.cao.NewsletterCAO;
 import com.finalist.newsletter.cao.AbstractCAO;
+import com.finalist.newsletter.cao.NewsletterCAO;
 import com.finalist.newsletter.cao.util.NlUtil;
 import com.finalist.newsletter.domain.Newsletter;
 import com.finalist.newsletter.domain.Term;
+import org.apache.commons.lang.StringUtils;
 import org.mmbase.bridge.*;
 import org.mmbase.bridge.util.SearchUtil;
-import org.mmbase.storage.search.AggregatedField;
-import org.mmbase.storage.search.FieldCompareConstraint;
+import org.mmbase.storage.search.Constraint;
 import org.mmbase.storage.search.RelationStep;
 import org.mmbase.storage.search.Step;
-import org.mmbase.storage.search.ResultBuilder;
-import org.mmbase.storage.search.Constraint;
-import org.mmbase.storage.search.StepField;
-import org.mmbase.storage.search.implementation.BasicAggregatedField;
-import org.mmbase.storage.search.implementation.BasicCompositeConstraint;
-import org.mmbase.storage.search.implementation.BasicFieldValueConstraint;
-import org.mmbase.storage.search.implementation.BasicSearchQuery;
-import org.mmbase.storage.search.implementation.database.BasicQueryHandler;
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
-import org.mmbase.module.core.MMObjectBuilder;
-import org.mmbase.module.core.MMBase;
-import org.mmbase.module.corebuilders.FieldDefs;
-import org.mmbase.core.CoreField;
-import org.apache.commons.lang.StringUtils;
 
 import java.util.HashSet;
 import java.util.Iterator;
@@ -76,6 +63,10 @@
       }
    }
 
+   public Node getNewsletterNodeById(int newsletterId) {
+      return cloud.getNode(newsletterId);
+   }
+
    public Newsletter getNewsletterById(int id) {
       Node newsletterNode = cloud.getNode(id);
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to