(Código fuente adjunto) conjunto de graduación de computadora de plataforma de segunda mano springboot campus 12903

Tabla de contenido

Resumen

1Introducción _

1.1 Importancia de la investigación

1.2 Estado de desarrollo

1. 3Introducción al marco Springboot

1.4 Estructura del artículo y disposición de los capítulos .

2 Análisis del sistema de plataforma de segunda mano del Campus 

2.1 Análisis de viabilidad

2.1.1 Análisis de viabilidad técnica

2.1.2 Análisis de viabilidad económica

2.1.3 Análisis de viabilidad jurídica

2.2 Análisis de la función del sistema

2.2.1 Análisis funcional

2.2.2 Análisis no funcional

2.3 Análisis de casos de uso del sistema

2.4 Análisis del proceso del sistema

2.4.1 Flujo de datos

2.4.2Proceso de negocio

2.5 Resumen de este capítulo

3 Diseño general de la plataforma de segunda mano del campus.

3.1 Diseño del módulo de función del sistema

3.1.1 Diseño general del módulo funcional

3.1.2 Diseño del módulo de usuario

3.1.3 Diseño del módulo de gestión de comentarios

3.1.4 Diseño del módulo de gestión de productos

3.2 Diseño de base de datos

3.2.1 Diseño de la estructura conceptual de la base de datos

3.3.2 Diseño de estructura lógica de base de datos

3.4 Resumen de este capítulo

4 Diseño detallado e implementación de la plataforma de segunda mano del campus. 

4.1 Módulo de funciones de usuario

4.1.1 Interfaz de la página principal

4.1.2 Interfaz de registro de usuario

4.1.3 Interfaz de inicio de sesión del usuario

4.1.4 Interfaz de información del producto

4.1.5 Interfaz de compra

4.1.6 Interfaz de información de transacciones

4.2 Módulo de función de administrador

4.2.1 Interfaz de gestión del tablón de anuncios

4.2.2 Interfaz de gestión de recursos

4.2.3 Interfaz de gestión de usuarios del sistema

4.2.4 Interfaz de gestión de información del producto

4.2.5  Interfaz de gestión de órdenes de compra

5 prueba del sistema

5.1 Casos de prueba del sistema

5.2 Resultados de la prueba del sistema

en conclusión

referencias

Expresiones de gratitud  

Resumen

En la sociedad de la información, existe la necesidad de encontrar métodos específicos para obtener información, pero la expansión de los métodos es básicamente la dirección por la que la gente se esfuerza. Debido a las desviaciones en la perspectiva, las personas a menudo pueden obtener diferentes tipos de información, lo que también es el problema más difícil de superar para la tecnología. En vista de problemas como la plataforma de segunda mano del campus, llevamos a cabo investigaciones y análisis sobre cómo utilizar la plataforma informática de segunda mano del campus y luego desarrollamos y diseñamos una plataforma de segunda mano del campus para resolver el problema.

Los principales módulos funcionales de la plataforma de segunda mano del campus incluyen información de productos, clasificación de productos, órdenes de compra y otra información de mantenimiento. Adopta un modelo de desarrollo orientado a objetos para el desarrollo de software y la instalación de hardware, que puede satisfacer bien las necesidades de uso real y Mejorar el correspondiente Para la construcción de software y la codificación de programas, MySQL se utiliza como la unidad de almacenamiento principal para los datos de fondo, y la tecnología Java y la tecnología Ajax se utilizan para la codificación y el desarrollo de sistemas comerciales para realizar todas las funciones de este sistema. Este informe analiza primero los antecedentes, el papel y la importancia de la investigación, sentando las bases para la racionalidad del trabajo de investigación. Analizar las diversas necesidades y problemas técnicos de la plataforma de segunda mano del campus, demostrar la necesidad y viabilidad técnica del sistema, luego brindar una introducción básica al software técnico y las ideas de diseño que deben usarse en el sistema de diseño, y finalmente Realice la plataforma de segunda mano del campus y ejecute la implementación usándola.

Palabras clave : springboot; plataforma de segunda mano del campus; MySQL

Abstracto

En la sociedad de la información, existe la necesidad de canales de adquisición de información específicos, pero la expansión de los canales es básicamente la dirección de los esfuerzos de las personas. Debido a la desviación de perspectiva, las personas a menudo pueden obtener diferentes tipos de información, lo que también es el tema más difícil de superar para la tecnología. Para abordar cuestiones como las plataformas de segunda mano del campus, investigue y analice cómo utilizar las plataformas informáticas de segunda mano del campus y luego desarrolle y diseñe una plataforma de segunda mano del campus para resolver el problema.

Los principales módulos funcionales de la plataforma de segunda mano del campus incluyen el mantenimiento de la información del producto, la clasificación del producto, las órdenes de compra y otra información. Adopta un modelo de desarrollo orientado a objetos para el desarrollo de software y la instalación de hardware, que puede satisfacer eficazmente las necesidades de uso práctico. Mejora la instalación de software correspondiente y el trabajo de codificación de programas, adopta MySQL como la principal unidad de almacenamiento para datos de backend y adopta tecnología Java. La tecnología Ajax se utiliza para codificar y desarrollar sistemas comerciales, logrando todas las funciones de este sistema. Este informe analiza primero los antecedentes, el papel y la importancia de la investigación, sentando las bases para la racionalidad del trabajo de investigación. Analizar los diversos requisitos y cuestiones técnicas de la plataforma de segunda mano del campus, demostrar la necesidad y viabilidad técnica del sistema, y ​​luego proporcionar una introducción básica al software técnico y las ideas de diseño necesarias para diseñar el sistema. Finalmente, implemente la plataforma de segunda mano del campus y despliéguela para su funcionamiento.

