carga

parent 750dc38c
This diff is collapsed.
This diff is collapsed.
......@@ -77,7 +77,7 @@
<td>Usuarios logueados totales (período)
&nbsp;&nbsp;<i style="font-size: 20px;" triggers="mouseenter:mouseleave" class="fa fa-info-circle fa-4" placement="top" ngbPopover="{{help.textLUperiod}}" popoverTitle="{{help.titleLUperiod}}"></i>
</td>
<td><a class="disableLinkSyle" title="{{usuarioTotalTooltip}}">{{ liceoSeleccionado.cantidadUsuarios }}</a></td>
<td><a class="disableLinkSyle" title="{{usuarioTotalTooltip}}">{{ liceoSeleccionado.cantidadLogueadosPeriodo }}</a></td>
</tr>
<tr *ngIf="liceoSeleccionado.archivosAccedidos">
<td>Archivos Accedidos
......
......@@ -106,7 +106,7 @@ export class EstadoSistemaComponent implements OnInit {
this.loading = false;
console.log ('dataEstadoSistema: ' , dataEstadoSistema)
this.liceoSeleccionado.archivosAccedidos = dataEstadoSistema.archivosAccedidos;
this.liceoSeleccionado.cantidadUsuarios = dataEstadoSistema.cantidadUsuarios;
this.liceoSeleccionado.cantidadLogueadosPeriodo = dataEstadoSistema.cantidadLogueadosPeriodo;
this.liceoSeleccionado.cursos = dataEstadoSistema.cursos;
this.liceoSeleccionado.logueadosActualmente = dataEstadoSistema.logueadosActualmente;
this.liceoSeleccionado.url = dataEstadoSistema.url;
......
......@@ -3,13 +3,11 @@ package edu.proygrado.dto;
import java.io.Serializable;
import java.util.List;
public class EstadoSistemaGeneralDTO implements Serializable {
private static final long serialVersionUID = 1L;
String url;
Long cantidadUsuarios;
Long cantidadLogueadosPeriodo;
Long logueadosActualmente;
List<RegistroArchivoDTO> archivosAccedidos;
List<EstadoSistemaCursoDTO> cursos;
......@@ -17,11 +15,11 @@ public class EstadoSistemaGeneralDTO implements Serializable {
public EstadoSistemaGeneralDTO() {
super();
}
public EstadoSistemaGeneralDTO(String url, Long cantidadUsuarios, Long logueadosActualmente,
public EstadoSistemaGeneralDTO(String url, Long cantidadLogueadosPeriodo, Long logueadosActualmente,
List<RegistroArchivoDTO> archivosAccedidos, List<EstadoSistemaCursoDTO> cursos) {
super();
this.url = url;
this.cantidadUsuarios = cantidadUsuarios;
this.cantidadLogueadosPeriodo = cantidadLogueadosPeriodo;
this.logueadosActualmente = logueadosActualmente;
this.archivosAccedidos = archivosAccedidos;
this.cursos = cursos;
......@@ -35,12 +33,12 @@ public class EstadoSistemaGeneralDTO implements Serializable {
this.url = url;
}
public Long getCantidadUsuarios() {
return cantidadUsuarios;
public Long getCantidadLogueadosPeriodo() {
return cantidadLogueadosPeriodo;
}
public void setCantidadUsuarios(Long cantidadUsuarios) {
this.cantidadUsuarios = cantidadUsuarios;
public void setCantidadLogueadosPeriodo(Long cantidadUsuarios) {
this.cantidadLogueadosPeriodo = cantidadUsuarios;
}
public Long getLogueadosActualmente() {
return logueadosActualmente;
......
package edu.proygrado.dto;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class RegistroLoginDTO {
Long liceoId;
Long moodleUserId;
String moodleUserName;
String fecha;
public RegistroLoginDTO() {
super();
}
public RegistroLoginDTO(Long liceoId, Long moodleUserId, String moodleUserName, GregorianCalendar fecha) {
super();
this.liceoId = liceoId;
this.moodleUserId = moodleUserId;
this.moodleUserName = moodleUserName;
this.fecha = fecha.get(Calendar.YEAR) + "-" + (fecha.get(Calendar.MONTH)+1) + "-" + fecha.get(Calendar.DATE);
}
public Long getLiceoId() {
return liceoId;
}
public void setLiceoId(Long liceoId) {
this.liceoId = liceoId;
}
public Long getMoodleUserId() {
return moodleUserId;
}
public void setMoodleUserId(Long moodleUserId) {
this.moodleUserId = moodleUserId;
}
public String getMoodleUserName() {
return moodleUserName;
}
public void setMoodleUserName(String moodleUserName) {
this.moodleUserName = moodleUserName;
}
public String getFecha() {
return fecha;
}
public void setFecha(String fecha) {
this.fecha = fecha;
}
}
......@@ -24,6 +24,7 @@ import edu.proygrado.dto.CoursesDTO;
import edu.proygrado.dto.EstadoSistemaCursoDTO;
import edu.proygrado.dto.EstadoSistemaGeneralDTO;
import edu.proygrado.dto.RegistroArchivoDTO;
import edu.proygrado.dto.RegistroLoginDTO;
import edu.proygrado.dto.RegistroTareaDTO;
import edu.proygrado.dto.TiempoAccesoDTO;
import edu.proygrado.dto.TipoArchivo;
......@@ -34,6 +35,7 @@ import edu.proygrado.modelo.RegistroAccesoArchivo;
import edu.proygrado.modelo.RegistroAccesoArchivoPK;
import edu.proygrado.modelo.RegistroCompartirArchivo;
import edu.proygrado.modelo.RegistroCompartirArchivoPK;
import edu.proygrado.modelo.RegistroLogin;
import edu.proygrado.modelo.RegistroTarea;
import edu.proygrado.modelo.TiempoAcceso;
import edu.proygrado.modelo.TiempoAccesoPK;
......@@ -55,6 +57,27 @@ public class EstadoSistemaEJB {
@Resource
private UserTransaction userTransaction;
public void saveRegistroLogin(Liceo liceo, Long moodleUserId, String moodleUserName) {
new Thread(new Runnable() {
@Override
public void run() {
RegistroLogin rl = null;
try {
GregorianCalendar now = new GregorianCalendar();
userTransaction.begin();
rl = new RegistroLogin(liceo, moodleUserId, moodleUserName, new GregorianCalendar(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH)));
em.persist(rl);
userTransaction.commit();
}catch(Exception e) {
System.err.println("No se pudo guardar registro de login para: " + rl.toString());
try {
userTransaction.rollback();
}catch(Exception e2) {}
}
}
}).start();
}
public void saveAccessTime(Long liceoId, Long moodleUserId, String tipo, String nombreEndpoint, Long tiempoms) {
new Thread(new Runnable() {
@Override
......@@ -162,10 +185,10 @@ public class EstadoSistemaEJB {
//URL
estadoSistema.setUrl(liceoId.equals(0l) ? "" : liceoBD.getMoodleuri());
List<UserResultDTO> ret = usuarioEJB.getUsersWithCriteria(new StringPair(MoodleConstants.matefunUserCustomServiceToken,liceoBD.getMoodleapiusertoken()), liceoBD.getMoodleuri(), new StringPair("suspended", "false"));
//List<UserResultDTO> ret = usuarioEJB.getUsersWithCriteria(new StringPair(MoodleConstants.matefunUserCustomServiceToken,liceoBD.getMoodleapiusertoken()), liceoBD.getMoodleuri(), new StringPair("suspended", "false"));
//cantidad usuarios
estadoSistema.setCantidadUsuarios(new Long(ret.size()));
//cantidad logueados periodo
estadoSistema.setCantidadLogueadosPeriodo(new Long(getRegistrosLogin(inicio, fin, liceoBD).size()));
//logueadosActualmente
estadoSistema.setLogueadosActualmente(invitadoEJB.getLoggueados(liceoId));
......@@ -271,6 +294,19 @@ public class EstadoSistemaEJB {
return query.getResultList().stream().map(r -> r.toDto()).collect(Collectors.toList());
}
public List<RegistroLoginDTO> getRegistrosLogin(GregorianCalendar inicio, GregorianCalendar fin, Liceo ...liceo){
//MULTILICEO
Liceo l = liceo!=null && liceo.length > 0 ? liceo[0] : null;
TypedQuery<RegistroLogin> query = em.createQuery(
"select r from RegistroLogin r where " + ( l!=null ? "r.liceo = :liceo and " : "" ) + "r.fecha >= :inicio and r.fecha <= :fin", RegistroLogin.class)
.setParameter("inicio", inicio)
.setParameter("fin", fin);
if (l!=null) {
query.setParameter("liceo", l);
}
return query.getResultList().stream().map(r -> r.toDto()).collect(Collectors.toList());
}
public List<TiempoAccesoDTO> getTiempos(GregorianCalendar inicio, GregorianCalendar fin, Long liceoid) {
TypedQuery<TiempoAcceso> query = em.createQuery(
......
......@@ -142,6 +142,7 @@ public class LoginEJB {
String tokenAuth = generateToken();
updateSession(tokenAuth, admin);
invitadoEJB.setUsuarioMatefunAdmin(tokenAuth, admin);
tiempoAccesoEJB.saveRegistroLogin(null, 0l, admin.getCedula());
return new UsuarioDTO(-1l, tokenAuth, null, admin, new ArrayList<MoodleCourseDTO>());
}else {
throw new MatefunException("Password incorrecto para administrador de Matefun.");
......@@ -213,12 +214,14 @@ public class LoginEJB {
if (usuariosRunnable.output==null)
throw new MatefunException("No se puede obtener informacion de usuarios desde moodle");
invitadoEJB.setUsuario(tokenAuth, usuarioAdminLiceo, moodleApiEndpoint, allMoodleTokens, liceo, coursesInfo, usuariosRunnable.output.get(0).getId());
tiempoAccesoEJB.saveRegistroLogin(liceoBD, userInfo.getUserid(), userInfo.getUsername());
return new UsuarioDTO(userInfo.getUserid(), tokenAuth, liceoBD.getLiceoPK().getLiceoId(), usuarioAdminLiceo, coursesInfo.getEnrolledcourses());
}
Usuario usuarioRetornado = new Alumno(cedula, userInfo.getUserid(), userInfo.getFirstname(), userInfo.getLastname(), liceoBD , Configuracion.getConfiguracionDefault());
invitadoEJB.setUsuario(tokenAuth, usuarioRetornado, moodleApiEndpoint, allMoodleTokens, liceo, coursesInfo, usuariosRunnable.output.get(0).getId());
updateSession(tokenAuth, usuarioRetornado);
tiempoAccesoEJB.saveRegistroLogin(liceoBD, userInfo.getUserid(), userInfo.getUsername());
return new UsuarioDTO(userInfo.getUserid(), tokenAuth, liceoBD.getLiceoPK().getLiceoId(), usuarioRetornado, coursesInfo.getEnrolledcourses());
}
......@@ -324,11 +327,8 @@ public class LoginEJB {
}
public String cargarDatosDePrueba() {
try {
userTransaction.begin();
Configuracion confa = Configuracion.getConfiguracionDefault();
Liceo liceoMoodleCloud = new Liceo("Liceo 3", "https://matefun.moodlecloud.com", "matefunsharedfiles", "31aafa8a09253623d6c2c3fca5a3d3a7", "serviciomatefun");
Admin matefunAdmin = new Admin("matefunadmin", "Cebolla", "Rodriguez", "dd9048d29561d898bd75276923990ab8ea01bb73", liceoMoodleCloud, confa);
......@@ -336,7 +336,6 @@ public class LoginEJB {
em.persist(confa);
em.persist(liceoMoodleCloud);
em.persist(matefunAdmin);
userTransaction.commit();
} catch (Exception e) {
......
package edu.proygrado.modelo;
import java.io.Serializable;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import edu.proygrado.dto.RegistroLoginDTO;
@Entity
public class RegistroLogin implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
long id;
@JoinColumn(nullable = true)
@OneToOne(cascade = CascadeType.DETACH)
Liceo liceo;
Long moodleUserId;
String moodleUserName;
@Temporal(TemporalType.DATE)
GregorianCalendar fecha;
public RegistroLoginDTO toDto() {
return new RegistroLoginDTO( liceo!=null ? liceo.getLiceoPK().getLiceoId() : null, moodleUserId, moodleUserName, fecha);
}
public RegistroLogin() {
super();
}
public RegistroLogin(Liceo liceo, Long moodleUserId, String moodleUserName, GregorianCalendar fecha) {
super();
this.liceo = liceo;
this.moodleUserId = moodleUserId;
this.moodleUserName = moodleUserName;
this.fecha = fecha;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Liceo getLiceo() {
return liceo;
}
public void setLiceo(Liceo liceo) {
this.liceo = liceo;
}
public Long getMoodleUserId() {
return moodleUserId;
}
public void setMoodleUserId(Long moodleUserId) {
this.moodleUserId = moodleUserId;
}
public GregorianCalendar getFecha() {
return fecha;
}
public void setFecha(GregorianCalendar fecha) {
this.fecha = fecha;
}
@Override
public String toString() {
return "RegistroLogin [id=" + id + ", liceo=" + liceo + ", moodleUserId=" + moodleUserId + ", moodleUserName=" + moodleUserName + ", fecha=" + (fecha.get(Calendar.YEAR) + "-" + fecha.get(Calendar.MONTH) + "-" + fecha.get(Calendar.DATE)) + "]";
}
public String getMoodleUserName() {
return moodleUserName;
}
public void setMoodleUserName(String moodleUserName) {
this.moodleUserName = moodleUserName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((fecha == null) ? 0 : fecha.hashCode());
result = prime * result + ((liceo == null) ? 0 : liceo.hashCode());
result = prime * result + ((moodleUserId == null) ? 0 : moodleUserId.hashCode());
result = prime * result + ((moodleUserName == null) ? 0 : moodleUserName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof RegistroLogin)) {
return false;
}
RegistroLogin other = (RegistroLogin) obj;
if (fecha == null) {
if (other.fecha != null) {
return false;
}
} else if (!fecha.equals(other.fecha)) {
return false;
}
if (liceo == null) {
if (other.liceo != null) {
return false;
}
} else if (!liceo.equals(other.liceo)) {
return false;
}
if (moodleUserId == null) {
if (other.moodleUserId != null) {
return false;
}
} else if (!moodleUserId.equals(other.moodleUserId)) {
return false;
}
if (moodleUserName == null) {
if (other.moodleUserName != null) {
return false;
}
} else if (!moodleUserName.equals(other.moodleUserName)) {
return false;
}
return true;
}
}
......@@ -19,18 +19,9 @@ public class MoodleFunctions {
public static final String mod_assign_get_assignments = "mod_assign_get_assignments"; //docente
public static final String mod_assign_save_submission = "mod_assign_save_submission";
public static final String core_user_agree_site_policy = "core_user_agree_site_policy";
public static final String mod_assign_submit_for_grading = "mod_assign_submit_for_grading";
public static final String mod_assign_submit_grading_form = "mod_assign_submit_grading_form";
public static final String mod_assign_view_grading_table = "mod_assign_view_grading_table";
public static final String mod_assign_save_grades = "mod_assign_save_grades"; //docente, NO ALUMNO
public static final String mod_assign_save_grade = "mod_assign_save_grade"; //docente, NO ALUMNO
public static final String mod_assign_get_submission_status = "mod_assign_get_submission_status"; //alumno
public static final String core_group_add_group_members = "core_group_add_group_members"; //solo docente
public static final String core_group_delete_group_members = "core_group_delete_group_members"; //solo docente
//Capabilities adicionales:
// -- moodle/course:viewparticipants
}
......@@ -16,6 +16,7 @@
<class>edu.proygrado.modelo.TiempoAccesoPK</class>
<class>edu.proygrado.modelo.Docente</class>
<class>edu.proygrado.modelo.Admin</class>
<class>edu.proygrado.modelo.RegistroLogin</class>
<class>edu.proygrado.modelo.RegistroTarea</class>
<class>edu.proygrado.modelo.RegistroAccesoArchivo</class>
<class>edu.proygrado.modelo.RegistroAccesoArchivoPK</class>
......@@ -32,7 +33,7 @@
<property name="hibernate.transaction.jta.platform" value="org.hibernate.engine.transaction.jta.platform.internal.WebSphereExtendedJtaPlatform"/>
<property name="javax.persistence.schema-generation.create-database-schemas" value="false"/>
<property name="javax.persistence.schema-generation.scripts.action" value="none"/>
<property name="javax.persistence.schema-generation.database.action" value="none"/>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
</properties>
</persistence-unit>
......
#Generated by Maven Integration for Eclipse
#Tue Jun 16 00:05:33 BRT 2020
#Thu Jun 18 15:53:12 BRT 2020
version=0.0.1-SNAPSHOT
groupId=proygrado
m2e.projectName=Servidor JEE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment