KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > inquiry > action > InquiryAction


1 package com.dotmarketing.cms.inquiry.action;
2
3 import java.util.Date JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9
10 import org.apache.struts.Globals;
11 import org.apache.struts.action.ActionErrors;
12 import org.apache.struts.action.ActionForm;
13 import org.apache.struts.action.ActionForward;
14 import org.apache.struts.action.ActionMapping;
15 import org.apache.struts.action.ActionMessage;
16 import org.apache.struts.action.ActionMessages;
17 import org.apache.struts.actions.DispatchAction;
18
19 import com.dotmarketing.beans.UserProxy;
20 import com.dotmarketing.cms.factories.PublicAddressFactory;
21 import com.dotmarketing.cms.factories.PublicCompanyFactory;
22 import com.dotmarketing.cms.factories.PublicEncryptionFactory;
23 import com.dotmarketing.cms.factories.PublicUserFactory;
24 import com.dotmarketing.cms.inquiry.struts.InquiryForm;
25 import com.dotmarketing.factories.ClickstreamFactory;
26 import com.dotmarketing.factories.InodeFactory;
27 import com.dotmarketing.factories.UserProxyFactory;
28 import com.dotmarketing.portlets.categories.factories.CategoryFactory;
29 import com.dotmarketing.portlets.categories.model.Category;
30 import com.dotmarketing.portlets.user.factories.UserCommentsFactory;
31 import com.dotmarketing.portlets.user.model.UserComment;
32 import com.dotmarketing.util.WebKeys;
33 import com.liferay.portal.ejb.UserLocalManagerUtil;
34 import com.liferay.portal.model.Address;
35 import com.liferay.portal.model.Company;
36 import com.liferay.portal.model.User;
37
38 public class InquiryAction extends DispatchAction {
39     public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
40             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
41         InquiryForm form = (InquiryForm) lf;
42         User u = (User) request.getSession().getAttribute(WebKeys.CMS_USER);
43
44
45         if (u != null) {
46
47             List JavaDoc adds = PublicAddressFactory.getAddressesByUserId(u.getUserId());
48             User user = UserLocalManagerUtil.getUserById(u.getUserId());
49
50             form.setFirstName(user.getFirstName());
51             form.setLastName(user.getLastName());
52             form.setUserName(user.getEmailAddress());
53             form.setMiddleName(u.getMiddleName());
54
55
56             if (adds != null && adds.size() > 0) {
57                 Address a = (Address) adds.get(0);
58                 form.setAddress1(a.getStreet1());
59                 form.setAddress2(a.getStreet2());
60                 form.setCity(a.getCity());
61                 form.setState(a.getState());
62                 form.setCountry(a.getCountry());
63                 form.setPhone(a.getPhone());
64                 form.setZip(a.getZip());
65
66             }
67             UserProxy up = UserProxyFactory.getUserProxy(user);
68             List JavaDoc categories = InodeFactory.getChildrenClass(up, Category.class);
69             Iterator JavaDoc i = categories.iterator();
70             StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
71
72             while (i.hasNext()) {
73                 Category cat = (Category) i.next();
74                 sb.append("," + cat.getInode());
75             }
76
77             form.setCategories(sb.toString());
78
79         }
80
81         CategoryFactory.AddUserCategoriesToRequest(request);
82
83         ActionForward af = (mapping.findForward("inquiryPage"));
84
85         return af;
86
87     }
88
89     public ActionForward inquiry(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
90             throws Exception JavaDoc {
91         InquiryForm form = (InquiryForm) lf;
92         ActionErrors ae = form.validate(mapping, request);
93         CategoryFactory.AddUserCategoriesToRequest(request);
94         if (ae != null && ae.size() > 0) {
95             saveMessages(request, ae);
96             return mapping.getInputForward();
97
98         }
99
100         Date JavaDoc today = new Date JavaDoc();
101         User user = PublicUserFactory.getUserByEmail(form.getUserName());
102
103         // if the user is new, let's create a new account
104
if (user.isNew()) {
105
106             //build us a new user
107
Company company = PublicCompanyFactory.getDefaultCompany();
108             user.setFirstName(form.getFirstName());
109             user.setMiddleName(form.getMiddleName());
110             user.setLastName(form.getLastName());
111             user.setActive(true);
112             user.setCreateDate(today);
113             user.setEmailAddress(form.getUserName());
114             user.setCompanyId(company.getCompanyId());
115             user.setLastLoginIP(request.getRemoteAddr());
116             user.setLastLoginDate(today);
117
118             user.setLoginIP(request.getRemoteAddr());
119             user.setLoginDate(today);
120
121             user.setBirthday(today);
122             String JavaDoc pass = PublicEncryptionFactory.getRandomPassword();
123             form.setPassword(pass);
124             user.setPassword(PublicEncryptionFactory.digestString(pass));
125             user.setPasswordEncrypted(true);
126             user.setGreeting("Welcome, " + user.getFullName() + "!");
127
128             //set defaults
129
User defaultUser = PublicUserFactory.getDefaultUser();
130
131             user.setLanguageId(defaultUser.getLanguageId());
132             user.setTimeZoneId(defaultUser.getTimeZoneId());
133             user.setSkinId(defaultUser.getSkinId());
134             user.setDottedSkins(defaultUser.isDottedSkins());
135             user.setRoundedSkins(defaultUser.isRoundedSkins());
136
137             user.setResolution(defaultUser.getResolution());
138             user.setRefreshRate(defaultUser.getRefreshRate());
139             user.setLayoutIds("");
140
141             PublicUserFactory.save(user);
142
143             //save the address
144
Address a = PublicAddressFactory.getInstance();
145
146             a.setUserId(user.getUserId());
147             a.setUserName(user.getFullName());
148             a.setCreateDate(today);
149             a.setModifiedDate(today);
150             a.setPriority(1);
151             a.setCompanyId(company.getCompanyId());
152             a.setCountry(form.getCountry());
153             a.setPhone(form.getPhone());
154             a.setClassName(user.getClass().getName());
155             a.setClassPK(user.getUserId());
156             a.setPriority(1);
157             a.setDescription("Primary");
158
159             PublicAddressFactory.save(a);
160         }
161
162         // add the user to the clickstream
163
ClickstreamFactory.setClickStreamUser(user.getUserId(), request);
164
165         UserComment comment = new UserComment();
166
167         comment.setComment(form.getComments());
168         comment.setDate(today);
169         comment.setMethod(UserComment.METHOD_WEB);
170         comment.setType(UserComment.TYPE_INCOMING);
171
172         comment.setCommentUserId(user.getUserId());
173         comment.setUserId(user.getUserId());
174         UserCommentsFactory.saveUserComment(comment);
175
176         // assign categories
177
UserProxy up = UserProxyFactory.getUserProxy(user);
178         String JavaDoc[] depts = form.getDepartments();
179
180         for (int i = 0; depts != null && i < depts.length; i++) {
181             Category cat = (Category) InodeFactory.getInode(depts[i], Category.class);
182             if (cat.getInode() > 0) {
183                 up.addChild(cat);
184             }
185         }
186
187         // if the user does not opt out, add contact methods
188
if (!form.isOptOut()) {
189             Category contactMethods = CategoryFactory.getCategoryByKey("contact_methods");
190             List JavaDoc cats = CategoryFactory.getChildrenCategories(contactMethods);
191             Iterator JavaDoc i = cats.iterator();
192             while (i.hasNext()) {
193                 Category cat = (Category) i.next();
194                 up.addChild(cat);
195             }
196
197             // Category cat = CategoryFactory.
198

199         }
200
201         InodeFactory.saveInode(up);
202
203         //save the user comments
204
ActionMessages am = new ActionMessages();
205         am.add(Globals.ERROR_KEY, new ActionMessage("message.inquiryThankYou"));
206         saveMessages(request, am);
207
208         ActionForward af = (mapping.findForward("thankYouPage"));
209
210         return af;
211     }
212
213 }
Popular Tags