Palabras clave : springboot; Plataforma de segunda mano Campus; mysql

1Introducción _

1.1 Importancia de la investigación

Con el desarrollo de la sociedad, la economía baja en carbono se ha convertido en el tema del desarrollo mundial actual, y el reciclaje y el reciclaje de artículos se han convertido en el foco de atención social. La encuesta encontró que con el aumento del poder adquisitivo de los estudiantes universitarios y la aceleración de las actualizaciones de productos, hay una gran cantidad de artículos inactivos en los campus universitarios, como libros, ropa, productos electrónicos, etc. Sin embargo, generalmente faltan formas convenientes y efectivas de deshacerse de estos artículos inactivos, lo que genera una gran cantidad de desperdicio innecesario. Por lo tanto, crear un sitio web de comercio de artículos de segunda mano basado en Internet proporciona una buena idea para resolver este problema y también atiende las características de los estudiantes universitarios contemporáneos interesados ​​en Internet. Debido a que el sitio web de comercio de bienes de segunda mano del campus está dirigido específicamente a estudiantes universitarios, en comparación con los sitios web tradicionales de comercio de bienes de segunda mano, tiene las características de una segmentación del mercado más clara y servicios más específicos, lo que hace que sea más fácil obtener el reconocimiento del grupo de estudiantes y es propicio. a cultivar las actitudes bajas en carbono de los estudiantes. La conciencia y la responsabilidad social no sólo tienen grandes beneficios económicos, sino también beneficios sociales de gran alcance.

Como nuevo tipo de comercio electrónico, el comercio electrónico del campus se refiere a prestar servicios a profesores y estudiantes dentro del ámbito del campus, confiar en la red del campus y ser operado de forma independiente por los estudiantes para satisfacer las necesidades de las unidades, empresas o individuos en el campus. para negocios, trabajo y estudio., una forma de negocio necesaria para actividades en todos los aspectos de la vida, con las características de pequeño alcance, alta credibilidad y fuerte operatividad. Y de acuerdo con los diferentes tipos de consumidores que demandan productos, se pueden establecer una variedad de sitios web de comercio electrónico en campus. Por eso queremos crear un pequeño sitio web de comercio de artículos de segunda mano para satisfacer las necesidades de artículos de segunda mano de los estudiantes de la escuela.

1.2 Estado de desarrollo

En comparación con otros países, la industria del software de nuestro país está relativamente atrasada y comenzó relativamente tarde en la construcción de la informatización. Sin embargo, con el desarrollo continuo de la economía de nuestro país y la mejora continua de la tecnología de redes, nuestro país también está explorando constantemente la industria del software. Algunos resultados También se han obtenido. La industria del software de mi país se ha desarrollado rápidamente. Han aparecido cada vez más sistemas de software a la vista de la gente y han cambiado gradualmente la forma en que la gente vive y trabaja. Sin embargo, con respecto a la construcción de la informatización, en comparación con muchos países desarrollados, debido al atraso de la informatización y la insuficiencia de fondos, el desarrollo de plataformas de segunda mano en los campus de China todavía está relativamente atrasado, por lo que debemos continuar trabajando duro para explorar y esforzarnos. Desarrollar una plataforma práctica de segunda mano del campus basada en información para realizar la informatización de la plataforma de segunda mano del campus. Por lo tanto, este tema toma como ejemplo la plataforma de segunda mano del campus, con el propósito de desarrollar una plataforma de segunda mano del campus práctica.

La plataforma de segunda mano del campus utiliza lenguaje Java, marco Springboot y soporte de base de datos MySQL para completar conjuntamente el desarrollo del sistema del sitio web y lograr la informatización de la plataforma de segunda mano del campus. Los usuarios pueden tener una muy buena experiencia con la plataforma de segunda mano del campus. Y los administradores también pueden utilizar el El sistema realiza operaciones de administración más convenientes y realiza el plan especificado previamente.

1.3Introducción al marco Springboot

