Index: lams_common/src/java/org/lamsfoundation/lams/policies/dao/hibernate/PolicyDAO.java =================================================================== diff -u -r86521284ae546f32e01ae0a6bc1dfb99232d19cd -r02dd6f814078937b4d1418bbb3b7a31bb531b287 --- lams_common/src/java/org/lamsfoundation/lams/policies/dao/hibernate/PolicyDAO.java (.../PolicyDAO.java) (revision 86521284ae546f32e01ae0a6bc1dfb99232d19cd) +++ lams_common/src/java/org/lamsfoundation/lams/policies/dao/hibernate/PolicyDAO.java (.../PolicyDAO.java) (revision 02dd6f814078937b4d1418bbb3b7a31bb531b287) @@ -15,12 +15,8 @@ import org.lamsfoundation.lams.policies.PolicyDTO; import org.lamsfoundation.lams.policies.dao.IPolicyDAO; import org.lamsfoundation.lams.policies.dto.UserPolicyConsentDTO; -import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; -import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.springframework.stereotype.Repository; -import com.sun.webkit.PolicyClient; - @Repository public class PolicyDAO extends LAMSBaseDAO implements IPolicyDAO { @@ -35,53 +31,52 @@ + "FROM lams_policy AS policy " + "LEFT JOIN lams_policy_consent AS policyConsent ON policyConsent.policy_uid = policy.uid " + "GROUP BY policy.uid ORDER BY policy.last_modified ASC"; - + SQLQuery query = getSession().createSQLQuery(LOAD_POLICIES_WITH_CONSENTS_COUNT); query.addEntity(Policy.class); query.addScalar("userConsentsCount"); List resultQuery = query.list(); - + // this map keeps the insertion order LinkedList policies = new LinkedList(); // make the result easier to process for (Object[] entry : resultQuery) { Policy policy = (Policy) entry[0]; int userConsentsCount = ((Number) entry[1]).intValue(); policy.setUserConsentsCount(userConsentsCount); - + policies.add(policy); } return policies; } - + @Override public List getPreviousVersionsPolicies(Long policyId) { String query = "from Policy p where p.policyId=? ORDER BY p.lastModified ASC"; return (List) doFind(query, policyId); } - + @Override public boolean isPolicyConsentRequiredForUser(Integer userId) { - String SQL = "SELECT count(*) FROM lams_policy as policy" + - " LEFT JOIN lams_policy_consent as policyConsent" + - " ON policy.uid = policyConsent.policy_uid AND policyConsent.user_id = :userId" + - " WHERE policyConsent.uid IS NULL AND policy.policy_state_id=1"; - + String SQL = "SELECT count(*) FROM lams_policy as policy" + " LEFT JOIN lams_policy_consent as policyConsent" + + " ON policy.uid = policyConsent.policy_uid AND policyConsent.user_id = :userId" + + " WHERE policyConsent.uid IS NULL AND policy.policy_state_id=1"; + Query query = getSession().createSQLQuery(SQL); query.setInteger("userId", userId); Object value = query.uniqueResult(); int result = ((Number) value).intValue(); - + return result > 0; } - + @Override public List getPolicyDtosByUser(Integer userId) { final String LOAD_POLICIES_WITH_USER_CONSENTS = "SELECT policy.*, policyConsent.uid IS NOT NULL as isConsentedByUser, policyConsent.date_agreed_on as dateAgreedOn " + "FROM lams_policy AS policy " + "LEFT JOIN lams_policy_consent AS policyConsent ON policyConsent.policy_uid = policy.uid AND policyConsent.user_id = :userId " + "WHERE policy.policy_state_id=1"; - + SQLQuery query = getSession().createSQLQuery(LOAD_POLICIES_WITH_USER_CONSENTS); query.addEntity(Policy.class); query.addScalar("isConsentedByUser"); @@ -94,30 +89,30 @@ // make the result easier to process for (Object[] entry : resultQuery) { Policy policy = (Policy) entry[0]; - + PolicyDTO policyDto = new PolicyDTO(policy); - + boolean isConsentedByUser = ((Number) entry[1]).intValue() == 1; policyDto.setConsentedByUser(isConsentedByUser); - + Date dateAgreedOn = (Date) entry[2]; policyDto.setDateAgreedOn(dateAgreedOn); - + policyDtos.add(policyDto); } return policyDtos; } - + @Override public List getConsentsByUserId(Integer userId) { String query = "from PolicyConsent consent where consent.user.userId=? ORDER BY consent.dateAgreedOn ASC"; return (List) doFind(query, userId); } - + @Override public List getConsentDtosByPolicy(Long policyUid, int page, int size, String sortBy, String sortOrder, String searchString) { - + String queryText = "SELECT user.user_id, user.login, user.first_name, user.last_name, policyConsent.uid IS NOT NULL as consented, policyConsent.date_agreed_on " + " FROM lams_user AS user" + " LEFT JOIN lams_policy_consent AS policyConsent ON policyConsent.user_id = user.user_id AND policyConsent.policy_uid = :policyUid " @@ -172,7 +167,7 @@ String lastName = (String) element[3]; UserPolicyConsentDTO policyConsentDto = new UserPolicyConsentDTO(userId, firstName, lastName, login); - + boolean isConsentGivenByUser = ((Number) element[4]).intValue() == 1; policyConsentDto.setConsentGivenByUser(isConsentGivenByUser); @@ -184,5 +179,5 @@ return policyConsentDtos; } - + }