Título: AYUDA VALIDACION Publicado por: taos19 en 20 Marzo 2014, 22:27 pm Buen Dia Amigos
Tengo este metodo que verifica despues de un tiempo si el usuario puede seguir teniendo acceso al programa. Este compara dos campos de una base de datos para ver si se puede ingresar al programa o no. Alguien me podria explicar su funcionamiento y como puedo personalizar el tiempo. Código
Gracias de antemano Título: Re: AYUDA VALIDACION Publicado por: Mitsu en 21 Marzo 2014, 07:23 am Hola, vamos a hacer un análisis de este algoritmo que a simple vista no entiendo nada xD
Esta línea obtiene los campos ID1, ID2 de la tabla TB_CIV_TEMP cuando el ID1 es desconocido, es decir luego se seteará el parámetro de condición. Código Luego hace uso de un método del cual no podemos ver nada pero al parecer devuelve fechas en milisegundos (para poder compararse luego). Este método recibe 3 parámetros: La query, un array String y un array Object. Dado que no puedo ver el código de éste método, creo que no hace falta decirte que no entiendo ni un carajo para qué sirve xD Código Ahora, podemos deducir que el método findMapBySQLParam() concatenerá algún valor (alguna fecha en milisegundos quizás) con la query y hará la consulta. Por otro lado, si no se puede realizar la consulta o no hay coincidencias con la consulta, la lista puede ser nula (si no se ha podido realizar la consulta) o vacía (si no hay coincidencias). Si ésto llegara a pasar, devuelve false y termina el método. Crea un objeto Object y le asigna el valor de la llave "id2" del primer Map de la lista recibida. Código
Si el valor es nulo, es decir no hay una llave con ese identificador lo crea: Código
En caso el valor no sea nulo, es decir, si el primer Map de la lista si tiene un valor asociado a la llave "id2", obtiene el "id2" en milisegundos (al parecer es una fecha) y la fecha actual también en milisegundos. Luego los compara: Si la fecha en milisegundos de hoy es mayor que id2 en milisegundos, se elimina el usuario de la tabla. Código
De lo anterior podemos resumir que: Hace una consulta a la base de datos para obtener los campos ID1 e ID2 que al parecer son un fechas, de acuerdo a un valor para ID1. Calculamos la fecha en milisegundos que está en la base de datos (id2) con la fecha en milisegundos actual. Si la actual es mayor, se elimina el usuario de la base de datos. Si ID2 no tiene un campo establecido en la base de datos, se obtiene la fecha 80 días en adelante en milisegundos y se guarda en la base de datos. Conclusión: Al parecer éste algoritmo trata sobre verificación de licencias de usuario de algún software. PD: Creo que no es necesario que te diga dónde tienes que manejar las fechas (ya lo he explicado en el análisis). Salu2. Título: Re: AYUDA VALIDACION Publicado por: taos19 en 21 Marzo 2014, 13:46 pm Hola, vamos a hacer un análisis de este algoritmo que a simple vista no entiendo nada xD Esta línea obtiene los campos ID1, ID2 de la tabla TB_CIV_TEMP cuando el ID1 es desconocido, es decir luego se seteará el parámetro de condición. Código Luego hace uso de un método del cual no podemos ver nada pero al parecer devuelve fechas en milisegundos (para poder compararse luego). Este método recibe 3 parámetros: La query, un array String y un array Object. Dado que no puedo ver el código de éste método, creo que no hace falta decirte que no entiendo ni un carajo para qué sirve xD Código Ahora, podemos deducir que el método findMapBySQLParam() concatenerá algún valor (alguna fecha en milisegundos quizás) con la query y hará la consulta. Por otro lado, si no se puede realizar la consulta o no hay coincidencias con la consulta, la lista puede ser nula (si no se ha podido realizar la consulta) o vacía (si no hay coincidencias). Si ésto llegara a pasar, devuelve false y termina el método. Crea un objeto Object y le asigna el valor de la llave "id2" del primer Map de la lista recibida. Código
Si el valor es nulo, es decir no hay una llave con ese identificador lo crea: Código
En caso el valor no sea nulo, es decir, si el primer Map de la lista si tiene un valor asociado a la llave "id2", obtiene el "id2" en milisegundos (al parecer es una fecha) y la fecha actual también en milisegundos. Luego los compara: Si la fecha en milisegundos de hoy es mayor que id2 en milisegundos, se elimina el usuario de la tabla. Código
De lo anterior podemos resumir que: Hace una consulta a la base de datos para obtener los campos ID1 e ID2 que al parecer son un fechas, de acuerdo a un valor para ID1. Calculamos la fecha en milisegundos que está en la base de datos (id2) con la fecha en milisegundos actual. Si la actual es mayor, se elimina el usuario de la base de datos. Si ID2 no tiene un campo establecido en la base de datos, se obtiene la fecha 80 días en adelante en milisegundos y se guarda en la base de datos. Conclusión: Al parecer éste algoritmo trata sobre verificación de licencias de usuario de algún software. PD: Creo que no es necesario que te diga dónde tienes que manejar las fechas (ya lo he explicado en el análisis). Salu2. Impresionante respuesta. Muchas gracias por el tiempo y la explicacion. Otra pregunta... quisiera saber como seria la forma de verificar con otra fecha almacenada en otra base de datos y ahi si evitar el ingreso del usuario despues de 15 dias por ejemplo Título: Re: AYUDA VALIDACION Publicado por: Mitsu en 21 Marzo 2014, 14:20 pm Muchas gracias y ante cualquier duda, ya sabes que tienes que elegir ElHacker (http://foro.elhacker.net) ;)
Respecto a tu pregunta, yo haría lo siguiente:
Así sería muy fácil. Primero obtenemos los registros por el ID_USUARIO. Una vez que tengamos los registros (las fechas) podremos trabajar fácilmente. Sería algo así, aclaro que no lo he probado y quizás debe tener algunos errores, de eso ya te encargas tú. Espero hayas aprendido a cómo realizarlo. Código
Método que obtiene un Map por id de usuario: Código
Método que ejecuta una sentencia por id de usuario: Código
Título: Re: AYUDA VALIDACION Publicado por: taos19 en 21 Marzo 2014, 16:06 pm Muchas gracias y ante cualquier duda, ya sabes que tienes que elegir ElHacker (http://foro.elhacker.net) ;) Respecto a tu pregunta, yo haría lo siguiente:
Así sería muy fácil. Primero obtenemos los registros por el ID_USUARIO. Una vez que tengamos los registros (las fechas) podremos trabajar fácilmente. Sería algo así, aclaro que no lo he probado y quizás debe tener algunos errores, de eso ya te encargas tú. Espero hayas aprendido a cómo realizarlo. Código
Método que obtiene un Map por id de usuario: Código
Método que ejecuta una sentencia por id de usuario: Código
Estoy muy agradecido mitsu. Voy a implementarlo y te cuento |