El marco Spring es un marco de aplicación de código abierto en la plataforma Java que proporciona un contenedor con características de inversión de control. Aunque el marco Spring en sí no tiene restricciones en cuanto al modelo de programación, su uso frecuente en aplicaciones Java lo hizo tan popular que luego se usó como complemento o incluso como sustituto del modelo EJB (Enterprise JavaBeans). El marco Spring proporciona una serie de soluciones para el desarrollo, como utilizar las características principales de inversión de control e implementar la inversión de control mediante inyección de dependencia para implementar la contenedorización del ciclo de vida del objeto administrado, usar programación orientada a aspectos para la gestión de transacciones declarativas y integración Una variedad de tecnologías de persistencia gestionan el acceso a los datos, proporcionan una gran cantidad de marcos web excelentes para facilitar el desarrollo, etc. El marco Spring tiene la función de inversión de control (IOC), que está diseñada para facilitar el mantenimiento y las pruebas del proyecto y proporciona un método para la configuración y gestión unificadas de objetos Java a través del mecanismo de reflexión de Java. El marco Spring utiliza contenedores para gestionar el ciclo de vida de los objetos. El contenedor puede configurar objetos escaneando archivos XML o anotaciones Java específicas en clases. Los desarrolladores pueden obtener objetos mediante la búsqueda o inyección de dependencias. Spring Framework tiene programación orientada a aspectos.(AOP), el marco Spring AOP se basa en el modo proxy y se puede configurar en tiempo de ejecución; el marco AOP modulariza principalmente preocupaciones cruzadas entre módulos. El marco AOP del marco Spring solo proporciona funciones AOP básicas y, aunque no se puede comparar con el marco AspectJ, también puede satisfacer las necesidades básicas mediante la integración con AspectJ. La gestión de transacciones, el acceso remoto y otras funciones bajo el marco Spring se pueden realizar utilizando la tecnología Spring AOP. El marco de gestión de transacciones de Spring aporta un mecanismo de abstracción a la plataforma Java que permite que las transacciones locales y globales, así como las transacciones anidadas, funcionen con puntos de guardado y en casi cualquier entorno de la plataforma Java. Spring integra una variedad de plantillas de transacciones: el sistema puede configurar transacciones a través de plantillas de transacciones, anotaciones XML o Java, y el marco de transacciones integra funciones como mensajería y almacenamiento en caché. El marco de acceso a datos de Spring resuelve las dificultades comunes que encuentran los desarrolladores cuando utilizan bases de datos en sus aplicaciones. No solo proporciona soporte para todos los marcos de acceso a datos populares como Java: JDBC, iBATS/MyBATIs, Hibernate, Java Data Objects (JDO), ApacheOJB y ApacheCayne, sino que también se puede utilizar con la gestión de transacciones de Spring para proporcionar acceso a datos. . Inicialmente, el marco Spring no tenía la intención de construir su propio marco Web MVC . Durante el proceso de desarrollo, sus desarrolladores creyeron que la separación entre la capa de presentación y la capa de procesamiento de solicitudes del marco StrutsWeb existente, así como entre la capa de procesamiento de solicitudes y el modelo no era suficiente, entonces crearon SpringMVC.

1.4 Estructura del artículo y disposición de los capítulos.

Este artículo está dividido en seis capítulos, y los capítulos están organizados de la siguiente manera:

El primer capítulo es la introducción, que proporciona una discusión y explicación detallada de los antecedentes, el estado y la importancia del sistema diseñado e implementado, y también presenta brevemente la estructura del marco general del documento.

El Capítulo 2 es el análisis de los requisitos del sistema. El trabajo principal realizado en este capítulo es analizar la viabilidad técnica, económica y operativa del sistema, también analiza los requisitos funcionales generales y los casos de uso del sistema.

El Capítulo 3 es el diseño del sistema, que diseña principalmente la estructura funcional del sistema y analiza la estructura conceptual y el diseño de la estructura física de la base de datos del sistema.

El Capítulo 4 trata sobre la implementación del sistema. De acuerdo con la división de funciones del sistema, se analizan y explican respectivamente las funciones de usuario ordinario de front-end y las funciones de administrador de back-end que el sistema necesita implementar.

Capítulo 5: Pruebas del sistema. Pruebe principalmente algunas interfaces del sistema y pruebe las funciones principales.

Capítulo 6: Resumen.

2 Análisis del sistema de plataforma de segunda mano del campus.

El análisis de los requisitos del sistema es un vínculo clave en el desarrollo del sistema y desempeña un papel conector en el diseño y la implementación del sistema. El análisis de requisitos del sistema consiste en desenterrar los requisitos del sistema que se debe construir y, si el análisis es preciso, puede resolver con precisión los problemas encontrados en la realidad. Si el análisis no se realiza, afectará la implementación del sistema posterior. El análisis de requisitos también representa una proporción muy grande de la excelencia de un sistema. Si no se realiza el análisis de requisitos, el diseño posterior del sistema será un diseño que se desvía de la navegación.

2.1 Análisis de viabilidad

El análisis de viabilidad del sistema es una discusión sobre la viabilidad del sistema. Al discutir la viabilidad del sistema, lo analizamos principalmente desde la viabilidad técnica, la viabilidad económica y la viabilidad legal, si se pasan los tres niveles, pensamos que el sistema es relativamente viable.

2.1.1 Análisis de viabilidad técnica

La plataforma de segunda mano del campus utiliza la base de datos mysql para el almacenamiento y el uso de herramientas de desarrollo como IDEA y Tomcat para el desarrollo, lo que puede brindar mucha comodidad a nuestro trabajo de escritura. El sistema se desarrolla utilizando el marco Springboot , lo que hace que el sistema sea más escalable y mantenible, reduce el código de configuración de Java y simplifica el código de programación. Actualmente, el marco Springboot también es uno de los marcos elegidos por muchas empresas.

2.1.2 Análisis de viabilidad económica

Desde el punto de vista de la viabilidad económica, el proyecto requiere una PC de desarrollo durante la fase de desarrollo y un servidor web y un servidor de base de datos durante la fase de producción. Desde un punto de vista económico, una PC personal no es un gran problema, en términos de implementación y producción posterior del sistema, la inversión en servidores no será demasiado alta y es relativamente factible desde una perspectiva económica.

2.1.3 Análisis de viabilidad jurídica

Desde una perspectiva legal, el sistema no tiene otros problemas legales con terceros.La base de datos del sistema utiliza la base de datos comunitaria de código abierto Mysql y el marco utiliza Springboot de código abierto. La información del sistema y el contenido relacionado también son legales. El código fuente se gestiona mediante código abierto git, por lo que es legalmente viable.

