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