Subversion Repositories bacoAlunos

Rev

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;