2.2 Análisis de la función del sistema

2.2.1 Análisis funcional

Divido la plataforma de segunda mano del campus en tres partes: módulo de administrador, módulo de usuario vendedor y módulo de usuario ordinario.

Módulo de gestión de usuarios ordinario:

(1) Registro e inicio de sesión del usuario: los visitantes pueden ingresar al sistema en cualquier momento y explorar la información en el sistema. Sin embargo, si desean operar la información del producto, deben tener una cuenta en este sistema. Si no tienen una cuenta , pueden registrarse como usuario para realizar operaciones relacionadas. Al mismo tiempo, los usuarios también pueden controlar la información personal y la información de operación a través del botón "Mi cuenta".

(2) Verifique la información de la página de inicio de la plataforma de segunda mano del campus: la información de la página de inicio de la plataforma de segunda mano del campus incluye el tablero de anuncios, la información de transacciones, la información de transacciones, la información del producto y el mío (mi cuenta, mi colección, centro personal) .

(3) Información de la transacción: cuando el usuario hace clic en el botón de menú "Información de la transacción", se mostrará toda la información de la transacción publicada por el administrador en segundo plano. Puede ver detalles, recopilar, dar me gusta, comentar, etc.;

(4) Tablón de anuncios: los usuarios pueden ver el tablón de anuncios publicado por el administrador de backend. Cuando encuentran el tablón de anuncios que desean conocer, pueden ingresar para ver la introducción detallada.

(5) Información del producto: cuando el usuario hace clic en el botón de menú "Información del producto", se mostrará toda la información del producto publicada por el administrador en segundo plano. Admite la búsqueda de información del producto por palabras clave. Seleccione la información del producto requerida y haga clic para ingresar . Interfaz de introducción detallada de la información del producto. En la interfaz detallada, puede ver el nombre del producto, el tipo de producto, las especificaciones del producto, la ubicación de la transacción, el usuario del vendedor, el nombre del vendedor y otra información de la información del producto. Al mismo tiempo, puede comprar , dar me gusta, recopilar y comentar;

(6) Compra: cuando el usuario desee realizar una compra en la interfaz de detalles de información del producto, haga clic en el botón "Comprar" a continuación y saltará a la interfaz de llenado de información de compra. Ingrese la información de compra de acuerdo con las indicaciones de la interfaz, haga clic en el botón "Enviar", y la compra se completa.

(7) Mi cuenta: cuando el usuario hace clic en el botón "Mi" en la esquina superior derecha, aparecerá un submenú. Al hacer clic en "Mi cuenta", puede configurar y administrar información personal, contraseñas para iniciar sesión en el sistema e información recopilada por uno mismo. ;

Módulo de gestión de administradores:

Los administradores incluyen administradores y usuarios comunes. Los administradores tienen la máxima autoridad y pueden agregar, eliminar, modificar y verificar información en las plataformas de segunda mano del campus.

(1) Imagen del carrusel: el administrador puede hacer clic en el menú "Imagen del carrusel" para agregar, eliminar, modificar y verificar la imagen del carrusel que se muestra en la página de inicio.

(2) Tablón de anuncios: los administradores pueden hacer clic en el menú "Tablero de anuncios" para ver toda la información del tablero de anuncios en el sistema. Los administradores pueden modificar los tableros de anuncios existentes, agregar nuevos tableros de anuncios o eliminar tableros de anuncios.

(3) Usuario del sistema: cuando el administrador hace clic en el menú "Usuario del sistema", se mostrarán los tres submenús de administrador, usuario vendedor y usuario normal. El administrador puede agregar, eliminar, modificar y verificar la información de estos tres roles;

(4)Gestión de recursos: cuando el administrador hace clic en el menú "Administración de recursos", se mostrarán dos submenús de información de transacciones y clasificación de información . El administrador puede actualizar y mantener las funciones involucradas en estos dos departamentos para servir mejor a los usuarios de front-end;

(5) Gestión de módulos: en el menú "Gestión de módulos", se puede gestionar toda la información operada por los usuarios normales y los usuarios vendedores en el sistema, incluida la clasificación de productos, la información del producto y las órdenes de compra.

2.2.2 Análisis no funcional

Los requisitos no funcionales de la plataforma de segunda mano del campus incluyen la seguridad, confiabilidad, rendimiento, escalabilidad, etc. de la plataforma de segunda mano del campus. Los detalles se pueden expresar en la siguiente tabla 3-1:

Tabla 3-1 Tabla de requisitos no funcionales para plataforma de segunda mano del campus

seguridad

Se refiere principalmente a la instalación de la base de datos de la plataforma de segunda mano del campus, el uso de la base de datos y la configuración de contraseñas deben cumplir con los estándares.

fiabilidad

La confiabilidad significa que la plataforma de segunda mano del campus puede funcionar de acuerdo con las instrucciones enviadas por el usuario. Después de las pruebas, la confiabilidad es superior al 90%.

actuación

El rendimiento es una condición necesaria para que las plataformas de segunda mano del campus ocupen el mercado, por lo que lo mejor es tener un buen rendimiento.

Escalabilidad

Por ejemplo, la base de datos reserva múltiples atributos, como el uso de interfaces, para garantizar los requisitos no funcionales del sistema.

Facilidad de uso

Los usuarios solo necesitan seguir el contenido de visualización de la página de la plataforma de segunda mano del campus y operar.

Mantenibilidad

