001
014
015 package com.liferay.portal.service.impl;
016
017 import com.liferay.portal.ContactBirthdayException;
018 import com.liferay.portal.ContactClassNameException;
019 import com.liferay.portal.kernel.exception.PortalException;
020 import com.liferay.portal.kernel.exception.SystemException;
021 import com.liferay.portal.kernel.search.Indexable;
022 import com.liferay.portal.kernel.search.IndexableType;
023 import com.liferay.portal.kernel.util.OrderByComparator;
024 import com.liferay.portal.kernel.util.Validator;
025 import com.liferay.portal.model.Contact;
026 import com.liferay.portal.model.User;
027 import com.liferay.portal.service.base.ContactLocalServiceBaseImpl;
028 import com.liferay.portal.util.PortalUtil;
029
030 import java.util.Date;
031 import java.util.List;
032
033
036 public class ContactLocalServiceImpl extends ContactLocalServiceBaseImpl {
037
038 @Indexable(type = IndexableType.REINDEX)
039 public Contact addContact(
040 long userId, String className, long classPK, String emailAddress,
041 String firstName, String middleName, String lastName, int prefixId,
042 int suffixId, boolean male, int birthdayMonth, int birthdayDay,
043 int birthdayYear, String smsSn, String aimSn, String facebookSn,
044 String icqSn, String jabberSn, String msnSn, String mySpaceSn,
045 String skypeSn, String twitterSn, String ymSn, String jobTitle)
046 throws PortalException, SystemException {
047
048 User user = userPersistence.findByPrimaryKey(userId);
049 Date birthday = PortalUtil.getDate(
050 birthdayMonth, birthdayDay, birthdayYear,
051 ContactBirthdayException.class);
052 Date now = new Date();
053
054 validate(className, classPK);
055
056 long contactId = counterLocalService.increment();
057
058 Contact contact = contactPersistence.create(contactId);
059
060 contact.setCompanyId(user.getCompanyId());
061 contact.setUserId(user.getUserId());
062 contact.setUserName(user.getFullName());
063 contact.setCreateDate(now);
064 contact.setModifiedDate(now);
065 contact.setClassName(className);
066 contact.setClassPK(classPK);
067 contact.setEmailAddress(emailAddress);
068 contact.setFirstName(firstName);
069 contact.setMiddleName(middleName);
070 contact.setLastName(lastName);
071 contact.setPrefixId(prefixId);
072 contact.setSuffixId(suffixId);
073 contact.setMale(male);
074 contact.setBirthday(birthday);
075 contact.setSmsSn(smsSn);
076 contact.setAimSn(aimSn);
077 contact.setFacebookSn(facebookSn);
078 contact.setIcqSn(icqSn);
079 contact.setJabberSn(jabberSn);
080 contact.setMsnSn(msnSn);
081 contact.setMySpaceSn(mySpaceSn);
082 contact.setSkypeSn(skypeSn);
083 contact.setTwitterSn(twitterSn);
084 contact.setYmSn(ymSn);
085 contact.setJobTitle(jobTitle);
086
087 contactPersistence.update(contact);
088
089 return contact;
090 }
091
092 @Indexable(type = IndexableType.DELETE)
093 @Override
094 public Contact deleteContact(Contact contact) throws SystemException {
095
096
097
098 contactPersistence.remove(contact);
099
100
101
102 addressLocalService.deleteAddresses(
103 contact.getCompanyId(), Contact.class.getName(),
104 contact.getContactId());
105
106
107
108 emailAddressLocalService.deleteEmailAddresses(
109 contact.getCompanyId(), Contact.class.getName(),
110 contact.getContactId());
111
112
113
114 phoneLocalService.deletePhones(
115 contact.getCompanyId(), Contact.class.getName(),
116 contact.getContactId());
117
118
119
120 websiteLocalService.deleteWebsites(
121 contact.getCompanyId(), Contact.class.getName(),
122 contact.getContactId());
123
124 return contact;
125 }
126
127 @Indexable(type = IndexableType.DELETE)
128 @Override
129 public Contact deleteContact(long contactId) throws SystemException {
130 Contact contact = contactPersistence.fetchByPrimaryKey(contactId);
131
132 if (contact != null) {
133 deleteContact(contact);
134 }
135
136 return contact;
137 }
138
139 public List<Contact> getContacts(
140 long classNameId, long classPK, int start, int end,
141 OrderByComparator orderByComparator)
142 throws SystemException {
143
144 return contactPersistence.findByC_C(
145 classNameId, classPK, start, end, orderByComparator);
146 }
147
148 public int getContactsCount(long classNameId, long classPK)
149 throws SystemException {
150
151 return contactPersistence.countByC_C(classNameId, classPK);
152 }
153
154 @Indexable(type = IndexableType.REINDEX)
155 public Contact updateContact(
156 long contactId, String emailAddress, String firstName,
157 String middleName, String lastName, int prefixId, int suffixId,
158 boolean male, int birthdayMonth, int birthdayDay, int birthdayYear,
159 String smsSn, String aimSn, String facebookSn, String icqSn,
160 String jabberSn, String msnSn, String mySpaceSn, String skypeSn,
161 String twitterSn, String ymSn, String jobTitle)
162 throws PortalException, SystemException {
163
164 Date birthday = PortalUtil.getDate(
165 birthdayMonth, birthdayDay, birthdayYear,
166 ContactBirthdayException.class);
167
168 Contact contact = contactPersistence.findByPrimaryKey(contactId);
169
170 contact.setModifiedDate(new Date());
171 contact.setEmailAddress(emailAddress);
172 contact.setFirstName(firstName);
173 contact.setMiddleName(middleName);
174 contact.setLastName(lastName);
175 contact.setPrefixId(prefixId);
176 contact.setSuffixId(suffixId);
177 contact.setMale(male);
178 contact.setBirthday(birthday);
179 contact.setSmsSn(smsSn);
180 contact.setAimSn(aimSn);
181 contact.setFacebookSn(facebookSn);
182 contact.setIcqSn(icqSn);
183 contact.setJabberSn(jabberSn);
184 contact.setMsnSn(msnSn);
185 contact.setMySpaceSn(mySpaceSn);
186 contact.setSkypeSn(skypeSn);
187 contact.setTwitterSn(twitterSn);
188 contact.setYmSn(ymSn);
189 contact.setJobTitle(jobTitle);
190
191 contactPersistence.update(contact);
192
193 return contact;
194 }
195
196 protected void validate(String className, long classPK)
197 throws PortalException {
198
199 if (Validator.isNull(className) ||
200 className.equals(User.class.getName()) || (classPK <= 0)) {
201
202 throw new ContactClassNameException();
203 }
204 }
205
206 }