Rev 1426 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1426 | Rev 1429 | ||
---|---|---|---|
Line 8... | Line 8... | ||
8 | import org.hibernate.Query; |
8 | import org.hibernate.Query; |
9 | import org.hibernate.criterion.Order; |
9 | import org.hibernate.criterion.Order; |
10 | import pt.estgp.estgweb.domain.*; |
10 | import pt.estgp.estgweb.domain.*; |
11 | 11 | ||
12 | import java.util.ArrayList; |
12 | import java.util.ArrayList; |
13 | import java.util.HashMap; |
- | |
14 | import java.util.List; |
13 | import java.util.List; |
15 | import java.util.Map; |
- | |
16 | 14 | ||
17 | import static org.hibernate.criterion.Restrictions.*; |
15 | import static org.hibernate.criterion.Restrictions.*; |
18 | 16 | ||
19 | /** |
17 | /** |
20 | * @author Jorge Machado |
18 | * @author Jorge Machado |
Line 142... | Line 140... | ||
142 | } |
140 | } |
143 | else |
141 | else |
144 | return 0; |
142 | return 0; |
145 | } |
143 | } |
146 | 144 | ||
- | 145 | /* |
|
147 | public AnnouncementDaoImpl.FindUsersResult findUsersEmails(1.5.0/docs/api/java/lang/Long.html">Long id,boolean onlyNotAnswered) |
146 | public AnnouncementDaoImpl.FindUsersResult findUsersEmails(Long id,boolean onlyNotAnswered) |
148 | { |
147 | { |
149 | 148 | ||
150 | AnnouncementDaoImpl.FindUsersResult findUsersResult = new AnnouncementDaoImpl.FindUsersResult(); |
149 | AnnouncementDaoImpl.FindUsersResult findUsersResult = new AnnouncementDaoImpl.FindUsersResult(); |
151 | List<String> users = new ArrayList<String>(); |
150 | List<String> users = new ArrayList<String>(); |
Line 168... | Line 167... | ||
168 | 167 | ||
169 | return findUsersResult; |
168 | return findUsersResult; |
170 | 169 | ||
171 | 170 | ||
172 | } |
171 | } |
- | 172 | */ |
|
173 | 173 | ||
174 | public AnnouncementDaoImpl.FindUsersResult findUsersEmailsPedagogico(boolean onlyNotAnswered,long cursoAfetoId,long unidadeAfetaId) |
174 | public AnnouncementDaoImpl.FindUsersIdResult findUsersIds(1.5.0/docs/api/java/lang/Long.html">Long id,boolean onlyNotAnswered) |
175 | { |
175 | { |
176 | 176 | ||
177 | AnnouncementDaoImpl.FindUsersResult findUsersResult = new AnnouncementDaoImpl.FindUsersResult(); |
177 | AnnouncementDaoImpl.FindUsersIdResult findUsersResult = new AnnouncementDaoImpl.FindUsersIdResult(); |
178 | List<String> users = new ArrayList<String>(); |
178 | List<Long> users = new ArrayList<Long>(); |
179 | findUsersResult.emails = users; |
179 | findUsersResult.userIds = users; |
- | 180 | ||
180 | 181 | ||
181 | 1.5.0/docs/api/javax/management/Query.html">Query q = AbstractDao.getCurrentSession().createQuery("SELECT " + |
182 | 1.5.0/docs/api/javax/management/Query.html">Query q = AbstractDao.getCurrentSession().createQuery("SELECT " + |
- | 183 | " u.id " + |
|
- | 184 | "from " + QuestionarioRespostaRequisitada.class.getName() + " rR " + |
|
- | 185 | "JOIN rR.questionario q " + |
|
- | 186 | "JOIN rR.user u " + |
|
182 | " u.outEmail, u.preferrefEmail, u.email " + |
187 | "WHERE q.id = :id " + |
- | 188 | (onlyNotAnswered? " AND rR.resposta is null " : "" ) + |
|
- | 189 | "GROUP BY u.id"); |
|
- | 190 | ||
- | 191 | q.setLong("id",id); |
|
- | 192 | List<Object> results = (List<Object>) q.list(); |
|
- | 193 | ||
- | 194 | ||
- | 195 | for(5+0%2Fdocs%2Fapi+Object">Object result: results) |
|
- | 196 | { |
|
- | 197 | findUsersResult.userIds.add((1.5.0/docs/api/java/lang/Long.html">Long) result); |
|
- | 198 | } |
|
- | 199 | findUsersResult.users = results.size(); |
|
- | 200 | return findUsersResult; |
|
- | 201 | } |
|
- | 202 | ||
- | 203 | public AnnouncementDaoImpl.FindUsersIdResult findUsersIdsPedagogico(boolean onlyNotAnswered,long cursoAfetoId,long unidadeAfetaId) |
|
- | 204 | { |
|
- | 205 | ||
- | 206 | AnnouncementDaoImpl.FindUsersIdResult findUsersResult = new AnnouncementDaoImpl.FindUsersIdResult(); |
|
- | 207 | List<Long> users = new ArrayList<Long>(); |
|
- | 208 | findUsersResult.userIds = users; |
|
- | 209 | ||
- | 210 | 1.5.0/docs/api/javax/management/Query.html">Query q = AbstractDao.getCurrentSession().createQuery("SELECT " + |
|
- | 211 | " u.id " + |
|
183 | "from " + QuestionarioPedagogicoAlunoRequisitado.class.getName() + " aR " + |
212 | "from " + QuestionarioPedagogicoAlunoRequisitado.class.getName() + " aR " + |
184 | "JOIN aR.respostaRequisitada rR " + |
213 | "JOIN aR.respostaRequisitada rR " + |
185 | "JOIN rR.user u " + |
214 | "JOIN rR.user u " + |
186 | "WHERE " + |
215 | "WHERE " + |
187 | (cursoAfetoId > 0 ? |
216 | (cursoAfetoId > 0 ? |
188 | " aR.tipologiaRequisitada.unidadeAfeta.cursoAfeto.id = " + cursoAfetoId : |
217 | " aR.tipologiaRequisitada.unidadeAfeta.cursoAfeto.id = " + cursoAfetoId : |
189 | " aR.tipologiaRequisitada.unidadeAfeta.id = " + unidadeAfetaId) + |
218 | " aR.tipologiaRequisitada.unidadeAfeta.id = " + unidadeAfetaId) + |
190 | (onlyNotAnswered? " AND rR.resposta is null " : "" ) + |
219 | (onlyNotAnswered? " AND rR.resposta is null " : "" ) + |
191 | "GROUP BY u.id"); |
220 | "GROUP BY u.id"); |
192 | 221 | ||
193 | List<Object[]> results = (List<Object[]>) q.list(); |
222 | List<Object> results = (List<Object>) q.list(); |
194 | - | ||
195 | fullFillResults(findUsersResult, results); |
- | |
196 | 223 | ||
- | 224 | for(5+0%2Fdocs%2Fapi+Object">Object result: results) |
|
- | 225 | { |
|
- | 226 | findUsersResult.userIds.add((1.5.0/docs/api/java/lang/Long.html">Long) result); |
|
- | 227 | } |
|
- | 228 | findUsersResult.users = results.size(); |
|
197 | return findUsersResult; |
229 | return findUsersResult; |
198 | 230 | ||
199 | 231 | ||
200 | } |
232 | } |
201 | 233 | ||
202 | private void fullFillResults(AnnouncementDaoImpl.FindUsersResult findUsersResult, List<Object[]> results) { |
- | |
203 | Map<String,String> emailsSet = new HashMap<String, String>(); |
- | |
204 | for(5+0%2Fdocs%2Fapi+Object">Object[] result: results) |
- | |
205 | { |
- | |
206 | if(result[0] != null) |
- | |
207 | { |
- | |
208 | emailsSet.put((1.5.0/docs/api/java/lang/String.html">String) result[0],""); |
- | |
209 | } |
- | |
210 | if(result[1] != null) |
- | |
211 | { |
- | |
212 | emailsSet.put((1.5.0/docs/api/java/lang/String.html">String) result[1],""); |
- | |
213 | } |
- | |
214 | if(result[2] != null) |
- | |
215 | { |
- | |
216 | emailsSet.put((1.5.0/docs/api/java/lang/String.html">String) result[2],""); |
- | |
217 | } |
- | |
218 | } |
- | |
219 | findUsersResult.emails.addAll(emailsSet.keySet()); |
- | |
220 | findUsersResult.users = results.size(); |
- | |
221 | } |
- | |
222 | 234 | ||
223 | 235 | ||
224 | public static class QuestionarioStatsVars |
236 | public static class QuestionarioStatsVars |
225 | { |
237 | { |
226 | public long cursos; |
238 | public long cursos; |