La mantenibilidad del desarrollo de la plataforma de segunda mano del campus es muy importante: después de las pruebas, no hay problemas con la mantenibilidad.

2.3 Análisis de casos de uso del sistema

Los diagramas de casos de uso UML completos de la plataforma de segunda mano del campus se encuentran en la Figura 2-1 y la Figura 2-2 respectivamente.

La Figura 2-1 es una visualización de casos de uso de roles de usuarios comunes.

Figura 2-1 Diagrama de casos de uso de roles de usuario ordinarios en la plataforma de segunda mano del campus

La Figura 2-2 es una demostración de un caso de uso de la función de administrador.

Figura 2-2 Diagrama de casos de uso del rol de administrador de plataforma de segunda mano Campus

2.4 Análisis del proceso del sistema

2. 4.1 Flujo de datos

Uno de los objetivos principales del desarrollo de una plataforma de segunda mano en el campus es permitir a los usuarios comprar información del producto. La Figura 2-3 es el diagrama de flujo de datos del sistema.

Figura 2-3 Vista ampliada de la operación de compra de información del producto

2.4.2 Proceso de negocio

Después de analizar el flujo de datos de la plataforma de segunda mano del campus, veamos el proceso de negocio del sistema. La Figura 2-4 es el diagrama de flujo de negocio:

Figura 2-4 Diagrama de flujo empresarial

2.5 Resumen de este capítulo

Este capítulo determina principalmente las funciones que debe realizar toda la plataforma de segunda mano del campus a través del análisis de viabilidad, análisis de requisitos funcionales, análisis de casos de uso del sistema y análisis de procesos del sistema de la plataforma de segunda mano del campus. Al mismo tiempo, también proporciona estándares para la implementación de códigos y pruebas de plataformas de segunda mano del campus.

3 Diseño general de la plataforma de segunda mano del campus.

El contenido principal discutido en este capítulo incluye el diseño del módulo funcional y el diseño del sistema de base de datos de la plataforma de segunda mano del campus.

3.1 Diseño del módulo de función del sistema

3.1.1 Diseño general del módulo funcional

En el capítulo anterior se analizaron principalmente los requisitos funcionales y no funcionales del sistema, y ​​en base a los requisitos se analizaron los casos de uso en la plataforma de segunda mano de este campus. Luego el siguiente paso es empezar a diseñar la arquitectura, funciones principales y base de datos de la plataforma de segunda mano de este campus. La plataforma de segunda mano del campus se deriva del análisis de demanda del capítulo anterior, y su diagrama de módulo de diseño general se muestra en la Figura 3-1.

Figura 3-1 Diagrama del módulo de función de plataforma de segunda mano Campus

3.1.2 Diseño del módulo de usuario

Los usuarios de este sistema incluyen administradores y usuarios. Las funciones de los dos módulos de usuario son básicamente las mismas. Los usuarios tienen una función de registro más que los administradores. Por lo tanto, el diagrama de estructura del módulo de usuario se utiliza como ejemplo para el análisis. El diagrama de estructura del módulo se utiliza como ejemplo para el análisis. Como se muestra a continuación:

Figura 3-2 Diagrama de estructura del módulo de usuario

3.1.3 Diseño del módulo de gestión de comentarios

La plataforma de segunda mano del campus es una plataforma abierta de comunicación. Los usuarios envían comentarios en la plataforma para aumentar la interacción entre los usuarios. Pero al mismo tiempo, para estandarizar mejor el contenido de los comentarios y brindar a los administradores la función de eliminar comentarios inapropiados, es necesario diseñar especialmente un módulo de gestión de comentarios, cuyo diagrama de estructura específico es el siguiente:

Figura 3-3 Diagrama de estructura del módulo de gestión de comentarios

3.1.4 Diseño del módulo de gestión de productos

La plataforma de segunda mano del campus necesita almacenar mucha información del producto y la estructura funcional de su módulo es la siguiente:

Figura 3-4 Diagrama de estructura del módulo del producto

3.2 Diseño de base de datos

El diseño de la base de datos generalmente incluye tres procesos principales: análisis de la demanda, diseño del modelo conceptual y creación de tablas de la base de datos. El análisis de la demanda se explicó en el capítulo anterior y el diseño del modelo conceptual tiene dos partes: el modelo conceptual y el diseño de la estructura lógica.

3.2.1 Diseño de la estructura conceptual de la base de datos

El siguiente es el diagrama principal de relaciones entre entidades ER de las principales tablas de la base de datos en toda la plataforma de segunda mano del campus.

Figura 3-6 Diagrama de relación ER total de la plataforma de segunda mano del campus

3.3.2 Diseño de estructura lógica de base de datos

Del diagrama de relación ER total en la plataforma de segunda mano del campus en la sección anterior, se puede concluir que es necesario crear un total de muchas tablas de datos. Aquí enumero principalmente varios diseños importantes de estructuras de tablas de bases de datos.

mesa recoger (colección)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

recoger_id

En t

10

0

norte

Y

ID de colección:

2

ID_usuario

En t

10

0

norte

norte

0

Identificación del coleccionista:

3

tabla_fuente

varchar

255

0

Y

norte

Tabla fuente:

4

campo_fuente

varchar

255

0

Y

norte

Campo fuente:

5

id_fuente

En t

10

0

norte

norte

0

ID de fuente:

6

título

varchar

255

0

Y

norte

título:

7

imagen

varchar

255

0

Y

norte

