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

Modified Files:
        NewsLetterStatisticCAOImpl.java 
        NewsletterSubscriptionCAOImpl.java 
Log Message:
CMSC-725 service classes,some class refactory.


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-725


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.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- NewsLetterStatisticCAOImpl.java     11 Apr 2008 07:11:25 -0000      1.2
+++ NewsLetterStatisticCAOImpl.java     15 Apr 2008 06:18:33 -0000      1.3
@@ -1,12 +1,125 @@
 package com.finalist.newsletter.cao.impl;
 
+import java.util.Date;
+import java.util.List;
+
+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.Query;
+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.storage.search.implementation.BasicFieldValueDateConstraint;
+import org.mmbase.storage.search.implementation.BasicStep;
+
 import com.finalist.newsletter.cao.NewsLetterStatisticCAO;
-import org.mmbase.storage.search.implementation.BasicSearchQuery;
-import org.mmbase.storage.search.SearchQuery;
+
 
 public class NewsLetterStatisticCAOImpl implements NewsLetterStatisticCAO {
 
-   public void logPubliction(int id, int i) {
+       private Cloud cloud;
+
+
+   public NewsLetterStatisticCAOImpl() {
+   }
+   
+   public NewsLetterStatisticCAOImpl(Cloud cloud) {
+      this.cloud = cloud;
+   }
+
+
+
+   public NodeList getAllRecords() {
+               Query query = cloud.createQuery();
+               query.addStep(cloud.getNodeManager("newsletterdailylog"));
+               NodeList list = query.getList();
+
+               return list;
+       }
+
+       public NodeList getRecordsByNewsletter(int newsletter) {
+               Query query = cloud.createQuery();
+               NodeManager manager = 
cloud.getNodeManager("newsletterdailylog");
 
+               Step step1 = query.addStep(manager);
+               StepField field1 = query.addField(step1, 
manager.getField("newsletter"));
+               query.addField(step1, manager.getField("subscribe"));
+               query.addField(step1, manager.getField("bounches"));
+               query.addField(step1, manager.getField("unsubscribe"));
+               query.addField(step1, manager.getField("removed"));
+               query.addField(step1, manager.getField("logdate"));
+               BasicFieldValueConstraint constraint = new 
BasicFieldValueConstraint(
+                               field1, newsletter);
+               query.setConstraint(constraint);
+               NodeList list = query.getList();
+               return list;
    }
+
+       public NodeList getAllRecordsByPeriod(Date start, Date end) {
+               Query query = cloud.createQuery();
+               NodeManager manager = 
cloud.getNodeManager("newsletterdailylog");
+
+               /*
+                * 
¶Ônewsletterdailylog±íµÄÈÕÆÚ×ֶνøÐÐÔ¼Êø£¬²¢È¡³öËùÓÐÐÅÏ¢
 ÏëÒª´ïµ½µÄЧ¹û£º select * from
+                * newsletterdailylog where logdate between date1 and date2;
+                */
+               Step step1 = query.addStep(manager);
+               query.addField(step1, manager.getField("subscribe"));
+               query.addField(step1, manager.getField("bounches"));
+               query.addField(step1, manager.getField("unsubscribe"));
+               query.addField(step1, manager.getField("removed"));
+               query.addField(step1, manager.getField("newsletter"));
+               StepField field = query.addField(step1, 
manager.getField("logdate"));
+               BasicFieldValueBetweenConstraint constraint = new 
BasicFieldValueBetweenConstraint(
+                               field, start, end);
+
+               /*
+                * BasicFieldValueDateConstraint constraint = new
+                * 
BasicFieldValueDateConstraint(field,start.getTime(),BasicFieldValueDateConstraint.MILLISECOND);
+                */
+               query.setConstraint(constraint);
+               NodeList list = query.getList();
+               return list;
+       }
+
+       public NodeList getRecordsByNewsletterAndPeriod(Date start, Date end,
+                       int newsletter) {
+               Query query = cloud.createQuery();
+               NodeManager manager = 
cloud.getNodeManager("newsletterdailylog");
+      
+      Step step1 = query.addStep(manager);
+               query.addField(step1, manager.getField("subscribe"));
+               query.addField(step1, manager.getField("bounches"));
+               query.addField(step1, manager.getField("unsubscribe"));
+               query.addField(step1, manager.getField("removed"));
+               BasicCompositeConstraint constraints = new 
BasicCompositeConstraint(2);
+               StepField field = query.addField(step1, 
manager.getField("logdate"));
+               BasicFieldValueBetweenConstraint constraint1 = new 
BasicFieldValueBetweenConstraint(
+                               field, start, end);
+               constraints.addChild(constraint1);
+               StepField field2 = query.addField(step1, 
manager.getField("newsletter"));
+               BasicFieldValueConstraint constraint2 = new 
BasicFieldValueConstraint(
+                               field2, newsletter);
+               constraints.addChild(constraint2);
+
+               query.setConstraint(constraints);
+
+               NodeList list = query.getList();
+
+               return list;
+       }
+
+   public void logPubliction(int newsletterId, int post) {
+      NodeManager logManager = cloud.getNodeManager("newsletterdailylog");
+      Node logNode = logManager.createNode();
+      logNode.setIntValue("newsletter",newsletterId);
+      logNode.setIntValue("post",post);
+      logNode.commit();
+   }
+
 }


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.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- NewsletterSubscriptionCAOImpl.java  11 Apr 2008 07:11:25 -0000      1.6
+++ NewsletterSubscriptionCAOImpl.java  15 Apr 2008 06:18:33 -0000      1.7
@@ -1,6 +1,5 @@
 package com.finalist.newsletter.cao.impl;
 
-import com.finalist.cmsc.services.community.person.Person;
 import com.finalist.newsletter.cao.NewsletterSubscriptionCAO;
 import com.finalist.newsletter.cao.util.NewsletterSubscriptionUtil;
 import com.finalist.newsletter.domain.Newsletter;
@@ -10,8 +9,6 @@
 import org.mmbase.bridge.util.SearchUtil;
 import org.mmbase.storage.search.Constraint;
 import org.mmbase.storage.search.Step;
-import org.mmbase.module.corebuilders.InsRel;
-import org.apache.commons.beanutils.ConvertUtils;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -53,15 +50,20 @@
    }
 
    public List<Subscription> getSubscription(int newsletterId) {
-      NodeManager subscriptionManager = 
cloud.getNodeManager("subscriptionrecord");
-      NodeManager newsletterManager = cloud.getNodeManager("newsletter");
 
-      NodeQuery query = cloud.createNodeQuery();
-      query.addStep(subscriptionManager);
-      query.addRelationStep(newsletterManager);
-      
SearchUtil.addEqualConstraint(query,newsletterManager.getField("number"),newsletterId);
+      Node letterNode = cloud.getNode(newsletterId);
+      List<Node> records = letterNode.getRelatedNodes("subscriptionrecord");
+
+      Iterator<Node> it = records.iterator();
+      while (it.hasNext()) {
+         Node node = it.next();
+         if (!"active".equals(node.getStringValue("status"))) {
+            it.remove();
+         }
+      }
+
+      return POConvertUtils.convertSubscriptions(records);
 
-      return POConvertUtils.convertSubscriptions(query.getList());
    }
 
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to