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