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