1
22
23 package com.liferay.portlet.shopping.service.persistence;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.util.OrderByComparator;
27 import com.liferay.portal.kernel.util.StringPool;
28 import com.liferay.portal.kernel.util.StringUtil;
29 import com.liferay.portal.kernel.util.Validator;
30 import com.liferay.portal.spring.hibernate.CustomSQLUtil;
31 import com.liferay.portal.spring.hibernate.HibernateUtil;
32 import com.liferay.portlet.shopping.model.impl.ShoppingOrderImpl;
33 import com.liferay.util.dao.hibernate.QueryPos;
34 import com.liferay.util.dao.hibernate.QueryUtil;
35
36 import java.util.Iterator;
37 import java.util.List;
38
39 import org.hibernate.Hibernate;
40 import org.hibernate.SQLQuery;
41 import org.hibernate.Session;
42
43
49 public class ShoppingOrderFinder {
50
51 public static String COUNT_BY_G_C_U_N_PPPS =
52 ShoppingOrderFinder.class.getName() + ".countByG_C_U_N_PPPS";
53
54 public static String FIND_BY_G_C_U_N_PPPS =
55 ShoppingOrderFinder.class.getName() + ".findByG_C_U_N_PPPS";
56
57 public static int countByG_C_U_N_PPPS(
58 long groupId, long companyId, long userId, String number,
59 String billingFirstName, String billingLastName,
60 String billingEmailAddress, String shippingFirstName,
61 String shippingLastName, String shippingEmailAddress,
62 String ppPaymentStatus, boolean andOperator)
63 throws SystemException {
64
65 number = StringUtil.upperCase(number);
66
67 Session session = null;
68
69 try {
70 session = HibernateUtil.openSession();
71
72 String sql = CustomSQLUtil.get(COUNT_BY_G_C_U_N_PPPS);
73
74 if (userId <= 0) {
75 sql = StringUtil.replace(sql, _USER_ID_SQL, StringPool.BLANK);
76 }
77
78 if (Validator.isNull(ppPaymentStatus)) {
79 sql = StringUtil.replace(
80 sql, "ppPaymentStatus = ?", "ppPaymentStatus != ?");
81
82 ppPaymentStatus = ShoppingOrderImpl.STATUS_LATEST;
83 }
84
85 sql = CustomSQLUtil.replaceAndOperator(sql, andOperator);
86
87 SQLQuery q = session.createSQLQuery(sql);
88
89 q.addScalar(HibernateUtil.getCountColumnName(), Hibernate.LONG);
90
91 QueryPos qPos = QueryPos.getInstance(q);
92
93 qPos.add(groupId);
94 qPos.add(companyId);
95
96 if (userId > 0) {
97 qPos.add(userId);
98 }
99
100 qPos.add(number);
101 qPos.add(number);
102 qPos.add(billingFirstName);
103 qPos.add(billingFirstName);
104 qPos.add(billingLastName);
105 qPos.add(billingLastName);
106 qPos.add(billingEmailAddress);
107 qPos.add(billingEmailAddress);
108 qPos.add(shippingFirstName);
109 qPos.add(shippingFirstName);
110 qPos.add(shippingLastName);
111 qPos.add(shippingLastName);
112 qPos.add(shippingEmailAddress);
113 qPos.add(shippingEmailAddress);
114 qPos.add(ppPaymentStatus);
115
116 Iterator itr = q.list().iterator();
117
118 if (itr.hasNext()) {
119 Long count = (Long)itr.next();
120
121 if (count != null) {
122 return count.intValue();
123 }
124 }
125
126 return 0;
127 }
128 catch (Exception e) {
129 throw new SystemException(e);
130 }
131 finally {
132 HibernateUtil.closeSession(session);
133 }
134 }
135
136 public static List findByG_C_U_N_PPPS(
137 long groupId, long companyId, long userId, String number,
138 String billingFirstName, String billingLastName,
139 String billingEmailAddress, String shippingFirstName,
140 String shippingLastName, String shippingEmailAddress,
141 String ppPaymentStatus, boolean andOperator, int begin, int end,
142 OrderByComparator obc)
143 throws SystemException {
144
145 number = StringUtil.upperCase(number);
146
147 Session session = null;
148
149 try {
150 session = HibernateUtil.openSession();
151
152 String sql = CustomSQLUtil.get(FIND_BY_G_C_U_N_PPPS);
153
154 if (userId <= 0) {
155 sql = StringUtil.replace(sql, _USER_ID_SQL, StringPool.BLANK);
156 }
157
158 if (Validator.isNull(ppPaymentStatus)) {
159 sql = StringUtil.replace(
160 sql, "ppPaymentStatus = ?", "ppPaymentStatus != ?");
161
162 ppPaymentStatus = ShoppingOrderImpl.STATUS_LATEST;
163 }
164
165 sql = CustomSQLUtil.replaceAndOperator(sql, andOperator);
166 sql = CustomSQLUtil.replaceOrderBy(sql, obc);
167
168 SQLQuery q = session.createSQLQuery(sql);
169
170 q.addEntity("ShoppingOrder", ShoppingOrderImpl.class);
171
172 QueryPos qPos = QueryPos.getInstance(q);
173
174 qPos.add(groupId);
175 qPos.add(companyId);
176
177 if (userId > 0) {
178 qPos.add(userId);
179 }
180
181 qPos.add(number);
182 qPos.add(number);
183 qPos.add(billingFirstName);
184 qPos.add(billingFirstName);
185 qPos.add(billingLastName);
186 qPos.add(billingLastName);
187 qPos.add(billingEmailAddress);
188 qPos.add(billingEmailAddress);
189 qPos.add(shippingFirstName);
190 qPos.add(shippingFirstName);
191 qPos.add(shippingLastName);
192 qPos.add(shippingLastName);
193 qPos.add(shippingEmailAddress);
194 qPos.add(shippingEmailAddress);
195 qPos.add(ppPaymentStatus);
196
197 return QueryUtil.list(q, HibernateUtil.getDialect(), begin, end);
198 }
199 catch (Exception e) {
200 throw new SystemException(e);
201 }
202 finally {
203 HibernateUtil.closeSession(session);
204 }
205 }
206
207 private static String _USER_ID_SQL = "(userId = ?) AND";
208
209 }