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