Cubrir:

8

crear_tiempo

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de creación:

9

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion:

Comentario de tabla (comentario)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

comentario_id

En t

10

0

norte

Y

ID del comentario:

2

ID_usuario

En t

10

0

norte

norte

0

ID del comentarista:

3

respuesta_a_id

En t

10

0

norte

norte

0

ID del comentario de respuesta: vacío es 0

4

contenido

texto largo

2147483647

0

Y

norte

contenido:

5

apodo

varchar

255

0

Y

norte

Apodo:

6

avatar

varchar

255

0

Y

norte

Dirección de avatar: [0,255]

7

crear_tiempo

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de creación:

8

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion:

9

tabla_fuente

varchar

255

0

Y

norte

Tabla fuente:

10

campo_fuente

varchar

255

0

Y

norte

Campo fuente:

11

id_fuente

En t

10

0

norte

norte

0

ID de fuente:

Tabla de clasificación de productos básicos (clasificación de productos básicos)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

id_clasificación_producto_producto

En t

10

0

norte

Y

ID de categoría de producto

2

tipo de producto

varchar

64

0

Y

norte

Tipos de productos

3

recomendar

En t

10

0

norte

norte

0

Recomendación inteligente

4

crear_tiempo

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

gender

varchar

64

0

Y

N

性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表product_information (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

product_information_id

int

10

0

N

Y

商品信息ID

2

trade_name

varchar

64

0

Y

N

商品名称

3

product_type

varchar

64

0

Y

N

商品类型

4

product_image

varchar

255

0

Y

N

商品图片

5

product_specifications

varchar

64

0

Y

N

商品规格

6

commodity_price

varchar

64

0

Y

N

商品价格

7

place_of_transaction

varchar

64

0

Y

N

交易地点

8

seller_customers

int

10

0

Y

N

0

卖家用户

9

seller_name

varchar

64

0

Y

N

卖家姓名

10

product_details

longtext

2147483647

0

Y

N

商品详情

11

hits

int

10

0

N

N

0

点击数

12

praise_len

int

10

0

N

N

0

点赞数

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

recommend

int

10

0

N

N

0

智能推荐

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表purchase_order (购买订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

purchase_order_id

int

10

0

N

Y

购买订单ID

2

trade_name

varchar

64

0

Y

N

商品名称

3

product_type

varchar

64

0

Y

N

商品类型

4

product_specifications

varchar

64

0

Y

N

商品规格

5

commodity_price

varchar

64

0

Y

N

商品价格

6

place_of_transaction

varchar

64

0

Y

N

交易地点

7

seller_customers

int

10

0

Y

N

0

卖家用户

8

sellers_name

varchar

64

0

Y

N

卖家姓名

9

purchase_user

int

10

0

Y

N

0

购买用户

10

user_name

varchar

64

0

Y

N

用户姓名

11

users_mobile_phone

varchar

64

0

Y

N

用户手机

12

scheduled_transaction_time

datetime

19

0

Y

N

预定交易时间

13

pay_state

varchar

16

0

N

N

未支付

支付状态

14

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

15

recommend

int

10

0

N

N

0

智能推荐

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表seller_customers (卖家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seller_customers_id

int

10

0

N

Y

卖家用户ID

2

seller_name

varchar

64

0

Y

N

卖家姓名

3

seller_gender

varchar

64

0

Y

N

卖家性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

3.4本章小结

整个校园二手平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 校园二手平台详细设计与实现

校园二手平台的详细设计与实现主要是根据前面的校园二手平台的需求分析和校园二手平台的总体设计来设计页面并实现业务逻辑。主要从校园二手平台界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入校园二手平台的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是公告,其主界面展示如下图4-1所示。

图4-1 前台首页界面图

4.1.2 用户注册界面

校园二手平台的用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2注册界面图

注册逻辑代码如下:

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        query.put("username",user.getUsername());

        List list = service.select(query, new HashMap<>()).getResultList();

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

4.1.3 用户登录界面

校园二手平台中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到校园二手平台的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图

登录的逻辑代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

4.1.4商品信息界面

当用户点击“商品信息”这一菜单按钮,会显示管理员在后台发布的所有的商品信息,支持通过关键词对商品信息进行搜索,选择需要的商品信息点击可以进入到商品信息详细的介绍界面,在详细界面可以查看到商品信息的商品名称、商品类型、商品规格、商品价格、交易地点、卖家用户、卖家姓名等信息,同时可以进行购买、点赞、收藏、评论操作,商品信息界面如下图4-4所示。

                  

图4-4 商品信息界面图

商品信息的逻辑代码如下:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

4.1.5购买界面

当用户在商品信息详情界面想要进行购买,点击下方的“购买”按钮,就会跳转到购买信息填写界面,根据界面提示输入购买信息,点击“提交”按钮,购买就完成了,购买界面如下图4-5所示。 

                  

图4-5购买界面图

4.1.6交易资讯界面

当访客点击校园二手平台中导航栏上的“交易资讯”后将会进入到该“交易资讯”列表的界面,然后选择想要看的交易资讯,点击进入到详细界面,同时可以进行点赞、收藏、评论操作,交易资讯界面如下图4-6所示。

                         

图4-6 交易资讯界面图

4.2管理人员功能模块

4.2.1公告栏管理界面

管理员点击“公告栏管理”菜单可以查看到系统中的所有公告栏信息,对已经存在的公告栏,管理员可以修改,也可以添加新的公告栏或者删除公告栏。界面如下图4-7所示。

图4-7公告栏管理界面图

4.2.2 资源管理界面

资源管理主要管理员是对交易资讯以及交易资讯所属的分类进行管控,包含了用户对交易资讯提交的评论信息,界面如下图4-8所示。

图4-8资源管理界面图

资源管理界面逻辑代码如下:

 @RequestMapping(value = {"/count_group", "/count"})

    public Map<String, Object> count(HttpServletRequest request) {

        Query count = service.count(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.2.3系统用户管理界面

管理员点击“系统用户”菜单可以对系统中存在的用户进行管理,包含了管理员用户、卖家和普通用户。界面如下图4-9所示。

图4-9系统用户管理界面图

4.2.4商品信息管理界面

管理员点击“商品信息”会显示出所有的商品信息,支持选择商品名称或者商品类型对商品信息进行查询,如果想要添加新的商品信息,点击“添加”按钮,输入商品名称、商品类型、商品图片、商品规格、交易地点、卖家用户、卖家姓名等信息,点击“提交”按钮就可以添加了,同时可以选择某一条商品信息,点击“删除”进行删除,也可以对用户提交的商品信息评论的信息进行管控。界面如下图4-10所示。

图4-10商品信息管理界面图

商品信息管理逻辑代码如下:

@RequestMapping(value = {"/avg_group", "/avg"})

public Map<String, Object> avg(HttpServletRequest request) {

        Query count = service.avg(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.2.5购买订单管理界面

管理员点击“购买订单”会显示出所有的购买订单信息,支持输入商品名称或者商品类型对购买订单信息进行查询,如果想要添加新的购买订单信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条购买订单信息,点击“删除”进行删除,也可以点击后面的“支付”按钮对购买订单的支付信息进行设置。界面如下图4-11所示。

图4-11购买订单管理界面图

购买订单管理界面逻辑代码如下:

@PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

    public Map<String,String> readConfig(HttpServletRequest request){

        Map<String,String> map = new HashMap<>();

        map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));

        map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));

        map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));

        map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));

        map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));

        map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));

        map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));

        map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));

        return map;

}

    public Map<String,String> readQuery(HttpServletRequest request){

        String queryString = request.getQueryString();

        if (queryString != null && !"".equals(queryString)) {

            String[] querys = queryString.split("&");

            Map<String, String> map = new HashMap<>();

            for (String query : querys) {

                String[] q = query.split("=");

                map.put(q[0], q[1]);

            }

            map.remove(FindConfig.PAGE);

            map.remove(FindConfig.SIZE);

            map.remove(FindConfig.LIKE);

            map.remove(FindConfig.ORDER_BY);

            map.remove(FindConfig.FIELD);

            map.remove(FindConfig.GROUP_BY);

            map.remove(FindConfig.MAX_);

            map.remove(FindConfig.MIN_);

            return map;

        }else {

            return new HashMap<>();

        }

}

    @Transactional

    public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){

        StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");

            }else {

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");

            }

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));

        log.info("[{}] - 更新操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

}

    public String toWhereSql(Map<String,String> query, Boolean like) {

        if (query.size() > 0) {

            try {

                StringBuilder sql = new StringBuilder(" WHERE ");

                for (Map.Entry<String, String> entry : query.entrySet()) {

                    if (entry.getKey().contains(FindConfig.MIN_)) {

                        String min = humpToLine(entry.getKey()).replace("_min", "");

                        sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (entry.getKey().contains(FindConfig.MAX_)) {

                        String max = humpToLine(entry.getKey()).replace("_max", "");

                        sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (like == true) {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and ");

                    } else {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and ");

                    }

                }

                sql.delete(sql.length() - 4, sql.length());

                sql.append(" ");

                return sql.toString();

            } catch (UnsupportedEncodingException e) {

                log.info("拼接sql 失败:{}", e.getMessage());

            }

        }

        return "";

    }

5系统测试

5.1 系统测试用例

系统测试包括:用户登录功能测试、商品展示功能测试、商品添加、商品搜索、密码修改,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

商品查看功能测试:

表5-2 商品查看功能测试表

用例名称

商品查看

目的

测试商品查看功能

前提

测试流程

点击商品

预期结果

可以查看到所有商品

实际结果

实际结果与预期结果一致

管理员添加商品界面测试:

表5-3 管理员添加商品界面测试表

用例名称

添加商品测试用例

目的

测试商品添加功能

前提

管理员用户正常登录情况下

测试流程

1)管理员点击商品,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的商品 

实际结果

实际结果与预期结果一致

商品搜索功能测试:

表5-4商品搜索功能测试表

用例名称

商品搜索测试

目的

测试商品搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的商品

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.2 系统测试结果

通过编写校园二手平台的测试用例,已经检测完毕用户登录模块、商品展示模块、商品添加模块、商品搜索模块、密码修改模块,通过这五大模块为校园二手平台的后期推广运营提供了强力的技术支撑。

结论

至此,校园二手平台已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、Java技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]佟羽齐,刘德华,张栎柯,李剑波,张俊杰.基于SpringBoot框架的钻前管理系统的设计与实现[J].信息与电脑(理论版),2023,35(02):111-113.

[2]曹振兴,刘亚娇,邹敏,涂蓉蓉,刘键铮.绿色校园背景下的校园二手交易平台[J].数字通信世界,2023(01):75-77.

[3]高耀,许诺,李博,王国帧.基于Web的新型校园二手交易平台实践研究——以“校易集市”为例[J].中国商论,2023(01):130-132.DOI:10.19699/j.cnki.issn2096-0298.2023.01.130.

[4]张柱,宋存进,蒋乐,刘莉.基于微信小程序校园二手交易平台设计与开发[J].电脑编程技巧与维护,2022(12):59-61+142.DOI:10.16184/j.cnki.comprg.2022.12.035.

[5]刘玥垚,曾姿琪,彭佳慧等. 浅析大学校园二手图书资源循环使用的网络平台建设的必要[C]//中国管理科学研究院教育科学研究所.2022电脑校园网络论坛论文集.2022电脑校园网络论坛论文集,2022:155-157.DOI:10.26914/c.cnkihy.2022.025230.

[6]王曼维,杨荻,李岩,及松洁.基于SpringBoot框架的智慧医疗问诊系统设计与实现[J].中国医学装备,2022,19(03):133-136.

[7]肖佳欣,李雪,曲嵬琦.基于新媒体营销搭建校园二手交易平台的策略研究[J].营销界,2022(01):35-37.

[8]王百皓,王生辉,祝玉华,李智慧. 一种基于MVC框架的智能平台的校园二手交易系统[P]. 河南省:CN113781185A,2021-12-10.

[9]高志平. 基于SpringBoot框架与ITIL方法的运维管理系统的设计与实现[D].华东师范大学,2021.DOI:10.27149/d.cnki.ghdsu.2021.001482.

[10]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

[11]胡思思,马诗豪,姜美.绿色校园背景下的校园二手交易平台[J].现代商业,2021(23):33-35.DOI:10.14097/j.cnki.5392/2021.23.011.

[12]余紫燕,姚芷晴,韦龄祺,彭秋明,梁玮澄,杨奕楷.关于构建校园二手交易平台的研究[J].北方经贸,2021(06):69-71.

[13]刘欣,李亮亮,牛聪. 基于Vue和SpringBoot框架的流域监管平台的研究和应用[C]//《中国防汛抗旱》杂志社,中国水利学会减灾专业委员会,水利部防洪抗旱减灾工程技术研究中心(中国水利水电科学研究院防洪抗旱减灾研究中心).第十一届防汛抗旱信息化论坛论文集.第十一届防汛抗旱信息化论坛论文集,2021:118-122.DOI:10.26914/c.cnkihy.2021.024864.

[14]陈倩,张捷.校园二手平台开发与市场分析[J].中国商论,2021(05):40-41.DOI:10.19699/j.cnki.issn2096-0298.2021.05.040.

[15]Xi Zeng,Yu Zhou,Xuqi Chen. Study on the System Design of Campus Resource Sharing Platform[J]. E3S Web of Conferences,2021,235.

[16]毕怀奇,王瑞东.校园二手交易平台的构建——以安徽建筑大学为例[J].商讯,2020(20):9-10.

[17]Tian Ming Huang. Diseño e Implementación de Sistema App para Consultoría Jurídica Basado en Tecnología JAVA[J]. Procedia Ciencias de la Computación, 2020, 166 (C).

[18] Cui Wei, Yang Jiashuai, Wang Kaiwen, Ren Yihao, Wei Fan. Análisis del tamaño del mercado y métodos de desarrollo sostenible de plataformas de segunda mano en campus [J]. Chinese Business Theory, 2020(01):10-11+ 215.DOI:10.19699 /j.cnki.issn2096-0298.2020.01.010.

[19] Guo Fei, Li Yingjun, Zhang Danhua, Du Zhuoying. Plan de construcción y promoción de la plataforma de comercio de segunda mano del campus "Qianyi" [J]. Guía de investigación económica, 2019(12):146+149.

Gracias

El artículo no podría completarse sin la ayuda de mi querido maestro, aunque él no señaló directamente el problema, también me guió con palabras y me dio las sugerencias correspondientes, para que pudiera crecer más rápidamente. Aquí expreso sinceramente mi agradecimiento. .

En primer lugar, estoy principalmente agradecido a mi instructor, quien me dio una gran afirmación cuando terminé mi trabajo, lo que me dio una gran confianza y me dio la confianza para completar este trabajo. También me dio muchas sugerencias durante el proceso de producción, lo que me ahorró muchos desvíos. Después de que me señaló la dirección específica y encontró el tronco principal, seguí gradualmente las ramas del tronco principal para analizar cada contexto. Y cuando mi sistema estuvo inicialmente completo, también me señaló las deficiencias y fallas de mi sistema, lo que me hizo profundamente consciente de mis propios defectos.

En segundo lugar, también me gustaría agradecer a mis compañeros de clase que me proporcionaron materiales de referencia, me brindaron la experiencia de mis predecesores y me permitieron como punto de partida subirme sobre los hombros de gigantes, estos materiales también me brindaron una gran ayuda.

Finalmente quisiera agradecer a mis padres, ellos me brindaron el mayor apoyo y afirmaron plenamente mi trabajo, esto me dio un gran aliento y sentó las bases de mi éxito, sin la ayuda de estas personas no podría hacer nada. ... No tendría el éxito que tengo hoy. De nuevo, gracias por tu ayuda.

Siga y dé me gusta + envíe un mensaje privado al blogger para recibir el código fuente del proyecto de forma gratuita

Supongo que te gusta

Origin blog.csdn.net/ID3461074420/article/details/132791144
Recomendado
Clasificación